20 Commits

Author SHA1 Message Date
Aaron Suen
756b12b7d4 Better record damage/heal types for stats. 2020-02-20 07:16:19 -05:00
Aaron Suen
670cbbb89b Prevent damage flash for new players.
Setting hp_max before player actually emerges in a
join event seems to prevent damage flash (MT engine
issue 7876) for new players.

Old players rejoining for the first time since the
change will still experience it though.
2020-02-20 07:35:39 -05:00
Aaron Suen
0c5611ed57 Remove broken-anyway breath check. 2020-02-19 22:35:18 -05:00
Aaron Suen
3271dba8b2 Limit damage FX replay for fully hurt players. 2020-02-19 22:32:19 -05:00
Aaron Suen
bc7987f9c4 Set drowning damage the correct way. 2020-02-19 21:30:45 -05:00
Aaron Suen
828312d452 Cache to account for metadata jitteriness.
It seems that when we access metadata too rapidly
it pulls data out of order or something, so that the
player damage time stuff is unstable, and healing can
start immediately, or more than 8 seconds later.

Caching this stuff manually seems to work around the
issue, and it seems that the metadata system is at
least EVENTUALLY consistent, so it's still good for
long-term use or across world unloads.
2020-02-19 21:05:20 -05:00
Aaron Suen
bcbe77644e Buff drowning damage, nerf some node damage. 2020-02-19 19:55:22 -05:00
Aaron Suen
00aa460942 Some damage buffs.
- Player hp_max is 8 now, so most injuries will block
  a whole slot each time.
- Player can be reduced to 1 slot, not 2.  The 2 slots
  was from back in the day when players needed to go
  to the surface to heal faster, to help them get up
  there.  Now the 1 slot is only needed in case the
  player is trapped in fire or something.
- Damage effects now don't stop playing just because
  the player has reached maximum injury, and healing
  is also delayed by continued injury.
2020-02-19 19:48:51 -05:00
Aaron Suen
7d24975fb3 Player damage from radiant heat. 2020-01-18 10:12:11 -05:00
Aaron Suen
d7819762e5 Full proper support for spectator mods.
If players are invisible, NodeCore will not add any visible or
audible effects for them, allowing such players to be completely
non-interactive with gameplay.

This allows things like spectator or stealth-admin mods to
function properly.
2019-12-11 06:52:09 -05:00
Aaron Suen
3e5e8e4524 Disable healing for 4 seconds after injury.
This is another de-nerfing of physical damage to make
getting caught in a fire and other damage-over-time
situations more damaging.
2019-11-29 21:40:47 -05:00
Aaron Suen
c9bac9a66e Un-accidentally-nerf drowning damage. 2019-11-28 22:01:33 -05:00
Aaron Suen
a0bdf98ca1 Major damage simplification.
- Healing rate is always the same, regardless of environment.
- Remove visible damage from player.

Lasting injury has just never really been a major gameplay
factor, and making players wait to heal under certain
circumstances did not feel like it made gameplay "better" in
any way.

Now, if you get hurt, you drop your stuff, and have to wait a
MINIMAL amount of time before you can pick it up again.

Similarly, with visible inventory, the damage textures are
redundant, and with the gameplay importance of injury being
so diminished, they were visual overkill.
2019-11-20 23:58:42 -05:00
Aaron Suen
bf60379f8d Support spectator/creative mod(s). 2019-09-12 19:30:05 -04:00
Aaron Suen
fe2c153f9e Clean up all lua code style.
Formatting rules based on Paul Kulchenko's perl-based formatter...
http://notebook.kulchenko.com/programming/lua-beautifier-in-55-lines-of-perl
...using a single tab for indent.

Mostly pure whitespace changes.
2019-08-27 19:14:51 -04:00
Aaron Suen
087b8c8f1b More precise logic for player names.
Try to detect player traces going through a change in fluid medium
such as water/air or water/glass, and block facial recognition
through it.

Specifically allow air-into-glass transitions, or into any other
medium otherwise clear enough to allow sunlight to propagate.
2019-04-08 08:52:59 -04:00
Aaron Suen
40c239a798 Defer social damage sounds until after all modifiers.
This allows external mods that alter damage to prevent damage
sounds from playing for other nearby players if they modify the
damage amount.
2019-04-08 08:26:44 -04:00
Aaron Suen
c1828219e6 Refactor social sounds subsystem.
Standardize the "play a sound for everybody except the player who
is already playing it client-locally" logic into one place.

Fix failure to correctly detect tool speeds for some things, i.e.
when the player is using a tool but the capability used on a node
is actually inherited from the hand.

Note that this may allow pummeling with wrong tools (e.g. repacking
soils with spades) along with accompanying inappropriate tool wear,
but this should be minor and avoidable, and can be fixed later...
2019-04-06 23:51:05 -04:00
Aaron Suen
eba101c93a Fix sound doubling issues. 2019-04-06 23:42:23 -04:00
Aaron Suen
31fbfd8d33 Hear other players get hurt, reorg player health mod. 2019-04-06 21:23:14 -04:00