Commit Graph

21 Commits

Author SHA1 Message Date
Sam
d1e1de3b14 Slashing damage now decreases target's energy if available, and if target has no remaining energy will do additional damage.
Piercing damage now ignores an amount of protection equal to the piercing damage value.
Crushing damage now does poise damage equal to the amount of mitigated damage.
When poise damage is dealt while in a poise state, poise damage is instead converted to damage.
2022-01-12 22:18:58 -05:00
Ben Wallis
022c1417b6 EXP on kill is now shared between damage contributors. A "damage contributor" is either an individual entity, or a group - depending if the attacker is in a group. This means that not only does the "killing blow" no longer get 100% of EXP, but multiple groups and individuals all receive their fair share of EXP on death (assuming they are still within range of the entity when it dies).
Damage from a given individual or group only counts towards a kill for 10 minutes since that individual or group's last damage to the entity - after this period their damage contribution is removed. This avoids the list of damage contributors growing excessively large for an entity that does a lot of combat but never dies.

EXP sharing within groups is unchanged - the difference is simply that the input to this calculation may be less than 100% of the base EXP reward for the kill if other individuals or groups contributed damage.
2021-11-13 20:46:45 +00:00
juliancoffee
c069a3523d Fix beam offsets
- Introduce notion of min and max radius for Body instead of old
  `radius()` function (which is renamed to `max_radius()`).
2021-09-17 13:28:34 +03:00
Sam
42012fddcb Overhauled health component, making it a float to outer interfaces. 2021-09-09 00:10:17 -04:00
juliancoffee
338e81de10 Deduplicate pvp-checks 2021-09-03 17:28:34 +03:00
juliancoffee
6b0d016418 Don't forget about pets in PvP checks 2021-09-03 17:28:34 +03:00
juliancoffee
4766450258 Avoid negative bounds in harm checks
* disallow_harm -> allow_harm to avoid negative reasoning since it mostly
requires double negation in code
* allow_harm -> may_harm to specify side-effect free
2021-08-03 18:57:53 +03:00
juliancoffee
497a94cd7a Post review refactoring
* inline `target_dodging` into struct declaration as they are named
anyway
* move `avoid_harm` check out of `Attack::apply_attack` so we don't need
to pass whole Player component.
* another cosmetic things
2021-08-03 16:43:55 +03:00
juliancoffee
c7fdb640ac Cleaning 2021-08-03 16:42:58 +03:00
juliancoffee
7d4a8cbfa4 Add battle_mode server setting and player flag 2021-08-03 16:42:58 +03:00
holychowders
f316f1da60 Make Guards Defend Villagers 2021-07-14 07:40:43 +00:00
Sam
763461ebef Ensnaring vines now ensnare you. 2021-06-23 22:38:16 -05:00
Sam
6790b71d53 Energy recovery stat functional. 2021-06-07 10:58:32 +02:00
holychowders
d5f3ba77d4 Make NPCs Aware of Sound - See Issue #913 2021-05-15 19:36:27 +00:00
Sam
372eff2a02 Initial SCT implementation to display blocks. 2021-04-25 13:09:09 -04:00
Sam
288a6f3a82 Blocking now works if no weapon is equipped in main hand.
Added temp sfx for blocking and parrying.
Added temp particles for successful parry.
Tweaked values of default block ability.
2021-04-25 13:09:02 -04:00
Sam
91c6288213 Melee weapons can now block. 2021-04-25 13:08:42 -04:00
Ygor Souza
71b8426592 Add basic distance check to shockwave hit test
Before checking if the entity hitbox intersects the shockwave shell, we
do a basic check that the entity is close enough to be hit, considering
its radius.

This fixes the unlimited vertical range problem, since the distance is
measured in 3D.
2021-04-24 03:09:45 +02:00
Imbris
1af4a04231 Revert "Merge branch 'revert-b10718c5' into 'master'"
This reverts merge request !2172
2021-04-21 17:10:13 +00:00
Imbris
fd672980c4 Revert "Merge branch 'imbris/agent-opt' into 'master'"
This reverts merge request !2024
2021-04-21 14:10:06 +00:00
Imbris
26222a0a2d Rename common-sys to common-systems and rearrange common-state slightly 2021-04-20 15:25:04 -04:00