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_width="match_parent"
android:layout_height="wrap_content" 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 <TextView
android:text="@string/iteminfo_effect_increase_critical_skill" android:text="@string/iteminfo_effect_increase_critical_skill"
android:id="@+id/abilitymodifierinfo_change_critical_skill" android:id="@+id/abilitymodifierinfo_change_critical_skill"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -14,6 +14,7 @@
}, },
"increaseMaxHP":5, "increaseMaxHP":5,
"increaseAttackCost":5, "increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":21 "increaseAttackChance":21
}, },
"hitEffect":{ "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", "id":"dagger_barbed",
"iconID":"items_weapons:17", "iconID":"items_weapons:17",
@@ -68,6 +101,7 @@
}, },
"increaseMaxAP":2, "increaseMaxAP":2,
"increaseAttackCost":5, "increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":25, "increaseAttackChance":25,
"increaseBlockChance":5, "increaseBlockChance":5,
"addedConditions":[ "addedConditions":[
@@ -92,6 +126,7 @@
"max":6 "max":6
}, },
"increaseAttackCost":5, "increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":21, "increaseAttackChance":21,
"increaseBlockChance":5 "increaseBlockChance":5
}, },
@@ -121,6 +156,7 @@
}, },
"increaseMaxAP":2, "increaseMaxAP":2,
"increaseAttackCost":7, "increaseAttackCost":7,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":25, "increaseAttackChance":25,
"increaseCriticalSkill":10, "increaseCriticalSkill":10,
"setCriticalMultiplier":2.0 "setCriticalMultiplier":2.0
@@ -334,6 +370,7 @@
"max":12 "max":12
}, },
"increaseAttackCost":6, "increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":9 "increaseAttackChance":9
} }
}, },
@@ -361,6 +398,7 @@
"max":15 "max":15
}, },
"increaseAttackCost":7, "increaseAttackCost":7,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":15, "increaseAttackChance":15,
"increaseCriticalSkill":5, "increaseCriticalSkill":5,
"setCriticalMultiplier":3.0 "setCriticalMultiplier":3.0

View File

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

View File

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

View File

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

View File

