Пример #1
0
    public void Init()
    {
        FinalPoint           = SplineController.FinalPoint;
        ExitPoint            = SplineController.ExitPoint;
        initialFinalPointpos = FinalPoint.transform.position;
        initialExitPointPos  = ExitPoint.transform.position;
        TargetBank           = SplineController.TargetBank;
        SplineMovement.Initialize(this);
        SplineMovement.onTargetPositionReached += SetOnPositionReachedTrue;
        onBehaviorStart += SplineMovement.OnMovementStart;
        onBehaviorEnd   += SplineMovement.OnMovementEnd;
        onBehaviorStart += delegate(Effectable effectable, Vector2 vector2) { SetInitialFinalPointPosition(); };
        onBehaviorStart += StartRenderingSpline;
        onBehaviorEnd   += StopRenderingSpline;
        onBehaviorEnd   += ResetSpline;
        foreach (var effect in SplineEffect)
        {
            effect.InitEffect(SplineController);
            onBehaviorStart += effect.OnEffectStart;
            onBehaviorEnd   += effect.OnEffectEnd;
            if (effect.EffectStartsOnTargetPositionReached)
            {
                onPosReachedAttack += effect.OnEffectTrigger;
            }
            else
            {
                onConcurrentAttack += effect.OnEffectTrigger;
            }
        }

        InitEffectAnimation();
    }
Пример #2
0
 //Requires range detector
 public static void BeamDamageOnArea(EffectableTargetBank effectableTargetBank, int damage, ref Effectable[] effectablesArray)
 {
     foreach (var effectable in effectablesArray)
     {
         if (effectable == null)
         {
             continue;
         }
         effectable.ApplyDamage(damage);
     }
 }