private static void StartChase(ILivingCreature animal) { var pray = animal as Animal; Hunter hunter = new Hunter(); hunter.Chase(pray); }
public override bool Execute(Player player) { string notify = "Talk_"; string name = ""; if (this.QWords.Count == 0) { player.OutputMessage("\nTalk to who?"); return(false); } else { while (this.QWords.Count != 0) { name += this.QWords.Dequeue() + " "; } name = name.TrimEnd(); notify += name; ILivingCreature npc = player.CurrentRoom.GetNpc(name); if (npc != null) { NotificationCenter.Instance.PostNotification(new Notification(notify, player)); player.OutputMessage("\nType 'leave' to end the interaction"); } else { player.OutputMessage("\nThat person is not in this room?\n"); player.OutputMessage(player.CurrentRoom.Description()); } } return(false); }
public ILivingCreature GetNpc(string name) { ILivingCreature npc = null; RoomNpcs.TryGetValue(name, out npc); return(npc); }
{ //można to realizować poprzez event do którego podpinają się zwierzęta public void Chase(ILivingCreature pray) //powinien informować tylko o tym że zaczynam gonić { Console.WriteLine($"Hunter tries to catch the {(pray as Animals.Animal).NameOfAnimial()},"); if (pray.TryToRunAway()) { pray.RunAway(); return; } else { Console.WriteLine($"Hunter caught the {(pray as Animals.Animal).NameOfAnimial()}"); } }
public void RemoveNpc(ILivingCreature npc) { RoomNpcs.Remove(npc.Name); }
public void AddNpc(ILivingCreature npc) { RoomNpcs[npc.Name] = npc; }