first and untested draft of the damage rebalancing

uses a damage modifier for each weapon
the modifier is only applied to non-weapon damage
added default modifiers to existing weapons based on their AC and adjusted fot 8+ weapons based on an edjucated guess (when the appear in the game, etc)
This commit is contained in:
Gonk
2019-12-23 23:24:44 +01:00
parent 2d9cf8e364
commit 8daf7ca144
21 changed files with 184 additions and 5 deletions

View File

@@ -23,6 +23,12 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<TextView
android:text="@string/iteminfo_effect_set_damage_modifier"
android:id="@+id/abilitymodifierinfo_set_damage_modifier"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<TextView
android:text="@string/iteminfo_effect_increase_critical_skill"
android:id="@+id/abilitymodifierinfo_change_critical_skill"

View File

@@ -119,6 +119,7 @@
"max":8
},
"increaseAttackCost":7,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":12
},
"hitEffect":{

View File

@@ -117,6 +117,7 @@
},
"increaseMaxHP":0,
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":19,
"increaseCriticalSkill":10,
"increaseBlockChance":0,

View File

@@ -108,6 +108,7 @@
"max":11
},
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":15
}
},
@@ -123,6 +124,7 @@
"max":13
},
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":15,
"increaseCriticalSkill":4,
"setCriticalMultiplier":1.5
@@ -150,6 +152,7 @@
"max":3
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":10,
"increaseCriticalSkill":1,
"increaseBlockChance":7,
@@ -196,6 +199,7 @@
"max":9
},
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":15,
"increaseBlockChance":4
}
@@ -215,6 +219,7 @@
"max":3
},
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":8,
"increaseBlockChance":1
},
@@ -261,6 +266,7 @@
"max":14
},
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":8,
"increaseCriticalSkill":10,
"setCriticalMultiplier":2.0
@@ -880,6 +886,7 @@
"max":5
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":15,
"increaseCriticalSkill":8,
"increaseBlockChance":5,

View File

@@ -31,6 +31,7 @@
"max":4
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":15
}
},
@@ -47,6 +48,7 @@
"max":7
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":12
}
},
@@ -63,6 +65,7 @@
"max":6
},
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":9
}
},
@@ -79,6 +82,7 @@
"max":6
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":14
}
},
@@ -95,6 +99,7 @@
"max":10
},
"increaseAttackCost":7,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":5
}
},
@@ -143,6 +148,7 @@
"max":11
},
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":20
}
},
@@ -159,6 +165,7 @@
"max":7
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":26,
"increaseBlockChance":3
}
@@ -194,6 +201,7 @@
"max":6
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":20
}
},
@@ -227,6 +235,7 @@
"max":21
},
"increaseAttackCost":7,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":20,
"increaseCriticalSkill":5,
"setCriticalMultiplier":3.0
@@ -245,6 +254,7 @@
"max":17
},
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":21
}
},
@@ -261,6 +271,7 @@
"max":26
},
"increaseAttackCost":7,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":20,
"increaseCriticalSkill":5,
"setCriticalMultiplier":3.0

View File

@@ -58,6 +58,7 @@
"max":5
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":10
}
},
@@ -71,6 +72,7 @@
"category":"lsword",
"equipEffect":{
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":-50
}
},

View File

@@ -84,6 +84,8 @@
"max":11
},
"increaseAttackCost":8,
"setNonWeaponDamageModifier":200,
"increaseAttackChance":15,
"increaseCriticalSkill":5,
"setCriticalMultiplier":3.0
@@ -101,6 +103,7 @@
"max":11
},
"increaseAttackCost":7,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":10,
"increaseCriticalSkill":10,
"setCriticalMultiplier":3.0

View File

