diff options
author | BobTheBob <32057864+BobTheBob9@users.noreply.github.com> | 2021-08-31 23:14:58 +0100 |
---|---|---|
committer | BobTheBob <32057864+BobTheBob9@users.noreply.github.com> | 2021-08-31 23:14:58 +0100 |
commit | 9a96d0bff56f1969c68bb52a2f33296095bdc67d (patch) | |
tree | 4175928e488632705692e3cccafa1a38dd854615 /Northstar.CustomServers/mod/scripts/vscripts/titan/class_titan.gnut | |
parent | 27bd240871b7c0f2f49fef137718b2e3c208e3b4 (diff) | |
download | NorthstarMods-9a96d0bff56f1969c68bb52a2f33296095bdc67d.tar.gz NorthstarMods-9a96d0bff56f1969c68bb52a2f33296095bdc67d.zip |
move to new mod format
Diffstat (limited to 'Northstar.CustomServers/mod/scripts/vscripts/titan/class_titan.gnut')
-rw-r--r-- | Northstar.CustomServers/mod/scripts/vscripts/titan/class_titan.gnut | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/titan/class_titan.gnut b/Northstar.CustomServers/mod/scripts/vscripts/titan/class_titan.gnut new file mode 100644 index 000000000..5f72385ea --- /dev/null +++ b/Northstar.CustomServers/mod/scripts/vscripts/titan/class_titan.gnut @@ -0,0 +1,77 @@ +untyped + +global function ClassTitan_Init + +global function Titan_AddPlayer +global function Titan_OnPlayerDeath +global function ClientCommand_TitanEject +global function ApplyTitanLoadoutModifiers + + +const TITAN_HATCHCOMMANDANIMTIME = 1.5 // cooldown time between toggling the cockpit state. Will be needed when we have animations to play + +const COCKPIT_JOLT_DAMAGE_MIN = 1 +const COCKPIT_JOLT_DAMAGE_MAX = 200 +const TITAN_STUMBLE_HEALTH_PERCENTAGE = 0.5 + +string thisClassName = "titan" + +function ClassTitan_Init() +{ + + AddClientCommandCallback( "TitanEject", ClientCommand_TitanEject ) // +} + +function Titan_AddPlayer( player ) +{ + player.playerClassData[thisClassName] <- {} + player.s.lastStaggerTime <- 0 +} + + +// TODO: There should be an equivalent function for pilots +TitanLoadoutDef function ApplyTitanLoadoutModifiers( entity player, TitanLoadoutDef loadout ) +{ + return loadout +} + +void function Titan_OnPlayerDeath( entity player, var damageInfo ) +{ + player.p.storedWeapons.clear() +} + +bool function PlayerCanEject( entity player ) +{ + if ( !IsAlive( player ) ) + return false + + if ( !player.IsTitan() ) + return false + + if ( Riff_TitanExitEnabled() == eTitanExitEnabled.Never ) + return false + + //if ( !CanDisembark( player ) ) + // return false + + if ( IsPlayerDisembarking( player ) ) + return false + + if ( TitanEjectIsDisabled() ) + return false + + return true +} + +bool function ClientCommand_TitanEject( entity player, array<string> args ) +{ + if ( !PlayerCanEject( player ) ) + return true + + int ejectPressCount = args[ 0 ].tointeger() + if ( ejectPressCount < 3 ) + return true + + thread TitanEjectPlayer( player ) + return true +} |