예제 #1
0
            public override void DoAction(float strength, SquadContainer teammates, SquadContainer enemies, SimpleCallbackDelegate onOverCallback)
            {
                if (enemies == null)
                {
                    Utils.Logger.GetInstance().Error("enemies is null");
                    onOverCallback();
                    return;
                }
                SquadUnitController[] frontlineEnemies = enemies.GetFrontLineUnits();
                if (frontlineEnemies == null || frontlineEnemies.Length <= 0)
                {
                    Utils.Logger.GetInstance().Message("failed to get frontline enemies");
                    onOverCallback();
                    return;
                }
                Utils.Logger.GetInstance().Message("frontlineEnemies.Length: " + frontlineEnemies.Length);
                SquadUnitController enemy = frontlineEnemies[Randomizer.Range(0, frontlineEnemies.Length)];

                if (enemy == null || enemy.Damagable == null)
                {
                    onOverCallback();
                    return;
                }
                AttackAnimation.DoAnimation(enemy.transform.position, () =>
                {
                    enemy.Damagable.ReceiveDamage(strength);
                }, () =>
                {
                    onOverCallback();
                });
            }
예제 #2
0
 public override void DoAction(float strength, SquadContainer teammates, SquadContainer enemies, SimpleCallbackDelegate onOverCallback)
 {
     if (teammates == null)
     {
         Utils.Logger.GetInstance().Error("teammates is null");
         onOverCallback();
         return;
     }
     SquadUnitController[] teammatesArray = teammates.GetAllUnits();
     if (teammatesArray == null || teammatesArray.Length <= 0)
     {
         Utils.Logger.GetInstance().Message("failed to get teammates");
         onOverCallback();
         return;
     }
     AttackAnimation.DoAnimation(teammatesArray[0].transform.parent.position, () =>
     {
         foreach (SquadUnitController teammate in teammatesArray)
         {
             if (teammate.Healable != null)
             {
                 teammate.Healable.ReceiveHeal(strength);
             }
         }
     }, () =>
     {
         onOverCallback();
     });
 }
예제 #3
0
 public abstract void DoAction(float strength, SquadContainer teammates, SquadContainer enemies, SimpleCallbackDelegate onOverCallback);