Exemplo n.º 1
0
 void ResetTree(EquipmentUpgradeTreeSlot treeSlot)
 {
     treeSlot.currentEquipment.ResetEquipment();
     for (int i = 0; i < treeSlot.upgrades.Count; i++)
     {
         treeSlot.upgrades[i].Reset();
     }
 }
Exemplo n.º 2
0
    void InitializeTree(EquipmentUpgradeTreeSlot treeSlot, Hero hero, HeroEquipmentSlot slot)
    {
        switch (slot)
        {
        case HeroEquipmentSlot.Weapon:
            float discountWep = 1 - DarkestDungeonManager.Campaign.Estate.Blacksmith.Discount;
            var   weaponTree  = DarkestDungeonManager.Data.UpgradeTrees[hero.ClassStringId + ".weapon"];
            treeSlot.currentEquipment.UpdateEquipment(hero.Weapon, hero);
            int lastWepIndex = -1;
            for (int i = 0; i < treeSlot.upgrades.Count; i++)
            {
                treeSlot.upgrades[i].Initialize(hero, weaponTree, weaponTree.Upgrades[i] as HeroUpgrade,
                                                hero.HeroClass.Weapons.Find(wep => wep.UpgradeLevel == i + 2));
                var status = DarkestDungeonManager.Campaign.Estate.GetUpgradeStatus(weaponTree.Id, hero, treeSlot.upgrades[i].Upgrade);
                TownManager.UpdateUpgradeSlot(status, treeSlot.upgrades[i], discountWep);
                if (status == UpgradeStatus.Purchased)
                {
                    lastWepIndex = i;
                }
            }
            treeSlot.UpdateConnector(lastWepIndex);
            break;

        case HeroEquipmentSlot.Armor:
            float discountArm = 1 - DarkestDungeonManager.Campaign.Estate.Blacksmith.Discount;
            var   armorTree   = DarkestDungeonManager.Data.UpgradeTrees[hero.ClassStringId + ".armour"];
            treeSlot.currentEquipment.UpdateEquipment(hero.Armor, hero);
            int lastArmIndex = -1;
            for (int i = 0; i < treeSlot.upgrades.Count; i++)
            {
                treeSlot.upgrades[i].Initialize(hero, armorTree, armorTree.Upgrades[i] as HeroUpgrade,
                                                hero.HeroClass.Armors.Find(arm => arm.UpgradeLevel == i + 2));
                var status = DarkestDungeonManager.Campaign.Estate.GetUpgradeStatus(armorTree.Id, hero, treeSlot.upgrades[i].Upgrade);
                TownManager.UpdateUpgradeSlot(status, treeSlot.upgrades[i], discountArm);
                if (status == UpgradeStatus.Purchased)
                {
                    lastArmIndex = i;
                }
            }
            treeSlot.UpdateConnector(lastArmIndex);
            break;
        }
    }
    private void UpdateTree(EquipmentUpgradeTreeSlot treeSlot, Hero hero, HeroEquipmentSlot slot)
    {
        switch (slot)
        {
        case HeroEquipmentSlot.Weapon:
            float discountWep = 1 - DarkestDungeonManager.Campaign.Estate.Blacksmith.Discount;
            var   weaponTree  = DarkestDungeonManager.Data.UpgradeTrees[hero.ClassStringId + ".weapon"];
            treeSlot.CurrentEquipment.UpdateEquipment(hero.Weapon, hero);

            int lastWepIndex = -1;
            for (int i = 0; i < treeSlot.Upgrades.Count; i++)
            {
                var status = DarkestDungeonManager.Campaign.Estate.GetUpgradeStatus(weaponTree.Id, hero, treeSlot.Upgrades[i].Upgrade);
                EstateSceneManager.Instanse.TownManager.UpdateUpgradeSlot(status, treeSlot.Upgrades[i], discountWep);
                if (status == UpgradeStatus.Purchased)
                {
                    lastWepIndex = i;
                }
            }
            treeSlot.UpdateConnector(lastWepIndex);
            break;

        case HeroEquipmentSlot.Armor:
            float discountArm = 1 - DarkestDungeonManager.Campaign.Estate.Blacksmith.Discount;
            var   armorTree   = DarkestDungeonManager.Data.UpgradeTrees[hero.ClassStringId + ".armour"];
            treeSlot.CurrentEquipment.UpdateEquipment(hero.Armor, hero);
            int lastArmIndex = -1;
            for (int i = 0; i < treeSlot.Upgrades.Count; i++)
            {
                var status = DarkestDungeonManager.Campaign.Estate.GetUpgradeStatus(armorTree.Id, hero, treeSlot.Upgrades[i].Upgrade);
                EstateSceneManager.Instanse.TownManager.UpdateUpgradeSlot(status, treeSlot.Upgrades[i], discountArm);
                if (status == UpgradeStatus.Purchased)
                {
                    lastArmIndex = i;
                }
            }
            treeSlot.UpdateConnector(lastArmIndex);
            break;
        }
    }