Example #1
0
        private void UpdateResource()
        {
            soulMeterCurrent = Utils.Clamp(soulMeterCurrent, 0, soulMeterMax2);

            HollowPlayer mPlayer = player.GetModPlayer <HollowPlayer>();

            if (soulMeterCurrent >= 33)
            {
                mPlayer.soulOrbActive = true;
            }
            if (soulMeterCurrent < 33)
            {
                mPlayer.soulOrbActive = false;
            }
            if (soulMeterCurrent >= 66)
            {
                mPlayer.soulOrbActive2 = true;
            }
            if (soulMeterCurrent < 66)
            {
                mPlayer.soulOrbActive2 = false;
            }
            if (soulMeterCurrent >= 99)
            {
                mPlayer.soulOrbActive3 = true;
            }
            if (soulMeterCurrent < 99)
            {
                mPlayer.soulOrbActive3 = false;
            }
        }
Example #2
0
        public override void AI()
        {
            Player player = Main.player[projectile.owner];

            var modPlayer = Main.LocalPlayer.GetModPlayer <SoulMeterPlayer>();



            Vector2 idlePosition = player.Center;

            idlePosition.X = player.Center.X - 45;
            idlePosition.Y = player.Center.Y - 25;
            float distanceToIdlePosition = (idlePosition - projectile.Center).Length();

            if (Main.myPlayer == player.whoAmI && distanceToIdlePosition > 2000f)
            {
                projectile.position  = idlePosition;
                projectile.velocity *= 0.1f;
                projectile.netUpdate = true;
            }
            projectile.position = idlePosition;
            Lighting.AddLight(projectile.Center, Color.White.ToVector3() * 0.32f);

            HollowPlayer mPlayer = player.GetModPlayer <HollowPlayer>();


            if (mPlayer.soulOrbActive == true)
            {
                Vector2 drawPos        = projectile.Center - Main.screenPosition;
                Vector2 circularMotion = new Vector2(projectile.width, projectile.height) * projectile.scale * 0.95f;
                circularMotion /= 2f;
                Vector2 realCircularMotion = Vector2.UnitY.RotatedByRandom(6.2831854820251465) * circularMotion;
                for (int i = 0; i < 2; i++)
                {
                    int numDust = Dust.NewDust(projectile.Center + drawPos, 0, 0, 264);
                    Main.dust[numDust].position   = realCircularMotion + projectile.Center;
                    Main.dust[numDust].position  += player.velocity;
                    Main.dust[numDust].velocity.X = player.velocity.X / 3;
                    Main.dust[numDust].velocity.Y = player.velocity.Y / 3;
                    Main.dust[numDust].scale     *= 1.15f;
                    Main.dust[numDust].noGravity  = true;
                }
            }
            else
            {
                projectile.Kill();
                //projectile.timeLeft = 2;
            }
        }
