Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
0
        /// <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);
            }
        }
Exemplo n.º 3
0
    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);
    }
Exemplo n.º 4
0
        /// <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);
            }
        }
Exemplo n.º 5
0
 public Enemy(string name, List <Entity> battlePlayers, BattleStrategy strategy) : base(name)
 {
     magicSkills        = new List <Spell> ();
     this.battlePlayers = battlePlayers;
     this.strategy      = strategy;
 }
Exemplo n.º 6
0
 /// <summary>
 /// Обработчик завершения изучения нового стиля
 /// </summary>
 private void NewBattleStrategyFinish(BattleStrategy strategy)
 {
     PlayerManager.GetSkills().BattleStrategies.Add(strategy);
     ShowActionResult($"Изучена новая стратегия: {strategy.GetDescription()}");
 }