示例#1
0
            internal void OnFlagCaptured(CaptureTheFlagPlayer eventPlayer, EventManager.Team team)
            {
                int flagCaptures;

                if (eventPlayer.Team == EventManager.Team.B)
                {
                    flagCaptures = teamBScore += 1;
                }
                else
                {
                    flagCaptures = teamAScore += 1;
                }

                eventPlayer.FlagCaptures += 1;

                BroadcastToPlayers(GetMessage, "Notification.FlagCaptured", eventPlayer.Player.displayName, team, GetTeamColor(eventPlayer.Team), GetTeamColor(team));

                UpdateScoreboard();

                if (flagCaptures >= Config.ScoreLimit)
                {
                    winningTeam = eventPlayer.Team;
                    InvokeHandler.Invoke(this, EndEvent, 0.1f);
                }
            }
示例#2
0
 new void Awake()
 {
     base.Awake();
     ctfPlayer = GetComponent<CaptureTheFlagPlayer>();
     enemy_1 = ctfPlayer.enemy1;
     enemy_2 = ctfPlayer.enemy2;
     enemyBase = ctfPlayer.enemyBase.GetComponent<Transform>();
     homeBase = ctfPlayer.homeBase.GetComponent<Transform>();
     homeFlag = homeBase.FindChild("Flag").GetComponent<Transform>();
     enemyFlag = enemyBase.FindChild("Flag").GetComponent<Transform>();
     teammate = ctfPlayer.teammate;
 }
示例#3
0
            private void PickupFlag(CaptureTheFlagPlayer eventPlayer)
            {
                FlagHolder = eventPlayer;
                eventPlayer.IsCarryingFlag = true;

                IsAtBase = false;
                InvokeHandler.CancelInvoke(this, DroppedTimeExpired);

                primary.SetParent(eventPlayer.Player);
                tr.localPosition = new Vector3(0f, 0.25f, -0.75f);

                captureTheFlagEvent.BroadcastToPlayers(GetMessage, "Notification.FlagPickedUp", eventPlayer.Player.displayName, Team, captureTheFlagEvent.GetTeamColor(eventPlayer.Team), captureTheFlagEvent.GetTeamColor(Team));
            }
示例#4
0
            private void OnTriggerEnter(Collider col)
            {
                if (captureTheFlagEvent.Status != EventManager.EventStatus.Started)
                {
                    return;
                }

                CaptureTheFlagPlayer eventPlayer = col.GetComponent <CaptureTheFlagPlayer>();

                if (eventPlayer == null || eventPlayer.IsDead)
                {
                    return;
                }

                if (IsAtBase)
                {
                    if (eventPlayer.Team != Team)
                    {
                        PickupFlag(eventPlayer);
                    }
                    else
                    {
                        if (eventPlayer.IsCarryingFlag)
                        {
                            FlagController enemyFlag = Team == EventManager.Team.A ? captureTheFlagEvent.TeamBFlag : captureTheFlagEvent.TeamAFlag;
                            enemyFlag.CaptureFlag(eventPlayer);
                        }
                    }
                }
                else
                {
                    if (FlagHolder == null)
                    {
                        if (eventPlayer.Team != Team)
                        {
                            PickupFlag(eventPlayer);
                        }
                        else
                        {
                            ResetFlag();
                            captureTheFlagEvent.BroadcastToPlayers(GetMessage, "Notification.FlagReset", eventPlayer.Team, captureTheFlagEvent.GetTeamColor(eventPlayer.Team));
                        }
                    }
                }
            }
示例#5
0
 private void CaptureFlag(CaptureTheFlagPlayer eventPlayer)
 {
     ResetFlag();
     captureTheFlagEvent.OnFlagCaptured(eventPlayer, Team);
 }
示例#6
0
 bool IsEnemy(CaptureTheFlagPlayer player)
 {
     return player == enemy1 || player == enemy2;
 }