private NPC BuildNPCObjectWithDialogNodes(XmlNode characterNode) { NPC character; switch (characterNode.Attributes[0].Value) { case "HumanNPC": character = HumanNPC.BuildFromXmlNode(characterNode); break; case "MonsterNPC": character = MonsterNPC.BuildFromXmlNode(characterNode); break; case "BigMonsterNPC": character = BigMonsterNPC.BuildFromXmlNode(characterNode); break; case "PassivDialogNPC": character = PassivDialogNPC.BuildFromXmlNode(characterNode); break; case "GatekeeperNPC": character = GatekeeperNPC.BuildFromXmlNode(characterNode); break; case "DanielNPC": character = DanielNPC.BuildFromXmlNode(characterNode); break; default: throw new Exception("Character build failed - No type"); } XmlNode dialogNode = characterNode.SelectSingleNode("child::*"); if (dialogNode != null) { character.AddDialogNode(BuildDialogNodeObject(dialogNode)); } return(character); }
public override void ChangeArea(Character character) { Area destination = GetDestination(character.GetLocation()); Random random = new Random(); int randomNumber = random.Next(0, 2); for (int i = 0; i <= randomNumber; i++) { Character toSpawn = new MonsterNPC("Monster", "A Monster which will attack anyone! Be aware."); destination.AddCharacter(toSpawn); _characters.Add(toSpawn); } character.MoveToArea(destination); character.SetIsOnMove(false); }