Ejemplo n.º 1
0
        void SendDeath()
        {
            GameObject go = Fsm.GetOwnerDefaultTarget(gameObject);

            if (go == null)
            {
                return;
            }

            mActorCore = go.GetComponent <ActorCore>();

            if (mActorCore != null)
            {
                DamageMessage lDamage = DamageMessage.Allocate();
                mActorCore.OnKilled(lDamage);
                lDamage.Release();
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Adds an effect to the game object
        /// </summary>
        /// <param name="rObject">GameObject to add the effect to</param>
        protected void AddEffect(GameObject rTarget)
        {
            ActorCore lActorCore = rTarget.GetComponent <ActorCore>();

            if (lActorCore != null)
            {
                LifeCores.CauseDamage lEffect = lActorCore.GetActiveEffectFromSourceID <LifeCores.CauseDamage>(mNode.ID);
                if (lEffect != null)
                {
                    lEffect.Age = 0f;
                }
                else
                {
                    // Determine the damage
                    float lDamage = UnityEngine.Random.Range(_MinDamage, _MaxDamage);
                    if (_DamageFloatValueIndex >= 0 && _Spell.Data.FloatValues != null)
                    {
                        lDamage = _Spell.Data.FloatValues[_DamageFloatValueIndex];
                    }

                    // Setup the message
                    DamageMessage lMessage = DamageMessage.Allocate();
                    lMessage.DamageType       = DamageType;
                    lMessage.ImpactType       = ImpactType;
                    lMessage.Damage           = lDamage;
                    lMessage.AnimationEnabled = PlayAnimation;

                    lEffect           = LifeCores.CauseDamage.Allocate();
                    lEffect.Name      = EffectName;
                    lEffect.SourceID  = mNode.ID;
                    lEffect.ActorCore = lActorCore;
                    lEffect.Activate(TriggerDelay, MaxAge, lMessage);

                    lActorCore.Effects.Add(lEffect);
                }
            }
        }