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))); } }
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]; }
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; }