public override object SelectTarget(object[] objects, Engine.World.Beings.Actions.AbstractAction action) { if (action is StackingDropAction) { return(selectDropTarget(objects)); } if (action is PickUpAction) { return(selectPickUpTarget(objects)); } if (action is CloseDoorAction) { return(selectCloseDoorTarget(objects)); } if (action is ManageEquipmentAction) { return(selectDeequipTarget(objects)); } if (action is EquipAction) { return(selectEquipTarget(objects)); } if (action is StackingUseItemAction) { return(selectUseTarget(objects)); } return(null); }
public override AbstractAction SelectAction() { Engine.World.Beings.Actions.AbstractAction action = base.SelectAction(); if (Rng.Random.NextFloat() < JUMP_RATE) { return(new JumpAction(Being)); } if (action is AttackAction) { AttackAction attackAction = action as AttackAction; Being attackee = attackAction.Attackee; if (Rng.Random.NextFloat() < STEAL_RATE && attackee is IBackPackBeing) { return(new StealAction(Being, attackee)); } else { return(attackAction); } } return(action); }
public override AbstractAction SelectAction() { Engine.World.Beings.Actions.AbstractAction action = base.SelectAction(); if (action is AttackAction && Rng.Random.NextFloat() < CAUSE_BLINDNESS_RATE) { action = new CauseBlindnessAction(getOponent()); } return(action); }
public override AbstractAction SelectAction() { Engine.World.Beings.Actions.AbstractAction action = base.SelectAction(); if (action is AttackAction) { action = new SuckLifeAction(Being, (action as AttackAction).Attackee); } return(action); }
public override AbstractAction SelectAction() { Engine.World.Beings.Actions.AbstractAction action = base.SelectAction(); if (action is AttackAction && Rng.Random.NextFloat() < ILLESS_ATACK_RATE) { action = new CauseIllnessAction((action as AttackAction).Attackee); } return(action); }
public override AbstractAction SelectAction() { Engine.World.Beings.Actions.AbstractAction action = base.SelectAction(); if (action is AttackAction && Rng.Random.NextFloat() < CAST_DARKNESS_RATE) { action = new CastDarknessAction(Being); } return(action); }
public override AbstractAction SelectAction() { Engine.World.Beings.Actions.AbstractAction action = base.SelectAction(); if (action is AttackAction && Rng.Random.NextFloat() < CAUSE_AMNESIA_RATE) { Being attackee = (action as AttackAction).Attackee; Notify("sing", attackee); return(new InflictAmnesiaAction(Being, attackee)); } return(action); }
public override AbstractAction SelectAction() { Engine.World.Beings.Actions.AbstractAction action = base.SelectAction(); if (action is AttackAction && Rng.Random.NextFloat() < CONFUSE_RATE) { Being attackee = (action as AttackAction).Attackee; Notify("sing", attackee); return(new CauseConfusionAction(attackee)); } return(action); }
public override object SelectTarget(object[] objects, Engine.World.Beings.Actions.AbstractAction action) { return(objects[0]); }
public override AbstractAction SelectAction() { Pc pc = (Pc)Being; string command = ((VhGameController)GameController.Instance).Command; Engine.World.Beings.Actions.AbstractAction action = null; // if (command == "wait") { action = new WaitAction(pc); } // else if (command == "north") { action = new MoveAction(pc, Step.NORTH); } else if (command == "south") { action = new MoveAction(pc, Step.SOUTH); } else if (command == "east") { action = new MoveAction(pc, Step.EAST); } else if (command == "west") { action = new MoveAction(pc, Step.WEST); } else if (command == "north-east") { action = new MoveAction(pc, Step.NORTH_EAST); } else if (command == "north-west") { action = new MoveAction(pc, Step.NORTH_WEST); } else if (command == "south-east") { action = new MoveAction(pc, Step.SOUTH_EAST); } else if (command == "south-west") { action = new MoveAction(pc, Step.SOUTH_WEST); } else if (command == "take-stairs") { action = new TakeStairsAction(pc); } else if (command == "close-door") { action = new CloseDoorAction(pc); } else if (command == "pick-up") { action = new VhStackingPickUpAction(pc); } else if (command == "drop") { action = new StackingDropAction(pc); } else if (command == "use") { action = new StackingUseItemAction(pc); } else if (command == "manage-equipment") { action = new ManageEquipmentAction(pc); } // return(action); }