Example #1
0
    public bool BuyUpgrade(string treeId, Hero hero, TownUpgrade upgrade, float discount, bool isFree)
    {
        if (!isFree && !CanPayPrice(upgrade.Cost, discount))
        {
            return(false);
        }

        if (!HeroPurchases.ContainsKey(hero.RosterId))
        {
            HeroPurchases.Add(hero.RosterId, new Dictionary <string, UpgradePurchases>());
        }

        if (!HeroPurchases[hero.RosterId].ContainsKey(treeId))
        {
            HeroPurchases[hero.RosterId].Add(treeId, new UpgradePurchases(treeId, upgrade.Code));
        }
        else
        {
            if (HeroPurchases[hero.RosterId][treeId].PurchasedUpgrades.Contains(upgrade.Code))
            {
                return(false);
            }

            HeroPurchases[hero.RosterId][treeId].PurchasedUpgrades.Add(upgrade.Code);
        }
        if (!isFree)
        {
            RemoveCurrency(upgrade.Cost, discount);
        }

        DarkestSoundManager.PlayOneShot("event:/ui/town/buy");
        return(true);
    }
 private string EmitSwapTitleDelegate(NPC npc, string input)
 {
     if (StarlightWorld.TownUpgrades.TryGetValue(npc.TypeName, out bool unlocked) && unlocked)
     {
         return(npc.GivenName + " the " + TownUpgrade.FromString(npc.TypeName)._title);
     }
     return(input);
 }
 private Texture2D EmitSwapTitleMenuDelegate(Texture2D input, NPC npc)
 {
     if (StarlightWorld.TownUpgrades.TryGetValue(npc.TypeName, out bool unlocked) && unlocked)
     {
         return(TownUpgrade.FromString(npc.TypeName).icon);
     }
     return(input);
 }
 private NetworkText EmitSwapTitleDeathDelegate(NetworkText input, NPC npc)
 {
     if (StarlightWorld.TownUpgrades.TryGetValue(npc.TypeName, out bool unlocked) && unlocked)
     {
         return(NetworkText.FromLiteral(npc.GivenName + " the " + TownUpgrade.FromString(npc.TypeName)._title + " was slain..."));
     }
     return(input);
 }
        private string EmitSwapTextMenuDelegate(string input, NPC npc, int x, int y)
        {
            bool hovering = Main.mouseX >= x && Main.mouseX <= x + Main.inventoryBackTexture.Width * Main.inventoryScale && Main.mouseY >= y && Main.mouseY <= y + Main.inventoryBackTexture.Height * Main.inventoryScale;

            if (hovering && string.IsNullOrEmpty(input) && Main.mouseItem.type == ItemID.None && StarlightWorld.TownUpgrades.TryGetValue(npc.TypeName, out bool unlocked) && unlocked)
            {
                return(npc.GivenName + " the " + TownUpgrade.FromString(npc.TypeName)._title);
            }
            return(input);
        }
        public void SetState(TownUpgrade state)
        {
            activeUpgrade = state;

            if (state != null)
            {
                button.displayString = state._buttonName;
            }

            OnInitialize();
        }
Example #7
0
    // Use this for initialization
    void Start()
    {
        tu           = GetComponent <TownUpgrade>();
        du           = GetComponent <DudeUpgrade>();
        slider.value = sliderVal;
        sc           = FindObjectOfType <SpeedControl>();
        ChangeSpeed(startSpeed);
        dude = FindObjectOfType <DudeController>();

        ec = GetComponent <EndingControl>();
    }
Example #8
0
        private string SetUpgradeUI(On.Terraria.NPC.orig_GetChat orig, NPC self)
        {
            if (StarlightWorld.TownUpgrades.TryGetValue(self.TypeName, out bool unlocked) && unlocked)
            {
                Instance.Chatbox.SetState(TownUpgrade.FromString(self.TypeName));
            }
            else
            {
                Instance.Chatbox.SetState(new LockedUpgrade());
            }

            return(orig(self));
        }
Example #9
0
        public void PopulateList()
        {
            quests.Clear();

            int offY = 0;

            foreach (KeyValuePair <string, bool> pair in StarlightWorld.TownUpgrades)
            {
                if (TownUpgrade.FromString(pair.Key) != null)
                {
                    AddQuestButton(new TownQuestItem(TownUpgrade.FromString(pair.Key)), offY);
                }
                offY += 28 + 6;
            }
        }
Example #10
0
    public UpgradeStatus GetUpgradeStatus(string treeId, TownUpgrade upgrade)
    {
        if (TownPurchases[treeId].PurchasedUpgrades.Contains(upgrade.Code))
        {
            return(UpgradeStatus.Purchased);
        }

        for (int i = 0; i < upgrade.Prerequisites.Count; i++)
        {
            if (!TownPurchases[upgrade.Prerequisites[i].TreeId].PurchasedUpgrades.
                Contains(upgrade.Prerequisites[i].RequirementCode))
            {
                return(UpgradeStatus.Locked);
            }
        }
        return(UpgradeStatus.Available);
    }
        private string SetUpgradeUI(On.Terraria.NPC.orig_GetChat orig, NPC self)
        {
            if (StarlightWorld.TownUpgrades.TryGetValue(self.TypeName, out bool unlocked))
            {
                if (unlocked)
                {
                    UILoader.GetUIState <ChatboxOverUI>().SetState(TownUpgrade.FromString(self.TypeName));
                }
                else
                {
                    UILoader.GetUIState <ChatboxOverUI>().SetState(new LockedUpgrade());
                }
            }
            else
            {
                UILoader.GetUIState <ChatboxOverUI>().SetState(null);
            }

            return(orig(self));
        }
Example #12
0
    public bool BuyUpgrade(string treeId, TownUpgrade upgrade, bool isFree)
    {
        if (!isFree && !CanPayPrice(upgrade.Cost))
        {
            return(false);
        }

        if (!TownPurchases.ContainsKey(treeId))
        {
            TownPurchases.Add(treeId, new UpgradePurchases(treeId, upgrade.Code));
        }
        else
        {
            if (TownPurchases[treeId].PurchasedUpgrades.Contains(upgrade.Code))
            {
                return(false);
            }

            TownPurchases[treeId].PurchasedUpgrades.Add(upgrade.Code);
        }

        if (!isFree)
        {
            RemoveCurrency(upgrade.Cost);
            if (upgrade.Cost.Find(cost => cost.Type != "gold" && cost.Amount > 0) != null)
            {
                EstateSceneManager.Instanse.CurrencyPanel.CurrencyDecreased("heirloom");
            }
        }

        if (DarkestDungeonManager.Data.UpgradeTrees.ContainsKey(treeId))
        {
            DarkestSoundManager.ExecuteNarration("upgrade_building", NarrationPlace.Town,
                                                 DarkestDungeonManager.Data.UpgradeTrees[treeId].Tags.ToArray());
        }

        DarkestSoundManager.PlayOneShot("event:/ui/town/buy");
        return(true);
    }
Example #13
0
 public TownQuestItem(TownUpgrade itemQuest) => quest = itemQuest;