Пример #1
0
        private WorldsGenerator(World world, int width)
        {
            var meleeLookupRadius    = width / 10;
            var horsemanLookupRadius = width / 6;
            var archerLookupRadius   = width / 2;

            var meleeFightStrategy = new MeleeFightStrategy(world);
            var fireStrategy       = new FireStrategy(world);

            IStrategy up   = new DefaultMoveStrategy(1, 0, world);
            IStrategy down = new DefaultMoveStrategy(-1, 0, world);

            _meleeStrategiesUp   = new StrategySet(meleeFightStrategy, new MoveToEnemyStrategy(world, meleeLookupRadius), up);
            _meleeStrategiesDown = new StrategySet(meleeFightStrategy, new MoveToEnemyStrategy(world, meleeLookupRadius), down);

            IStrategy horseUp   = new HorseMoveStrategy(1, 0, world);
            IStrategy horseDown = new HorseMoveStrategy(-1, 0, world);

            _strategiesHorseUp   = new StrategySet(meleeFightStrategy, new MoveToEnemyStrategy(world, horsemanLookupRadius), horseUp);
            _strategiesHorseDown = new StrategySet(meleeFightStrategy, new MoveToEnemyStrategy(world, horsemanLookupRadius), horseDown);

            _archerStrategiesUp   = new StrategySet(fireStrategy, meleeFightStrategy, new MoveToEnemyStrategy(world, archerLookupRadius), up);
            _archerStrategiesDown = new StrategySet(fireStrategy, meleeFightStrategy, new MoveToEnemyStrategy(world, archerLookupRadius), down);

            _world = world;
        }
Пример #2
0
 protected virtual void FireBullets()
 {
     if (CanFire(FirePosition))
     {
         var bullets = FireStrategy.GetBullets(FirePosition);
         PlayFireSound();
     }
 }
Пример #3
0
 protected sealed override void OnEnemyActivate()
 {
     FireStrategy.Reset();
     OnFireStrategyEnemyActivate();
 }