private void InitializeAbilities(Apparel abilityApparel) { if (abilityApparel != null && abilityApparel.Wearer != null && MagicAbilities != null && MagicAbilities.Count > 0) { CompAbilityUser comp = abilityApparel.TryGetComp <CompAbilityUser>(); if (comp != null) { foreach (AbilityUser.AbilityDef abilityDef in MagicAbilities) { comp.RemoveApparelAbility(abilityDef); comp.AddApparelAbility(abilityDef); } } //AbilityUserMod.Notify_ApparelRemoved_PostFix(abilityApparel.Wearer.apparel, abilityApparel); //AbilityUserMod.Notify_ApparelAdded_PostFix(abilityApparel.Wearer.apparel, abilityApparel); this.abilitiesInitialized = true; } }
public void PostCastShot(bool inResult) { if (inResult) { List <Apparel> apparel = this.CasterPawn.apparel.WornApparel; if (apparel != null) { for (int i = 0; i < apparel.Count; i++) { Apparel item = apparel[i]; if (item != null && item.def == TorannMagicDefOf.TM_Artifact_OrbOfSouls_Full) { item.SplitOff(1).Destroy(DestroyMode.Vanish); } } } CompAbilityUser comp = this.CasterPawn.GetComp <CompAbilityUser>(); if (comp != null) { comp.RemoveApparelAbility(TorannMagicDefOf.TM_Artifact_TraitInfuse); } } }