@@ -14,6 +14,7 @@
},
"increaseMaxHP":5,
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":21
},
"hitEffect":{
@@ -29,6 +30,38 @@
}
}
},
{
"id":"rapier_lifesteal2",
"iconID":"items_weapons:71",
"name":"Rapier of lifesteal2",
"displaytype":"legendary",
"hasManualPrice":1,
"baseMarketCost":0,
"category":"rapier",
"equipEffect":{
"increaseAttackDamage":{
"min":1,
"max":6
},
"increaseMaxHP":5,
"setNonWeaponDamageModifier":125,
"increaseAttackCost":5,
"increaseAttackChance":21
},
"hitEffect":{
"increaseCurrentHP":{
"min":0,
"max":3
}
},
"killEffect":{
"increaseCurrentHP":{
"min":3,
"max":3
}
}
},
{
"id":"dagger_barbed",
"iconID":"items_weapons:17",
@@ -68,6 +101,7 @@
},
"increaseMaxAP":2,
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":25,
"increaseBlockChance":5,
"addedConditions":[
@@ -92,6 +126,7 @@
"max":6
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":21,
"increaseBlockChance":5
},
@@ -121,6 +156,7 @@
},
"increaseMaxAP":2,
"increaseAttackCost":7,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":25,
"increaseCriticalSkill":10,
"setCriticalMultiplier":2.0
@@ -334,6 +370,7 @@
"max":12
},
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":9
}
},
@@ -361,6 +398,7 @@
"max":15
},
"increaseAttackCost":7,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":15,
"increaseCriticalSkill":5,
"setCriticalMultiplier":3.0

View File

@@ -11,6 +11,7 @@
"max":2
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":10
}
},

View File

