public override void Update(Player player, ref int buffIndex) { player.meleeCrit += 10; player.rangedCrit += 10; player.magicCrit += 10; player.thrownCrit += 10; AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(mod); if (player.ownedProjectileCounts[mod.ProjectileType("GrimReaper")] > 0) { modPlayer.grimreaper = true; } if (!modPlayer.grimreaper) { player.DelBuff(buffIndex); buffIndex--; } else { player.buffTime[buffIndex] = 18000; } bool petProjectileNotSpawned = true; if (player.ownedProjectileCounts[mod.ProjectileType("GrimReaper")] > 0) { petProjectileNotSpawned = false; } if (petProjectileNotSpawned && player.whoAmI == Main.myPlayer) { Projectile.NewProjectile(player.position.X + player.width / 2, player.position.Y + player.height / 2, 0f, 0f, mod.ProjectileType("GrimReaper"), 0, 0f, player.whoAmI, 0f, 0f); } }
private void PlayButtonClicked5(UIMouseEvent evt, UIElement listeningElement) { Player player = Main.LocalPlayer; AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(); if (modPlayer.RCT6 > 0) { AlchemistNPCPlayer.ConvertCoins(5); } }
public override void Update(Player player, ref int buffIndex) { AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(); modPlayer.AllDamage10 = true; modPlayer.AllCrit10 = true; player.ammoPotion = true; player.archery = true; player.buffImmune[16] = true; player.buffImmune[112] = true; player.buffImmune[115] = true; player.buffImmune[117] = true; }
public override void CheckActive() { Player player = Main.player[projectile.owner]; AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(mod); if (player.dead || !modPlayer.jr) { modPlayer.lwm = false; } if (modPlayer.lwm) { projectile.timeLeft = 2; } }
public override void AI() { { Player player = Main.player[projectile.owner]; AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(mod); if (player.dead || player.FindBuffIndex(mod.BuffType("WatcherCrystal")) <= -1) { modPlayer.watchercrystal = false; } if (modPlayer.watchercrystal) { projectile.timeLeft = 2; } for (int i = 0; i < 200; i++) { NPC target = Main.npc[i]; float shootToX = target.position.X + target.width * 0.5f - projectile.Center.X; float shootToY = target.position.Y + target.height * 0.5f - projectile.Center.Y; float distance = (float)Math.Sqrt(shootToX * shootToX + shootToY * shootToY); if (distance < 520f && !target.friendly && target.active) { if (projectile.ai[0] > 45f) // Time in (60 = 1 second) { distance = 1.6f / distance; shootToX *= distance * 3; shootToY *= distance * 3; int damage = 500; Projectile.NewProjectile(projectile.Center.X, projectile.Center.Y, shootToX, shootToY, 617, damage, 0, Main.myPlayer, 0f, 0f); projectile.ai[0] = 0f; } } } projectile.ai[0] += 1f; projectile.frameCounter++; if (projectile.frameCounter > 20) { projectile.frame++; projectile.frameCounter = 0; } if (projectile.frame >= 8) { projectile.frame = 0; } } }
public override void Update(Player player, ref int buffIndex) { AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(); modPlayer.Defense8 = true; modPlayer.Regeneration = true; player.buffImmune[2] = true; player.buffImmune[5] = true; player.buffImmune[14] = true; player.buffImmune[106] = true; player.buffImmune[116] = true; player.buffImmune[121] = true; player.buffImmune[122] = true; player.buffImmune[123] = true; player.fishingSkill += 15; player.sonarPotion = true; player.cratePotion = true; player.calmed = true; if ((double)player.thorns < 1.0) { player.thorns = 0.3333333f; } player.inferno = true; Lighting.AddLight((int)((double)player.Center.X / 16.0), (int)((double)player.Center.Y / 16.0), 0.65f, 0.4f, 0.1f); int type = 24; float num = 200f; bool flag = player.infernoCounter % 60 == 0; int Damage = 10; if (player.whoAmI == Main.myPlayer) { for (int number = 0; number < 200; ++number) { NPC npc = Main.npc[number]; if (npc.active && !npc.friendly && (npc.damage > 0 && !npc.dontTakeDamage) && (!npc.buffImmune[type] && (double)Vector2.Distance(player.Center, npc.Center) <= (double)num)) { if (npc.FindBuffIndex(120) == -1) { npc.AddBuff(type, 120, false); } if (flag) { npc.StrikeNPC(Damage, 0.0f, 0, false, false, false); } } } } }
public override void Update(Player player, ref int buffIndex) { player.mount.SetMount(mod.MountType("MysticAmulet"), player); player.buffTime[buffIndex] = 10; player.noKnockback = true; player.noFallDmg = true; AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(); modPlayer.MysticAmuletMount = true; modPlayer.fc++; if (modPlayer.fc == 40) { modPlayer.fc = 0; } }
public override void UpdateArmorSet(Player player) { AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(); modPlayer.PGSWear = true; string PGSetBonus = Language.GetTextValue("Mods.AlchemistNPC.PGSetBonus"); player.setBonus = PGSetBonus; player.statDefense += 56; player.rangedDamage += 0.15f; player.meleeDamage += 0.15f; player.rangedCrit += 15; player.meleeCrit += 15; player.moveSpeed += 0.50f; player.AddBuff(mod.BuffType("TankComb"), 2); }
public override void Update(Player player, ref int buffIndex) { AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(); if (player.ownedProjectileCounts[mod.ProjectileType("LittleWitchMonster")] < 1) { Vector2 vel = new Vector2(0, -1); vel *= 0f; Projectile.NewProjectile(player.position.X - 15, player.position.Y, vel.X, vel.Y, mod.ProjectileType("LittleWitchMonster"), 24, 3f, player.whoAmI); modPlayer.lwm = true; } else { player.buffTime[buffIndex] = 18000; } }
public override void AI() { Player player = Main.player[projectile.owner]; AlchemistNPCPlayer modPlayer = (AlchemistNPCPlayer)player.GetModPlayer(mod, "AlchemistNPCPlayer"); projectile.position.X = player.position.X - 15; projectile.position.Y = player.position.Y; projectile.rotation = projectile.velocity.ToRotation() + MathHelper.ToRadians(0f); if (projectile.spriteDirection == -1) { projectile.rotation -= MathHelper.ToRadians(180f); } if (projectile.frameCounter < 20) { projectile.frame = 0; } else if (projectile.frameCounter >= 20 && projectile.frameCounter < 40) { projectile.frame = 1; } else if (projectile.frameCounter >= 40 && projectile.frameCounter < 60) { projectile.frame = 2; } else if (projectile.frameCounter >= 60 && projectile.frameCounter < 80) { projectile.frame = 3; } else if (projectile.frameCounter >= 80 && projectile.frameCounter < 100) { projectile.frame = 4; } else if (projectile.frameCounter >= 100 && projectile.frameCounter < 120) { projectile.frame = 5; } else { projectile.frameCounter = 0; } projectile.frameCounter++; if (player.dead || modPlayer.RevSet == false) { projectile.Kill(); } }
public override void Update(Player player, ref int buffIndex) { AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(); if (player.ownedProjectileCounts[mod.ProjectileType("GrimReaper")] > 0) { modPlayer.grimreaper = true; } if (!modPlayer.grimreaper) { player.DelBuff(buffIndex); buffIndex--; } else { player.buffTime[buffIndex] = 18000; } bool petProjectileNotSpawned = true; if (player.ownedProjectileCounts[mod.ProjectileType("GrimReaper")] > 0) { petProjectileNotSpawned = false; } if (petProjectileNotSpawned && player.whoAmI == Main.myPlayer) { Projectile.NewProjectile(player.position.X + player.width / 2, player.position.Y + player.height / 2, 0f, 0f, mod.ProjectileType("GrimReaper"), 0, 0f, player.whoAmI, 0f, 0f); } player.meleeCrit += 10; player.rangedCrit += 10; player.magicCrit += 10; player.thrownCrit += 10; if (ModLoader.GetMod("ThoriumMod") != null) { ThoriumBoosts(player, ref buffIndex); } if (ModLoader.GetMod("Redemption") != null) { RedemptionBoost(player); } Mod Calamity = ModLoader.GetMod("CalamityMod"); if (Calamity != null) { Calamity.Call("AddRogueCrit", player, 10); } }
public override void Update(Player player, ref int buffIndex) { AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(); modPlayer.AllDamage10 = true; modPlayer.AllCrit10 = true; player.magicDamage += 0.25f; player.magicCrit += 2; player.statManaMax2 += 20; player.manaCost -= 0.02f; player.manaRegenBuff = true; player.buffImmune[6] = true; player.buffImmune[7] = true; player.buffImmune[29] = true; player.buffImmune[115] = true; player.buffImmune[117] = true; }
public override void Update(Player player, ref int buffIndex) { AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(); modPlayer.AllDamage10 = true; ++player.maxMinions; ++player.maxMinions; player.buffImmune[110] = true; player.buffImmune[115] = true; player.buffImmune[150] = true; if (ModLoader.GetMod("MorePotions") != null) { if (player.HasBuff(mod.BuffType("MorePotionsComb")) || player.HasBuff(ModLoader.GetMod("MorePotions").BuffType("SoulbindingElixerPotionBuff"))) { --player.maxMinions; } } }
public override void Update(Player player, ref int buffIndex) { AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(mod); if (player.ownedProjectileCounts[mod.ProjectileType("UgandanWarrior")] > 0) { modPlayer.uw = true; } if (!modPlayer.uw) { player.DelBuff(buffIndex); buffIndex--; } else { player.buffTime[buffIndex] = 18000; } }
public override void Update(Player player, ref int buffIndex) { AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(); if (player.ownedProjectileCounts[mod.ProjectileType("Devilsknife")] > 0) { modPlayer.devilsknife = true; } if (!modPlayer.devilsknife) { player.DelBuff(buffIndex); buffIndex--; } else { player.buffTime[buffIndex] = 18000; } }
public override void Update(Player player, ref int buffIndex) { AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(); modPlayer.AllDamage10 = true; modPlayer.AllCrit10 = true; modPlayer.Defense8 = true; modPlayer.DR10 = true; modPlayer.Regeneration = true; modPlayer.Lifeforce = true; player.endurance += 0.1f; player.buffImmune[2] = true; player.buffImmune[5] = true; player.buffImmune[113] = true; player.buffImmune[114] = true; player.buffImmune[115] = true; player.buffImmune[117] = true; }
public override void ModifyBuffTip(ref string tip, ref int rare) { Player player = Main.player[Main.myPlayer]; AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(mod); tip = "Uh... You don't seem to have a soul. What a shame. OK then, let's make a deal..." + "\nIn your journey, you are defeating an endless amounts of enemies..." + "\nBut you are not collecting their souls for yourself, right?" + "\nWhy not give them to me then? For certain amounts, I will give you some kind of rewards." + "\nDoes that sound good enough? I hope so..." + "\n" + modPlayer.SnatcherCounter + " souls collected."; if (modPlayer.SnatcherCounter >= 500) { tip += "\nIncreases your movement speed by 25%"; } if (modPlayer.SnatcherCounter >= 1000) { tip += "\nIncreases your defense by 10"; } if (modPlayer.SnatcherCounter >= 1500) { tip += "\nIncreases your damage reduction by 10%"; } if (modPlayer.SnatcherCounter >= 2500) { tip += "\nIncreases max amount of minions/sentries by 1"; } if (modPlayer.SnatcherCounter >= 3500) { tip += "\nBoosts all damage types by 8%"; } if (modPlayer.SnatcherCounter >= 5000) { tip += "\nBoosts all critical strike chances by 5%"; } if (modPlayer.SnatcherCounter >= 6666) { tip += "\nIncreases your armor penetration by 30"; } if (modPlayer.SnatcherCounter >= 9999) { tip += "\nBoosts your max life by 10%"; } }
public override void AI() { if (Main.rand.NextBool(3)) { Dust.NewDust(new Vector2(projectile.position.X, projectile.position.Y), projectile.width, projectile.height, 61, projectile.velocity.X * 0.1f, projectile.velocity.Y * 0.1f, 0, default(Color), 1f); } Player player = Main.player[projectile.owner]; AlchemistNPCPlayer modPlayer = (AlchemistNPCPlayer)player.GetModPlayer(mod, "AlchemistNPCPlayer"); if (player.dead || !player.HasBuff(mod.BuffType("Yui"))) { modPlayer.Yui = false; } if (modPlayer.Yui) { projectile.timeLeft = 2; } Lighting.AddLight(projectile.position, 3.0f, 3.0f, 3.0f); }
public override void CheckActive() { Player player = Main.player[projectile.owner]; AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(mod); if (player.dead || !modPlayer.LaetitiaGift) { modPlayer.lwm = false; projectile.Kill(); } if (!player.HasBuff(mod.BuffType("LittleWitchMonster"))) { modPlayer.lwm = false; projectile.Kill(); } if (!modPlayer.LaetitiaSet && !modPlayer.ParadiseLost) { modPlayer.lwm = false; projectile.Kill(); } }
private static bool DrawShieldBar() { int anchorX = Main.screenWidth / 2 - 175; Player player = Main.player[Main.myPlayer]; if (player.ghost) { return(true); } Mod mod = AlchemistNPC.Instance; AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(); if (modPlayer.ShieldBelt == false) { return(true); } const int barSize = 128; const int padding = 4; const int chargeSize = barSize - 2 * padding; const int chargeHeight = 20; DynamicSpriteFont font = Main.fontMouseText; float Shield = Math.Min(modPlayer.Shield, 150); string chargeText = Shield + "/" + 150; string maxText = "Shield Charge: " + 150 + "/" + 150; Vector2 maxTextSize = font.MeasureString(maxText); Color textColor = new Color(Main.mouseTextColor, Main.mouseTextColor, Main.mouseTextColor, Main.mouseTextColor); Main.spriteBatch.DrawString(font, "Shield Charge:", new Vector2(anchorX + barSize / 2 - maxTextSize.X / 2f, 42f), textColor, 0f, default(Vector2), 1f, SpriteEffects.None, 0f); Main.spriteBatch.DrawString(font, chargeText, new Vector2(anchorX + barSize / 2 + maxTextSize.X / 2f, 42f), textColor, 0f, new Vector2(font.MeasureString(chargeText).X, 0f), 1f, SpriteEffects.None, 0f); float fill = Shield / 150; Main.spriteBatch.Draw(mod.GetTexture("Interface/ShieldBar"), new Vector2(anchorX, 64f), null, Color.White, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f); Main.spriteBatch.Draw(mod.GetTexture("Interface/ShieldCharge"), new Vector2(anchorX + padding, 64f + padding), new Rectangle(0, 0, (int)(fill * chargeSize), chargeHeight), Color.White, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f); Main.spriteBatch.Draw(mod.GetTexture("Interface/ShieldBarShield"), new Vector2(anchorX + padding, 64f + padding), new Rectangle(0, 0, (int)(fill * chargeSize), chargeHeight), Color.White, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f); return(true); }
public override void AI() { projectile.tileCollide = false; Player player = Main.player[projectile.owner]; AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(); if (player.dead || !player.HasBuff(mod.BuffType("Devilsknife"))) { modPlayer.devilsknife = false; } if (modPlayer.devilsknife) { projectile.timeLeft = 2; } if (player.direction == 1) { projectile.spriteDirection = -1; } if (player.direction == -1) { projectile.spriteDirection = 1; } }
protected override void DrawSelf(SpriteBatch spriteBatch) { CalculatedStyle innerDimensions = GetInnerDimensions(); //Vector2 drawPos = new Vector2(innerDimensions.X + 5f, innerDimensions.Y + 30f); float shopx = innerDimensions.X; float shopy = innerDimensions.Y; Player player = Main.LocalPlayer; AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(); int anchorX = (int)shopx; DynamicSpriteFont font = Main.fontMouseText; string maxText = "9999"; Vector2 maxTextSize = font.MeasureString(maxText); Color textColor = new Color(Main.mouseTextColor, Main.mouseTextColor, Main.mouseTextColor, Main.mouseTextColor); Main.spriteBatch.DrawString(font, "" + modPlayer.RCT1, new Vector2(shopx + (float)(24) + (float)1, shopy), textColor, 0f, default(Vector2), 1f, SpriteEffects.None, 0f); Main.spriteBatch.DrawString(font, "" + modPlayer.RCT2, new Vector2(shopx + (float)(24) + (float)1, shopy + 60), textColor, 0f, default(Vector2), 1f, SpriteEffects.None, 0f); Main.spriteBatch.DrawString(font, "" + modPlayer.RCT3, new Vector2(shopx + (float)(24) + (float)1, shopy + 120), textColor, 0f, default(Vector2), 1f, SpriteEffects.None, 0f); Main.spriteBatch.DrawString(font, "" + modPlayer.RCT4, new Vector2(shopx + (float)(24) + (float)1, shopy + 180), textColor, 0f, default(Vector2), 1f, SpriteEffects.None, 0f); Main.spriteBatch.DrawString(font, "" + modPlayer.RCT5, new Vector2(shopx + (float)(24) + (float)1, shopy + 240), textColor, 0f, default(Vector2), 1f, SpriteEffects.None, 0f); Main.spriteBatch.DrawString(font, "" + modPlayer.RCT6, new Vector2(shopx + (float)(24) + (float)1, shopy + 300), textColor, 0f, default(Vector2), 1f, SpriteEffects.None, 0f); }
public override void Update(Player player, ref int buffIndex) { AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(); modPlayer.Defense8 = true; modPlayer.DR10 = true; modPlayer.Regeneration = true; modPlayer.Lifeforce = true; modPlayer.MS = true; player.longInvince = true; if (NPC.downedMechBoss2) { player.buffImmune[39] = true; player.buffImmune[69] = true; } player.buffImmune[24] = true; player.buffImmune[44] = true; player.buffImmune[46] = true; player.buffImmune[47] = true; player.lavaImmune = true; player.fireWalk = true; player.buffImmune[1] = true; player.buffImmune[2] = true; player.buffImmune[3] = true; player.buffImmune[5] = true; player.buffImmune[14] = true; player.buffImmune[113] = true; player.buffImmune[114] = true; player.buffImmune[mod.BuffType("LongInvincible")] = true; player.buffImmune[mod.BuffType("TitanSkin")] = true; if (player.thorns < 1.0) { player.thorns = 0.3333333f; } BuffLoader.Update(BuffID.ObsidianSkin, player, ref buffIndex); }
public override void Update(Player player, ref int buffIndex) { AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(); modPlayer.Defense8 = true; modPlayer.DR10 = true; modPlayer.Regeneration = true; modPlayer.Lifeforce = true; modPlayer.MS = true; player.lavaImmune = true; player.fireWalk = true; player.buffImmune[1] = true; player.buffImmune[2] = true; player.buffImmune[3] = true; player.buffImmune[5] = true; player.buffImmune[14] = true; player.buffImmune[113] = true; player.buffImmune[114] = true; if (player.thorns < 1.0) { player.thorns = 0.3333333f; } BuffLoader.Update(BuffID.ObsidianSkin, player, ref buffIndex); }
public override void AI() { Player player = Main.player[projectile.owner]; AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(mod); if (player.dead || !player.HasBuff(mod.BuffType("GrimReaper"))) { modPlayer.grimreaper = false; } if (modPlayer.grimreaper) { projectile.timeLeft = 2; } if (projectile.frameCounter > 20) { projectile.frame++; projectile.frameCounter = 0; } if (projectile.frame >= 8) { projectile.frame = 0; } }
public override void Update(Player player, ref int buffIndex) { AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(mod); if (player.ownedProjectileCounts[mod.ProjectileType("Snatcher")] > 0) { modPlayer.snatcher = true; } if (!modPlayer.snatcher) { player.DelBuff(buffIndex); buffIndex--; } else { player.buffTime[buffIndex] = 18000; } bool petProjectileNotSpawned = true; if (player.ownedProjectileCounts[mod.ProjectileType("Snatcher")] > 0) { petProjectileNotSpawned = false; } if (petProjectileNotSpawned && player.whoAmI == Main.myPlayer) { Projectile.NewProjectile(player.position.X + player.width / 2, player.position.Y + player.height / 2, 0f, 0f, mod.ProjectileType("Snatcher"), 0, 0f, player.whoAmI, 0f, 0f); } if (modPlayer.SnatcherCounter >= 500) { player.moveSpeed += 0.25f; } if (modPlayer.SnatcherCounter >= 1000) { player.statDefense += 10; } if (modPlayer.SnatcherCounter >= 1500) { player.endurance += 0.1f; } if (modPlayer.SnatcherCounter >= 2500) { player.maxMinions += 1; player.maxTurrets += 1; } if (modPlayer.SnatcherCounter >= 3500) { player.thrownDamage += 0.08f; player.meleeDamage += 0.08f; player.rangedDamage += 0.08f; player.magicDamage += 0.08f; player.minionDamage += 0.08f; if (ModLoader.GetLoadedMods().Contains("ThoriumMod")) { ThoriumDBoosts(player); } if (ModLoader.GetLoadedMods().Contains("Redemption")) { RedemptionDBoost(player); } if (ModLoader.GetLoadedMods().Contains("CalamityMod")) { CalamityDBoost(player); } } if (modPlayer.SnatcherCounter >= 5000) { player.meleeCrit += 10; player.rangedCrit += 10; player.magicCrit += 10; player.thrownCrit += 10; if (ModLoader.GetLoadedMods().Contains("ThoriumMod")) { ThoriumCBoosts(player); } if (ModLoader.GetLoadedMods().Contains("Redemption")) { RedemptionCBoost(player); } if (ModLoader.GetLoadedMods().Contains("CalamityMod")) { CalamityCBoost(player); } } if (modPlayer.SnatcherCounter >= 6666) { player.armorPenetration += 30; } if (modPlayer.SnatcherCounter >= 9999) { player.statLifeMax2 += player.statLifeMax / 10; } }
public override void Update(Player player, ref int buffIndex) { AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(); modPlayer.AllDamage10 = true; modPlayer.AllCrit10 = true; modPlayer.Defense8 = true; modPlayer.DR10 = true; modPlayer.Regeneration = true; modPlayer.Lifeforce = true; modPlayer.MS = true; player.magicDamage += 0.25f; player.magicCrit += 2; player.statManaMax2 += 20; player.manaCost -= 0.02f; player.manaRegenBuff = true; player.archery = true; player.ammoPotion = true; player.lavaImmune = true; player.fireWalk = true; player.buffImmune[24] = true; player.buffImmune[29] = true; player.buffImmune[39] = true; player.buffImmune[44] = true; player.buffImmune[46] = true; player.buffImmune[47] = true; player.buffImmune[69] = true; player.buffImmune[110] = true; player.buffImmune[112] = true; player.buffImmune[113] = true; player.buffImmune[114] = true; player.buffImmune[115] = true; player.buffImmune[117] = true; player.buffImmune[150] = true; player.buffImmune[mod.BuffType("BattleComb")] = true; player.buffImmune[mod.BuffType("TankComb")] = true; player.buffImmune[mod.BuffType("VanTankComb")] = true; player.buffImmune[mod.BuffType("RangerComb")] = true; player.buffImmune[mod.BuffType("MageComb")] = true; player.buffImmune[mod.BuffType("SummonerComb")] = true; player.buffImmune[1] = true; player.buffImmune[2] = true; player.buffImmune[3] = true; player.buffImmune[5] = true; player.buffImmune[6] = true; player.buffImmune[7] = true; player.buffImmune[14] = true; ++player.maxMinions; ++player.maxMinions; if (ModLoader.GetMod("MorePotions") != null) { if (player.HasBuff(mod.BuffType("MorePotionsComb")) || player.HasBuff(ModLoader.GetMod("MorePotions").BuffType("SoulbindingElixerPotionBuff"))) { --player.maxMinions; } if (player.HasBuff(mod.BuffType("MorePotionsComb")) || player.HasBuff(ModLoader.GetMod("MorePotions").BuffType("DiamondSkinPotionBuff"))) { player.statDefense -= 8; } } if (player.thorns < 1.0) { player.thorns = 0.3333333f; } BuffLoader.Update(BuffID.ObsidianSkin, player, ref buffIndex); }
public override void AI() { Player player = Main.player[projectile.owner]; AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(); if (player.dead || !player.HasBuff(mod.BuffType("Snatcher"))) { modPlayer.snatcher = false; } if (modPlayer.snatcher) { projectile.timeLeft = 2; } if (player.direction == 1) { projectile.spriteDirection = 1; projectile.position.X = player.position.X - 60; } if (player.direction == -1) { projectile.spriteDirection = -1; projectile.position.X = player.position.X + 25; } if (c1 < 75) { c1++; c2++; projectile.position.Y = player.position.Y - 80 + c1 / 5; } if (c1 >= 75) { c2--; projectile.position.Y = player.position.Y - 80 + c2 / 5; } if (c2 == 0) { c1 = 0; projectile.position.Y = player.position.Y - 80; } if (player.velocity.Y == 0f && player.velocity.X == 0f && projectile.frame != 0) { if (++projectile.frameCounter > 3) { if (projectile.frame > 0) { projectile.frame--; projectile.frameCounter = 0; } } } if (player.velocity.Y == 0f && player.velocity.X == 0f && projectile.frame == 2) { projectile.frame = 0; } if ((player.velocity.Y != 0f || player.velocity.X != 0f) && projectile.frame != 7) { if (++projectile.frameCounter > 1) { if (projectile.frame < 7) { projectile.frame++; projectile.frameCounter = 0; } } } if (modPlayer.SnatcherCounter >= 15000) { projectile.ai[0]++; for (int i = 0; i < 200; i++) { NPC target = Main.npc[i]; float shootToX = target.position.X + target.width * 0.5f - projectile.Center.X; float shootToY = target.position.Y + target.height * 0.5f - projectile.Center.Y; float distance = (float)Math.Sqrt(shootToX * shootToX + shootToY * shootToY); if (distance < 500f && target.catchItem == 0 && !target.dontTakeDamage && !target.friendly && target.active) { if (projectile.ai[0] > 60f) { int dmg = 1; if (player.HeldItem.damage < 50) { dmg = player.HeldItem.damage * 4; } else if (player.HeldItem.damage < 100) { dmg = player.HeldItem.damage * 2; } else { dmg = player.HeldItem.damage / 2; } Vector2 vel = new Vector2(0, -1); vel *= 10f; Main.PlaySound(SoundID.DD2_ExplosiveTrapExplode.WithVolume(.8f), projectile.position); for (int j = 0; j < 2; j++) { Vector2 perturbedSpeed = new Vector2(vel.X, vel.Y).RotatedByRandom(MathHelper.ToRadians(10)); Vector2 perturbedSpeed1 = new Vector2(vel.X, vel.Y).RotatedByRandom(MathHelper.ToRadians(10)); Vector2 perturbedSpeed2 = new Vector2(vel.X, vel.Y).RotatedByRandom(MathHelper.ToRadians(10)); Vector2 perturbedSpeed3 = new Vector2(vel.X, vel.Y).RotatedByRandom(MathHelper.ToRadians(10)); Vector2 perturbedSpeed4 = new Vector2(vel.X, vel.Y).RotatedByRandom(MathHelper.ToRadians(10)); Projectile.NewProjectile(target.Center.X, target.Center.Y + 48, perturbedSpeed.X, perturbedSpeed.Y, mod.ProjectileType("ShadowBurst"), dmg, 0, Main.myPlayer, 0f, 0f); Projectile.NewProjectile(target.Center.X, target.Center.Y + 48, perturbedSpeed1.X, perturbedSpeed1.Y, mod.ProjectileType("ShadowBurst"), dmg, 0, Main.myPlayer, 0f, 0f); Projectile.NewProjectile(target.Center.X, target.Center.Y + 48, perturbedSpeed2.X, perturbedSpeed2.Y, mod.ProjectileType("ShadowBurst"), dmg, 0, Main.myPlayer, 0f, 3f); Projectile.NewProjectile(target.Center.X, target.Center.Y + 48, perturbedSpeed3.X, perturbedSpeed3.Y, mod.ProjectileType("ShadowBurst"), dmg, 0, Main.myPlayer, 0f, 3f); Projectile.NewProjectile(target.Center.X, target.Center.Y + 48, perturbedSpeed4.X, perturbedSpeed4.Y, mod.ProjectileType("ShadowBurst"), dmg, 0, Main.myPlayer, 0f, 0f); } projectile.ai[0] = 0f; } } } } }
public override void ModifyBuffTip(ref string tipline, ref int rare) { string tip; string tipch; Player player = Main.player[Main.myPlayer]; AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(); tip = "Active boosts:"; tipch = "生效增益:"; if (modPlayer.KingSlimeBooster == 1) { tip += "\nIncreases jump height and safe fall distance greatly"; tipch += "\n极大提升跳跃高度和安全坠落距离"; } if (modPlayer.EyeOfCthulhuBooster == 1) { tip += "\nProvides creatures, treasures and traps detection"; tipch += "\n提供生物,宝藏和陷阱的探测能力"; } if (modPlayer.CustomBooster1 == 1) { tip += "\nGives Shine and Nightvision effects"; tipch += "\n给予发光和夜视效果"; } if (modPlayer.EaterOfWorldsBooster == 1) { tip += "\nIncreases melee speed by 5%, movement and mining speed by 25%"; tipch += "\n增加5%近战速度,增加25%移动和挖掘速度"; } if (modPlayer.BrainOfCthulhuBooster == 1) { tip += "\nIncreases max amount of minions by 1, Heartreach effect"; tipch += "\n增加1召唤物上限,获得心之彼端效果"; } if (modPlayer.QueenBeeBooster == 1) { tip += "\nHostile bees do less damage and your regeneration is increased by 6, immunity to poisons"; tipch += "\n敌方蜜蜂的伤害降低并且你的生命再生速度增加6,免疫中毒"; } if (modPlayer.SkeletronBooster == 1) { tip += "\nSkeletons contact damage is reduced, all damages/critical strike chances are increased by 10%"; tipch += "\n骷髅的接触伤害降低,所有伤害和暴击率提升10%"; } if (modPlayer.CustomBooster2 == 1) { tip += "\nProvides immunity to fire blocks, Obsidian Skin, Gills and Flipper effects"; tipch += "\n给予免疫火块,黑曜石皮肤,鱼鳃,脚蹼药剂效果"; } if (modPlayer.WoFBooster == 1) { tip += "\nIncreases max amount of minions/sentries by 1, defense and DR by 10/10%"; tipch += "\n增加1召唤物和哨兵炮台上限,10防御力和10%伤害减免"; } if (modPlayer.GSummonerBooster == 1) { tip += "\nMakes your attacks inflict Shadowflame and makes you immune to it"; tipch += "\n让你的攻击能造成暗影炎,你免疫暗影炎"; } if (modPlayer.DarkMageBooster == 1) { tip += "\nIncreases magic damage by 25%, max mana by 50 and mana regeneration greatly"; tipch += "\n提升25%魔法伤害,增加50魔法上限并极大提升魔力再生速度"; } if (modPlayer.IceGolemBooster == 1) { tip += "\nProvides immunity to Chilled, Frozen and Frostburn debuffs"; tipch += "\n免疫寒冷,冻结和霜火"; } if (modPlayer.PigronBooster == 1) { tip += "\nProvides Well Fed"; tipch += "\n吃得饱!"; } if (modPlayer.DestroyerBooster == 1) { tip += "\nIncreases mining speed by 33% and increases max life by 25%"; tipch += "\n增加33%挖掘速度并提升25%生命上限"; } if (modPlayer.PrimeBooster == 1) { tip += "\nIncreases armor penetration and melee speed by 15/15%, gives 200% thorns effect"; tipch += "\n提升15点护甲穿透和15%的近战速度,给予200%的荆棘药剂效果"; } if (modPlayer.TwinsBooster == 1) { tip += "\nArchery and Ammo Reservation effects, immunity to Cursed Flames and Ichor"; tipch += "\n箭术和弹药储备药剂效果,免疫咒焰和脓血"; } if (modPlayer.OgreBooster == 1) { tip += "\nIncreases defense and damage reduction by 5/5% and provides knockback immunity"; tipch += "\n提升5防御和增加5%伤害减免并免疫击退"; } if (modPlayer.PlanteraBooster == 1) { tip += "\nDamages and critical strike chances are boosted while you are moving, Philosopher's stone effect"; tipch += "\n移动时增加伤害和暴击率,获得炼金石效果(减药水cd)"; } if (modPlayer.GolemBooster == 1) { tip += "\nIncreases attack speed by 10% and increases melee knockback"; tipch += "\n增加10%攻击速度,提升近战击退力"; } if (modPlayer.BetsyBooster == 1) { tip += "\nYour attacks inflict Daybroken, flight abilities are increased"; tipch += "\n你的攻击造成破晓,飞行能力提升"; } if (modPlayer.FishronBooster == 1) { tip += "\n+4% all stats up while on surface, mount is always accelerated"; tipch += "\n处于地表时所有属性增加4%,坐骑总处于加速状态"; } if (modPlayer.MartianSaucerBooster == 1) { tip += "\nProvides immunity to Electrified and Distorted debuffs"; tipch += "\n免疫电击和重力扭曲"; } if (modPlayer.CultistBooster == 1) { tip += "\nReduces damage taken from Pillars enemies, mobs may drop lunar fragments"; tipch += "\n减少受到月柱敌人造成的伤害,小怪可能掉落月柱碎片"; } if (modPlayer.MoonLordBooster == 1) { tip += "\nYou emit aura which weakens enemies around"; tipch += "\n你产生能弱化周围敌人的光环"; } if (Language.ActiveCulture == GameCulture.Chinese) { tipline = tipch; } else { tipline = tip; } }
public override void AI() { Player player = Main.player[projectile.owner]; AlchemistNPCPlayer modPlayer = player.GetModPlayer <AlchemistNPCPlayer>(); if (player.dead || !player.HasBuff(mod.BuffType("Snatcher"))) { modPlayer.snatcher = false; } if (modPlayer.snatcher) { projectile.timeLeft = 2; } if (player.direction == 1) { projectile.spriteDirection = 1; projectile.position.X = player.position.X - 60; } if (player.direction == -1) { projectile.spriteDirection = -1; projectile.position.X = player.position.X + 25; } if (c1 < 75) { c1++; c2++; projectile.position.Y = player.position.Y - 80 + c1 / 5; } if (c1 >= 75) { c2--; projectile.position.Y = player.position.Y - 80 + c2 / 5; } if (c2 == 0) { c1 = 0; projectile.position.Y = player.position.Y - 80; } if (player.velocity.Y == 0f && player.velocity.X == 0f && projectile.frame != 0) { if (++projectile.frameCounter > 3) { if (projectile.frame > 0) { projectile.frame--; projectile.frameCounter = 0; } } } if (player.velocity.Y == 0f && player.velocity.X == 0f && projectile.frame == 2) { projectile.frame = 0; } if ((player.velocity.Y != 0f || player.velocity.X != 0f) && projectile.frame != 7) { if (++projectile.frameCounter > 1) { if (projectile.frame < 7) { projectile.frame++; projectile.frameCounter = 0; } } } }