public void ShouldCallShootForEveryNewShot() { PlayerState state = new PlayerState(); state.NewShots = new List<Shot>(); state.NewShots.Add(new Shot(Vector2.Zero, new Vector2(1, 2))); state.NewShots.Add(new Shot(Vector2.Zero, new Vector2(3, 4))); state.RefreshPlayerValuesFromState(player); player.AssertWasCalled(me => me.Shoot(new Vector2(1, 2))); player.AssertWasCalled(me => me.Shoot(new Vector2(3, 4))); }
public void CanRefreshNetworkPlayerObjectWithPlayerState() { player.Weapons.Shots.Add(new Shot()); PlayerState state = new PlayerState(); state.Health = 98; state.Status = PlayerStatus.Alive; state.Position = new Vector2(4, 8); state.NewShots = new List<Shot>(); // Add 2 new Shot objects: state.NewShots.Add(new Shot(Vector2.One, Vector2.UnitX)); state.NewShots.Add(new Shot(Vector2.UnitY, Vector2.Zero)); state.Score = new PlayerScore() { Deaths = 3, Kills = 20 }; state.RefreshPlayerValuesFromState(player); Assert.AreEqual(98, player.Health); Assert.AreEqual(PlayerStatus.Alive, state.Status); player.AssertWasCalled(me => me.UpdatePositionFromNetwork(Arg<Vector2>.Is.Equal(state.Position), Arg<float>.Is.Anything)); Assert.AreEqual(3, player.PlayerScore.Deaths); Assert.AreEqual(20, player.PlayerScore.Kills); }
public void ResetsPendingStateWhenItIsAchieved() { player.Status = PlayerStatus.Alive; player.PendingStatus = PlayerStatus.Dead; PlayerState state = new PlayerState(); state.Status = PlayerStatus.Alive; state.RefreshPlayerValuesFromState(player); Assert.AreEqual(PlayerStatus.Dead, player.PendingStatus); state.Status = PlayerStatus.Dead; state.RefreshPlayerValuesFromState(player); Assert.IsNull(player.PendingStatus); }