public void ReachTerminus(Champion champion) { if (champion.mazeResult != Champion.MazeResult.Nan) { return; } champion.BeginMove(FVec3.zero); SyncEvent.Terminus(champion.rid); champion.mazeResult = Champion.MazeResult.Win; int count = this._entityManager.championCount; for (int i = 0; i < count; i++) { Champion other = this._entityManager.GetChampionAt(i); if (other.team == champion.team && other.mazeResult != Champion.MazeResult.Win) { return; } } for (int i = 0; i < count; i++) { Champion other = this._entityManager.GetChampionAt(i); if (other.team != champion.team) { other.mazeResult = Champion.MazeResult.Lose; } } this.Win(champion.team); }
public void HandleBeginMove(string rid, FVec3 direction) { Champion entity = this._entityManager.GetChampion(rid); entity.BeginMove(direction); }