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(); }
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]); } }