/// <summary> /// Сравнивает агрессивную стратегию /// </summary> private static int CompareAgressive(BattleStrategy rivalStrategy) { switch (rivalStrategy) { case BattleStrategy.Common: return(-1); case BattleStrategy.Agressive: return(0); case BattleStrategy.Self: return(1); case BattleStrategy.OnFacts: return(1); case BattleStrategy.Relatives: return(1); case BattleStrategy.Philosophy: return(-1); case BattleStrategy.Mock: return(-1); default: throw new ArgumentOutOfRangeException(nameof(rivalStrategy), rivalStrategy, null); } }
/// <summary> /// Сравнивает стратегии /// Возвращает 1, если победил игрок /// - 1, если победил противник /// и 0 - если нет победителей /// </summary> public static int Compare(BattleStrategy playerStrategy, BattleStrategy rivalStrategy) { switch (playerStrategy) { case BattleStrategy.Common: return(CompareCommon(rivalStrategy)); case BattleStrategy.Agressive: return(CompareAgressive(rivalStrategy)); case BattleStrategy.Self: return(CompareSefl(rivalStrategy)); case BattleStrategy.OnFacts: return(CompareOnFacts(rivalStrategy)); case BattleStrategy.Relatives: return(CompareRelatives(rivalStrategy)); case BattleStrategy.Philosophy: return(ComparePhilosophy(rivalStrategy)); case BattleStrategy.Mock: return(CompareMock(rivalStrategy)); default: throw new ArgumentOutOfRangeException(nameof(playerStrategy), playerStrategy, null); } }
public List <Entity> generateEnemies(int numberOfEnemies) { BattleStrategy strategyOfMonsters = strategies [Random.Range(0, strategies.ToArray().Length)]; List <Entity> enemies = new List <Entity> (); for (int i = 1; i <= numberOfEnemies; ++i) { Entity enemy = new Enemy("Enemy " + i, teamPlayer, strategyOfMonsters); enemy.addExperience(2000); enemy.sprite = randomSprites [Random.Range(0, randomSprites.Count - 1)]; enemies.Add(enemy); } return(enemies); }
/// <summary> /// Сравнивает стратегии и возвращает очки /// </summary> private static int GetStrategyPoint(BattleStrategy playerStrategy) { var strategies = Enum.GetValues(typeof(BattleStrategy)); var rivalStrategy = (BattleStrategy)strategies.GetValue(Random.Range(0, strategies.Length)); var strategyPoint = BattleStrategyComparer.Compare(playerStrategy, rivalStrategy); switch (strategyPoint) { case 0: return(20); case 1: return(40); default: return(0); } }
public Enemy(string name, List <Entity> battlePlayers, BattleStrategy strategy) : base(name) { magicSkills = new List <Spell> (); this.battlePlayers = battlePlayers; this.strategy = strategy; }
/// <summary> /// Обработчик завершения изучения нового стиля /// </summary> private void NewBattleStrategyFinish(BattleStrategy strategy) { PlayerManager.GetSkills().BattleStrategies.Add(strategy); ShowActionResult($"Изучена новая стратегия: {strategy.GetDescription()}"); }