From 51e16034230f4dd759900c7922b8db43941e0a70 Mon Sep 17 00:00:00 2001 From: BobTheBob <32057864+BobTheBob9@users.noreply.github.com> Date: Sun, 5 Dec 2021 16:03:50 +0000 Subject: big commit for playtesting --- .../vscripts/gamemodes/_riff_floor_is_lava.nut | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_riff_floor_is_lava.nut') diff --git a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_riff_floor_is_lava.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_riff_floor_is_lava.nut index b660e89ff..f8aa77998 100644 --- a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_riff_floor_is_lava.nut +++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_riff_floor_is_lava.nut @@ -1,5 +1,10 @@ global function RiffFloorIsLava_Init +struct { + float pilotDamageMultiplier + float titanDamageMultiplier +} file + void function RiffFloorIsLava_Init() { AddCallback_OnPlayerRespawned( FloorIsLava_PlayerRespawned ) @@ -83,20 +88,28 @@ void function FloorIsLava_ThinkForPlayer( entity player ) player.EndSignal( "OnDestroy" ) player.EndSignal( "OnDeath" ) + float lastHeight + while ( true ) { WaitFrame() - - if ( player.GetOrigin().z < GetLethalFogTop() ) + + float height = player.GetOrigin().z + if ( height < GetLethalFogTop() ) { // do damage float damageMultiplier = 0.08 if ( player.IsTitan() ) - damageMultiplier *= 0.05 - + damageMultiplier = 0.04 + + // scale damage by time spent in fog and depth + damageMultiplier *= 1 - ( height / GetLethalFogTop() ) + player.TakeDamage( player.GetMaxHealth() * damageMultiplier, null, null, { damageSourceId = eDamageSourceId.floor_is_lava } ) wait 0.1 } + + lastHeight = height } } \ No newline at end of file -- cgit v1.2.3