Example #1
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));
                        }
                    }
                }
            }