Пример #1
0
        static void fixAlchemists()
        {
            var alchemist = Profiles.ProfileManager.getProfile("Alchemist");
            var features  = library.GetAllBlueprints().OfType <BlueprintFeature>().Where <BlueprintScriptableObject>(f => f.name.Contains("GoblinAlchemistFeatureListLevel") ||
                                                                                                                     f.name.Contains("BanditAlchemistFeatureListLevel") ||
                                                                                                                     f.name.Contains("KoboldAlchemistFeatureListLevel")).ToArray();

            var brains = new BlueprintBrain[]
            {
                library.Get <BlueprintBrain>("53a68e3631a6e1646997de0cb50ba49f"), // goblin
                library.Get <BlueprintBrain>("5374487ceea5ac04d907d301cc53ae38"), //kobold
                library.Get <BlueprintBrain>("b7853e33e6e32d94aac4cd2375547e23"), //bandit
            };

            foreach (var b in brains)
            {
                b.Actions = alchemist.brain.Actions;
            }


            foreach (var f in features)
            {
                var old_acl = f.GetComponent <AddClassLevels>();
                Profiles.ProfileManager.replaceAcl(old_acl, alchemist.getAcl(old_acl.Levels));
                f.RemoveComponents <AddFacts>();
                f.AddComponent(Helpers.CreateAddFacts(alchemist.getFeatures(old_acl.Levels)));
            }
        }
Пример #2
0
        public Profile(string profile_name, BlueprintCharacterClass character_class, StatType stat,
                       StatType[] skills, BlueprintArchetype archetype = null)
        {
            name = profile_name;

            acl = Helpers.Create <AddClassLevels>();
            acl.CharacterClass = character_class;
            if (archetype != null)
            {
                acl.Archetypes = new BlueprintArchetype[] { archetype };
            }
            acl.RaceStat       = stat;
            acl.LevelsStat     = stat;
            acl.MemorizeSpells = new BlueprintAbility[0];
            acl.SelectSpells   = new BlueprintAbility[0];

            acl.Skills     = skills;
            acl.Selections = new SelectionEntry[0];

            brain         = Main.library.CopyAndAdd <BlueprintBrain>("bf90f2053c06375418c119115122ae3d", name + "Brain", "");
            brain.Actions = new BlueprintAiAction[0];
        }
