Exemple #1
0
 public override bool PreAI()
 {
     if (ModContent.GetModItem(Main.LocalPlayer.HeldItem.type) is Items.KnifeDamageItem)
     {
         ParentWeapon = Main.LocalPlayer.HeldItem.GetGlobalItem <KnifeWeapon>();
     }
     return(true);
 }
        private void SpecialButton2Clicked(UIMouseEvent evt, UIElement listeningElement)
        {
            int BuyItem = ModContent.ItemType <Items.Materials.PiercingTip>();

            if (!_vanillaItemSlot.Item.IsAir)
            {
                if (_vanillaItemSlot.Item.type == ModContent.ItemType <CorruptionNestKnives>() || _vanillaItemSlot.Item.type == ModContent.ItemType <CrimsonNestKnives>() || _vanillaItemSlot.Item.type == ModContent.ItemType <ButchersKnives>() || _vanillaItemSlot.Item.type == ModContent.ItemType <PrismaticArcanum>() || _vanillaItemSlot.Item.type == ModContent.ItemType <SorcerersSarukh>() || _vanillaItemSlot.Item.type == ModContent.ItemType <VampiricPrism>() || _vanillaItemSlot.Item.type == ModContent.ItemType <TrueDemonsScourge>() || _vanillaItemSlot.Item.type == ModContent.ItemType <ZenithsTrueBlades>() || _vanillaItemSlot.Item.type == ModContent.ItemType <Nyives>())
                {
                    Main.NewText("You cannot add penetration to this weapon");
                }
                else
                {
                    KnifeWeapon UpgradeItem = _vanillaItemSlot.Item.GetGlobalItem <KnifeWeapon>();
                    PenetrateBuyPrice = UpgradeItem.PenetrationPurchases;
                    for (int i = 0; i < 59; i++)
                    {
                        Item item = Main.LocalPlayer.inventory[i];
                        if (!item.IsAir && item.type == BuyItem && item.stack >= PenetrateBuyPrice)
                        {
                            if (UpgradeItem.PenetrationBonus < 10)
                            {
                                UpgradeItem.PenetrationBonus += 1;
                                UpgradeItem.OriginalOwner     = Main.LocalPlayer.name;
                                Item SavedItem = new Item();
                                int  SavedItemStack;
                                SavedItem      = item.Clone();
                                SavedItemStack = item.stack;
                                item.TurnToAir();
                                for (int StackNum = 0; StackNum < SavedItemStack - (PenetrateBuyPrice); StackNum++)
                                {
                                    Main.LocalPlayer.PutItemInInventory(SavedItem.type);
                                }
                                UpgradeItem.PenetrationPurchases++;
                                break;
                            }
                            else
                            {
                                Main.NewText("You've maxed out this skill!");
                                break;
                            }
                        }
                        else if (item.type != BuyItem && i == 58 && PenetrateBuyPrice != 11)
                        {
                            Main.NewText("You don't have enough Piercing Tips, you need: " + (PenetrateBuyPrice));
                        }
                        else if (item.type != BuyItem && i == 58 && PenetrateBuyPrice == 11)
                        {
                            Main.NewText("You've maxed out this skill!");
                        }
                    }
                }
            }
            else
            {
                Main.NewText("You need to place an weapon in the item slot!");
            }
        }
        private void SpecialButton3Clicked(UIMouseEvent evt, UIElement listeningElement)
        {
            int BuyItem = ModContent.ItemType <Items.Materials.StableCrimsonCrystal>();

            if (!_vanillaItemSlot.Item.IsAir)
            {
                KnifeWeapon UpgradeItem = _vanillaItemSlot.Item.GetGlobalItem <KnifeWeapon>();
                LifeStealBuyPrice = UpgradeItem.LifeStealPurchases;
                for (int i = 0; i < 59; i++)
                {
                    Item item = Main.LocalPlayer.inventory[i];
                    if (!item.IsAir && item.type == BuyItem && item.stack >= LifeStealBuyPrice)
                    {
                        if (UpgradeItem.LifeStealBonus < 25)
                        {
                            UpgradeItem.LifeStealBonus += 1;
                            UpgradeItem.OriginalOwner   = Main.LocalPlayer.name;
                            Item SavedItem = new Item();
                            int  SavedItemStack;
                            SavedItem      = item.Clone();
                            SavedItemStack = item.stack;
                            item.TurnToAir();
                            for (int StackNum = 0; StackNum < SavedItemStack - (LifeStealBuyPrice); StackNum++)
                            {
                                Main.LocalPlayer.PutItemInInventory(SavedItem.type);
                            }
                            UpgradeItem.LifeStealPurchases++;
                            break;
                        }
                        else
                        {
                            Main.NewText("You've maxed out this skill!");
                            break;
                        }
                    }
                    else if (item.type != BuyItem && i == 58 && LifeStealBuyPrice != 26)
                    {
                        Main.NewText("You don't have enough Stable Crimson Crystals, you need: " + (LifeStealBuyPrice));
                    }
                    else if (item.type != BuyItem && i == 58 && LifeStealBuyPrice == 26)
                    {
                        Main.NewText("You've maxed out this skill!");
                    }
                }
            }
            else
            {
                Main.NewText("You need to place an weapon in the item slot!");
            }
        }
        private void UnforgivingButtonClicked(UIMouseEvent evt, UIElement listeningElement)
        {
            int BuyItem = ModContent.ItemType <Items.Materials.RicochetEssence>();

            if (!_vanillaItemSlot.Item.IsAir)
            {
                KnifeWeapon UpgradeItem = _vanillaItemSlot.Item.GetGlobalItem <KnifeWeapon>();
                RicochetBuyPrice = UpgradeItem.RicochetPurchases;
                for (int i = 0; i < 59; i++)
                {
                    Item item = Main.LocalPlayer.inventory[i];
                    if (!item.IsAir && item.type == BuyItem && item.stack >= RicochetBuyPrice)
                    {
                        if (UpgradeItem.RicochetChance < 1.00f)
                        {
                            UpgradeItem.RicochetChance += 0.01f;
                            UpgradeItem.OriginalOwner   = Main.LocalPlayer.name;
                            Item SavedItem = new Item();
                            int  SavedItemStack;
                            SavedItem      = item.Clone();
                            SavedItemStack = item.stack;
                            item.TurnToAir();
                            for (int StackNum = 0; StackNum < SavedItemStack - (RicochetBuyPrice); StackNum++)
                            {
                                Main.LocalPlayer.PutItemInInventory(SavedItem.type);
                            }
                            UpgradeItem.RicochetPurchases++;
                            break;
                        }
                        else
                        {
                            Main.NewText("You've maxed out this skill!");
                            break;
                        }
                    }
                    else if (item.type != BuyItem && i == 58 && RicochetBuyPrice != 102)
                    {
                        Main.NewText("You don't have enough Ricochet Essence, you need: " + (RicochetBuyPrice));
                    }
                    else if (item.type != BuyItem && i == 58 && RicochetBuyPrice == 102)
                    {
                        Main.NewText("You've maxed out this skill!");
                    }
                }
            }
            else
            {
                Main.NewText("You need to place an weapon in the item slot!");
            }
        }
        private void NormalButtonClicked(UIMouseEvent evt, UIElement listeningElement)
        {
            int BuyItem = ModContent.ItemType <Items.Accessories.CritEmblem>();

            if (!_vanillaItemSlot.Item.IsAir)
            {
                KnifeWeapon UpgradeItem = _vanillaItemSlot.Item.GetGlobalItem <KnifeWeapon>();
                CritBuyPrice = UpgradeItem.CritPurchases;
                for (int i = 0; i < 59; i++)
                {
                    Item item = Main.LocalPlayer.inventory[i];
                    if (!item.IsAir && item.type == BuyItem && item.stack >= DamageBuyPrice)
                    {
                        if (UpgradeItem.CritLevel < 10)
                        {
                            UpgradeItem.CritLevel    += 1;
                            UpgradeItem.OriginalOwner = Main.LocalPlayer.name;
                            Item SavedItem = new Item();
                            int  SavedItemStack;
                            SavedItem      = item.Clone();
                            SavedItemStack = item.stack;
                            item.TurnToAir();
                            for (int StackNum = 0; StackNum < SavedItemStack - (CritBuyPrice); StackNum++)
                            {
                                Main.LocalPlayer.PutItemInInventory(SavedItem.type);
                            }
                            UpgradeItem.CritPurchases++;
                            break;
                        }
                        else
                        {
                            Main.NewText("You've maxed out this skill!");
                            break;
                        }
                    }
                    else if (item.type != BuyItem && i == 58 && CritBuyPrice != 11)
                    {
                        Main.NewText("You don't have enough Crit Emblems, you need: " + (CritBuyPrice));
                    }
                    else if (item.type != BuyItem && i == 58 && CritBuyPrice == 11)
                    {
                        Main.NewText("You've maxed out this skill!");
                    }
                }
            }
            else
            {
                Main.NewText("You need to place an weapon in the item slot!");
            }
        }
        public Weapon CreateWeapon(WeaponRarities weaponRarity, WeaponTypes weaponType, string weaponName)
        {
            Weapon weapon = null;

            switch (weaponType)
            {
            case WeaponTypes.Axe:
                weapon = new AxeWeapon(weaponRarity, weaponType, weaponName);
                break;

            case WeaponTypes.Knife:
                weapon = new KnifeWeapon(weaponRarity, weaponType, weaponName);
                break;

            case WeaponTypes.Sword:
                weapon = new SwordWeapon(weaponRarity, weaponType, weaponName);
                break;
            }

            return(weapon);
        }
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            base.DrawSelf(spriteBatch);

            Main.HidePlayerCraftingMenu = false;

            if (!_vanillaItemSlot.Item.IsAir)
            {
                KnifeWeapon UpgradeItem = _vanillaItemSlot.Item.GetGlobalItem <KnifeWeapon>();

                Main.LocalPlayer.GetModPlayer <VampPlayer>().UpgradeItem = _vanillaItemSlot.Item;

                Lifesteal = UpgradeItem.LifeStealBonus;
                Penetrate = UpgradeItem.PenetrationBonus;
                Ricochet  = UpgradeItem.RicochetChance;

                SpecialUpgradeText1.SetText("+1% chance to shoot\na knife that ricochets\n   Current chance: " + Math.Truncate((Ricochet * 100)) + "%");
                SpecialUpgradeText2.SetText("+1 to number of enemies\n   the knife penetrates\n     Current number: " + Penetrate);
                SpecialUpgradeText3.SetText("+1 increase to knife\n       lifesteal\n Current increase: " + Lifesteal);

                DamageBuyPrice    = UpgradeItem.DamagePurchases;
                CritBuyPrice      = UpgradeItem.CritPurchases;
                RicochetBuyPrice  = UpgradeItem.RicochetPurchases;
                PenetrateBuyPrice = UpgradeItem.PenetrationPurchases;
                LifeStealBuyPrice = UpgradeItem.LifeStealPurchases;

                DamagePrice.SetText("x" + (DamageBuyPrice));
                CritPrice.SetText("x" + (CritBuyPrice));
                RicochetPrice.SetText("x" + (RicochetBuyPrice));
                PenetratePrice.SetText("x" + (PenetrateBuyPrice));
                LifeStealPrice.SetText("x" + (LifeStealBuyPrice));

                if (DamageBuyPrice == 11)
                {
                    DamagePrice.SetText("Maxed");
                }
                if (CritBuyPrice == 11)
                {
                    CritPrice.SetText("Maxed");
                }
                if (RicochetBuyPrice == 102)
                {
                    RicochetPrice.SetText("Maxed");
                }
                if (PenetrateBuyPrice == 11)
                {
                    PenetratePrice.SetText("Maxed");
                }
                if (LifeStealBuyPrice == 26)
                {
                    LifeStealPrice.SetText("Maxed");
                }

                if (Ricochet != 0)
                {
                    SpecialUpgradeText1.TextColor = Color.White;
                }
                if (Penetrate != 0)
                {
                    SpecialUpgradeText2.TextColor = Color.White;
                }
                if (Lifesteal != 0)
                {
                    SpecialUpgradeText3.TextColor = Color.White;
                }

                if (UpgradeItem.DamageLevel >= 1)
                {
                    SharpnessUpgradeText1.TextColor = Color.White;
                }
                if (UpgradeItem.DamageLevel >= 2)
                {
                    SharpnessUpgradeText2.TextColor = Color.White;
                }
                if (UpgradeItem.DamageLevel >= 3)
                {
                    SharpnessUpgradeText3.TextColor = Color.White;
                }
                if (UpgradeItem.DamageLevel >= 4)
                {
                    SharpnessUpgradeText4.TextColor = Color.White;
                }
                if (UpgradeItem.DamageLevel >= 5)
                {
                    SharpnessUpgradeText5.TextColor = Color.White;
                }
                if (UpgradeItem.DamageLevel >= 6)
                {
                    SharpnessUpgradeText6.TextColor = Color.White;
                }
                if (UpgradeItem.DamageLevel >= 7)
                {
                    SharpnessUpgradeText7.TextColor = Color.White;
                }
                if (UpgradeItem.DamageLevel >= 8)
                {
                    SharpnessUpgradeText8.TextColor = Color.White;
                }
                if (UpgradeItem.DamageLevel >= 9)
                {
                    SharpnessUpgradeText9.TextColor = Color.White;
                }
                if (UpgradeItem.DamageLevel >= 10)
                {
                    SharpnessUpgradeText10.TextColor = Color.White;
                }

                if (UpgradeItem.CritLevel >= 1)
                {
                    CritUpgradeText1.TextColor = Color.White;
                }
                if (UpgradeItem.CritLevel >= 2)
                {
                    CritUpgradeText2.TextColor = Color.White;
                }
                if (UpgradeItem.CritLevel >= 3)
                {
                    CritUpgradeText3.TextColor = Color.White;
                }
                if (UpgradeItem.CritLevel >= 4)
                {
                    CritUpgradeText4.TextColor = Color.White;
                }
                if (UpgradeItem.CritLevel >= 5)
                {
                    CritUpgradeText5.TextColor = Color.White;
                }
                if (UpgradeItem.CritLevel >= 6)
                {
                    CritUpgradeText6.TextColor = Color.White;
                }
                if (UpgradeItem.CritLevel >= 7)
                {
                    CritUpgradeText7.TextColor = Color.White;
                }
                if (UpgradeItem.CritLevel >= 8)
                {
                    CritUpgradeText8.TextColor = Color.White;
                }
                if (UpgradeItem.CritLevel >= 9)
                {
                    CritUpgradeText9.TextColor = Color.White;
                }
                if (UpgradeItem.CritLevel >= 10)
                {
                    CritUpgradeText10.TextColor = Color.White;
                }

                if (VampKnives.SpecialUpgradeCounter >= 1)
                {
                    SpecialUpgradeText1.TextColor = Color.White;
                }
                if (VampKnives.SpecialUpgradeCounter >= 2)
                {
                    SpecialUpgradeText2.TextColor = Color.White;
                }
                if (VampKnives.SpecialUpgradeCounter >= 3)
                {
                    SpecialUpgradeText3.TextColor = Color.White;
                }
            }
            else
            {
                SharpnessUpgradeText1.TextColor  = Color.Gray;
                SharpnessUpgradeText2.TextColor  = Color.Gray;
                SharpnessUpgradeText3.TextColor  = Color.Gray;
                SharpnessUpgradeText4.TextColor  = Color.Gray;
                SharpnessUpgradeText5.TextColor  = Color.Gray;
                SharpnessUpgradeText6.TextColor  = Color.Gray;
                SharpnessUpgradeText7.TextColor  = Color.Gray;
                SharpnessUpgradeText8.TextColor  = Color.Gray;
                SharpnessUpgradeText9.TextColor  = Color.Gray;
                SharpnessUpgradeText10.TextColor = Color.Gray;

                CritUpgradeText1.TextColor  = Color.Gray;
                CritUpgradeText2.TextColor  = Color.Gray;
                CritUpgradeText3.TextColor  = Color.Gray;
                CritUpgradeText4.TextColor  = Color.Gray;
                CritUpgradeText5.TextColor  = Color.Gray;
                CritUpgradeText6.TextColor  = Color.Gray;
                CritUpgradeText7.TextColor  = Color.Gray;
                CritUpgradeText8.TextColor  = Color.Gray;
                CritUpgradeText9.TextColor  = Color.Gray;
                CritUpgradeText10.TextColor = Color.Gray;

                SpecialUpgradeText1.TextColor = Color.Gray;
                SpecialUpgradeText2.TextColor = Color.Gray;
                SpecialUpgradeText3.TextColor = Color.Gray;

                DamagePrice.SetText("x1");
                CritPrice.SetText("x1");
                RicochetPrice.SetText("x1");
                PenetratePrice.SetText("x1");
                LifeStealPrice.SetText("x1");
            }
        }