Untitled

 avatar
unknown
plain_text
a year ago
2.2 kB
16
Indexable
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /Fortnite.com/Teams }
using { /Fortnite.com/Game }
using { /Fortnite.com/Characters }
using { /UnrealEngine.com/Temporary/Diagnostics }

Game_Manager := class(creative_device):

    var PlayerMap : [player]int = map{}

    @editable var WeaponGranters : []item_granter_device = array{}
    @editable var Sentries : []sentry_device = array{}
    @editable EndGameDevice : end_game_device = end_game_device{}


    OnBegin<override>()<suspends>:void=
        InitPlayers()


    # get players
    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)

    #give gun to player
    GrantWeapon(Player : player, WeaponTier: int) : void=
        Print ("Attempting to grant weapon")
        if (ItemGranter := WeaponGranters[WeaponTier]):
            Print("Granted item to player")
            ItemGranter.GrantItem(Player)      

    OnPlayerElim(Result : elimination_result) : void=
        Eliminator := Result.EliminatingCharacter
        if (FortCharacter := Eliminator?, EliminatingAgent := FortCharacter.GetAgent[]):
            Print("We need to promote player")

    PlayerPromotion(Agent : agent) : void=
        var WeaponTier : int = 0
        #grab weapon tier
        if (Player := player[Agent], PlayerWeaponTier := PlayerMap[Player]):
            #set it +1
            set WeaponTier = PlayerWeaponTier+1
        #put it back
        if (Player := player[Agent], set PlayerMap[Player] = WeaponTier):  
            GrantWeapon(Player, WeaponTier)
            
            
    InitTestMode() : void=
        for (Sentry : Sentries):
            Sentry.EliminatedEvent.Subscribe(TestPlayerElimination)

    TestPlayerElimination(Agent :?agent) : void=
        Print ("Sentry eliminated")
        if (Player := Agent?):
            PlayerPromotion(Player)  
Editor is loading...
Leave a Comment