public override bool ConsumeAmmo(Item item, Player player) { if (item.ammo == AmmoID.Solution) { if (!item.consumable) { return(false); } float consumed = 1.0f; SolutionsPlayer p = player.GetModPlayer <SolutionsPlayer>(); if (p.solTimesFour) { consumed *= 4; } if (p.solTimesTwo) { consumed *= 2; } if (p.solTimesOneThird) { consumed /= 3; } if (p.solTimesOneFifth) { consumed /= 5; } while (consumed > 2) { item.stack--; consumed -= 1; if (item.stack == 0) { break; } } if (consumed > 1) { return(true); } else { return(Main.rand.NextDouble() < consumed); } } return(true); }
public override bool PreAI(Projectile projectile) { if (projectile.modProjectile != null && projectile.modProjectile is BaseSolution) { BaseSolution bs = projectile.modProjectile as BaseSolution; if (bs.toChange) { SolutionsPlayer p = Main.player[projectile.owner].GetModPlayer <SolutionsPlayer>(); if (p.solTimesFour) { bs.maxTime *= 4; } if (p.solTimesTwo) { bs.maxTime *= 2; } if (p.solTimesOneThird) { bs.maxTime /= 3; } if (p.solTimesOneFifth) { bs.maxTime /= 5; } projectile.timeLeft = bs.maxTime; if (p.solRadiusDouble) { bs.radius *= 2; } if (p.solRadiusHalf) { bs.radius /= 2; } if (p.lightless) { bs.dustType = dustToLightless[bs.dustType]; } bs.toChange = false; } } return(base.PreAI(projectile)); }
public override void UpdateAccessory(Player player, bool hideVisual) { SolutionsPlayer p = player.GetModPlayer <SolutionsPlayer>(); p.solTimesFour = true; }
public override void UpdateAccessory(Player player, bool hideVisual) { SolutionsPlayer p = player.GetModPlayer <SolutionsPlayer>(); p.lightless = true; }