igroglaz / srvmgr

https://rom2.ru
8 stars 5 forks source link

physical resistance values for players #20

Open igroglaz opened 4 years ago

igroglaz commented 4 years ago

Add physical resistance values for different classes. This values won't be visible in UI, but they would add flavour to class system. Eg warriors would be more resistant to blugeon, amazons to sword, mage/witch to pike.

warrior_blade_res warrior_axe_res warrior_bludgeon_res warrior_pike_res warrior_shooting_res

amazon_blade_res amazon_axe_res amazon_bludgeon_res amazon_pike_res amazon_shooting_res

mage_blade_res mage_axe_res mage_bludgeon_res mage_pike_res mage_shooting_res

witch_blade_res witch_axe_res witch_bludgeon_res witch_pike_res witch_shooting_res

The same stuff could be made for magic resistances - so each class will have different flavour

igroglaz commented 3 years ago

Coming back to this task. It will help to customize certain ecosystem: Warrior -> Archer -> Mage/Witch -> Warrior .... Means: Warrior kills archer, archer kills mages, mages kills warrior

It could be more complex, like: Warrior -> Witch -> Archer -> Mage -> Warrior.....

It doesn't mean really 'kills', but rather having minor bonus to attack and resistances VS this class.

This parameter could help to achieve that (as a part of this enhancement https://github.com/igroglaz/srvmgr/issues/66 )

igroglaz commented 2 years ago

To implement for PvP (we don't need PvE in this feature):

1) check equipped weapon unit_has_weared_items() 2) get item by ID.. 3) get parameter: attackType 1 sword 2 axe 3 club 4 pike 5 bow 4) change damage based on class ;)

p.s. also we can look into two-handed weapons to make them special. it's parameter: twoHanded 2 (-1 means 1handed)

btw Staff (mages weapon) twoHanded too :)

example of item from data:

        <name>Short Sword</name>
        <shape>0</shape>
        <material>0</material>
        <price>250</price>
        <weight>3</weight>
        <slot>1</slot>
        <attackType>1</attackType>
        <physicalMin>23</physicalMin>
        <physicalMax>40</physicalMax>
        <toHit>5</toHit>
        <defence>0</defence>
        <absorbtion>0</absorbtion>
        <range>-1</range>
        <charge>7</charge>
        <relax>4</relax>
        <twoHanded>-1</twoHanded>
        <suitableFor>1</suitableFor>
        <otherParam>-1</otherParam>