private void ConfigureTowerDefencePowerUpExecution(string powerUpOwner, GameState gameState)
        {
            strategy       = new TowerDefencePowerUpStrategy();
            powerUpCreator = new TowerDefencePowerUpCreator();
            targetTowers   = gameState.GetAllTowers().Where(tower => tower.owner == powerUpOwner).ToList();

            Console.WriteLine("We apply defense visitor");
            ApplyVisitor(_towerDefencePowerUpVisitor);
        }
        private void ConfigureRegeneratingTowerPowerUpExecution(string powerUpOwner, GameState gameState)
        {
            strategy       = new RegeneratingTowerPowerUpStrategy();
            powerUpCreator = new RegeneratingTowerPowerUpCreator();
            targetTowers   = gameState.GetRegeneratingTowers().Where(tower => tower.owner == powerUpOwner).ToList();

            Console.WriteLine("We apply regenerating visitor");
            ApplyVisitor(_regeneratingPowerUpVisitor);
        }
 public PowerupFlyweight(Texture texture, IPowerUpStrategy strategy)
 {
     this.Texture  = texture;
     this.Strategy = strategy;
 }
 private void ConfigureAttackingTowerPowerUpExecution(string powerUpOwner, GameState gameState)
 {
     strategy       = new AttackingTowerPowerUpStrategy();
     powerUpCreator = new AttackingTowerPowerUpCreator();
     targetTowers   = gameState.GetAttackingTowers().Where(tower => tower.owner == powerUpOwner).ToList();
 }
Exemple #5
0
 public PowerUp(PowerupFlyweight powerupFlyweight)
 {
     this.Texture         = powerupFlyweight.Texture;
     this.PowerUpStrategy = powerupFlyweight.Strategy;
 }
 public static String getKey(TextureIdentifier textureIdentifier, IPowerUpStrategy strategy)
 {
     return(String.Format("{0}__{1}", textureIdentifier.ToString(), strategy.GetType().Name));
 }
        public static PowerupFlyweight GetFlyweight(TextureIdentifier textureIdentifier, IPowerUpStrategy strategy)
        {
            String key = getKey(textureIdentifier, strategy);

            if (_powerupFlyweights.ContainsKey(key))
            {
                //OurLogger.Log($"Reusing flyweight {key}");
                GameApplication.defaultLogger.LogMessage(10, $"Reusing flyweight {key}");
                return(_powerupFlyweights[key]);
            }
            else
            {
                //OurLogger.Log($"Creating new flyweight {key}");
                GameApplication.defaultLogger.LogMessage(10, $"Creating flyweight {key}");

                PowerupFlyweight powerupFlyweight = new PowerupFlyweight(ResourceHolderFacade.GetInstance().Textures.Get(textureIdentifier), strategy);

                _powerupFlyweights.Add(key, powerupFlyweight);

                return(_powerupFlyweights[key]);
            }
        }