public void Execute(Mobile mobile, Map map, Tile nonPlayerCharacterTile) { if (mobile.CanAttack(map, nonPlayerCharacterTile)) { map.GetPlayer().HitPoints -= 3; Status.WriteToStatusLine("Bob bores you to death... literally!"); return; } }
public void Execute(Mobile mobile, Map map, Tile nonPlayerCharacterTile) { if (Program.RandomNumber(4) < 3) { //Move var direction = map.GetDirectionRandom(); if (direction != null) { map.MoveMobile(direction, nonPlayerCharacterTile); } } else { //Attack if (nonPlayerCharacterTile.Mobile.CanAttack(map, nonPlayerCharacterTile)) { map.GetPlayer().HitPoints -= 3; Status.WriteToStatusLine("The rat bites you!"); } } }
public void Execute(Mobile mobile, Map map, Tile nonPlayerCharacterTile) { if (mobile.CanAttack(map, nonPlayerCharacterTile)) { mobile.Event = Transition.Attack; return; } var playerTile = map.GetPlayerTile(); var tileToMoveTo = map.GetShortestDistanceDirectionToPlayer(mobile, playerTile.Location, nonPlayerCharacterTile.Location); //if null, don't move if (tileToMoveTo != null) { if (tileToMoveTo.TypeId == Constants.TypeIds.Door) { map.ToggleDoor(tileToMoveTo, false); } else { var tile = map.MoveMobile(nonPlayerCharacterTile, tileToMoveTo); } } }
public virtual void Execute(Mobile mobile, Map map, Tile nonPlayerCharacterTile) { if (mobile.CanAttack(map, nonPlayerCharacterTile)) { mobile.Event = Transition.Attack; } else { mobile.Event = Transition.Chase; } }
public InventoryCommand(Map map) { this.map = map; }
public PickUpCommand(Map map) { this.map = map; }
public OpenCloseCommand(Map map) { this.map = map; }
public LookCommand(Map map) { this.map = map; }
public DisplayEquipmentCommand(Map map) { this.map = map; }
public QuitCommand(Map map) { this.map = map; }
public MoveMapPlayerCommand(Map map) { this.map = map; }
public void UpdateState(Map map, Tile nonPlayerCharacterTile) { if (CurrentState != null) CurrentState.Execute(this, map, nonPlayerCharacterTile); else System.Diagnostics.Trace.WriteLine("zero state"); }
public bool CanAttack(Map map, Tile nonPlayerCharacterTile) { var topStart = nonPlayerCharacterTile.Location.Top - 1 < 1 ? 1 : nonPlayerCharacterTile.Location.Top - 1; var leftStart = nonPlayerCharacterTile.Location.Left - 1 < 1 ? 1 : nonPlayerCharacterTile.Location.Left - 1; var playerTile = map.GetPlayerTile(); for (int top = topStart; top <= nonPlayerCharacterTile.Location.Top + 1; top++) { for (int left = leftStart; left <= nonPlayerCharacterTile.Location.Left + 1; left++) { if (playerTile.Location.Top == top && playerTile.Location.Left == left) { return true; } } } return false; }
public WearCommand(Map map) { this.map = map; }
public AttackCommand(Map map) { this.map = map; }