Ejemplo n.º 1
0
        public override bool CanUseItem(Item item, Player player)
        {
            HungerPlayer mp = player.GetModPlayer <HungerPlayer>();

            if (item.healLife > 0)
            {
                return(!player.HasBuff(BuffID.ManaSickness));
            }

            if (item.buffTime != 0)
            {
                return(!player.HasBuff(BuffID.PotionSickness));
            }

            return(true);
        }
Ejemplo n.º 2
0
        public override void ModifyBuffTip(ref string tip, ref int rare)
        {
            HungerPlayer mp = Main.LocalPlayer.GetModPlayer <HungerPlayer>();

            if (mp.GetFullness() < Fullness.OK)
            {
                rare = ItemRarityID.LightRed;
            }
            if (mp.IsStarving)
            {
                rare = ItemRarityID.Green;
            }

            tip = string.Concat(new string[]
            {
                "You are " + Regex.Replace(mp.GetFullness().ToString(), "([A-Z])", " $1").Trim(), _lineEnd,
                "Hunger: " + mp.HungerCurrent.ToString(), "/", HungerPlayer.HungerMax.ToString(), _lineEnd,
                "Sated: " + (mp.IsSated ? "Yes" : "No"), _lineEnd,
                "Saturation: " + mp.SatedAmount.ToString(), "/", HungerPlayer.SatedMax.ToString(), _lineEnd
            });
        }
Ejemplo n.º 3
0
        public override bool UseItem(Item item, Player player)
        {
            HungerPlayer hp = player.GetModPlayer <HungerPlayer>();

            if (item.healLife > 0)
            {
                if (player.HasBuff(ModContent.BuffType <PotionNausea>()))
                {
                    int buffChoice = 0;
                    switch (Main.rand.Next(5))
                    {
                    case 0:
                        buffChoice = Main.hardMode ? BuffID.CursedInferno : BuffID.OnFire;
                        break;

                    case 1:
                        buffChoice = Main.hardMode ? BuffID.Frostburn : BuffID.OnFire;
                        break;

                    case 2:
                        buffChoice = Main.hardMode ? BuffID.Venom : BuffID.Poisoned;
                        break;

                    case 3:
                        buffChoice = Main.hardMode ? BuffID.Frozen : BuffID.Chilled;
                        break;

                    case 4:
                        buffChoice = Main.hardMode ? BuffID.OgreSpit : BuffID.Chilled;
                        break;
                    }

                    player.AddBuff(buffChoice, Main.hardMode ? 720 : 360);
                }
                else
                {
                    player.AddBuff(ModContent.BuffType <PotionNausea>(), int.MaxValue);
                }
                player.AddBuff(BuffID.ManaSickness, 360);
                return(true);
            }

            if (item.buffType == BuffID.WellFed)
            {
                hp.SatedAmount += (item.buffTime / 3600f) / 5f;
                hp.ClampSated();
                hp.HungerCurrent += (int)(item.buffTime / 3600f);
                hp.ClampHunger();
                hp.StarvingCounter = 0;
                hp.ClampStarvingCounter();
            }

            if (item.buffType > 0)
            {
                int t = 0;

                while (true)
                {
                    t = Main.rand.Next(BuffLoader.BuffCount + 1);
                    if (Main.debuff[t])
                    {
                        break;
                    }
                }

                player.AddBuff(t, Main.rand.Next(300, 601));
            }

            return(base.UseItem(item, player));
        }