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; } }
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; } }
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); } } } }
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; } }