Exemplo n.º 1
0
 public override void Core()
 {
     if (this._blackHoleTimer.isActive)
     {
         this._blackHoleTimer.Core(1f);
         if (this._blackHoleTimer.isTimeUp)
         {
             this.KillBlackHole(true);
         }
         else
         {
             for (int i = 0; i < this._insideActors.Count; i++)
             {
                 BaseAbilityActor targetActor = this._insideActors[i];
                 if ((targetActor != null) && targetActor.IsActive())
                 {
                     if ((this._pullVelocity > 0f) && (Miscs.DistancForVec3IgnoreY(targetActor.entity.XZPosition, this._fieldActor.triggerField.transform.position) < 0.3f))
                     {
                         this.RemoveAdditiveVelocity(targetActor);
                     }
                     else
                     {
                         Vector3 additiveVelocity = this._fieldActor.triggerField.transform.position - targetActor.entity.XZPosition;
                         additiveVelocity.y = 0f;
                         additiveVelocity.Normalize();
                         this.SetAdditiveVelocity(targetActor, additiveVelocity);
                     }
                 }
             }
         }
     }
 }
Exemplo n.º 2
0
 private void ApplyModifierOn(BaseAbilityActor actor, string[] modifiers)
 {
     if ((actor != null) && actor.IsActive())
     {
         for (int i = 0; i < modifiers.Length; i++)
         {
             actor.abilityPlugin.ApplyModifier(base.instancedAbility, modifiers[i]);
         }
     }
 }
Exemplo n.º 3
0
 private void ApplyModifierOn(BaseAbilityActor actor)
 {
     if ((actor != null) && actor.IsActive())
     {
         for (int i = 0; i < this.config.TargetModifiers.Length; i++)
         {
             actor.abilityPlugin.ApplyModifier(base.instancedAbility, this.config.TargetModifiers[i]);
         }
     }
 }
Exemplo n.º 4
0
        private bool OnHittingOther(EvtHittingOther evt)
        {
            bool flag = false;

            if (!evt.attackData.isAnimEventAttack)
            {
                return(false);
            }
            if (this._animEventIDs != null)
            {
                if (Miscs.ArrayContains <string>(this._animEventIDs, evt.animEventID))
                {
                    flag = true;
                }
            }
            else
            {
                flag = true;
            }
            if (flag)
            {
                BaseAbilityActor actor = Singleton <EventManager> .Instance.GetActor <BaseAbilityActor>(evt.toID);

                if ((actor == null) || !actor.IsActive())
                {
                    return(false);
                }
                Vector3 from  = base.actor.entity.transform.position - actor.entity.transform.position;
                float   num   = Vector3.Angle(base.actor.entity.transform.forward, actor.entity.transform.forward);
                float   num2  = Vector3.Angle(from, actor.entity.transform.forward);
                bool    flag2 = (num < this._forwardAngleRangeMax) && (num > this._forwardAngleRangeMin);
                bool    flag3 = (num2 < this._posAngleRangeMax) && (num2 > this._posAngleRangeMin);
                bool    flag4 = from.magnitude < this._backHitRange;
                if ((flag2 && flag3) && flag4)
                {
                    evt.attackData.addedDamageRatio += base.instancedAbility.Evaluate(this.config.BackDamageRatio);
                    base.actor.abilityPlugin.HandleActionTargetDispatch(this.config.Actions, base.instancedAbility, base.instancedModifier, base.actor, evt);
                }
            }
            return(true);
        }