示例#1
0
        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);
        }
示例#2
0
        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);
        }