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); }
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 }); }
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)); }