Пример #3
0
        static public void Load()
        {
            risiaBoss = library.Get <BlueprintUnit>("95fb27a5b8ae40099bd727ea93de5b9b");
            BlueprintBrain brain = Helpers.Create <BlueprintBrain>();

            BlueprintBuff holyAuraBuff   = library.Get <BlueprintBuff>("a33bf327207a5904d9e38d6a80eb09e2");
            BlueprintBuff unholyAuraBuff = library.Get <BlueprintBuff>("9eda82a1f78558747a03c17e0e9a1a68");

            Consideration hasSwift    = getConsideration("c2b7d2f9a5cb8d04d9e1aa4bf3d3c598");
            Consideration hasStandard = getConsideration("a82d061edd18ce748a1a7f97e7e6d9d2");

            Consideration targetSelf = getConsideration("83e2dd97b82d769498394c3edf0d260e");

            Consideration attackTargetPriority = getConsideration("7a2b25dcc09cd244db261ce0a70cca84");

            Consideration noShieldBuff = getConsideration("a3ffff7b93017744ea88433311569cec");
            Consideration noMirrorBuff = getConsideration("db074912aa8072c469b527f6c111e82c");
            Consideration noInvisibilityGreaterBuff = getConsideration("2fc05579e43f56146a1cdaaa82e5119c");
            Consideration noFieryBodyBuff           = considerNoBuff("RisiaNoFieryBodyBuffConsideration", library.Get <BlueprintBuff>("b574e1583768798468335d8cdb77e94c"));
            Consideration aroundHasHolyAuraBuff     = considerBuffsAround(
                "RisiaEnemyHasHolyAuraBuffConsideration", TargetType.Enemy,
                new BlueprintBuff[] { holyAuraBuff }
                );
            Consideration aroundHasUnholyAuraBuff = considerBuffsAround(
                "RisiaEnemyHasUnholyAuraBuffConsideration", TargetType.Enemy,
                new BlueprintBuff[] { unholyAuraBuff }
                );
            Consideration selfHasARBoostDCBuff = considerHasBuff(
                "RisiaHasARBoostDCBuff", ArcaneReservoir.AR_AddDCBuff
                );
            Consideration selfHasNoARBoostDCBuff = considerNoBuff(
                "RisiaHasNoARBoostDCBuff", ArcaneReservoir.AR_AddDCBuff
                );
            BlueprintAbility shield_swift = getSpell("3c1b92a0a3ce0754a889fb0d7b2c23a4");
            BlueprintAbility mirror_swift = getSpell(OtherUtils.GetMd5("Risia.MirrorImageSwift"));
            BlueprintAbility invisiblity_greater_swift = getSpell(OtherUtils.GetMd5("Risia.GreaterInvisibility.Swift"));
            BlueprintAbility fiery_body           = getSpell("08ccad78cac525040919d51963f9ac39");
            BlueprintAbility overwhelmingPresence = getSpell("41cf93453b027b94886901dbfc680cb9");
            BlueprintAbility weird         = getSpell("870af83be6572594d84d276d7fc583e0");
            BlueprintAbility summon7Base   = getSpell("ab167fd8203c1314bac6568932f1752f");
            BlueprintAbility summon7_1d3   = getSpell("43f763d347eb2744caed9c656ba89531");
            BlueprintAbility summon8Base   = getSpell("d3ac756a229830243a72e84f3ab050d0");
            BlueprintAbility summon8Single = getSpell("eb6df7ddfc0669d4fb3fc9af4bd34bca");
            BlueprintAbility DMHolyAura    = getSpell(OtherUtils.GetMd5("Risia.DispelMagicArea.HolyAura"));
            BlueprintAbility DMUnholyAura  = getSpell(OtherUtils.GetMd5("Risia.DispelMagicArea.UnholyAura"));

            BlueprintAbility         seamantle_preBuff            = getSpell(consts.GUIDs["RisiaSeamantleFree_N"]);
            BlueprintAbility         angelicAspectGreater_preBuff = getSpell(consts.GUIDs["RisiaAngelicAspectFree_N"]);
            List <BlueprintAiAction> actions = new List <BlueprintAiAction>();
            //Free Action Prebuffs
            //create seamantle
            var castPrebuffSeamantle = CreateCastSpell(
                "RisiaCastPrebuffSeamantle", OtherUtils.GetMd5("Risia.Brain.CastPrebuffSeamantle_1001"),
                seamantle_preBuff, 1001, 0, 0, 1, getConstant(0), 0, null
                );
            var castPrebuffAngelic = CreateCastSpell(
                "RisiaCastPrebuffAngelic", OtherUtils.GetMd5("Risia.Brain.CastPrebuffAngelic_1000"),
                angelicAspectGreater_preBuff, 1000, 0, 0, 1, getConstant(0), 0, null
                );

            actions.AddRange(new BlueprintAiCastSpell[] { castPrebuffSeamantle, castPrebuffAngelic });
            //Buffs
            //create cast swift shield
            var castSwiftShield = CreateCastSpell(
                "RisiaCastShieldSwift", OtherUtils.GetMd5("Risia.Brain.CastShieldSwift_51.5"),
                shield_swift, 51.5, 1, 2, 3, getConstant(4), 0, null, hasSwift, targetSelf, noShieldBuff);
            //create cast swift mirror
            var castMirror = CreateCastSpell(
                "RisiaCastMirrorSwift", OtherUtils.GetMd5("Risia.Brain.CastMirrorSwift_53.5"),
                mirror_swift, 53.5, 1, 2, 5, getConstant(2), 0, null, hasSwift, targetSelf, noMirrorBuff);
            //create cast swift invisibility greater
            var castInvisibilityGreater = CreateCastSpell(
                "RisiaCastIGSwift", OtherUtils.GetMd5("Risia.Brain.CastInvisibilityGreaterSwift_52.5"),
                invisiblity_greater_swift, 52.5, 1, 2, 2, getConstant(4), 0, null, hasSwift, targetSelf, noInvisibilityGreaterBuff);
            //create cast fiery body
            var castFieryBody = CreateCastSpell(
                "RisiaCastFieryBody", OtherUtils.GetMd5("Risia.Brain.CastFieryBody_afterShield_51.0"),
                fiery_body, 51.0, 1, 2, 1, getConstant(0), 0, null, hasStandard, targetSelf, noFieryBodyBuff);

            actions.AddRange(new BlueprintAiCastSpell[] { castSwiftShield, castMirror, castInvisibilityGreater, castFieryBody });

            // Control spells

            var castDMHolyAura = CreateCastSpell(
                "RisiaCastDMHolyAura", OtherUtils.GetMd5("Risia.Brain.CastDMHolyAuraOnly_40.0"),
                DMHolyAura, 40.0, 1, 1, 2, getConstant(3), 0, null,
                hasStandard, aroundHasHolyAuraBuff
                );
            var castDMUnholyAura = CreateCastSpell(
                "RisiaCastDMUnholyAura", OtherUtils.GetMd5("Risia.Brain.CastDMUnholyAuraOnly_40.0"),
                DMUnholyAura, 40.0, 1, 1, 2, getConstant(3), 0, null,
                hasStandard, aroundHasUnholyAuraBuff
                );
            var castArcaneReserviorBoostDC = CreateCastSpell(
                "RisiaCastArcaneReservoirBoostDC", OtherUtils.GetMd5("Risia.Brain.ArcaneReservoirBoostDC_19.9"),
                ArcaneReservoir.AR_AddDCAbl, 19.9, 2, 0, 10, getConstant(1), 0, null,
                hasStandard, selfHasNoARBoostDCBuff);

            var castOverwhelmingPresence = CreateCastSpell(
                "RisiaCastOverwhelming", OtherUtils.GetMd5("Risia.Brain.CastOverwhelming_19.0"),
                overwhelmingPresence, 19.0, 3, 1, 2, getConstant(4), 0, null,
                considerSpellSlot(9), hasStandard, selfHasARBoostDCBuff, attackTargetPriority
                );
            var castWeird = CreateCastSpell(
                "RisiaCastWeird", OtherUtils.GetMd5("Risia.Brain.CastWeird_20.0"),
                weird, 19.0, 3, 1, 2, getDice(2, DiceType.D3), 0, null,
                considerSpellSlot(9), hasStandard, selfHasARBoostDCBuff, attackTargetPriority
                );

            //var castPowerWordStun = CreateCastSpell(
            //)
            actions.AddRange(new BlueprintAiCastSpell[] { castDMHolyAura, castDMUnholyAura, castOverwhelmingPresence });

            // Summon spells
            var castSummon7 = CreateCastSpell(
                "RisiaCastSummonVII1d3", OtherUtils.GetMd5("Risia.Brain.CastSummonVII1d3_Consecute_25.0"),
                summon7Base, 25.0, 0, 0, 3, getDice(2, DiceType.D3), 2, summon7_1d3
                );
            var castSummon8 = CreateCastSpell(
                "RisiaCastSummonVIII", OtherUtils.GetMd5("Risia.Brain.CastSummonVIIISingle_Consecute_25.0"),
                summon8Base, 25.0, 0, 0, 3, getDice(1, DiceType.D6), 3, summon8Single
                );

            actions.AddRange(new BlueprintAiCastSpell[] { castSummon7, castSummon8 });

            // Attack
            actions.Add(library.Get <BlueprintAiAction>("866ffa6c34000cd4a86fb1671f86c7d8"));//simple attack

            brain.Actions = actions.ToArray();
            brain.name    = "Risia.Brain";
            library.AddAsset(brain, OtherUtils.GetMd5("Risia.Boss.Brain"));
            risiaBoss.Brain = brain;
        }