Untitled
unknown
plain_text
5 days ago
4.5 kB
4
Indexable
using { /Fortnite.com/Devices } using { /Verse.org/Simulation } using { /Fortnite.com/Teams } using { /Fortnite.com/Game } using { /Fortnite.com/AI } using { /Fortnite.com/Characters } using { /UnrealEngine.com/Temporary/Diagnostics } Game_Manager := class(creative_device): var PlayerMap : [player]int = map{} var ElimsToEndGame : int = 99 @editable var WeaponGranters : []item_granter_device = array{} @editable EndGameDevice : end_game_device = end_game_device{} @editable var RemoteGranter : item_granter_device = item_granter_device{} @editable var Sentries : []sentry_device = array{} @editable var Guards : []guard_spawner_device = array{} OnBegin<override>()<suspends>:void= set ElimsToEndGame = WeaponGranters.Length InitPlayers() GrantRemoteToAllPlayers() # Grant remotes at game start GrantRemoteToAllSentries() # Grant remotes to all sentries at game start GrantRemoteToAllGuards() # Grant remotes to all guards at game start GetPlayspace().PlayerAddedEvent().Subscribe(OnPlayerJoined) # Subscribe to sentry elimination events for (Sentry : Sentries): Sentry.EliminatedEvent.Subscribe(OnSentryEliminated) # Subscribe to guard elimination events for (Guard : Guards): Guard.EliminatedEvent.Subscribe(OnGuardEliminated) InitPlayers() : void= AllPlayers := GetPlayspace().GetPlayers() for (Player : AllPlayers, FortCharacter := Player.GetFortCharacter[]): if (set PlayerMap[Player] = 0, WeaponTier := PlayerMap[Player]): FortCharacter.EliminatedEvent().Subscribe(OnPlayerElim) GrantWeapon(Player, WeaponTier) OnPlayerJoined(Player : player):void= SetupPlayerAfterJoin(Player) GrantRemoteToPlayer(Player) SetupPlayerAfterJoin(Player : player) : void = if (FortCharacter := Player.GetFortCharacter[]): var WeaponTier : int = 0 if (ExistingTier := PlayerMap[Player]): set WeaponTier = ExistingTier else: if (set PlayerMap[Player] = 0) {} FortCharacter.EliminatedEvent().Subscribe(OnPlayerElim) GrantWeapon(Player, WeaponTier) GrantWeapon(Player : player, WeaponTier: int) : void= if (ItemGranter := WeaponGranters[WeaponTier]): ItemGranter.GrantItem(Player) GrantRemoteToAllPlayers() : void= AllPlayers := GetPlayspace().GetPlayers() for (Player : AllPlayers): GrantRemoteToPlayer(Player) GrantRemoteToPlayer(Player : player) : void= RemoteGranter.GrantItem(Player) GrantRemoteToAllSentries() : void= for (Sentry : Sentries): Sentry.Enable() GrantRemoteToAllGuards() : void= for (Guard : Guards): Guard.Enable() OnPlayerElim(Result : elimination_result) : void= Eliminator := Result.EliminatingCharacter Eliminated := Result.EliminatedCharacter # Only promote if eliminator exists and is not the same as eliminated if (Eliminator?, Eliminated <> Eliminator?): if (EliminatingAgent := Eliminator?.GetAgent[]): PlayerPromotion(EliminatingAgent) # Updated to accept device_ai_interaction_result OnGuardEliminated(Result : device_ai_interaction_result) : void= if (Source := Result.Source?, Player := player[Source]): PlayerPromotion(Player) GrantRemoteToPlayer(Player) OnSentryEliminated(Agent : ?agent) : void= if (Player := player[Agent?]): PlayerPromotion(Player) GrantRemoteToPlayer(Player) PlayerPromotion(Agent : agent) : void= var WeaponTier : int = 0 if (Player := player[Agent], PlayerWeaponTier := PlayerMap[Player]): set WeaponTier = PlayerWeaponTier+1 CheckEndGame(Agent, WeaponTier) if (Player := player[Agent], set PlayerMap[Player] = WeaponTier): GrantWeapon(Player, WeaponTier) GrantRemoteToPlayer(Player) # Grant remote after promotion TestPlayerElimination(Agent :?agent) : void= if (Player := player[Agent?]): PlayerPromotion(Player) CheckEndGame(Player : agent, WeaponTier : int) : void= if (WeaponTier >= ElimsToEndGame): EndGameDevice.Activate(Player)
Editor is loading...
Leave a Comment