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"; } }
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"; } }
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"; } }
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"); } }