private static FightState GameBeginningDecision() { if (StaticValues.Player.Mana < GameHandling.Settings.ManaTillFirstAttack) { if (EnemyCharacterHandling.IsAnEnemyOnOurSide()) { GameBeginning = false; } return(FightState.START); } else { GameBeginning = false; if (PlaygroundPositionHandling.IsPositionOnTheRightSide(EnemyCharacterHandling.NearestEnemy.StartPosition)) { return(FightState.DRPT); } else { return(FightState.DLPT); } } }
private static Vector2f DKT() { if (cardToDeploy is CardCharacter) { switch ((cardToDeploy as CardCharacter).Type) { case TroopType.GroundAttack: case TroopType.Flying: case TroopType.Tank: Logger.Debug("DKT Troop-Name {0} ; CartType GroundAttack, Flying or Tank", cardToDeploy.Name); if (PlaygroundPositionHandling.IsPositionOnTheRightSide(EnemyCharacterHandling.NearestEnemy.StartPosition)) { return(PlayerCharacterHandling.KingTower.StartPosition + new Vector2f(1000, 0)); } else { return(PlayerCharacterHandling.KingTower.StartPosition - new Vector2f(1000, 0)); } case TroopType.Ranger: case TroopType.AirAttack: case TroopType.AOEAttackGround: case TroopType.AOEAttackFlying: case TroopType.Damager: Vector2f position = PositionHelper.AddYInDirection(PlayerCharacterHandling.KingTower.StartPosition, PlayerProperties.PlayerPosition); if (PlaygroundPositionHandling.IsPositionOnTheRightSide(EnemyCharacterHandling.NearestEnemy.StartPosition)) { return(position + new Vector2f(300, 0)); } else { return(position - new Vector2f(300, 0)); } default: break; } } if (PlaygroundPositionHandling.IsPositionOnTheRightSide(EnemyCharacterHandling.NearestEnemy.StartPosition)) { return(PlayerCharacterHandling.KingTower.StartPosition + new Vector2f(1000, 0)); } else { return(PlayerCharacterHandling.KingTower.StartPosition - new Vector2f(1000, 0)); } }
private static FightState EnemyHasCharsOnTheFieldDecision() { if (PlayerCharacterHandling.PrincessTower.Count() > 1) { if (PlaygroundPositionHandling.IsPositionOnTheRightSide(EnemyCharacterHandling.NearestEnemy.StartPosition)) { return(FightState.DRPT); } else { return(FightState.DLPT); } } else { return(FightState.DKT); } }
private static FightState DefenseDecision() { if (CurrentEnemyPrincessTowerState > 0) { return(FightState.DKT); } Character princessTower = EnemyCharacterHandling.GetEnemyPrincessTowerWithLowestHealth(StaticValues.Player.OwnerIndex); if (PlaygroundPositionHandling.IsPositionOnTheRightSide(princessTower.StartPosition)) { return(FightState.DRPT); } else { return(FightState.DLPT); } }