aboutsummaryrefslogtreecommitdiff
path: root/_gamemode_ttdm.nut
diff options
context:
space:
mode:
Diffstat (limited to '_gamemode_ttdm.nut')
-rw-r--r--_gamemode_ttdm.nut87
1 files changed, 0 insertions, 87 deletions
diff --git a/_gamemode_ttdm.nut b/_gamemode_ttdm.nut
deleted file mode 100644
index c72fcb0d..00000000
--- a/_gamemode_ttdm.nut
+++ /dev/null
@@ -1,87 +0,0 @@
-global function GamemodeTTDM_Init
-
-const float TTDMIntroLength = 15.0
-
-void function GamemodeTTDM_Init()
-{
- Riff_ForceSetSpawnAsTitan( eSpawnAsTitan.Always )
- Riff_ForceTitanExitEnabled( eTitanExitEnabled.Never )
- TrackTitanDamageInPlayerGameStat( PGS_ASSAULT_SCORE )
- ScoreEvent_SetupEarnMeterValuesForMixedModes()
- SetLoadoutGracePeriodEnabled( false )
-
- ClassicMP_SetCustomIntro( TTDMIntroSetup, TTDMIntroLength )
- ClassicMP_ForceDisableEpilogue( true )
- SetTimeoutWinnerDecisionFunc( CheckScoreForDraw )
-
- AddCallback_OnPlayerKilled( AddTeamScoreForPlayerKilled ) // dont have to track autotitan kills since you cant leave your titan in this mode
-
- // probably needs scoreevent earnmeter values
-}
-
-void function TTDMIntroSetup()
-{
- // this should show intermission cam for 15 sec in prematch, before spawning players as titans
- AddCallback_GameStateEnter( eGameState.Prematch, TTDMIntroStart )
- AddCallback_OnClientConnected( TTDMIntroShowIntermissionCam )
-}
-
-void function TTDMIntroStart()
-{
- thread TTDMIntroStartThreaded()
-}
-
-void function TTDMIntroStartThreaded()
-{
- ClassicMP_OnIntroStarted()
-
- foreach ( entity player in GetPlayerArray() )
- TTDMIntroShowIntermissionCam( player )
-
- wait TTDMIntroLength
-
- ClassicMP_OnIntroFinished()
-}
-
-void function TTDMIntroShowIntermissionCam( entity player )
-{
- if ( GetGameState() != eGameState.Prematch )
- return
-
- thread PlayerWatchesTTDMIntroIntermissionCam( player )
-}
-
-void function PlayerWatchesTTDMIntroIntermissionCam( entity player )
-{
- ScreenFadeFromBlack( player )
-
- entity intermissionCam = GetEntArrayByClass_Expensive( "info_intermission" )[ 0 ]
-
- // the angle set here seems sorta inconsistent as to whether it actually works or just stays at 0 for some reason
- player.SetObserverModeStaticPosition( intermissionCam.GetOrigin() )
- player.SetObserverModeStaticAngles( intermissionCam.GetAngles() )
- player.StartObserverMode( OBS_MODE_STATIC_LOCKED )
-
- wait TTDMIntroLength
-
- RespawnAsTitan( player, false )
- TryGameModeAnnouncement( player )
-}
-
-void function AddTeamScoreForPlayerKilled( entity victim, entity attacker, var damageInfo )
-{
- if ( victim == attacker || !victim.IsPlayer() || !attacker.IsPlayer() || GetGameState() != eGameState.Playing )
- return
-
- AddTeamScore( GetOtherTeam( victim.GetTeam() ), 1 )
-}
-
-int function CheckScoreForDraw()
-{
- if (GameRules_GetTeamScore(TEAM_IMC) > GameRules_GetTeamScore(TEAM_MILITIA))
- return TEAM_IMC
- else if (GameRules_GetTeamScore(TEAM_MILITIA) > GameRules_GetTeamScore(TEAM_IMC))
- return TEAM_MILITIA
-
- return TEAM_UNASSIGNED
-} \ No newline at end of file