aboutsummaryrefslogtreecommitdiff
path: root/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_riff_floor_is_lava.nut
diff options
context:
space:
mode:
Diffstat (limited to 'Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_riff_floor_is_lava.nut')
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_riff_floor_is_lava.nut21
1 files changed, 11 insertions, 10 deletions
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 f8aa77998..99f513967 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,16 +1,17 @@
global function RiffFloorIsLava_Init
-struct {
- float pilotDamageMultiplier
- float titanDamageMultiplier
-} file
-
void function RiffFloorIsLava_Init()
{
AddCallback_OnPlayerRespawned( FloorIsLava_PlayerRespawned )
AddSpawnCallback( "env_fog_controller", InitLavaFogController )
AddCallback_EntitiesDidLoad( CreateCustomSpawns )
+ AddSpawnpointValidationRule( VerifyFloorIsLavaSpawnpoint )
+}
+
+bool function VerifyFloorIsLavaSpawnpoint( entity spawnpoint, int team )
+{
+ return spawnpoint.GetOrigin().z > GetLethalFogTop()
}
void function InitLavaFogController( entity fogController )
@@ -98,14 +99,14 @@ void function FloorIsLava_ThinkForPlayer( entity player )
if ( height < GetLethalFogTop() )
{
// do damage
- float damageMultiplier = 0.08
+ float damageMultiplier
if ( player.IsTitan() )
- damageMultiplier = 0.04
+ damageMultiplier = 0.0025
+ else
+ damageMultiplier = 0.05
// 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 } )
+ player.TakeDamage( player.GetMaxHealth() * GraphCapped( ( GetLethalFogTop() - height ) / ( GetLethalFogTop() - GetLethalFogBottom() ), 0.0, 1.0, 0.2, 1.0 ) * damageMultiplier, null, null, { damageSourceId = eDamageSourceId.floor_is_lava } )
wait 0.1
}