Пример #1
0
    public Upgrade GetUpgrade(Enums.RoverUpgradeType rover, Enums.ShipUpgradeType ship)
    {
        Upgrade[] uT = rover != Enums.RoverUpgradeType.NULL ? roverUpgrades[rover] : shipUpgrades[ship];
        Upgrade   u  = rover != Enums.RoverUpgradeType.NULL ? uT[roverLevels[rover]] : uT[shipLevels[ship]];

        return(u);
    }
Пример #2
0
    public void SetPanelType(UpgradeType type, Enums.RoverUpgradeType r = Enums.RoverUpgradeType.NULL,
                             Enums.ShipUpgradeType s = Enums.ShipUpgradeType.NULL)
    {
        PanelUpgradeType = type;
        roverUpgrade     = r;
        shipUpgrade      = s;

        GetNode <Panel>("Background").GetNode <VBoxContainer>("VBox").GetNode <Button>("UpgradeButton").Text =
            "Upgrade " + (type.Equals(UpgradeType.ROVER) ? "Rover" : "Ship") + "!";
    }
Пример #3
0
    public bool CanUpgrade(Enums.RoverUpgradeType rover, Enums.ShipUpgradeType ship)
    {
        Upgrade u = GetUpgrade(rover, ship);

        foreach (Enums.GameResources r in Enum.GetValues(typeof(Enums.GameResources)))
        {
            if (resources[r] < u.Cost[r])
            {
                return(false);
            }
        }

        return(true);
    }
Пример #4
0
    public void UpgradeTech(Enums.RoverUpgradeType rover, Enums.ShipUpgradeType ship)
    {
        //Assumes CanUpgrade() returns true
        Upgrade u = GetUpgrade(rover, ship);

        if (rover != Enums.RoverUpgradeType.NULL)
        {
            roverLevels[rover]++;
        }

        foreach (Enums.GameResources r in Enum.GetValues(typeof(Enums.GameResources)))
        {
            resources[r] -= u.Cost[r];
        }
    }
Пример #5
0
    public Upgrade[] this[Enums.RoverUpgradeType index]
    {
        get
        {
            switch (index)
            {
            case Enums.RoverUpgradeType.SPEED: return(Speed);

            case Enums.RoverUpgradeType.TANK: return(Tank);

            case Enums.RoverUpgradeType.REGEN: return(Regen);

            case Enums.RoverUpgradeType.INVENTORY: return(Inventory);

            default: throw new IndexOutOfRangeException($"Index {index} out of range for {this.GetType().ToString()}");
            }
        }
    }
Пример #6
0
 public bool IsUpgradeMaxLevel(Enums.RoverUpgradeType rover, Enums.ShipUpgradeType ship)
 {
     return(rover != Enums.RoverUpgradeType.NULL ? roverLevels[rover] == MaxUpgradeLevel : shipLevels[ship] == MaxUpgradeLevel);
 }
Пример #7
0
 public Upgrade GetUpgrade(Enums.RoverUpgradeType rover, Enums.ShipUpgradeType ship)
 {
     return(rover != Enums.RoverUpgradeType.NULL ? roverUpgrades[rover][roverLevels[rover]] : shipUpgrades[ship][shipLevels[ship]]);
 }