/// <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)));
        }
示例#2
0
        /// <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);
        }
示例#3
0
        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);