@@ -26,6 +26,7 @@
"category":"dagger",
"equipEffect":{
"increaseAttackCost":5
"setNonWeaponDamageModifier":125
}
},
{

View File

@@ -299,6 +299,7 @@
"max":4
},
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":8,
"increaseCriticalSkill":1,
"increaseBlockChance":-2,
@@ -318,6 +319,7 @@
},
"increaseMaxHP":2,
"increaseAttackCost":7,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":23,
"increaseCriticalSkill":4,
"increaseDamageResistance":-1,
@@ -342,6 +344,7 @@
"max":6
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":9,
"increaseCriticalSkill":1,
"increaseBlockChance":-5,
@@ -360,6 +363,7 @@
"max":6
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":12,
"increaseCriticalSkill":1,
"increaseBlockChance":3,
@@ -378,6 +382,7 @@
"max":4
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":12,
"increaseCriticalSkill":6,
"increaseBlockChance":-5,
@@ -396,6 +401,7 @@
"max":8
},
"increaseAttackCost":7,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":12,
"increaseCriticalSkill":1,
"increaseBlockChance":-5,
@@ -414,6 +420,7 @@
"max":6
},
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":21,
"increaseCriticalSkill":1,
"increaseBlockChance":-4,
@@ -432,6 +439,7 @@
"max":5
},
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":13,
"increaseCriticalSkill":1,
"increaseBlockChance":11,
@@ -452,6 +460,7 @@
},
"increaseMaxHP":4,
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":10,
"increaseCriticalSkill":2,
"increaseBlockChance":15,
@@ -471,6 +480,7 @@
"max":7
},
"increaseAttackCost":7,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":28,
"increaseCriticalSkill":7,
"increaseBlockChance":-6,
@@ -491,6 +501,7 @@
"max":4
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":12,
"increaseCriticalSkill":13,
"increaseBlockChance":-4,
@@ -521,6 +532,7 @@
},
"increaseMaxHP":5,
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":19,
"increaseCriticalSkill":2,
"increaseBlockChance":5,
@@ -542,6 +554,7 @@
},
"increaseMaxHP":-4,
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":35,
"increaseCriticalSkill":5,
"increaseBlockChance":-7,
@@ -582,6 +595,7 @@
},
"increaseMaxHP":-3,
"increaseAttackCost":7,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":23,
"increaseCriticalSkill":10,
"increaseBlockChance":-4,
@@ -613,6 +627,7 @@
},
"increaseMaxHP":-2,
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":32,
"increaseCriticalSkill":3,
"increaseBlockChance":12,
@@ -648,6 +663,7 @@
"max":5
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":5,
"increaseBlockChance":-2
},
@@ -674,6 +690,7 @@
"max":3
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":6,
"increaseBlockChance":-1
}
@@ -691,6 +708,7 @@
},
"increaseMaxHP":1,
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":12,
"increaseBlockChance":2
}
@@ -707,6 +725,7 @@
"max":8
},
"increaseAttackCost":8,
"setNonWeaponDamageModifier":200,
"increaseAttackChance":23,
"increaseCriticalSkill":5,
"increaseBlockChance":-17,
@@ -727,6 +746,7 @@
},
"increaseMaxHP":2,
"increaseAttackCost":7,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":21,
"increaseCriticalSkill":5,
"setCriticalMultiplier":1.5
@@ -745,6 +765,7 @@
"max":17
},
"increaseAttackCost":8,
"setNonWeaponDamageModifier":300,
"increaseAttackChance":14,
"increaseBlockChance":-7,
"increaseDamageResistance":-1,
@@ -829,6 +850,7 @@
"max":3
},
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":6
}
},
@@ -844,6 +866,7 @@
"max":4
},
"increaseAttackCost":8,
"setNonWeaponDamageModifier":200,
"increaseAttackChance":12,
"increaseBlockChance":-3
}
@@ -860,6 +883,7 @@
"max":6
},
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":12,
"increaseCriticalSkill":6,
"increaseBlockChance":-5,
@@ -880,6 +904,7 @@
"max":2
},
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":7,
"increaseCriticalSkill":10,
"increaseBlockChance":-5,
@@ -909,6 +934,7 @@
"max":4
},
"increaseAttackCost":8,
"setNonWeaponDamageModifier":200,
"increaseAttackChance":10,
"increaseBlockChance":8
}
@@ -925,6 +951,7 @@
"max":13
},
"increaseAttackCost":10,
"setNonWeaponDamageModifier":200,
"increaseAttackChance":25,
"increaseBlockChance":-6,
"increaseDamageResistance":-1
@@ -942,6 +969,7 @@
},
"increaseMaxHP":2,
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":10,
"increaseCriticalSkill":7,
"increaseBlockChance":-5,
@@ -962,6 +990,7 @@
"max":4
},
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":16,
"increaseCriticalSkill":10,
"increaseBlockChance":-5,
@@ -991,6 +1020,7 @@
},
"increaseMaxHP":1,
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":23,
"increaseCriticalSkill":10,
"increaseBlockChance":-4,
@@ -1010,6 +1040,7 @@
"max":5
},
"increaseAttackCost":8,
"setNonWeaponDamageModifier":200,
"increaseAttackChance":24,
"increaseBlockChance":9
}
@@ -1029,6 +1060,7 @@
},
"increaseMaxHP":3,
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":32,
"increaseCriticalSkill":10,
"increaseBlockChance":-5,

View File

@@ -11,6 +11,7 @@
"max":1
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":10
}
},
@@ -26,6 +27,7 @@
"max":7
},
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":5
}
},
@@ -41,6 +43,7 @@
"max":1
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":10
}
},
@@ -56,6 +59,7 @@
"max":1
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":10
}
},
@@ -71,6 +75,7 @@
"max":7
},
"increaseAttackCost":10,
"setNonWeaponDamageModifier":200,
"increaseAttackChance":5
}
},
@@ -86,6 +91,7 @@
"max":1
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":10
}
},
@@ -146,6 +152,7 @@
"max":3
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":10
}
},
@@ -161,6 +168,7 @@
"max":4
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":10
}
},
@@ -176,6 +184,7 @@
"max":10
},
"increaseAttackCost":7,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":2
}
},
@@ -191,6 +200,7 @@
"max":10
},
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":15
}
},
@@ -221,6 +231,7 @@
"max":3
},
"increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":5
}
},
@@ -236,6 +247,7 @@
"max":5
},
"increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":5
}
},
@@ -248,6 +260,7 @@
"category":"dagger",
"equipEffect":{
"increaseAttackCost":3,
"setNonWeaponDamageModifier":75,
"increaseAttackChance":20,
"increaseBlockChance":-20
}

