Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Define base hero stats/abilities #4

Open
vehpsr opened this issue Oct 29, 2016 · 6 comments
Open

Define base hero stats/abilities #4

vehpsr opened this issue Oct 29, 2016 · 6 comments

Comments

@vehpsr
Copy link
Owner

vehpsr commented Oct 29, 2016

Common:

  • HP (hit points); HP regen
  • damage; crit chance; crit damage (1x, 1.5x etc)
  • evade/dodge/parry chance
  • block (partially absorb damage; % or units)
  • armor (physical damage reduce)
  • resistance (magic damage reduce)
  • shield (temporary ability to absorb damage)
  • spell power (increase amount of damage/heal from spell)
  • atack power (increase amount of physical damage)
  • curse (decrease amount of damage/heal)

Class specific:

  • MP (mana points); MP regen
  • Energy; Energy regen
  • Rage (Fury)

Leftovers for consideration (actually see no point in having them):

  • strength/intelligence/agility
  • fire/frost/natural magic damage
  • resilience (reduce damage from crit)
  • atack speed/DPS (damage per second)
  • spirit (increase HP/MP regen)
  • range/melee
@KungLao
Copy link
Collaborator

KungLao commented Nov 6, 2016

My view.

Primary stats:

  • Strength
  • Power
  • Agility
  • Intelligence

Secondary stats - based on primary stats:

  • HP (hit points), - based on Strength
  • MP (mana points), - based on Intelligence
  • Armor (physical damage reduce), - based on Strength
  • Resistance (magic damage reduce), - based on Intelligence
  • Phys. Attack(or auto attack), - based on Power
  • Phys. Attack crit chance, - based on Agility
  • Phys. Attack crit damage, - based on Power
  • Phys. Attack stun chance, - based on Strength
  • Spell power / crit(can be disscussed later..) - based on Intelligence

@vehpsr
Copy link
Owner Author

vehpsr commented Nov 6, 2016

Can't say I share this view, @KungLao
This way of doing things (to have base stats and derivatives) is applicable and justifiable to Dota or WOW bcz it increases balance (WOW has diff types of clothes and diff classes can ware only some types but not the others; Dota -- ability to buy items plus notion of 'base stat' for each class (increase damage with base stat increase); plus increase stat per level).
If, on the other hand, you take HOTS -- they couldn't care less (and I agree with them on this).

Disadvantages of this model:

  • you still have uncovered abilities (or it will be hard to extend existing model to support new), like shield, block, evade, etc.
  • they don't cover base on its own and need auxiliary data. For example in Dota str is responsible for HP, but each hero has own 'base HP' (so result is calculated something as HP = baseHP + str * 10), the same with resistance and armor.
  • it's very hard to achieve or tweak balance (say, if resistance is based on intelligence, then to create AntiMag you must have heavy-MP assassin).
  • it's confusing for end user (I still don't quite well understand how it works in WOW).

Advantages:

  • the only advantage that I see is that on DB level we can declare 'static' schema with 4 columns for each hero that hold corresponding stat respectively. But because we have 'dynamic' schema (serialized JSON data) it doesn't really solve any issues for us.

Current state of system.
There is base stats (each hero has them at creation time):
Base {"HP", "HP_regen", "MP", "MP_regen", "damage", "crit_chance", "crit_damage", "evade", "block", "armor", "resistance", "spell_power", "attack_power"}
There is secondary stats (hero can acquire them during fight as result of spell, ability, aura, etc.):
Secondary extends Base {"shield", "lifeSteal", "..."}

@KungLao
Copy link
Collaborator

KungLao commented Nov 6, 2016

I agree, that HOTS model is good, because player can focus more on PvP, and do not spend time on calculating stuff, he just choose between 'more damage' and 'more lifesteal', etc.

But general Idea was, that if oponent have for example Стрілєц class - it means, that he has more Power that Agility(bigger ctits), and if he has Блізнєц - than he has more Agility than Power(higher chance of crits). And when user build team, he can build something like "Agility team", given them agility auras, or smthg.. Also, it will help to predict oponent behavior.

Anyway it's not very importent on this stage.)))

Still we both agree, that character has Secondary(or you call it base) stats like {"HP", "HP_regen", "MP", "MP_regen", "damage", "crit_chance", "crit_damage", "evade", "block", "armor", "resistance", "spell_power", "attack_power"}. If one day we will decide to add higher level stats - we can do it without massive re-factoring. So for now we can focus on these. Just not sure if we need hp/mana regen, but let's discuss it on later stage.

@vehpsr
Copy link
Owner Author

vehpsr commented Nov 6, 2016

mpRegen is kind of must have. Otherwise if you start with 1000 MP and 1 spell that costs 100, you limited to 10 usages per game.

Solutions:

  • remove MP stat.
  • add cooldown to spells (nice to have them anyway)

@KungLao
Copy link
Collaborator

KungLao commented Nov 6, 2016

On this stage I propose to implement only HP, Armor, Attack Power and Stun chance. And after prototype will be ready proceed with rest of stats.

@vehpsr
Copy link
Owner Author

vehpsr commented Nov 7, 2016

What is 'stun' and what effect if will have on enemy hero?
Start from basics (like no 'damage over time', 'purge', 'dispel', 'immune' stuff, etc) is good idea, but 'stun' does not sound trivial to me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants