Example #1
0
        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));
        }
Example #3
0
        public override void UpdateAccessory(Player player, bool hideVisual)
        {
            SolutionsPlayer p = player.GetModPlayer <SolutionsPlayer>();

            p.solTimesFour = true;
        }
Example #4
0
        public override void UpdateAccessory(Player player, bool hideVisual)
        {
            SolutionsPlayer p = player.GetModPlayer <SolutionsPlayer>();

            p.lightless = true;
        }