aboutsummaryrefslogtreecommitdiff
path: root/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_speedball.nut
diff options
context:
space:
mode:
authorBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2021-08-31 23:14:58 +0100
committerBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2021-08-31 23:14:58 +0100
commit9a96d0bff56f1969c68bb52a2f33296095bdc67d (patch)
tree4175928e488632705692e3cccafa1a38dd854615 /Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_speedball.nut
parent27bd240871b7c0f2f49fef137718b2e3c208e3b4 (diff)
downloadNorthstarMods-9a96d0bff56f1969c68bb52a2f33296095bdc67d.tar.gz
NorthstarMods-9a96d0bff56f1969c68bb52a2f33296095bdc67d.zip
move to new mod format
Diffstat (limited to 'Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_speedball.nut')
-rw-r--r--Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_speedball.nut127
1 files changed, 0 insertions, 127 deletions
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_speedball.nut b/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_speedball.nut
deleted file mode 100644
index 4532fb972..000000000
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_speedball.nut
+++ /dev/null
@@ -1,127 +0,0 @@
-global function GamemodeSpeedball_Init
-
-struct {
- entity flagBase
- entity flag
- entity flagCarrier
-} file
-
-void function GamemodeSpeedball_Init()
-{
- PrecacheModel( CTF_FLAG_MODEL )
- PrecacheModel( CTF_FLAG_BASE_MODEL )
-
- // gamemode settings
- SetRoundBased( true )
- SetRespawnsEnabled( false )
- SetShouldUseRoundWinningKillReplay( true )
- Riff_ForceTitanAvailability( eTitanAvailability.Never )
- Riff_ForceSetEliminationMode( eEliminationMode.Pilots )
-
- AddSpawnCallbackEditorClass( "script_ref", "info_speedball_flag", CreateFlag )
-
- AddCallback_GameStateEnter( eGameState.Playing, ResetFlag )
- AddCallback_OnTouchHealthKit( "item_flag", OnFlagCollected )
- AddCallback_OnPlayerKilled( OnPlayerKilled )
- SetTimeoutWinnerDecisionFunc( TimeoutCheckFlagHolder )
-
- ClassicMP_SetCustomIntro( ClassicMP_DefaultNoIntro_Setup, ClassicMP_DefaultNoIntro_GetLength() )
-}
-
-void function CreateFlag( entity flagSpawn )
-{
- entity flagBase = CreatePropDynamic( CTF_FLAG_BASE_MODEL, flagSpawn.GetOrigin(), flagSpawn.GetAngles() )
-
- entity flag = CreateEntity( "item_flag" )
- flag.SetValueForModelKey( CTF_FLAG_MODEL )
- flag.MarkAsNonMovingAttachment()
- DispatchSpawn( flag )
- flag.SetModel( CTF_FLAG_MODEL )
- flag.SetOrigin( flagBase.GetOrigin() + < 0, 0, flagBase.GetBoundingMaxs().z + 1 > )
- flag.SetVelocity( < 0, 0, 1 > )
-
- file.flag = flag
- file.flagBase = flagBase
-}
-
-bool function OnFlagCollected( entity player, entity flag )
-{
- if ( !IsAlive( player ) || flag.GetParent() != null || player.IsTitan() || player.IsPhaseShifted() )
- return false
-
- GiveFlag( player )
- return false // so flag ent doesn't despawn
-}
-
-void function OnPlayerKilled( entity victim, entity attacker, var damageInfo )
-{
- if ( file.flagCarrier == victim )
- DropFlag()
-
- if ( victim.IsPlayer() && GetGameState() == eGameState.Playing )
- if ( GetPlayerArrayOfTeam_Alive( victim.GetTeam() ).len() == 1 )
- foreach ( entity player in GetPlayerArray() )
- Remote_CallFunction_NonReplay( player, "ServerCallback_SPEEDBALL_LastPlayer", player.GetTeam() != victim.GetTeam() )
-}
-
-void function GiveFlag( entity player )
-{
- file.flag.SetParent( player, "FLAG" )
- file.flagCarrier = player
- SetGlobalNetEnt( "flagCarrier", player )
- thread DropFlagIfPhased( player )
-
- EmitSoundOnEntityOnlyToPlayer( player, player, "UI_CTF_1P_GrabFlag" )
- foreach ( entity otherPlayer in GetPlayerArray() )
- {
- MessageToPlayer( otherPlayer, eEventNotifications.SPEEDBALL_FlagPickedUp, player )
-
- if ( otherPlayer.GetTeam() == player.GetTeam() )
- EmitSoundOnEntityToTeamExceptPlayer( file.flag, "UI_CTF_3P_TeamGrabFlag", player.GetTeam(), player )
- }
-}
-
-void function DropFlagIfPhased( entity player )
-{
- player.EndSignal( "StartPhaseShift" )
-
- OnThreadEnd( function() : ( player )
- {
- if ( file.flag.GetParent() == player )
- DropFlag()
- })
-
- while( file.flag.GetParent() == player )
- WaitFrame()
-}
-
-void function DropFlag()
-{
- file.flag.ClearParent()
- file.flag.SetAngles( < 0, 0, 0 > )
- SetGlobalNetEnt( "flagCarrier", file.flag )
- EmitSoundOnEntityOnlyToPlayer( file.flagCarrier, file.flagCarrier, "UI_CTF_1P_FlagDrop" )
-
- foreach ( entity player in GetPlayerArray() )
- MessageToPlayer( player, eEventNotifications.SPEEDBALL_FlagDropped, file.flagCarrier )
-
- file.flagCarrier = null
-}
-
-void function ResetFlag()
-{
- file.flag.ClearParent()
- file.flag.SetAngles( < 0, 0, 0 > )
- file.flag.SetVelocity( < 0, 0, 1 > ) // hack: for some reason flag won't have gravity if i don't do this
- file.flag.SetOrigin( file.flagBase.GetOrigin() + < 0, 0, file.flagBase.GetBoundingMaxs().z * 2 > )
- file.flagCarrier = null
- SetGlobalNetEnt( "flagCarrier", file.flag )
-}
-
-int function TimeoutCheckFlagHolder()
-{
- if ( file.flagCarrier == null )
- return TEAM_UNASSIGNED
-
- return file.flagCarrier.GetTeam()
-} \ No newline at end of file