public void HandlePlayerJoin(Gamepad pad) { if (players.Count == 0) { FindObjectOfType <MenuManager>().SkipMainMenuScreen(); } if (!players.Any(p => p.config.Input.gamepad == pad)) { var player = Instantiate(playerPreFab.gameObject, transform).GetComponent <PlayerController>(); var config = new PlayerConfiguration(players.Count); config.info = PlayerLevelingManager.Instance.GetLastPlayerInfo(config.PlayerIndex); config.Input = new PlayerInputMethod(player, pad); players.Add(player); player.config = config; if (GameSettings.gameMode.IsTeamBased) { player.config.Team = GameSettings.gameMode.TeamScores[player.config.PlayerIndex % GameSettings.gameMode.NumberOfTeams]; FindObjectOfType <JoinRoomManager>().ChangeTeam(player); } else { GamemodeBase.AutoAssignTeams(); } StartCoroutine(SetPlayerColorAfterPlayerEnableCall(player)); RecalculateUsedAndUnusedGamepads(); } }
public void ResetForNextRound() { GamemodeBase.ResetForNextRound(); foreach (var flag in ctfFlags) { flag.ResetFlagOnRoundEnd(); } }
private void OnEnable() { var page = Instantiate(GameSettingPage, gameObject.transform); page.Data = Gamemode = FengGameManagerMKII.Gamemode; page.Initialize(); Pages.Add(page); Pages[0].gameObject.SetActive(true); ServerSettingsPage.gameObject.SetActive(false); }
public void OnPlayerScoredObjective(PlayerController player) { var flag = player.gamemodeExtraInfo.CarryingFlag; GamemodeBase.OnPlayerScoredObjective(player, pointsForScoringObjective); flag.carryingPlayer = null; flag.ReturnOwnFlagToHomeBase(); player.gamemodeExtraInfo.CarryingFlag = null; player.gamemodeExtraInfo.flagsCaptured++; }
public void SaveStatsOnGameEnd() { GamemodeBase.CopyGenericPlayerStatsOnGameEnd(); // TODO: klappt das mit den Teams? foreach (var team in GameSettings.gameMode.TeamScores) { foreach (var player in team.Players) { if (team.HasTheMostWonRounds) { player.config.info.xp += 25; } player.config.info.xp += player.playerStats.kills * 5; } } }
public void InitializeInLevel() { GameModeUi = Instantiate(uiPreFab, FindObjectOfType <Canvas>().transform).GetComponent <IGameModeUi>(); GamemodeBase.InitializeInLevel(); for (int i = 0; i < GameSettings.gameMode.NumberOfTeams; i++) { var flag = Instantiate(ctfFlagPreFab.gameObject, GameManager.Instance.activeMap.ctfFlagSpawns[i].position, Quaternion.identity) .GetComponent <CtfFlag>(); var team = GameSettings.gameMode.TeamScores.SingleOrDefault(t => t.teamId == i); if (team != null) { flag.Initialize(team, GameManager.Instance.activeMap.ctfFlagSpawns[team.teamId].position); ctfFlags.Add(flag); } } }
private void FixedUpdate() { if (currentKingOfTheHill == null) { return; } if (!GameSettings.gameHasStarted) { return; } fixedUppdateCounter++; if (fixedUppdateCounter == fixedUpdateSecondLimit) { fixedUppdateCounter = 0; OnTimeSecondPassed(); secondsPassed++; GameModeUi.UpdateTimeLeftTimer(GamemodeBase.GetTimeString(TimeLimitSeconds - secondsPassed)); } }
private void OnGamemodeSelected(GamemodeBase gamemode) { selectedGamemode = gamemode; }
public void OnModeSpawnedInJoinRoom() { GamemodeBase.AutoAssignTeams(); }
public void ResetForNextRound() { GamemodeBase.ResetForNextRound(); currentKingOfTheHill = null; }
public void OnPlayerScoredObjective(PlayerController player) { GamemodeBase.OnPlayerScoredObjective(player, pointsForKOTHEachSecond); }
public void InitializeInLevel() { GameModeUi = Instantiate(uiPreFab, FindObjectOfType <Canvas>().transform).GetComponent <IGameModeUi>(); // Instantiate(firstKingOfTheHillCollectable, GameManager.Instance.activeMap.initial_KOTH_Spawn.position, Quaternion.identity); GamemodeBase.InitializeInLevel(); }