예제 #1
0
    public UnitData GetUnitDataWithUpgradeByID(string unitID)
    {
        UnitData unitData            = GetUnitDataByID(unitID);
        UnitData unitDataWithUpgrade = new UnitData();

        // withUpgrade = unitData;
        if (unitData == null)
        {
            return(null);
        }

        UnitUpgradeData unitUpgradeData = GetUnitUpgradeDataByID(unitID);

        unitDataWithUpgrade.UnitID      = unitData.UnitID;
        unitDataWithUpgrade.UnitName    = unitData.UnitName;
        unitDataWithUpgrade.Health      = Master.IncreaseValues(unitData.Health, unitUpgradeData.Health, increaseValuePercentPerUpgrade[UnitUpgradeType.Health]);
        unitDataWithUpgrade.Damage      = Master.IncreaseValues(unitData.Damage, unitUpgradeData.Damage, increaseValuePercentPerUpgrade[UnitUpgradeType.Damage]);
        unitDataWithUpgrade.AttackSpeed = unitData.AttackSpeed + unitUpgradeData.AttackSpeed * CalculateAttackSpeedPerUpgrade(unitData.AttackSpeed);
        //unitDataWithUpgrade.AttackSpeed = Master.IncreaseValues(unitData.AttackSpeed, unitUpgradeData.AttackSpeed, increaseValuePercentPerUpgrade[UnitUpgradeType.AttackSpeed]);
        unitDataWithUpgrade.Range                  = Master.IncreaseValues(unitData.Range, unitUpgradeData.Range, increaseValuePercentPerUpgrade[UnitUpgradeType.Range]);
        unitDataWithUpgrade.Critical               = Master.IncreaseValues(unitData.Critical, unitUpgradeData.Critical, increaseValuePercentPerUpgrade[UnitUpgradeType.Critical]);
        unitDataWithUpgrade.NumberOfAmmoToReload   = unitData.NumberOfAmmoToReload;
        unitDataWithUpgrade.NumberOfShootToUpgrade = unitData.NumberOfShootToUpgrade;
        unitDataWithUpgrade.Price                  = unitData.Price;
        unitDataWithUpgrade.TimeCountdownSelect    = unitData.TimeCountdownSelect;
        unitDataWithUpgrade.UnlockAtLevel          = unitData.UnlockAtLevel;

        return(unitDataWithUpgrade);
    }
예제 #2
0
    public int GetCurrentUpgradedStats(string unitID, string upgradeType)
    {
        int             currentUpgardeValue     = 0;
        UnitUpgradeData currentUnitUpgradedData = GetUnitUpgradeDataByID(unitID);

        if (upgradeType == UnitUpgradeType.Health)
        {
            currentUpgardeValue = currentUnitUpgradedData.Health;
        }

        if (upgradeType == UnitUpgradeType.Damage)
        {
            currentUpgardeValue = currentUnitUpgradedData.Damage;
        }

        if (upgradeType == UnitUpgradeType.AttackSpeed)
        {
            currentUpgardeValue = currentUnitUpgradedData.AttackSpeed;
        }

        if (upgradeType == UnitUpgradeType.Range)
        {
            currentUpgardeValue = currentUnitUpgradedData.Range;
        }

        if (upgradeType == UnitUpgradeType.Critical)
        {
            currentUpgardeValue = currentUnitUpgradedData.Critical;
        }
        return(currentUpgardeValue);
    }
예제 #3
0
 public void LoadUnitUpgradeData()
 {
     listUnitUpgradeData.Clear();
     for (int i = 0; i < unitDataCollection.ListUnitsData.Count; i++)
     {
         string          unitID          = unitDataCollection.ListUnitsData[i].UnitID;
         UnitUpgradeData unitUpgradeData = new UnitUpgradeData();
         string          firstParam      = "Unit_" + unitID + "_Upgrade_";
         unitUpgradeData.UnitID      = unitID;
         unitUpgradeData.Health      = PlayerPrefs.GetInt(firstParam + UnitUpgradeType.Health, 0);
         unitUpgradeData.Damage      = PlayerPrefs.GetInt(firstParam + UnitUpgradeType.Damage, 0);
         unitUpgradeData.AttackSpeed = PlayerPrefs.GetInt(firstParam + UnitUpgradeType.AttackSpeed, 0);
         unitUpgradeData.Range       = PlayerPrefs.GetInt(firstParam + UnitUpgradeType.Range, 0);
         unitUpgradeData.Critical    = PlayerPrefs.GetInt(firstParam + UnitUpgradeType.Critical, 0);
         listUnitUpgradeData.Add(unitUpgradeData);
     }
 }