Пример #1
0
 public override string DraggedIntoMinionSlot(PositionVO _target)
 {
     Minion tHero = MinionController.Instance.GetHeroByPlayerType(PlayerType);
     if (tHero == null)
         return "No Hero";
     Minion tMinion = MinionController.Instance.GetMinionByPosition(_target);
     TargetStrategy tTargetStrategy = new CloseRangeTargetStrategy();
     TargetResult tTargetResult = tTargetStrategy.Target(tHero, _target);
     switch (tTargetResult)
     {
         case TargetResult.InvalidTarget:
             return "No Valid Minion";
         case TargetResult.OutOfRange:
             return "Out of Range";
         case TargetResult.SamePlayer:
             return "Same Player";
         case TargetResult.TargetGuarded:
             return "Target Guarded";
         case TargetResult.ValidTarget:
         case TargetResult.CloseRangeTargetBack:
             int energy = GameManager.Instance.GetPlayerByType(PlayerType).GetEnergy(EnergyName);
             int targetLostHealth = Mathf.Clamp(tMinion.MaxHealth - tMinion.Health, 0, tMinion.MaxHealth);
             tMinion.Hurt(new HurtVO(energy + 8 + targetLostHealth / 5, 0, 0));
             return "Success";
         default:
             return "Unknown Result";
     }
 }
Пример #2
0
 public override string DraggedIntoMinionSlot(PositionVO _target)
 {
     Minion tHero = MinionController.Instance.GetHeroByPlayerType(PlayerType);
     if (tHero == null)
         return "No Hero";
     Minion tMinion = MinionController.Instance.GetMinionByPosition(_target);
     TargetStrategy tTargetStrategy = new CloseRangeTargetStrategy();
     TargetResult tTargetResult = tTargetStrategy.Target(tHero, _target);
     switch (tTargetResult)
     {
         case TargetResult.InvalidTarget:
             return "No Valid Minion";
         case TargetResult.OutOfRange:
             return "Out of Range";
         case TargetResult.SamePlayer:
             return "Same Player";
         case TargetResult.TargetGuarded:
             return "Target Guarded";
         case TargetResult.ValidTarget:
         case TargetResult.CloseRangeTargetBack:
             tMinion.Hurt(new HurtVO(30, 0, 0));
             return "Success";
         default:
             return "Unknown Result";
     }
 }
Пример #3
0
 public override string DraggedIntoMinionSlot(PositionVO _target)
 {
     List<Minion> tListOfHero = MinionController.Instance.GetHeroesByPlayerType(PlayerType);
     if (tListOfHero == null || tListOfHero.Count == 0) return "No Hero";
     Minion tHero = tListOfHero[0];
     Minion tMinion = MinionController.Instance.GetMinionByPosition(_target);
     TargetStrategy tTargetStrategy = new CloseRangeTargetStrategy();
     TargetResult tTargetResult = tTargetStrategy.Target(tHero, _target);
     switch(tTargetResult)
     {
         case TargetResult.InvalidTarget:
             return "No Valid Minion";
         case TargetResult.OutOfRange:
             return "Out of Range";
         case TargetResult.SamePlayer:
             return "Same Player";
         case TargetResult.TargetGuarded:
             return "Target Guarded";
         case TargetResult.CloseRangeTargetBack:
             tMinion.Hurt(new HurtVO(5, 0, 0));
             return "Success";
         case TargetResult.ValidTarget:
             tMinion.Hurt(new HurtVO(5, 0, 0));
             List<PositionVO> TargetBacklinePositions = MinionController.Instance.GetPositionsByLine(_target.PlayerType, MinionSlotPosition.Backward);
             if (TargetBacklinePositions.Count != 0 && TargetBacklinePositions != null)
             {
                 int randomValue = Random.Range(0, TargetBacklinePositions.Count - 1);
                 PositionVO tKnockedBackTargetPosition = TargetBacklinePositions[randomValue];
                 Minion tTargetMinion = MinionController.Instance.GetMinionByPosition(tKnockedBackTargetPosition);
                 if (tTargetMinion == null)
                 {
                     tMinion.MoveToMinionSlot(tKnockedBackTargetPosition);
                 }
                 else
                 {
                     tTargetMinion.Hurt(new HurtVO(5, 0, 0));
                 }
                 return "Success";
             }
             else
             {
                 return "Unknown Error";
             }
         default:
             return "Unknown Result";
     }
 }
Пример #4
0
 public override InputResult CanPutIntoPosition(PositionVO _target)
 {
     Minion tHero = MinionController.Instance.GetHeroByPlayerType(PlayerType);
     if (tHero == null)
         return new InputResult(false, "No Hero");
     TargetStrategy tTargetStrategy = new CloseRangeTargetStrategy();
     TargetResult tTargetResult = tTargetStrategy.Target(tHero, _target);
     switch (tTargetResult)
     {
         case TargetResult.InvalidTarget:
             return new InputResult(false, "No Valid Minion");
         case TargetResult.OutOfRange:
             return new InputResult(false, "Out of Range");
         case TargetResult.SamePlayer:
             return new InputResult(false, "Same Player");
         case TargetResult.TargetGuarded:
             return new InputResult(false, "Target Guarded");
         case TargetResult.ValidTarget:
         case TargetResult.CloseRangeTargetBack:
             return new InputResult(true, "Success");
         default:
             return new InputResult(false, "Unknown Result");
     }
 }