View File

@@ -561,6 +561,7 @@
<string name="iteminfo_effect_weapon_attack_damage">Attack damage: %1$d</string>
<string name="iteminfo_effect_weapon_attack_damage_minmax">Attack damage: %1$d-%2$d</string>
<string name="iteminfo_effect_increase_attack_damage">Increases attack damage by %1$d</string>
<string name="iteminfo_effect_set_damage_modifier">Damage modifier: %1$d %%</string>
<string name="iteminfo_effect_increase_attack_damage_minmax">Increases attack damage by %1$d-%2$d</string>
<string name="iteminfo_effect_decrease_attack_damage">Lowers attack damage by %1$d</string>
<string name="iteminfo_effect_decrease_attack_damage_minmax">Lowers attack damage by %1$d-%2$d</string>

View File

@@ -272,27 +272,39 @@ public final class ActorStatsController {
actor.damagePotential.addToMax(effects.increaseMaxDamage * multiplier);
actor.blockChance += effects.increaseBlockChance * multiplier;
actor.damageResistance += effects.increaseDamageResistance * multiplier;
if (actor.attackChance < 0) actor.attackChance = 0;
if (actor.damagePotential.max < 0) actor.damagePotential.set(0, 0);
}
public void recalculatePlayerStats(Player player) {
player.weaponDamage.set(0,0);
player.resetStatsToBaseTraits();
player.recalculateLevelExperience();
controllers.itemController.applyInventoryEffects(player);
controllers.skillController.applySkillEffects(player);
applyEffectsFromCurrentConditions(player);
ItemController.recalculateHitEffectsFromWornItems(player);
ItemController.applyDamageModifier(player);
capActorHealthAtMax(player);
capActorAPAtMax(player);
lowCapActorAttackChance(player);
lowCapActorDamagePotential(player);
}
public void recalculateMonsterCombatTraits(Monster monster) {
monster.resetStatsToBaseTraits();
applyEffectsFromCurrentConditions(monster);
capActorHealthAtMax(monster);
capActorAPAtMax(monster);
lowCapActorAttackChance(monster);
lowCapActorDamagePotential(monster);
}
private void lowCapActorAttackChance(Actor actor) {
if (actor.attackChance < 0) actor.attackChance = 0;
}
private void lowCapActorDamagePotential(Actor actor) {
if (actor.damagePotential.max < 0) actor.damagePotential.set(0, 0);
}
private void recalculateActorCombatTraits(Actor actor) {
if (actor.isPlayer) recalculatePlayerStats((Player) actor);
else recalculateMonsterCombatTraits((Monster) actor);
@@ -545,6 +557,11 @@ public final class ActorStatsController {
}
}
public void addPlayerWeaponDamage(Player player, int increaseMinDamage, int increaseMaxDamage) {
player.weaponDamage.add(increaseMinDamage, true);
player.weaponDamage.addToMax(increaseMaxDamage);
}
public static enum LevelUpSelection {
health
,attackChance

View File

@@ -19,6 +19,8 @@ import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnUse;
import com.gpl.rpg.AndorsTrail.model.item.ItemType;
import com.gpl.rpg.AndorsTrail.model.item.Loot;
import static java.lang.Math.min;
public final class ItemController {
private final ControllerContext controllers;
@@ -175,8 +177,12 @@ public final class ItemController {
// The stats for off-hand weapons will be added later in SkillController.applySkillEffectsFromFightingStyles
if (SkillController.isDualWielding(mainHandItem, type)) return;
}
if (type.effects_equip != null && type.effects_equip.stats != null)
controllers.actorStatsController.applyAbilityEffects(player, type.effects_equip.stats, 1);
if (type.effects_equip != null && type.effects_equip.stats != null) {
controllers.actorStatsController.applyAbilityEffects(player, type.effects_equip.stats, 1);
if (type.isWeapon()) {
controllers.actorStatsController.addPlayerWeaponDamage(player, type.effects_equip.stats.increaseMinDamage, type.effects_equip.stats.increaseMaxDamage);
}
}
}
public static void recalculateHitEffectsFromWornItems(Player player) {
@@ -383,4 +389,24 @@ public final class ItemController {
}
}
public static void applyDamageModifier(Player player) {
ItemType itemType = player.inventory.getItemTypeInWearSlot(Inventory.WearSlot.weapon);
int modifier1 = -1;
int modifier2 = -1;
if (itemType != null) modifier1 = itemType.effects_equip.stats.setNonWeaponDamageModifier;
itemType = player.inventory.getItemTypeInWearSlot(Inventory.WearSlot.shield);
if (itemType != null && itemType.isWeapon()) modifier2 = itemType.effects_equip.stats.setNonWeaponDamageModifier;
int modifier = 100;
if (modifier1 >= 0 && modifier2 >= 0) modifier = Math.min(modifier1, modifier2);
else if (modifier1 <= 0 && modifier2 >= 0) modifier = modifier2;
else if (modifier2 <= 0 && modifier1 >= 0) modifier = modifier1;
if (modifier != 100) {
final int minBaseDamage = player.damagePotential.current - player.weaponDamage.current;
final int maxBaseDamage = player.damagePotential.max - player.weaponDamage.max;
player.damagePotential.add(Math.round(minBaseDamage * ((modifier - 100)/100f)), true);
player.damagePotential.addToMax(Math.round(maxBaseDamage * ((modifier - 100)/100f)));
}
}
}

