aboutsummaryrefslogtreecommitdiff
path: root/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_mfd.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_mfd.nut
parent27bd240871b7c0f2f49fef137718b2e3c208e3b4 (diff)
downloadNorthstarMods-9a96d0bff56f1969c68bb52a2f33296095bdc67d.tar.gz
NorthstarMods-9a96d0bff56f1969c68bb52a2f33296095bdc67d.zip
move to new mod format
Diffstat (limited to 'Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_mfd.nut')
-rw-r--r--Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_mfd.nut230
1 files changed, 0 insertions, 230 deletions
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_mfd.nut b/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_mfd.nut
deleted file mode 100644
index 6e8e9fa37..000000000
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_mfd.nut
+++ /dev/null
@@ -1,230 +0,0 @@
-untyped
-global function GamemodeMfd_Init
-
-struct {
- entity imcLastMark
- entity militiaLastMark
-} file
-
-void function GamemodeMfd_Init()
-{
- GamemodeMfdShared_Init()
-
- RegisterSignal( "MarkKilled" )
-
- AddCallback_OnPlayerKilled( UpdateMarksForKill )
- AddCallback_GameStateEnter( eGameState.Playing, CreateInitialMarks )
-}
-
-void function CreateInitialMarks()
-{
- entity imcMark = CreateEntity( MARKER_ENT_CLASSNAME )
- imcMark.kv.spawnflags = SF_INFOTARGET_ALWAYS_TRANSMIT_TO_CLIENT
- SetTeam( imcMark, TEAM_IMC )
- SetTargetName( imcMark, MARKET_ENT_MARKED_NAME ) // why is it market_ent lol
- DispatchSpawn( imcMark )
- FillMFDMarkers( imcMark )
-
- entity imcPendingMark = CreateEntity( MARKER_ENT_CLASSNAME )
- imcPendingMark.kv.spawnflags = SF_INFOTARGET_ALWAYS_TRANSMIT_TO_CLIENT
- SetTeam( imcPendingMark, TEAM_IMC )
- SetTargetName( imcPendingMark, MARKET_ENT_PENDING_MARKED_NAME )
- DispatchSpawn( imcPendingMark )
- FillMFDMarkers( imcPendingMark )
-
- entity militiaMark = CreateEntity( MARKER_ENT_CLASSNAME )
- militiaMark.kv.spawnflags = SF_INFOTARGET_ALWAYS_TRANSMIT_TO_CLIENT
- SetTeam( militiaMark, TEAM_MILITIA )
- SetTargetName( militiaMark, MARKET_ENT_MARKED_NAME )
- DispatchSpawn( militiaMark )
- FillMFDMarkers( militiaMark )
-
- entity militiaPendingMark = CreateEntity( MARKER_ENT_CLASSNAME )
- militiaPendingMark.kv.spawnflags = SF_INFOTARGET_ALWAYS_TRANSMIT_TO_CLIENT
- SetTeam( militiaPendingMark, TEAM_MILITIA )
- SetTargetName( militiaPendingMark, MARKET_ENT_PENDING_MARKED_NAME )
- DispatchSpawn( militiaPendingMark )
- FillMFDMarkers( militiaPendingMark )
-
- thread MFDThink()
-}
-
-void function MFDThink()
-{
- svGlobal.levelEnt.EndSignal( "GameStateChanged" )
-
- entity imcMark
- entity militiaMark
-
- while ( true )
- {
- if ( !TargetsMarkedImmediately() )
- wait MFD_BETWEEN_MARKS_TIME
-
- // wait for enough players to spawn
- array<entity> imcPlayers
- array<entity> militiaPlayers
- while ( imcPlayers.len() == 0 || militiaPlayers.len() == 0 )
- {
- imcPlayers = GetPlayerArrayOfTeam( TEAM_IMC )
- militiaPlayers = GetPlayerArrayOfTeam( TEAM_MILITIA )
-
- WaitFrame()
- }
-
- // get marks, wanna increment the mark each mark, reset on player change
- int imcIndex = imcPlayers.find( imcMark )
- if ( imcIndex == -1 ) // last mark
- imcIndex = 0
- else
- imcIndex = ( imcIndex + 1 ) % imcPlayers.len()
-
- imcMark = imcPlayers[ imcIndex ]
-
- int militiaIndex = militiaPlayers.find( imcMark )
- if ( militiaIndex == -1 ) // last mark
- militiaIndex = 0
- else
- militiaIndex = ( militiaIndex + 1 ) % militiaPlayers.len()
-
- militiaMark = militiaPlayers[ militiaIndex ]
-
- level.mfdPendingMarkedPlayerEnt[ TEAM_IMC ].SetOwner( imcMark )
- level.mfdPendingMarkedPlayerEnt[ TEAM_MILITIA ].SetOwner( militiaMark )
-
- foreach ( entity player in GetPlayerArray() )
- {
- Remote_CallFunction_NonReplay( player, "SCB_MarkedChanged" )
- Remote_CallFunction_NonReplay( player, "ServerCallback_MFD_StartNewMarkCountdown", Time() + MFD_COUNTDOWN_TIME )
- }
-
- // reset if mark leaves
- bool shouldReset
- float endTime = Time() + MFD_COUNTDOWN_TIME
- while ( endTime > Time() || ( !IsAlive( imcMark ) || !IsAlive( militiaMark ) ) )
- {
- if ( !IsValid( imcMark ) || !IsValid( militiaMark ) )
- {
- shouldReset = true
- break
- }
-
- WaitFrame()
- }
-
- if ( shouldReset )
- continue
-
- waitthread MarkPlayers( imcMark, militiaMark )
- }
-}
-
-void function MarkPlayers( entity imcMark, entity militiaMark )
-{
- imcMark.EndSignal( "OnDestroy" )
- imcMark.EndSignal( "Disconnected" )
-
- militiaMark.EndSignal( "OnDestroy" )
- militiaMark.EndSignal( "Disconnected" )
-
- OnThreadEnd( function() : ( imcMark, militiaMark )
- {
- // clear marks
- level.mfdActiveMarkedPlayerEnt[ TEAM_IMC ].SetOwner( null )
- level.mfdActiveMarkedPlayerEnt[ TEAM_MILITIA ].SetOwner( null )
-
- foreach ( entity player in GetPlayerArray() )
- Remote_CallFunction_NonReplay( player, "SCB_MarkedChanged" )
- })
-
- // clear pending marks
- level.mfdPendingMarkedPlayerEnt[ TEAM_IMC ].SetOwner( null )
- level.mfdPendingMarkedPlayerEnt[ TEAM_MILITIA ].SetOwner( null )
-
- // set marks
- level.mfdActiveMarkedPlayerEnt[ TEAM_IMC ].SetOwner( imcMark )
- level.mfdActiveMarkedPlayerEnt[ TEAM_MILITIA ].SetOwner( militiaMark )
-
- foreach ( entity player in GetPlayerArray() )
- Remote_CallFunction_NonReplay( player, "SCB_MarkedChanged" )
-
- // wait until mark dies
- entity deadMark = expect entity( svGlobal.levelEnt.WaitSignal( "MarkKilled" ).mark )
-
- // award points
- entity livingMark = GetMarked( GetOtherTeam( deadMark.GetTeam() ) )
- livingMark.SetPlayerGameStat( PGS_DEFENSE_SCORE, livingMark.GetPlayerGameStat( PGS_DEFENSE_SCORE ) + 1 )
- AddTeamScore( livingMark.GetTeam(), 1 )
-}
-
-void function UpdateMarksForKill( entity victim, entity attacker, var damageInfo )
-{
- if ( victim == GetMarked( victim.GetTeam() ) )
- {
- svGlobal.levelEnt.Signal( "MarkKilled", { mark = victim } )
-
- if ( attacker.IsPlayer() )
- attacker.SetPlayerGameStat( PGS_ASSAULT_SCORE, attacker.GetPlayerGameStat( PGS_ASSAULT_SCORE ) + 1 )
- }
-}
-
-/*
-void function MarkPlayers()
-{
- // todo: need to handle disconnecting marks
- if ( !TargetsMarkedImmediately() )
- wait MFD_BETWEEN_MARKS_TIME
-
-
- // wait until we actually have 2 valid players
- array<entity> imcPlayers
- array<entity> militiaPlayers
- while ( imcPlayers.len() == 0 || militiaPlayers.len() == 0 )
- {
- imcPlayers = GetPlayerArrayOfTeam( TEAM_IMC )
- militiaPlayers = GetPlayerArrayOfTeam( TEAM_MILITIA )
-
- WaitFrame()
- }
-
- // decide marks
- entity imcMark = imcPlayers[ RandomInt( imcPlayers.len() ) ]
- level.mfdPendingMarkedPlayerEnt[ TEAM_IMC ].SetOwner( imcMark )
-
- entity militiaMark = militiaPlayers[ RandomInt( militiaPlayers.len() ) ]
- level.mfdPendingMarkedPlayerEnt[ TEAM_MILITIA ].SetOwner( militiaMark )
-
- foreach ( entity player in GetPlayerArray() )
- {
- Remote_CallFunction_NonReplay( player, "SCB_MarkedChanged" )
- Remote_CallFunction_NonReplay( player, "ServerCallback_MFD_StartNewMarkCountdown", Time() + MFD_COUNTDOWN_TIME )
- }
-
- wait MFD_COUNTDOWN_TIME
-
- while ( !IsAlive( imcMark ) || !IsAlive( militiaMark ) )
- WaitFrame()
-
- // clear pending marks
- level.mfdPendingMarkedPlayerEnt[ TEAM_IMC ].SetOwner( null )
- level.mfdPendingMarkedPlayerEnt[ TEAM_MILITIA ].SetOwner( null )
-
- // set marks
- level.mfdActiveMarkedPlayerEnt[ TEAM_IMC ].SetOwner( imcMark )
- level.mfdActiveMarkedPlayerEnt[ TEAM_MILITIA ].SetOwner( militiaMark )
-
- foreach ( entity player in GetPlayerArray() )
- Remote_CallFunction_NonReplay( player, "SCB_MarkedChanged" )
-
- while ( IsAlive( imcMark ) && IsAlive( militiaMark ) )
- WaitFrame()
-
- // clear marks
- level.mfdActiveMarkedPlayerEnt[ TEAM_IMC ].SetOwner( null )
- level.mfdActiveMarkedPlayerEnt[ TEAM_MILITIA ].SetOwner( null )
-
- foreach ( entity player in GetPlayerArray() )
- Remote_CallFunction_NonReplay( player, "SCB_MarkedChanged" )
-
- thread MarkPlayers()
-}*/ \ No newline at end of file