Example #3
0
        public override void OnHitNPC(Projectile projectile, NPC target, int damage, float knockback, bool crit)
        {
            if (projectile.owner == Main.myPlayer)
            {
                //Normal Nails
                if (projectile.type == mod.ProjectileType("DamagedNail") || projectile.type == mod.ProjectileType("OldNail") || projectile.type == mod.ProjectileType("OldNail2") || projectile.type == mod.ProjectileType("DullNail") || projectile.type == mod.ProjectileType("DullNail") || projectile.type == mod.ProjectileType("SharpenedNail") || projectile.type == mod.ProjectileType("SharpenedNail2") || projectile.type == mod.ProjectileType("ChannelledNail") || projectile.type == mod.ProjectileType("ChannelledNail2") || projectile.type == mod.ProjectileType("CoiledNail") || projectile.type == mod.ProjectileType("CoiledNail2") || projectile.type == mod.ProjectileType("PellucidNail") || projectile.type == mod.ProjectileType("PellucidNail2") || projectile.type == mod.ProjectileType("PureNail") || projectile.type == mod.ProjectileType("PureNail2") || projectile.type == mod.ProjectileType("AeleNail") || projectile.type == mod.ProjectileType("AeleNail2"))
                {
                    var modPlayer = Main.LocalPlayer.GetModPlayer <SoulMeterPlayer>();
                    modPlayer.soulMeterCurrent += 3;
                    Player       player  = Main.player[projectile.owner];
                    HollowPlayer mPlayer = player.GetModPlayer <HollowPlayer>();
                    if (mPlayer.soulOrbActive == true && player.ownedProjectileCounts[mod.ProjectileType("SoulMeterOrb1")] == 0)
                    {
                        Projectile.NewProjectile(player.Center.X + 40, player.Center.Y - 35, 0f, 0f, ModContent.ProjectileType <SoulMeterOrb1>(), 0, 0, Main.myPlayer, 0f, 0f);
                    }
                    if (mPlayer.soulOrbActive2 == true && player.ownedProjectileCounts[mod.ProjectileType("SoulMeterOrb2")] == 0)
                    {
                        Projectile.NewProjectile(player.Center.X + 50, player.Center.Y - 55, 0f, 0f, ModContent.ProjectileType <SoulMeterOrb2>(), 0, 0, Main.myPlayer, 0f, 0f);
                    }
                    if (mPlayer.soulOrbActive3 == true && player.ownedProjectileCounts[mod.ProjectileType("SoulMeterOrb3")] == 0)
                    {
                        Projectile.NewProjectile(player.Center.X + 50, player.Center.Y - 55, 0f, 0f, ModContent.ProjectileType <SoulMeterOrb3>(), 0, 0, Main.myPlayer, 0f, 0f);
                    }
                }

                //Nail Arts
                if (projectile.type == mod.ProjectileType("OldNailSlash") || projectile.type == mod.ProjectileType("DullNailSlash") || projectile.type == mod.ProjectileType("SharpenedNailSlash") || projectile.type == mod.ProjectileType("ChannelledNailSlash") || projectile.type == mod.ProjectileType("CoiledNailSlash") || projectile.type == mod.ProjectileType("PellucidNailSlash") || projectile.type == mod.ProjectileType("PellucidDashSlash") || projectile.type == mod.ProjectileType("PureNailSlash") || projectile.type == mod.ProjectileType("PureDashSlash") || projectile.type == mod.ProjectileType("AeleDashSlash") || projectile.type == mod.ProjectileType("AeleNailSlash") || projectile.type == mod.ProjectileType("AeleNailCyclone"))
                {
                    var modPlayer = Main.LocalPlayer.GetModPlayer <SoulMeterPlayer>();
                    modPlayer.soulMeterCurrent += 11;
                    Player       player  = Main.player[projectile.owner];
                    HollowPlayer mPlayer = player.GetModPlayer <HollowPlayer>();
                    if (mPlayer.soulOrbActive == true && player.ownedProjectileCounts[mod.ProjectileType("SoulMeterOrb1")] == 0)
                    {
                        Projectile.NewProjectile(player.Center.X + 40, player.Center.Y - 35, 0f, 0f, ModContent.ProjectileType <SoulMeterOrb1>(), 0, 0, Main.myPlayer, 0f, 0f);
                    }
                    if (mPlayer.soulOrbActive2 == true && player.ownedProjectileCounts[mod.ProjectileType("SoulMeterOrb2")] == 0)
                    {
                        Projectile.NewProjectile(player.Center.X + 50, player.Center.Y - 55, 0f, 0f, ModContent.ProjectileType <SoulMeterOrb2>(), 0, 0, Main.myPlayer, 0f, 0f);
                    }
                    if (mPlayer.soulOrbActive3 == true && player.ownedProjectileCounts[mod.ProjectileType("SoulMeterOrb3")] == 0)
                    {
                        Projectile.NewProjectile(player.Center.X + 50, player.Center.Y - 55, 0f, 0f, ModContent.ProjectileType <SoulMeterOrb3>(), 0, 0, Main.myPlayer, 0f, 0f);
                    }
                }
            }
        }
Example #4
0
        public override void AI()
        {
            Player player = Main.player[projectile.owner];

            var modPlayer = Main.LocalPlayer.GetModPlayer <SoulMeterPlayer>();



            Vector2 idlePosition = player.Center;

            idlePosition.X = player.Center.X - 15;
            idlePosition.Y = player.Center.Y - 65;
            float distanceToIdlePosition = (idlePosition - projectile.Center).Length();

            if (Main.myPlayer == player.whoAmI && distanceToIdlePosition > 2000f)
            {
                projectile.position  = idlePosition;
                projectile.velocity *= 0.1f;
                projectile.netUpdate = true;
            }
            projectile.position = idlePosition;
            Lighting.AddLight(projectile.Center, Color.White.ToVector3() * 0.32f);

            ihatetimers++;

            /*ihatetimers2++;
             * if(ihatetimers > 1)
             * {*/
            /*int dustIndex = Dust.NewDust(new Vector2(projectile.Center.X, projectile.Center.Y), projectile.width, projectile.height, mod.DustType("SoulOrbDust"), 0f, 0f, 100, default(Color), 2f);
             * Main.dust[dustIndex].scale *= 0.65f;
             * Main.dust[dustIndex].noGravity = true;
             * ihatetimers2++;
             * if(ihatetimers2 > 20)
             * {
             *      Main.dust[dustIndex].active = false;
             *      ihatetimers2 = 0;
             * }*/

            HollowPlayer mPlayer = player.GetModPlayer <HollowPlayer>();


            if (mPlayer.soulOrbActive3 == true)
            {
                Vector2 drawPos = projectile.Center - Main.screenPosition;

                Vector2 circularMotion = new Vector2(projectile.width, projectile.height) * projectile.scale * 0.95f;
                circularMotion /= 2f;
                Vector2 realCircularMotion = Vector2.UnitY.RotatedByRandom(6.2831854820251465) * circularMotion;
                for (int i = 0; i < 2; i++)
                {
                    int numDust = Dust.NewDust(projectile.Center + drawPos, 0, 0, 264);
                    Main.dust[numDust].position   = realCircularMotion + projectile.Center;
                    Main.dust[numDust].position  += player.velocity;
                    Main.dust[numDust].velocity.X = player.velocity.X / 3;
                    Main.dust[numDust].velocity.Y = player.velocity.Y / 3;
                    Main.dust[numDust].scale     *= 1.15f;

                    /*if(Main.dust[numDust].scale <= 0.65f)
                     * {
                     *      Main.dust[numDust].active = false;
                     *      Main.dust[numDust].alpha = 255;
                     * }*/
                    Main.dust[numDust].noGravity = true;
                }
            }
            else
            {
                projectile.Kill();
                //projectile.timeLeft = 2;
            }
        }