@@ -11,6 +11,7 @@
"max":1 "max":1
}, },
"increaseAttackCost":5, "increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":10 "increaseAttackChance":10
} }
}, },
@@ -26,6 +27,7 @@
"max":7 "max":7
}, },
"increaseAttackCost":6, "increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":5 "increaseAttackChance":5
} }
}, },
@@ -41,6 +43,7 @@
"max":1 "max":1
}, },
"increaseAttackCost":5, "increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":10 "increaseAttackChance":10
} }
}, },
@@ -56,6 +59,7 @@
"max":1 "max":1
}, },
"increaseAttackCost":5, "increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":10 "increaseAttackChance":10
} }
}, },
@@ -71,6 +75,7 @@
"max":7 "max":7
}, },
"increaseAttackCost":10, "increaseAttackCost":10,
"setNonWeaponDamageModifier":200,
"increaseAttackChance":5 "increaseAttackChance":5
} }
}, },
@@ -86,6 +91,7 @@
"max":1 "max":1
}, },
"increaseAttackCost":5, "increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":10 "increaseAttackChance":10
} }
}, },
@@ -146,6 +152,7 @@
"max":3 "max":3
}, },
"increaseAttackCost":5, "increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":10 "increaseAttackChance":10
} }
}, },
@@ -161,6 +168,7 @@
"max":4 "max":4
}, },
"increaseAttackCost":5, "increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":10 "increaseAttackChance":10
} }
}, },
@@ -176,6 +184,7 @@
"max":10 "max":10
}, },
"increaseAttackCost":7, "increaseAttackCost":7,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":2 "increaseAttackChance":2
} }
}, },
@@ -191,6 +200,7 @@
"max":10 "max":10
}, },
"increaseAttackCost":6, "increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":15 "increaseAttackChance":15
} }
}, },
@@ -221,6 +231,7 @@
"max":3 "max":3
}, },
"increaseAttackCost":5, "increaseAttackCost":5,
"setNonWeaponDamageModifier":125,
"increaseAttackChance":5 "increaseAttackChance":5
} }
}, },
@@ -236,6 +247,7 @@
"max":5 "max":5
}, },
"increaseAttackCost":6, "increaseAttackCost":6,
"setNonWeaponDamageModifier":175,
"increaseAttackChance":5 "increaseAttackChance":5
} }
}, },
@@ -248,6 +260,7 @@
"category":"dagger", "category":"dagger",
"equipEffect":{ "equipEffect":{
"increaseAttackCost":3, "increaseAttackCost":3,
"setNonWeaponDamageModifier":75,
"increaseAttackChance":20, "increaseAttackChance":20,
"increaseBlockChance":-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">Attack damage: %1$d</string>
<string name="iteminfo_effect_weapon_attack_damage_minmax">Attack damage: %1$d-%2$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_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_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">Lowers attack damage by %1$d</string>
<string name="iteminfo_effect_decrease_attack_damage_minmax">Lowers attack damage by %1$d-%2$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.damagePotential.addToMax(effects.increaseMaxDamage * multiplier);
actor.blockChance += effects.increaseBlockChance * multiplier; actor.blockChance += effects.increaseBlockChance * multiplier;
actor.damageResistance += effects.increaseDamageResistance * 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) { public void recalculatePlayerStats(Player player) {
player.weaponDamage.set(0,0);
player.resetStatsToBaseTraits(); player.resetStatsToBaseTraits();
player.recalculateLevelExperience(); player.recalculateLevelExperience();
controllers.itemController.applyInventoryEffects(player); controllers.itemController.applyInventoryEffects(player);
controllers.skillController.applySkillEffects(player); controllers.skillController.applySkillEffects(player);
applyEffectsFromCurrentConditions(player); applyEffectsFromCurrentConditions(player);
ItemController.recalculateHitEffectsFromWornItems(player); ItemController.recalculateHitEffectsFromWornItems(player);
ItemController.applyDamageModifier(player);
capActorHealthAtMax(player); capActorHealthAtMax(player);
capActorAPAtMax(player); capActorAPAtMax(player);
lowCapActorAttackChance(player);
lowCapActorDamagePotential(player);
} }
public void recalculateMonsterCombatTraits(Monster monster) { public void recalculateMonsterCombatTraits(Monster monster) {
monster.resetStatsToBaseTraits(); monster.resetStatsToBaseTraits();
applyEffectsFromCurrentConditions(monster); applyEffectsFromCurrentConditions(monster);
capActorHealthAtMax(monster); capActorHealthAtMax(monster);
capActorAPAtMax(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) { private void recalculateActorCombatTraits(Actor actor) {
if (actor.isPlayer) recalculatePlayerStats((Player) actor); if (actor.isPlayer) recalculatePlayerStats((Player) actor);
else recalculateMonsterCombatTraits((Monster) 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 { public static enum LevelUpSelection {
health health
,attackChance ,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.ItemType;
import com.gpl.rpg.AndorsTrail.model.item.Loot; import com.gpl.rpg.AndorsTrail.model.item.Loot;
import static java.lang.Math.min;
public final class ItemController { public final class ItemController {
private final ControllerContext controllers; 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 // The stats for off-hand weapons will be added later in SkillController.applySkillEffectsFromFightingStyles
if (SkillController.isDualWielding(mainHandItem, type)) return; if (SkillController.isDualWielding(mainHandItem, type)) return;
} }
if (type.effects_equip != null && type.effects_equip.stats != null) if (type.effects_equip != null && type.effects_equip.stats != null) {
controllers.actorStatsController.applyAbilityEffects(player, type.effects_equip.stats, 1); 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) { 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; if (itemType.effects_equip == null) return;
player.damagePotential.addToMax(getPercentage(itemType.effects_equip.stats.increaseMaxDamage, percentForPositiveValues, percentForNegativeValues)); player.damagePotential.addToMax(getPercentage(itemType.effects_equip.stats.increaseMaxDamage, percentForPositiveValues, percentForNegativeValues));
player.damagePotential.add(getPercentage(itemType.effects_equip.stats.increaseMinDamage, percentForPositiveValues, percentForNegativeValues), false); 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) { 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 increaseBlockChance;
public final int increaseMinDamage; public final int increaseMinDamage;
public final int increaseMaxDamage; public final int increaseMaxDamage;
public final int setNonWeaponDamageModifier;
public final int increaseCriticalSkill; public final int increaseCriticalSkill;
public final float setCriticalMultiplier; public final float setCriticalMultiplier;
public final int increaseDamageResistance; public final int increaseDamageResistance;
@@ -27,6 +28,7 @@ public final class AbilityModifierTraits {
, int increaseBlockChance , int increaseBlockChance
, int increaseMinDamage , int increaseMinDamage
, int increaseMaxDamage , int increaseMaxDamage
, int setNonWeaponDamageModifier
, int increaseCriticalSkill , int increaseCriticalSkill
, float setCriticalMultiplier , float setCriticalMultiplier
, int increaseDamageResistance , int increaseDamageResistance
@@ -41,6 +43,7 @@ public final class AbilityModifierTraits {
this.increaseBlockChance = increaseBlockChance; this.increaseBlockChance = increaseBlockChance;
this.increaseMinDamage = increaseMinDamage; this.increaseMinDamage = increaseMinDamage;
this.increaseMaxDamage = increaseMaxDamage; this.increaseMaxDamage = increaseMaxDamage;
this.setNonWeaponDamageModifier = setNonWeaponDamageModifier;
this.increaseCriticalSkill = increaseCriticalSkill; this.increaseCriticalSkill = increaseCriticalSkill;
this.setCriticalMultiplier = setCriticalMultiplier; this.setCriticalMultiplier = setCriticalMultiplier;
this.increaseDamageResistance = increaseDamageResistance; this.increaseDamageResistance = increaseDamageResistance;

View File

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

View File

@@ -125,6 +125,7 @@ public final class ResourceParserUtils {
,o.optInt(JsonFieldNames.AbilityModifierTraits.increaseBlockChance, 0) ,o.optInt(JsonFieldNames.AbilityModifierTraits.increaseBlockChance, 0)
,increaseAttackDamage != null ? increaseAttackDamage.current : 0 ,increaseAttackDamage != null ? increaseAttackDamage.current : 0
,increaseAttackDamage != null ? increaseAttackDamage.max : 0 ,increaseAttackDamage != null ? increaseAttackDamage.max : 0
, o.optInt(JsonFieldNames.AbilityModifierTraits.setNonWeaponDamageModifier, 100)
,o.optInt(JsonFieldNames.AbilityModifierTraits.increaseCriticalSkill, 0) ,o.optInt(JsonFieldNames.AbilityModifierTraits.increaseCriticalSkill, 0)
,(float)o.optDouble(JsonFieldNames.AbilityModifierTraits.setCriticalMultiplier, 0) ,(float)o.optDouble(JsonFieldNames.AbilityModifierTraits.setCriticalMultiplier, 0)
,o.optInt(JsonFieldNames.AbilityModifierTraits.increaseDamageResistance, 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 increaseCriticalSkill = "increaseCriticalSkill";
public static final String setCriticalMultiplier = "setCriticalMultiplier"; public static final String setCriticalMultiplier = "setCriticalMultiplier";
public static final String increaseAttackDamage = "increaseAttackDamage"; public static final String increaseAttackDamage = "increaseAttackDamage";
public static final String setNonWeaponDamageModifier = "setNonWeaponDamageModifier";
public static final String increaseBlockChance = "increaseBlockChance"; public static final String increaseBlockChance = "increaseBlockChance";
public static final String increaseDamageResistance = "increaseDamageResistance"; 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_cost;
private final TextView abilitymodifierinfo_change_attack_chance; private final TextView abilitymodifierinfo_change_attack_chance;
private final TextView abilitymodifierinfo_change_attack_damage; 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_skill;
private final TextView abilitymodifierinfo_change_critical_multiplier; private final TextView abilitymodifierinfo_change_critical_multiplier;
private final TextView abilitymodifierinfo_change_block_chance; 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_cost = (TextView) findViewById(R.id.abilitymodifierinfo_change_attack_cost);
abilitymodifierinfo_change_attack_chance = (TextView) findViewById(R.id.abilitymodifierinfo_change_attack_chance); 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_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_skill = (TextView) findViewById(R.id.abilitymodifierinfo_change_critical_skill);
abilitymodifierinfo_change_critical_multiplier = (TextView) findViewById(R.id.abilitymodifierinfo_change_critical_multiplier); abilitymodifierinfo_change_critical_multiplier = (TextView) findViewById(R.id.abilitymodifierinfo_change_critical_multiplier);
abilitymodifierinfo_change_block_chance = (TextView) findViewById(R.id.abilitymodifierinfo_change_block_chance); 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); 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) { private void displayIfNonZero(int statChange, TextView textView, int stringresource_increase, int stringresource_decrease) {