public bool AddFriendlyAura(BaseCharacterMono source, AuraEffect auraEffect) { var aura = GeneralMethods.CopyObject(auraEffect); var foundFriendlyAura = FriendlyAuras.FirstOrDefault(a => a.AuraEffect.SkillId == aura.SkillId); var foundSelfAura = AuraEffects.FirstOrDefault(a => a.SkillId == aura.SkillId); var canAddAura = foundFriendlyAura == null && foundSelfAura == null; bool active; if (canAddAura) { var friendlyAura = new FriendlyAura { SourceCharacter = source, AuraEffect = aura }; FriendlyAuras.Add(friendlyAura); CustomVariableHandler.HandleCvarSetters(aura.PassiveEffect.CustomVariableSetters); active = true; DestroyHelper destroyCondition; AddEffectPrefabs(aura.PassiveEffect, out destroyCondition, false); if (destroyCondition != null) { destroyCondition.Init(DestroyCondition.FriendlyAuraNotAvailable, CharacterMono.Controller, aura.SkillId); } FullUpdateStats(); } else { active = true; } return(active); }
public void RemoveFriendlyAura(FriendlyAura friendlyAura) { RemoveFriendlyAura(friendlyAura.AuraEffect.SkillId); }