public override void Awake() { _dataAccessor = PlayerDataAccessor; _mapper = new PlayerMapping(); base.Awake(); }
public static PlayerInfo Create(Common.Player player, Common.Ball ball, TeamType team, IEnumerable <Common.Player> other) { Guard.NotNull(player, "player"); Guard.NotNull(ball, "ball"); var tackled = other.Where(o => player.CanTackle(o)).ToList(); if (tackled.Count > 0) { } var info = new PlayerInfo() { Id = PlayerMapping.GetId(player.PlayerType, team), Position = player.Position, Velocity = player.Velocity, IsBallOwner = player == ball.Owner, CanPickUpBall = player.CanPickUpBall(ball), CanBeTackled = tackled.Select(p => PlayerMapping.GetId(p.PlayerType, TeamType.Other)).ToList(), FallenTimer = player.FallenTimer, TackleTimer = player.TackleTimer, }; info.DistanceToOwnGoal = Goal.Own.GetDistance(info); info.DistanceToOtherGoal = Goal.Other.GetDistance(info); return(info); }
/// <summary>Invokes wait.</summary> /// <remarks> /// Calling sometimes ended up having null reference exceptions. /// </remarks> public void Invoke(PlayerMapping mapping) { try { mapping[id].ActionWait(); } catch (System.NullReferenceException) { } }
/// <summary>Invokes move.</summary> public void Invoke(PlayerMapping mapping) { mapping[id].ActionGo(target.ToVector()); }
/// <summary>Invokes shoot on goal.</summary> public void Invoke(PlayerMapping mapping) { mapping[id].ActionShootGoal((float)power); }
/// <summary>Invokes move.</summary> public void Invoke(PlayerMapping mapping) { mapping[id].ActionGo(target.ToVector()); }
/// <summary>Invokes drop ball.</summary> public void Invoke(PlayerMapping mapping) { mapping[id].ActionPickUpBall(); }
/// <summary>Invokes drop ball.</summary> public void Invoke(PlayerMapping mapping) { mapping[id].ActionTackle(mapping[target]); }
/// <summary> /// API called to add a new player to the game /// </summary> /// <param name="player"></param> public void AddPlayer(Player player) { PlayerMapping.Add(player.Id, player); NumPlayers++; }
public void Invoke(PlayerMapping mapping) { }
public void Invoke(PlayerMapping mapping) { }
/// <summary>Invokes the shoot on target.</summary> public void Invoke(PlayerMapping mapping) { mapping[id].ActionShoot(target.ToVector(), (float)power); }
public void InitializeGameBoard() { FillRolesToAssign(); Random random = new Random(); List <Player> inactivePlayers = PlayerMapping.Select(p => p.Value).ToList(); // TODO: Add some validation to make sure aggregate roles and role counts do not exceed number of players foreach (Role role in RolesToAssign.Keys) { if (inactivePlayers.Count == 0) { break; } for (int i = 0; i < RolesToAssign[role]; i++) { //remove later if (role == Role.Mafia && i == 0) { foreach (Player p in inactivePlayers) { if (p.Name == "Kunyi Liu") { p.Role = role; p.Active = true; inactivePlayers.Remove(p); Mafia mafia = new Mafia(p); Mafias.Add(mafia); PlayerMapping[p.Id] = mafia; ActivePlayers.Add(mafia); break; } } continue; } Player playerToModify = inactivePlayers[random.Next(inactivePlayers.Count)]; playerToModify.Role = role; playerToModify.Active = true; inactivePlayers.Remove(playerToModify); if (role == Role.Mafia) { Mafia mafia = new Mafia(playerToModify); Mafias.Add(mafia); PlayerMapping[playerToModify.Id] = mafia; ActivePlayers.Add(mafia); } else if (role == Role.Doctor) { Doctor doctor = new Doctor(playerToModify); Doctors.Add(doctor); PlayerMapping[playerToModify.Id] = doctor; ActivePlayers.Add(doctor); } } } foreach (Player player in inactivePlayers) { player.Role = Role.Villager; player.Active = true; Villager villager = new Villager(player); PlayerMapping[player.Id] = villager; ActivePlayers.Add(villager); } ShowRolesToPlayers(); CurrentState = GameState.Night; }
/// <summary>Invokes shoot on goal.</summary> public void Invoke(PlayerMapping mapping) { mapping[id].ActionShootGoal((float)power); }
/// <summary>Invokes drop ball.</summary> public void Invoke(PlayerMapping mapping) { mapping[id].ActionTackle(mapping[target]); }
/// <summary>Invokes drop ball.</summary> public void Invoke(PlayerMapping mapping) { mapping[id].ActionPickUpBall(); }
/// <summary>Invokes the shoot on target.</summary> public void Invoke(PlayerMapping mapping) { mapping[id].ActionShoot(target.ToVector(), (float)power); }