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); } }
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; }
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)); }
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)); } } } }
private void CaptureFlag(CaptureTheFlagPlayer eventPlayer) { ResetFlag(); captureTheFlagEvent.OnFlagCaptured(eventPlayer, Team); }
bool IsEnemy(CaptureTheFlagPlayer player) { return player == enemy1 || player == enemy2; }