/// <summary> /// Returns the amount of clicks required for an effect of the given name to trigger (defaults to the item's assigned effect). Includes various bonuses /// </summary> public int GetClickAmountTotal(ClickerItemCore clickerItem, string name) { //Doesn't go below 1 int amount = 1; if (ClickerSystem.IsClickEffect(name, out ClickEffect effect)) { amount = effect.Amount; } return(Math.Max(1, (int)((amount + clickerItem.clickBoostPrefix - clickerBonus) * clickerBonusPercent))); }
/// <summary> /// Call this to check if an item is a "clicker" /// </summary> /// <param name="item">The <see cref="Item"/> to be checked</param> /// <param name="clickerItem">The <see cref="ClickerItemCore"/> of this item for convenience, only assigned if method returns true</param> /// <returns><see langword="true"/> if a "clicker"</returns> public static bool IsClickerWeapon(Item item, out ClickerItemCore clickerItem) { bool ret = IsClickerWeapon(item); clickerItem = null; if (ret) { clickerItem = item.GetGlobalItem <ClickerItemCore>(); } return(ret); }
public override void Kill(int timeLeft) { Player player = Main.player[projectile.owner]; Item item = player.HeldItem; int dustType = 0; if (ClickerSystem.IsClickerWeapon(item)) { ClickerItemCore clickerItem = item.GetGlobalItem <ClickerItemCore>(); dustType = clickerItem.clickerDustColor; } for (int k = 0; k < 5; k++) { Dust dust = Dust.NewDustDirect(projectile.Center, 10, 10, dustType, Main.rand.NextFloat(-3f, 3f), Main.rand.NextFloat(-3f, 3f), 75, default, 1f);