Beispiel #1
0
    public void giveStatUpgrade(StatUpgrade statUpgrade)
    {
        statUpgrades.Add(statUpgrade);
        float pendingMaxHealth = statUpgrades.Sum(s => s.health) + baseHealth;

        if (pendingMaxHealth > maxHealth)
        {
            health += pendingMaxHealth - maxHealth;
        }
        else if (health > pendingMaxHealth)
        {
            health = pendingMaxHealth;
        }
        maxHealth = pendingMaxHealth;
        healthChanged.Invoke();
        damage    = statUpgrades.Sum(s => s.damage) + baseAttack;
        shotSpeed = statUpgrades.Sum(s => s.fireRate) + baseShotSpeed;
        speed     = statUpgrades.Sum(s => s.speed) + baseSpeed;
    }
Beispiel #2
0
        public UpgradeNode(UpgradeNode reference)
        {
            nodeID = Find.UniqueIDsManager.GetNextThingID();

            label                       = reference.label;
            upgradeID                   = reference.upgradeID;
            rootNodeLabel               = reference.rootNodeLabel;
            informationHighlighted      = reference.informationHighlighted;
            disableIfUpgradeNodeEnabled = reference.disableIfUpgradeNodeEnabled;
            upgradeCategory             = reference.upgradeCategory;
            values                      = reference.values;
            cannonsUnlocked             = reference.cannonsUnlocked;
            cost = reference.cost;
            researchPrerequisites = reference.researchPrerequisites;
            prerequisiteNodes     = reference.prerequisiteNodes;
            imageFilePath         = reference.imageFilePath;
            gridCoordinate        = reference.gridCoordinate;
            upgradeTime           = reference.upgradeTime;
        }
        private void DrawStats(StatUpgrade node)
        {
            float barWidth = screenWidth - LeftWindowEdge - EdgePadding * 2 - BottomDisplayedOffset - 1f;             //219

            foreach (StatUpgradeCategoryDef statUpgrade in ValidCategories())
            {
                float hoveredValue = 0f;

                if (node != null && node.values.TryGetValue(statUpgrade, out float value))
                {
                    hoveredValue = value;
                }

                //Rect armorStatRect = new Rect(LeftWindowEdge + EdgePadding, BottomWindowEdge + EdgePadding, barWidth, 20f);
                //HelperMethods.FillableBarLabeled(armorStatRect, SelPawnUpgrade.ArmorPoints / MaxArmorValueDisplayed, "VehicleMaxArmor".Translate(), StatUpgradeCategory.Armor,
                //    HelperMethods.FillableBarInnerTex, HelperMethods.FillableBarBackgroundTex, SelPawnUpgrade.ArmorPoints, armorAdded, armorAdded / MaxArmorValueDisplayed);

                //Rect speedStatRect = new Rect(LeftWindowEdge + EdgePadding, armorStatRect.y + 25f, barWidth, 20f);
                //HelperMethods.FillableBarLabeled(speedStatRect, SelPawnUpgrade.ActualMoveSpeed / MaxSpeedValueDisplayed, "VehicleMaxSpeed".Translate(), StatUpgradeCategory.Speed,
                //    HelperMethods.FillableBarInnerTex, HelperMethods.FillableBarBackgroundTex, SelPawnUpgrade.ActualMoveSpeed, speedAdded, speedAdded / MaxSpeedValueDisplayed);

                //Rect cargoCapacityStatRect = new Rect(LeftWindowEdge + EdgePadding, speedStatRect.y + 25f, barWidth, 20f);
                //HelperMethods.FillableBarLabeled(cargoCapacityStatRect, SelPawnUpgrade.CargoCapacity / MaxCargoValueDisplayed, "VehicleCargoCapacity".Translate(), StatUpgradeCategory.CargoCapacity,
                //    HelperMethods.FillableBarInnerTex, HelperMethods.FillableBarBackgroundTex, SelPawnUpgrade.CargoCapacity, cargoAdded, cargoAdded / MaxCargoValueDisplayed);

                //if (SelPawnUpgrade.CompFueledTravel != null)
                //{
                //    Rect fuelEfficiencyStatRect = new Rect(LeftWindowEdge + EdgePadding, cargoCapacityStatRect.y + 25f, barWidth, 20f);
                //    HelperMethods.FillableBarLabeled(fuelEfficiencyStatRect, SelPawnUpgrade.CompFueledTravel.FuelEfficiency / MaxFuelEffValueDisplayed,
                //        "VehicleFuelCost".Translate(), StatUpgradeCategory.FuelConsumptionRate, HelperMethods.FillableBarInnerTex, HelperMethods.FillableBarBackgroundTex,
                //        SelPawnUpgrade.CompFueledTravel.FuelEfficiency, fuelEffAdded, fuelEffAdded / MaxFuelEffValueDisplayed);

                //    Rect fuelCapacityStatRect = new Rect(LeftWindowEdge + EdgePadding, fuelEfficiencyStatRect.y + 25f, barWidth, 20f);
                //    HelperMethods.FillableBarLabeled(fuelCapacityStatRect, SelPawnUpgrade.CompFueledTravel.FuelCapacity / MaxFuelCapValueDisplayed,
                //        "VehicleFuelCapacity".Translate(), StatUpgradeCategory.FuelCapacity, HelperMethods.FillableBarInnerTex, HelperMethods.FillableBarBackgroundTex,
                //        SelPawnUpgrade.CompFueledTravel.FuelCapacity, fuelCapAdded, fuelCapAdded / MaxFuelCapValueDisplayed);
                //}
            }
        }