Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public CreatureCommand Act(int x, int y)
- {
- var diggersLocation = FindDigger();
- if (diggersLocation != null)
- {
- var deltaX = Math.Sign(diggersLocation.Item1 - x);
- var deltaY = Math.Sign(diggersLocation.Item2 - y);
- if (deltaX != 0 && CanMove(x + deltaX, y))
- return new CreatureCommand { DeltaX = deltaX };
- if (deltaY != 0 && CanMove(x, y + deltaY))
- return new CreatureCommand { DeltaY = deltaY };
- }
- return new CreatureCommand();
- }
- public bool CanMove(int x, int y)
- {
- return !(Game.Map[x, y] is Terrain
- || Game.Map[x, y] is Monster
- || Game.Map[x, y] is Sack);
- }
- public Tuple<int, int> FindDigger()
- {
- for (var x = 0; x < Game.MapWidth; x++)
- for (var y = 0; y < Game.MapHeight; y++)
- {
- if (Game.Map[x, y] is Player)
- {
- return Tuple.Create(x, y);
- }
- }
- return null;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement