示例#1
0
    void TerritoryExit(ExposedTrigger sender, ExposedTrigger.TriggerActivityEventArgs e)
    {
        Player player = e.gameObject.GetComponent <Player>();

        if (player != null)
        {
            // Remove the element
            List <Player> playerList;
            if (!this.playersCapturing.TryGetValue(player.PlayerTeam, out playerList))
            {
                this.playersCapturing.Add(player.PlayerTeam, playerList = new List <Player>());
            }

            playerList.Remove(player);
            this.CheckIfPlayerIsCapturing();             // Something changed so maybe someone is capturing
        }

        // Fire our own event from this script
        TerritoryData tData = new TerritoryData();

        tData.Progress    = this.CaptureProgress;
        tData.Color       = new ColorData(this.LockedCaptureState ? this.LockedCaptureState.ThisTeamToColor() : Player.TeamToColor(Player.Team.None)).ToDictionary();
        tData.LockedColor = new ColorData(this.LockedCaptureState ? this.LockedCaptureState.ThisTeamToColor() : Player.TeamToColor(Player.Team.None)).ToDictionary();
        tData.TempColor   = new ColorData(this.tempCaptureState ? this.tempCaptureState.ThisTeamToColor() : Player.TeamToColor(Player.Team.None)).ToDictionary();
        this.OnTerritoryExited(this, new TerritoryActivityEventArgs(player, tData));
    }
示例#2
0
    void ExposedTriggerEnter(ExposedTrigger sender, ExposedTrigger.TriggerActivityEventArgs e)
    {
        GameObject element = e.gameObject;

        if (element != null)
        {
            // Add elements
            List <GameObject> elementList;
            if (!this.elementListForTriggerDictionary.TryGetValue(sender, out elementList))
            {
                this.elementListForTriggerDictionary.Add(sender, elementList = new List <GameObject>());
            }

            // Add it to the list only if it doesn't exist already
            // This is just a safety, as it should get removed before triggered again
            if (!elementList.Contains(element))
            {
                elementList.Add(element);

                // Since this is a additive trigger
                // Any enter triggers a enter.
                // But we want to make sure to only send one enter if already in this additive trigger
                if (!triggerInstanceList.Contains(element))
                {
                    triggerInstanceList.Add(element);
                    ThisTriggerEnter(this, new ExposedTrigger.TriggerActivityEventArgs(element));
                }
            }
        }
    }
示例#3
0
    void ExposedTriggerExit(ExposedTrigger sender, ExposedTrigger.TriggerActivityEventArgs e)
    {
        GameObject element = e.gameObject;

        if (element != null)
        {
            // Remove the element
            List <GameObject> elementList;
            if (!this.elementListForTriggerDictionary.TryGetValue(sender, out elementList))
            {
                this.elementListForTriggerDictionary.Add(sender, elementList = new List <GameObject>());
            }

            elementList.Remove(element);

            // If the element exited a trigger
            // this means they are not in all of the triggers
            // so they exited the complex trigger
            // But they could of already exited a trigger so we don't want to double exit
            bool wasRemoved = triggerInstanceList.Remove(element);
            if (wasRemoved)
            {
                ThisTriggerExit(this, new ExposedTrigger.TriggerActivityEventArgs(element));
            }
        }
    }
示例#4
0
    void ExposedTriggerEnter(ExposedTrigger sender, ExposedTrigger.TriggerActivityEventArgs e)
    {
        GameObject element = e.gameObject;

        if (element != null)
        {
            // Add elements
            List <GameObject> elementList;
            if (!this.elementListForTriggerDictionary.TryGetValue(sender, out elementList))
            {
                this.elementListForTriggerDictionary.Add(sender, elementList = new List <GameObject>());
            }

            // Add it to the list only if it doesn't exist already
            // This is just a safety, as it should get removed before triggered again
            if (!elementList.Contains(element))
            {
                elementList.Add(element);

                // Check if we entered all of the triggers
                if (this.CheckIfElementInComplexTrigger(element))
                {
                    if (!triggerInstanceList.Contains(element))
                    {
                        triggerInstanceList.Add(element);
                    }
                    ThisTriggerEnter(this, new ExposedTrigger.TriggerActivityEventArgs(element));
                }
            }
        }
    }
示例#5
0
    void ExposedTriggerExit(ExposedTrigger sender, ExposedTrigger.TriggerActivityEventArgs e)
    {
        GameObject element = e.gameObject;

        if (element != null)
        {
            // Remove the element
            List <GameObject> elementList;
            if (!this.elementListForTriggerDictionary.TryGetValue(sender, out elementList))
            {
                this.elementListForTriggerDictionary.Add(sender, elementList = new List <GameObject>());
            }

            elementList.Remove(element);

            // Check if we are still in any of the triggers
            if (!this.CheckIfElementInAdditiveTrigger(element))
            {
                triggerInstanceList.Remove(element);
                ThisTriggerExit(this, new ExposedTrigger.TriggerActivityEventArgs(element));
            }
        }
    }
示例#6
0
 void ExposedTriggerExit(ExposedTrigger sender, ExposedTrigger.TriggerActivityEventArgs e)
 {
     Debug.Log("Exit ~~ Sender: " + sender + " Object: " + e.gameObject);
 }