View File

@@ -386,6 +386,11 @@ public final class SkillController {
if (itemType.effects_equip == null) return;
player.damagePotential.addToMax(getPercentage(itemType.effects_equip.stats.increaseMaxDamage, percentForPositiveValues, percentForNegativeValues));
player.damagePotential.add(getPercentage(itemType.effects_equip.stats.increaseMinDamage, percentForPositiveValues, percentForNegativeValues), false);
if (itemType.isWeapon()) {
player.weaponDamage.addToMax(getPercentage(itemType.effects_equip.stats.increaseMaxDamage, percentForPositiveValues, percentForNegativeValues));
player.weaponDamage.add(getPercentage(itemType.effects_equip.stats.increaseMinDamage, percentForPositiveValues, percentForNegativeValues), false);
}
}
private static void addPercentCriticalSkill(Player player, ItemType itemType, int percentForPositiveValues, int percentForNegativeValues) {

View File

@@ -12,6 +12,7 @@ public final class AbilityModifierTraits {
public final int increaseBlockChance;
public final int increaseMinDamage;
public final int increaseMaxDamage;
public final int setNonWeaponDamageModifier;
public final int increaseCriticalSkill;
public final float setCriticalMultiplier;
public final int increaseDamageResistance;
@@ -27,6 +28,7 @@ public final class AbilityModifierTraits {
, int increaseBlockChance
, int increaseMinDamage
, int increaseMaxDamage
, int setNonWeaponDamageModifier
, int increaseCriticalSkill
, float setCriticalMultiplier
, int increaseDamageResistance
@@ -41,6 +43,7 @@ public final class AbilityModifierTraits {
this.increaseBlockChance = increaseBlockChance;
this.increaseMinDamage = increaseMinDamage;
this.increaseMaxDamage = increaseMaxDamage;
this.setNonWeaponDamageModifier = setNonWeaponDamageModifier;
this.increaseCriticalSkill = increaseCriticalSkill;
this.setCriticalMultiplier = setCriticalMultiplier;
this.increaseDamageResistance = increaseDamageResistance;

View File

@@ -40,6 +40,7 @@ public final class Player extends Actor {
public int useItemCost;
public int reequipCost;
public int totalExperience;
public final Range weaponDamage = new Range();
private final HashMap<String, HashSet<Integer> > questProgress = new HashMap<String, HashSet<Integer> >();
private String spawnMap;
@@ -117,6 +118,7 @@ public final class Player extends Actor {
this.ap.set(baseTraits.maxAP, baseTraits.maxAP);
this.health.set(baseTraits.maxHP, baseTraits.maxHP);
this.conditions.clear();
this.weaponDamage.set(0, 0);
Loot startItems = new Loot();
dropLists.getDropList(DropListCollection.DROPLIST_STARTITEMS).createRandomLoot(startItems, this);

View File

@@ -125,6 +125,7 @@ public final class ResourceParserUtils {
,o.optInt(JsonFieldNames.AbilityModifierTraits.increaseBlockChance, 0)
,increaseAttackDamage != null ? increaseAttackDamage.current : 0
,increaseAttackDamage != null ? increaseAttackDamage.max : 0
, o.optInt(JsonFieldNames.AbilityModifierTraits.setNonWeaponDamageModifier, 100)
,o.optInt(JsonFieldNames.AbilityModifierTraits.increaseCriticalSkill, 0)
,(float)o.optDouble(JsonFieldNames.AbilityModifierTraits.setCriticalMultiplier, 0)
,o.optInt(JsonFieldNames.AbilityModifierTraits.increaseDamageResistance, 0)

View File

@@ -30,6 +30,7 @@ public final class JsonFieldNames {
public static final String increaseCriticalSkill = "increaseCriticalSkill";
public static final String setCriticalMultiplier = "setCriticalMultiplier";
public static final String increaseAttackDamage = "increaseAttackDamage";
public static final String setNonWeaponDamageModifier = "setNonWeaponDamageModifier";
public static final String increaseBlockChance = "increaseBlockChance";
public static final String increaseDamageResistance = "increaseDamageResistance";
}

View File

@@ -19,6 +19,7 @@ public final class AbilityModifierInfoView extends LinearLayout {
private final TextView abilitymodifierinfo_change_attack_cost;
private final TextView abilitymodifierinfo_change_attack_chance;
private final TextView abilitymodifierinfo_change_attack_damage;
private final TextView abilitymodifierinfo_set_damage_modifier;
private final TextView abilitymodifierinfo_change_critical_skill;
private final TextView abilitymodifierinfo_change_critical_multiplier;
private final TextView abilitymodifierinfo_change_block_chance;
@@ -38,6 +39,7 @@ public final class AbilityModifierInfoView extends LinearLayout {
abilitymodifierinfo_change_attack_cost = (TextView) findViewById(R.id.abilitymodifierinfo_change_attack_cost);
abilitymodifierinfo_change_attack_chance = (TextView) findViewById(R.id.abilitymodifierinfo_change_attack_chance);
abilitymodifierinfo_change_attack_damage = (TextView) findViewById(R.id.abilitymodifierinfo_change_attack_damage);
abilitymodifierinfo_set_damage_modifier = (TextView) findViewById(R.id.abilitymodifierinfo_set_damage_modifier);
abilitymodifierinfo_change_critical_skill = (TextView) findViewById(R.id.abilitymodifierinfo_change_critical_skill);
abilitymodifierinfo_change_critical_multiplier = (TextView) findViewById(R.id.abilitymodifierinfo_change_critical_multiplier);
abilitymodifierinfo_change_block_chance = (TextView) findViewById(R.id.abilitymodifierinfo_change_block_chance);
@@ -89,6 +91,11 @@ public final class AbilityModifierInfoView extends LinearLayout {
}
abilitymodifierinfo_change_attack_damage.setVisibility(View.VISIBLE);
}
if (traits.setNonWeaponDamageModifier > 0 && traits.setNonWeaponDamageModifier != 100) {
abilitymodifierinfo_set_damage_modifier.setText(res.getString(R.string.iteminfo_effect_set_damage_modifier, traits.setNonWeaponDamageModifier));
abilitymodifierinfo_set_damage_modifier.setVisibility(View.VISIBLE);
}
}
private void displayIfNonZero(int statChange, TextView textView, int stringresource_increase, int stringresource_decrease) {