Example #1
0
        public int Run(uint nwnObjectId)
        {
            if (TemplateItem.Initialized(nwnObjectId))
            {
                return(0);
            }

            if (NWScript.GetItemPossessedBy(nwnObjectId, "platinum_token") == NWScript.OBJECT_INVALID)
            {
                NWScript.SendMessageToPC(nwnObjectId, "This subrace requires DM permission to play.");
                return(0);
            }

            if (NWScript.GetRacialType(nwnObjectId) != NWScript.RACIAL_TYPE_ELF)
            {
                NWScript.SendMessageToPC(nwnObjectId, "Fey'ri only works with the Moon Elf base race.");
                return(0);
            }

            NWScript.CreateItemOnObject(TemplateItem.TemplateItemResRef, nwnObjectId);

            SetSubraceModifiers(nwnObjectId);

            var templateRunner = new TemplateRunner();

            templateRunner.Run(nwnObjectId);
            CreaturePlugin.SetRacialType(nwnObjectId, NWScript.RACIAL_TYPE_OUTSIDER);
            CreaturePlugin.AddFeatByLevel(nwnObjectId, 228, 1);

            return(0);
        }
Example #2
0
        public int Run(uint nwnObjectId)
        {
            if (TemplateItem.Initialized(nwnObjectId))
            {
                return(0);
            }

            if (NWScript.GetItemPossessedBy(nwnObjectId, "platinum_token") == NWScript.OBJECT_INVALID)
            {
                NWScript.SendMessageToPC(nwnObjectId, "This subrace requires DM permission to play.");
                return(0);
            }

            if (NWScript.GetRacialType(nwnObjectId) != NWScript.RACIAL_TYPE_HUMAN)
            {
                NWScript.SendMessageToPC(nwnObjectId, "Lizardfolk only works with the Non-Regional Human base race.");
                return(0);
            }

            NWScript.CreateItemOnObject(TemplateItem.TemplateItemResRef, nwnObjectId);

            SetSubraceModifiers(nwnObjectId);

            var templateRunner = new TemplateRunner();

            CreaturePlugin.SetRacialType(nwnObjectId, NWScript.RACIAL_TYPE_HUMANOID_REPTILIAN);

            templateRunner.Run(nwnObjectId);

            return(0);
        }
Example #3
0
        public void Executing_Generated_Template_Yields_Expected_Text()
        {
            var rawTemplate = File.ReadAllText("test-template.txt");

            Assert.Equal("9FC5C4C328F9D8B685D68625B42276F1", rawTemplate.GetMessageDigest());

            var parser   = new TemplateParser(rawTemplate);
            var template = parser.Parse();
            var runner   = new TemplateRunner();
            var text     = runner.Execute(template);

            Assert.Equal("FED4BB1ECA8ED6C2977800A9EE0B209A", text.GetMessageDigest());
        }
Example #4
0
        public int Run(uint nwnObjectId)
        {
            if (TemplateItem.Initialized(nwnObjectId))
            {
                return(0);
            }

            NWScript.CreateItemOnObject(TemplateItem.TemplateItemResRef, nwnObjectId);

            CreaturePlugin.SetRacialType(nwnObjectId, NWScript.RACIAL_TYPE_OUTSIDER);
            CreaturePlugin.AddFeatByLevel(nwnObjectId, 228, 1);
            SetSubRaceMod(nwnObjectId);

            var templateRunner = new TemplateRunner();

            templateRunner.Run(nwnObjectId);

            return(0);
        }