Exemplo n.º 1
0
    // Use this for initialization
    void Start()
    {
        upgradesObj = new EmptyTowerUpgrade();
        TowerUpgradeType upgradesCopy = upgrades;
        ITowerUpgrade    buffer;

        while (upgradesCopy != 0)
        {
            buffer      = TowerUpgrade.AddUpgrade(upgradesObj, ref upgradesCopy);
            upgradesObj = buffer;
        }
        if (tower != null)
        {
            upgradesObj.Effect(tower);
        }
    }
Exemplo n.º 2
0
    public static ITowerUpgrade AddUpgrade(ITowerUpgrade prev, ref TowerUpgradeType type)
    {
        if ((type & TowerUpgradeType.DAMAGE) != 0)
        {
            type &= ~TowerUpgradeType.DAMAGE;
            return(new DamageUpgrade(prev));
        }
        if ((type & TowerUpgradeType.ATTACK_SPEED) != 0)
        {
            type &= ~TowerUpgradeType.ATTACK_SPEED;
            return(new AttackSpeedUpgrade(prev));
        }
        if ((type & TowerUpgradeType.REWARD) != 0)
        {
            type &= ~TowerUpgradeType.REWARD;
            return(new RewardUpgrade(prev));
        }

        return(new EmptyTowerUpgrade());
    }
Exemplo n.º 3
0
 public TowerUpgrade(int cost, TowerStats stats, TowerUpgradeType type)
 {
     this.cost  = cost;
     this.stats = stats;
     this.type  = type;
 }