public void StartFighting(World world) { var playerPos = world.Get <PlayerPosition>(); var monsters = world.Get <MonsterMoveController[]>(); MonsterStats monster = null; foreach (var monsterMove in monsters) { if (playerPos.NumberOfArrayPlayerIsIn == monsterMove.MonsterPosition.NumberOfArrayMonsterIsIn) { monster = monsterMove.MonsterStats; break; } } if (monster == null) { MoveMessages message = new MoveMessages(world); message.NoMonsterToFightMessage(); world.WrongDirectionCount++; } else { PlayerStats player = world.Get <PlayerStats>(); player.InCombat = true; monster.InCombat = true; CombatHandler handler = world.Get <CombatHandler>(); handler.ExchangeBlowsTillDeath(monster, player); } }
public void MoveTo(int movement) { DirectionChecker checker = new DirectionChecker(_world); if (checker.CanPlayerMoveInDirection(Map.Map[NumberOfArrayPlayerIsIn + movement])) { Changed = true; OldNumberOfArrayPlayerIsIn = NumberOfArrayPlayerIsIn; NumberOfArrayPlayerIsIn += movement; MonsterMoveController[] monsters; if (_world.Has <MonsterMoveController[]>()) { monsters = _world.Get <MonsterMoveController[]>(); } else { monsters = new MonsterMoveController[1]; } if (monsters.Length > 1) { foreach (var monster in monsters) { if (monster.MonsterPosition.NumberOfArrayMonsterIsIn == NumberOfArrayPlayerIsIn) { _world.LinesTypedInMessageBox++; MoveMessages message = new MoveMessages(_world); message.MonstersInRoomMessage(monster.MonsterStats.Name); } } } } }
public void MakeMove_WhenPlayerMakesFirstMove_ReturnMoveMessageIsOnlyHitOrMiss() { var availableReturnMessages = new MoveMessages[] { MoveMessages.Hit, MoveMessages.Miss }; MoveHelper.MakeMove(_player, _board); Assert.IsTrue(availableReturnMessages.Contains(_board.Message)); }
public DirectionChecker(World world) { _world = world; _message = new MoveMessages(_world); }