コード例 #1
0
        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);
        }
コード例 #2
0
 public void RemoveFriendlyAura(FriendlyAura friendlyAura)
 {
     RemoveFriendlyAura(friendlyAura.AuraEffect.SkillId);
 }