diff --git a/AssWorld.cs b/AssWorld.cs index cae77032..82e84cf2 100644 --- a/AssWorld.cs +++ b/AssWorld.cs @@ -1,5 +1,5 @@ using AssortedCrazyThings.NPCs; -using AssortedCrazyThings.NPCs.DungeonBird; +using AssortedCrazyThings.NPCs.Harvester; using Microsoft.Xna.Framework; using System.Collections.Generic; using System.IO; diff --git a/AssortedCrazyThings.cs b/AssortedCrazyThings.cs index 7a2cc3ba..9929e50f 100644 --- a/AssortedCrazyThings.cs +++ b/AssortedCrazyThings.cs @@ -2,7 +2,7 @@ using AssortedCrazyThings.Effects; using AssortedCrazyThings.Items.Pets.CuteSlimes; using AssortedCrazyThings.Items.Weapons; -using AssortedCrazyThings.NPCs.DungeonBird; +using AssortedCrazyThings.NPCs.Harvester; using AssortedCrazyThings.Projectiles.Pets; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; @@ -122,7 +122,7 @@ private void LoadHarvesterTypes() return; } - harvester = ModContent.NPCType(); + harvester = ModContent.NPCType(); harvesterTalonLeft = ModContent.NPCType(); harvesterTalonRight = ModContent.NPCType(); } diff --git a/Base/ModSupport/OtherModCalls.cs b/Base/ModSupport/OtherModCalls.cs index 930ee5f0..cea269db 100644 --- a/Base/ModSupport/OtherModCalls.cs +++ b/Base/ModSupport/OtherModCalls.cs @@ -4,7 +4,7 @@ using AssortedCrazyThings.Items.Placeable; using AssortedCrazyThings.Items.VanityArmor; using AssortedCrazyThings.Items.Weapons; -using AssortedCrazyThings.NPCs.DungeonBird; +using AssortedCrazyThings.NPCs.Harvester; using AssortedCrazyThings.Projectiles.Minions; using AssortedCrazyThings.Projectiles.Minions.CompanionDungeonSouls; using System; @@ -36,8 +36,6 @@ public override void PostSetupContent() int summonItem = ModContent.ItemType(); - //TODO harvester, include 15 x ModContent.ItemType() in loot but dont spawn it - /* * "AddBoss", args[1] as Mod, // Mod @@ -55,7 +53,7 @@ args[11] as Action // Custom Drawing bossChecklist.Call( "AddBoss", Mod, - Harvester.name, + HarvesterBoss.name, AssortedCrazyThings.harvester, 5.1f, (Func)(() => AssWorld.downedHarvester), diff --git a/BossBars/HarvesterBossBar.cs b/BossBars/HarvesterBossBar.cs index 3f4048eb..c12fabb0 100644 --- a/BossBars/HarvesterBossBar.cs +++ b/BossBars/HarvesterBossBar.cs @@ -1,4 +1,4 @@ -using AssortedCrazyThings.NPCs.DungeonBird; +using AssortedCrazyThings.NPCs.Harvester; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using ReLogic.Content; @@ -35,7 +35,7 @@ public override Asset GetIconTexture(ref Rectangle? iconFrame) lifePercent = Utils.Clamp(npc.life / (float)npc.lifeMax, 0f, 1f); shieldPercent = 0f; - if (npc.ModNPC is Harvester harvester) + if (npc.ModNPC is HarvesterBoss harvester) { if (!harvester.IsReviving) { @@ -45,8 +45,8 @@ public override Asset GetIconTexture(ref Rectangle? iconFrame) lifePercent = 0f; var stats = harvester.GetAIStats(); - shieldPercent = Utils.Clamp(harvester.ReviveProgress / Harvester.Revive_Duration, 0f, 1f); - shieldPercent = Utils.Remap(shieldPercent, 0f, 1f, Harvester.Revive_MinHP, stats.MaxHP); + shieldPercent = Utils.Clamp(harvester.ReviveProgress / HarvesterBoss.Revive_Duration, 0f, 1f); + shieldPercent = Utils.Remap(shieldPercent, 0f, 1f, HarvesterBoss.Revive_MinHP, stats.MaxHP); } return true; diff --git a/Buffs/NPCs/Bosses/DungeonBird/BabyHarvesterBuff.cs b/Buffs/NPCs/Bosses/Harvester/BabyHarvesterBuff.cs similarity index 95% rename from Buffs/NPCs/Bosses/DungeonBird/BabyHarvesterBuff.cs rename to Buffs/NPCs/Bosses/Harvester/BabyHarvesterBuff.cs index 65182fc7..a7c856db 100644 --- a/Buffs/NPCs/Bosses/DungeonBird/BabyHarvesterBuff.cs +++ b/Buffs/NPCs/Bosses/Harvester/BabyHarvesterBuff.cs @@ -1,4 +1,4 @@ -using AssortedCrazyThings.Projectiles.NPCs.Bosses.DungeonBird; +using AssortedCrazyThings.Projectiles.NPCs.Bosses.Harvester; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using ReLogic.Content; @@ -7,7 +7,7 @@ using Terraria.ID; using Terraria.ModLoader; -namespace AssortedCrazyThings.Buffs.NPCs.Bosses.DungeonBird +namespace AssortedCrazyThings.Buffs.NPCs.Bosses.Harvester { [Content(ContentType.Bosses)] public class BabyHarvesterBuff : AssBuff diff --git a/Buffs/NPCs/Bosses/DungeonBird/BabyHarvesterBuff.png b/Buffs/NPCs/Bosses/Harvester/BabyHarvesterBuff.png similarity index 100% rename from Buffs/NPCs/Bosses/DungeonBird/BabyHarvesterBuff.png rename to Buffs/NPCs/Bosses/Harvester/BabyHarvesterBuff.png diff --git a/Buffs/NPCs/Bosses/DungeonBird/BabyHarvesterBuff_Sheet.png b/Buffs/NPCs/Bosses/Harvester/BabyHarvesterBuff_Sheet.png similarity index 100% rename from Buffs/NPCs/Bosses/DungeonBird/BabyHarvesterBuff_Sheet.png rename to Buffs/NPCs/Bosses/Harvester/BabyHarvesterBuff_Sheet.png diff --git a/Items/CaughtDungeonSoul.cs b/Items/CaughtDungeonSoul.cs index 74357056..3dc39cd3 100644 --- a/Items/CaughtDungeonSoul.cs +++ b/Items/CaughtDungeonSoul.cs @@ -1,5 +1,5 @@ -using AssortedCrazyThings.NPCs.DungeonBird; -using AssortedCrazyThings.Projectiles.NPCs.Bosses.DungeonBird; +using AssortedCrazyThings.NPCs.Harvester; +using AssortedCrazyThings.Projectiles.NPCs.Bosses.Harvester; using Microsoft.Xna.Framework; using System.Collections.Generic; using Terraria; @@ -15,7 +15,7 @@ public override void SetStaticDefaults() { DisplayName.SetDefault("Loose Dungeon Soul"); Tooltip.SetDefault("'An inert soul caught by a net'" - + "\nAwakened in your inventory when " + Harvester.name + " is defeated"); + + "\nAwakened in your inventory when " + HarvesterBoss.name + " is defeated"); // ticksperframe, frameCount //Main.RegisterItemAnimation(Item.type, new DrawAnimationVertical(5, 4)); //ItemID.Sets.AnimatesAsSoul[Item.type] = true; diff --git a/Items/CaughtDungeonSoulFreed.cs b/Items/CaughtDungeonSoulFreed.cs index d2260cc5..d50552a0 100644 --- a/Items/CaughtDungeonSoulFreed.cs +++ b/Items/CaughtDungeonSoulFreed.cs @@ -1,4 +1,4 @@ -using AssortedCrazyThings.NPCs.DungeonBird; +using AssortedCrazyThings.NPCs.Harvester; using Terraria; using Terraria.ID; @@ -11,7 +11,7 @@ public class CaughtDungeonSoulFreed : CaughtDungeonSoulBase public override void SetStaticDefaults() { DisplayName.SetDefault("Freed Dungeon Soul"); - Tooltip.SetDefault("Awakened by defeating the " + Harvester.name); + Tooltip.SetDefault("Awakened by defeating the " + HarvesterBoss.name); ItemID.Sets.ItemIconPulse[Item.type] = true; ItemID.Sets.ItemNoGravity[Item.type] = true; diff --git a/Items/IdolOfDecay.cs b/Items/IdolOfDecay.cs index 3ca744ad..18fa00ed 100644 --- a/Items/IdolOfDecay.cs +++ b/Items/IdolOfDecay.cs @@ -1,5 +1,5 @@ -using AssortedCrazyThings.NPCs.DungeonBird; -using AssortedCrazyThings.Projectiles.NPCs.Bosses.DungeonBird; +using AssortedCrazyThings.NPCs.Harvester; +using AssortedCrazyThings.Projectiles.NPCs.Bosses.Harvester; using Terraria; using Terraria.ID; @@ -11,7 +11,7 @@ public class IdolOfDecay : AssItem public override void SetStaticDefaults() { DisplayName.SetDefault("Idol Of Decay"); - Tooltip.SetDefault("Summons " + Harvester.name + "'s final form in the dungeon" + Tooltip.SetDefault("Summons " + HarvesterBoss.name + "'s final form in the dungeon" + "\nUnlimited uses!"); Terraria.GameContent.Creative.CreativeItemSacrificesCatalog.Instance.SacrificeCountNeededByItemId[Type] = 1; diff --git a/NPCs/DungeonBird/HarvesterTalon.png b/NPCs/DungeonBird/HarvesterTalon.png deleted file mode 100644 index 57e8e11a..00000000 Binary files a/NPCs/DungeonBird/HarvesterTalon.png and /dev/null differ diff --git a/NPCs/DungeonBird/DungeonSoul.png b/NPCs/Harvester/DungeonSoul.png similarity index 100% rename from NPCs/DungeonBird/DungeonSoul.png rename to NPCs/Harvester/DungeonSoul.png diff --git a/NPCs/DungeonBird/DungeonSoulBase.cs b/NPCs/Harvester/DungeonSoulBase.cs similarity index 98% rename from NPCs/DungeonBird/DungeonSoulBase.cs rename to NPCs/Harvester/DungeonSoulBase.cs index c4c17539..9d113663 100644 --- a/NPCs/DungeonBird/DungeonSoulBase.cs +++ b/NPCs/Harvester/DungeonSoulBase.cs @@ -7,7 +7,7 @@ using Terraria.ID; using Terraria.ModLoader; -namespace AssortedCrazyThings.NPCs.DungeonBird +namespace AssortedCrazyThings.NPCs.Harvester { //this class also contains the NPC classes at the very bottom [Content(ContentType.Bosses)] diff --git a/NPCs/DungeonBird/DungeonSoulFreed.png b/NPCs/Harvester/DungeonSoulFreed.png similarity index 100% rename from NPCs/DungeonBird/DungeonSoulFreed.png rename to NPCs/Harvester/DungeonSoulFreed.png diff --git a/NPCs/DungeonBird/Harvester.cs b/NPCs/Harvester/HarvesterBoss.cs similarity index 99% rename from NPCs/DungeonBird/Harvester.cs rename to NPCs/Harvester/HarvesterBoss.cs index 2c627943..9b9bbb3a 100644 --- a/NPCs/DungeonBird/Harvester.cs +++ b/NPCs/Harvester/HarvesterBoss.cs @@ -8,7 +8,7 @@ using AssortedCrazyThings.Items.VanityArmor; using AssortedCrazyThings.NPCs.DropConditions; using AssortedCrazyThings.NPCs.DropRules; -using AssortedCrazyThings.Projectiles.NPCs.Bosses.DungeonBird; +using AssortedCrazyThings.Projectiles.NPCs.Bosses.Harvester; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using ReLogic.Content; @@ -25,11 +25,12 @@ using Terraria.ModLoader; using Terraria.ModLoader.IO; -namespace AssortedCrazyThings.NPCs.DungeonBird +namespace AssortedCrazyThings.NPCs.Harvester { [AutoloadBossHead] [Content(ContentType.Bosses)] - public class Harvester : AssNPC + [LegacyName("Harvester")] + public class HarvesterBoss : AssNPC { public class AIStats { @@ -145,7 +146,7 @@ public override void SetStaticDefaults() NPCID.Sets.NPCBestiaryDrawModifiers value = new NPCID.Sets.NPCBestiaryDrawModifiers(0) { - CustomTexturePath = "AssortedCrazyThings/NPCs/DungeonBird/Harvester_Bestiary", + CustomTexturePath = "AssortedCrazyThings/NPCs/Harvester/Harvester_Bestiary", Position = new Vector2(-9, 18), //Position on the icon PortraitPositionXOverride = 0, //Position on the portrait when clicked on PortraitPositionYOverride = 20, @@ -1191,6 +1192,13 @@ private void HandleAI(Player target, List talons) if (AI_Timer < 0) { AI_Timer--; + + if (!keepSwooping) + { + //Last seek stage before bombing: put talons out + AI_Animation = Animation_Bombing; + } + float swoopPostTime = aiStats.SwoopWaitTime * lifeRatioClamped; if (AI_Timer < -swoopPostTime) { diff --git a/NPCs/DungeonBird/Harvester.png b/NPCs/Harvester/HarvesterBoss.png similarity index 100% rename from NPCs/DungeonBird/Harvester.png rename to NPCs/Harvester/HarvesterBoss.png diff --git a/NPCs/DungeonBird/HarvesterChain.png b/NPCs/Harvester/HarvesterBossChain.png similarity index 100% rename from NPCs/DungeonBird/HarvesterChain.png rename to NPCs/Harvester/HarvesterBossChain.png diff --git a/NPCs/DungeonBird/Harvester_Bestiary.png b/NPCs/Harvester/HarvesterBoss_Bestiary.png similarity index 100% rename from NPCs/DungeonBird/Harvester_Bestiary.png rename to NPCs/Harvester/HarvesterBoss_Bestiary.png diff --git a/NPCs/DungeonBird/Harvester_Head_Boss.png b/NPCs/Harvester/HarvesterBoss_Head_Boss.png similarity index 100% rename from NPCs/DungeonBird/Harvester_Head_Boss.png rename to NPCs/Harvester/HarvesterBoss_Head_Boss.png diff --git a/NPCs/DungeonBird/Harvester_Sheet.png b/NPCs/Harvester/HarvesterBoss_Sheet.png similarity index 100% rename from NPCs/DungeonBird/Harvester_Sheet.png rename to NPCs/Harvester/HarvesterBoss_Sheet.png diff --git a/NPCs/DungeonBird/Harvester_Wings.png b/NPCs/Harvester/HarvesterBoss_Wings.png similarity index 100% rename from NPCs/DungeonBird/Harvester_Wings.png rename to NPCs/Harvester/HarvesterBoss_Wings.png diff --git a/NPCs/DungeonBird/HarvesterTalon.cs b/NPCs/Harvester/HarvesterTalon.cs similarity index 83% rename from NPCs/DungeonBird/HarvesterTalon.cs rename to NPCs/Harvester/HarvesterTalon.cs index ba064c2e..d303d9fe 100644 --- a/NPCs/DungeonBird/HarvesterTalon.cs +++ b/NPCs/Harvester/HarvesterTalon.cs @@ -8,7 +8,7 @@ using Terraria.ID; using Terraria.ModLoader; -namespace AssortedCrazyThings.NPCs.DungeonBird +namespace AssortedCrazyThings.NPCs.Harvester { [Content(ContentType.Bosses)] public abstract class HarvesterTalon : AssNPC @@ -17,7 +17,7 @@ public override string Texture { get { - return "AssortedCrazyThings/NPCs/DungeonBird/HarvesterTalon"; + return "AssortedCrazyThings/NPCs/Harvester/HarvesterTalon"; } } @@ -29,20 +29,23 @@ public override string Texture public const int ChainFrameCount = 6; public const int ChainFrameSpeed = 6; public static Asset ChainAsset; + public static Asset OutlineAsset; public override void Load() { - ChainAsset = Mod.Assets.Request("NPCs/DungeonBird/HarvesterChain"); + ChainAsset = Mod.Assets.Request("NPCs/Harvester/HarvesterBossChain"); + OutlineAsset = ModContent.Request(Texture + "_Outline"); } public override void Unload() { ChainAsset = null; + OutlineAsset = null; } public override void SetStaticDefaults() { - DisplayName.SetDefault(Harvester.name); + DisplayName.SetDefault(HarvesterBoss.name); Main.npcFrameCount[NPC.type] = 1; NPCID.Sets.NPCBestiaryDrawModifiers value = new NPCID.Sets.NPCBestiaryDrawModifiers(0) @@ -96,7 +99,7 @@ public override void SetDefaults() NPC.width = 40; //38 //latest 40 NPC.height = 42; //42//latest 30 NPC.aiStyle = -1; - NPC.damage = Harvester.talonDamage; + NPC.damage = HarvesterBoss.talonDamage; NPC.defense = 28; NPC.lifeMax = 1337; NPC.scale = 1f; @@ -127,24 +130,13 @@ public override bool PreDraw(SpriteBatch spriteBatch, Vector2 screenPos, Color d public override void PostDraw(SpriteBatch spriteBatch, Vector2 screenPos, Color drawColor) { - if (!HasParent) + if (!HasParent || !Visible) { return; } NPC body = Main.npc[ParentWhoAmI]; - Harvester harvester = null; - - if (body.ModNPC is Harvester h) - { - harvester = h; - if (h.AI_State != Harvester.State_Bombing) - { - return; - } - } - - if (harvester == null) + if (body.ModNPC is not HarvesterBoss harvester) { return; } @@ -155,7 +147,7 @@ public override void PostDraw(SpriteBatch spriteBatch, Vector2 screenPos, Color y -= -harvester.talonOffsetY + 20f; //has to result to 7f x += GetOffset(harvester); //66f, -70f - x += NPC.spriteDirection * (Harvester.talonDirectionalOffset + 6); + x += NPC.spriteDirection * (HarvesterBoss.talonDirectionalOffset + 6); SpriteEffects effect = (NPC.spriteDirection == 1) ? SpriteEffects.FlipHorizontally : SpriteEffects.None; @@ -182,7 +174,7 @@ public override void PostDraw(SpriteBatch spriteBatch, Vector2 screenPos, Color y = body.Center.Y - center.Y; y -= -harvester.talonOffsetY + 20f; x += GetOffset(harvester); - x += NPC.spriteDirection * (Harvester.talonDirectionalOffset + 0); + x += NPC.spriteDirection * (HarvesterBoss.talonDirectionalOffset + 0); if (Main.rand.NextBool(8)) { @@ -198,8 +190,39 @@ public override void PostDraw(SpriteBatch spriteBatch, Vector2 screenPos, Color } } + texture = OutlineAsset.Value; + + int spriteOffset = -NPC.spriteDirection * HarvesterBoss.talonDirectionalOffset; + Vector2 drawPos = NPC.Center - screenPos + new Vector2(spriteOffset, NPC.gfxOffY); + Color color = new Color(195, 247, 255); + + int fadeIn = 10; + int fadeDuration = 10; + int fadeOut = 12; + int finalTime = fadeIn + fadeDuration; + if (OutlineFadeTimer < fadeIn) + { + color *= (float)OutlineFadeTimer / fadeIn; + } + else if (OutlineFadeTimer > finalTime) + { + int fadeOutTimer = OutlineFadeTimer - finalTime; + if (fadeOutTimer < fadeOut) + { + color *= 1f - (float)fadeOutTimer / fadeOut; + } + else + { + color *= 0f; + } + } + + spriteBatch.Draw(texture, drawPos + new Vector2(0, 0.5f), NPC.frame, color, NPC.rotation, texture.Size() / 2, NPC.scale, effect, 0f); + + Main.instance.LoadNPC(NPC.type); texture = TextureAssets.Npc[NPC.type].Value; - spriteBatch.Draw(texture, NPC.Center - screenPos + new Vector2(0f, NPC.gfxOffY), NPC.frame, NPC.GetAlpha(drawColor), 0f, texture.Size() / 2, 1f, effect, 0f); + color = NPC.GetAlpha(drawColor); + spriteBatch.Draw(texture, drawPos, NPC.frame, color, NPC.rotation, texture.Size() / 2, NPC.scale, effect, 0f); } public override void OnHitPlayer(Player target, int damage, bool crit) @@ -231,6 +254,26 @@ public bool Idle set => NPC.localAI[0] = value ? 0f : 1f; } + public bool LastTickVisible + { + get => NPC.localAI[1] == 1f; + set => NPC.localAI[1] = value ? 1f : 0f; + } + + public bool CurrentTickVisible + { + get => NPC.localAI[2] == 1f; + set => NPC.localAI[2] = value ? 1f : 0f; + } + + public bool Visible => LastTickVisible && CurrentTickVisible; + + public int OutlineFadeTimer + { + get => (int)NPC.localAI[3]; + set => NPC.localAI[3] = value; + } + public override bool CheckDead() { NPC.boss = false; //To get rid of the default death message @@ -262,12 +305,14 @@ public override void AI() return; } - Harvester harvester = body.ModNPC as Harvester; + HarvesterBoss harvester = body.ModNPC as HarvesterBoss; NPC.target = body.target; if (NPC.target < 0 || NPC.target >= Main.maxPlayers) return; Player target = Main.player[NPC.target]; + CheckVisible(harvester); + NPC.gfxOffY = body.gfxOffY; NPC.spriteDirection = body.spriteDirection; NPC.direction = body.direction; @@ -330,7 +375,7 @@ public override void AI() betweenSelfAndBodyX += GetOffset(harvester); float len = (float)Math.Sqrt(betweenSelfAndBodyX * betweenSelfAndBodyX + betweenSelfAndBodyY * betweenSelfAndBodyY); float somevar = 12f; - if (len < somevar + speed && harvester.AI_State == Harvester.State_Bombing) + if (len < somevar + speed && harvester.AI_State == HarvesterBoss.State_Bombing) { RetractCounter = 0f; NPC.velocity.X = betweenSelfAndBodyX; @@ -481,7 +526,22 @@ public override void AI() } } - private float GetOffset(Harvester harvester) + private void CheckVisible(HarvesterBoss harvester) + { + CurrentTickVisible = LastTickVisible; + LastTickVisible = harvester.AI_Animation == HarvesterBoss.Animation_Bombing; + + if (Visible) + { + OutlineFadeTimer++; + } + else + { + OutlineFadeTimer = 0; + } + } + + private float GetOffset(HarvesterBoss harvester) { return RightTalon ? harvester.talonOffsetRightX : harvester.talonOffsetLeftX; } diff --git a/NPCs/Harvester/HarvesterTalon.png b/NPCs/Harvester/HarvesterTalon.png new file mode 100644 index 00000000..dab43141 Binary files /dev/null and b/NPCs/Harvester/HarvesterTalon.png differ diff --git a/NPCs/Harvester/HarvesterTalon_Outline.png b/NPCs/Harvester/HarvesterTalon_Outline.png new file mode 100644 index 00000000..7ba15550 Binary files /dev/null and b/NPCs/Harvester/HarvesterTalon_Outline.png differ diff --git a/NPCs/HarvesterGlobalNPC.cs b/NPCs/HarvesterGlobalNPC.cs index 10677ae7..f8af0654 100644 --- a/NPCs/HarvesterGlobalNPC.cs +++ b/NPCs/HarvesterGlobalNPC.cs @@ -1,4 +1,4 @@ -using AssortedCrazyThings.NPCs.DungeonBird; +using AssortedCrazyThings.NPCs.Harvester; using Terraria; using Terraria.ID; using Terraria.ModLoader; diff --git a/Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterHandler.cs b/Projectiles/NPCs/Bosses/Harvester/BabyHarvesterHandler.cs similarity index 97% rename from Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterHandler.cs rename to Projectiles/NPCs/Bosses/Harvester/BabyHarvesterHandler.cs index 56144306..19572745 100644 --- a/Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterHandler.cs +++ b/Projectiles/NPCs/Bosses/Harvester/BabyHarvesterHandler.cs @@ -1,14 +1,14 @@ using AssortedCrazyThings.Base; using AssortedCrazyThings.Buffs; using AssortedCrazyThings.NPCs; -using AssortedCrazyThings.NPCs.DungeonBird; +using AssortedCrazyThings.NPCs.Harvester; using Microsoft.Xna.Framework; using System; using Terraria; using Terraria.ID; using Terraria.ModLoader; -namespace AssortedCrazyThings.Projectiles.NPCs.Bosses.DungeonBird +namespace AssortedCrazyThings.Projectiles.NPCs.Bosses.Harvester { [Content(ContentType.Bosses)] public class BabyHarvesterHandler : AssSystem @@ -179,7 +179,7 @@ private static void TrySpawnBabyHarvester() { //AssUtils.Print(Main.time + " spawning harvester"); BabyHarvesterProj.Spawn(player); - AssWorld.Message("You hear a faint cawing from the dungeon.", Harvester.deathColor); + AssWorld.Message("You hear a faint cawing from the dungeon.", HarvesterBoss.deathColor); break; } diff --git a/Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterPlayer.cs b/Projectiles/NPCs/Bosses/Harvester/BabyHarvesterPlayer.cs similarity index 93% rename from Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterPlayer.cs rename to Projectiles/NPCs/Bosses/Harvester/BabyHarvesterPlayer.cs index b61b530c..5dea54ff 100644 --- a/Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterPlayer.cs +++ b/Projectiles/NPCs/Bosses/Harvester/BabyHarvesterPlayer.cs @@ -1,6 +1,6 @@ using Terraria; -namespace AssortedCrazyThings.Projectiles.NPCs.Bosses.DungeonBird +namespace AssortedCrazyThings.Projectiles.NPCs.Bosses.Harvester { [Content(ContentType.Bosses)] public class BabyHarvesterPlayer : AssPlayerBase diff --git a/Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj.cs b/Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj.cs similarity index 98% rename from Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj.cs rename to Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj.cs index 1e05a7cd..c19bfd71 100644 --- a/Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj.cs +++ b/Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj.cs @@ -1,6 +1,6 @@ using AssortedCrazyThings.Base; -using AssortedCrazyThings.Buffs.NPCs.Bosses.DungeonBird; -using AssortedCrazyThings.NPCs.DungeonBird; +using AssortedCrazyThings.Buffs.NPCs.Bosses.Harvester; +using AssortedCrazyThings.NPCs.Harvester; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using ReLogic.Content; @@ -14,7 +14,7 @@ using Terraria.ID; using Terraria.ModLoader; -namespace AssortedCrazyThings.Projectiles.NPCs.Bosses.DungeonBird +namespace AssortedCrazyThings.Projectiles.NPCs.Bosses.Harvester { //This projectile represents all 3 stages of the pre-harvester boss encounter [Content(ContentType.Bosses)] @@ -736,16 +736,16 @@ private bool TransformationAI() { int yOffset = 62; //Manually adjusted int index = NPC.NewNPC(new EntitySource_BossSpawn(Player), (int)Projectile.Center.X, (int)Projectile.Center.Y + yOffset, type); - if (index < Main.maxNPCs && Main.npc[index] is NPC npc && npc.ModNPC is Harvester harvester) + if (index < Main.maxNPCs && Main.npc[index] is NPC npc && npc.ModNPC is HarvesterBoss harvester) { - harvester.AI_State = Harvester.State_SpawnedByBaby; + harvester.AI_State = HarvesterBoss.State_SpawnedByBaby; if (Main.netMode == NetmodeID.Server) { NetMessage.SendData(MessageID.SyncNPC, number: index); } } - AssWorld.AwakeningMessage(Harvester.name + " has been awakened!"); + AssWorld.AwakeningMessage(HarvesterBoss.name + " has been awakened!"); } Projectile.Kill(); diff --git a/Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj.png b/Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj.png similarity index 100% rename from Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj.png rename to Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj.png diff --git a/Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj1_Sheet.png b/Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj1_Sheet.png similarity index 100% rename from Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj1_Sheet.png rename to Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj1_Sheet.png diff --git a/Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj2_Sheet.png b/Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj2_Sheet.png similarity index 100% rename from Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj2_Sheet.png rename to Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj2_Sheet.png diff --git a/Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj2_Sheet_Wings.png b/Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj2_Sheet_Wings.png similarity index 100% rename from Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj2_Sheet_Wings.png rename to Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj2_Sheet_Wings.png diff --git a/Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj3_Sheet.png b/Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj3_Sheet.png similarity index 100% rename from Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj3_Sheet.png rename to Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj3_Sheet.png diff --git a/Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj3_Sheet_Wings.png b/Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj3_Sheet_Wings.png similarity index 100% rename from Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj3_Sheet_Wings.png rename to Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj3_Sheet_Wings.png diff --git a/Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj_Transformation1.png b/Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj_Transformation1.png similarity index 100% rename from Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj_Transformation1.png rename to Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj_Transformation1.png diff --git a/Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj_Transformation1_Glowmask.png b/Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj_Transformation1_Glowmask.png similarity index 100% rename from Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj_Transformation1_Glowmask.png rename to Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj_Transformation1_Glowmask.png diff --git a/Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj_Transformation2.png b/Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj_Transformation2.png similarity index 100% rename from Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj_Transformation2.png rename to Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj_Transformation2.png diff --git a/Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj_Transformation2_Glowmask.png b/Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj_Transformation2_Glowmask.png similarity index 100% rename from Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj_Transformation2_Glowmask.png rename to Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj_Transformation2_Glowmask.png diff --git a/Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj_Transformation3.png b/Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj_Transformation3.png similarity index 100% rename from Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj_Transformation3.png rename to Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj_Transformation3.png diff --git a/Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj_Transformation3_Glowmask.png b/Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj_Transformation3_Glowmask.png similarity index 100% rename from Projectiles/NPCs/Bosses/DungeonBird/BabyHarvesterProj_Transformation3_Glowmask.png rename to Projectiles/NPCs/Bosses/Harvester/BabyHarvesterProj_Transformation3_Glowmask.png diff --git a/Projectiles/NPCs/Bosses/DungeonBird/HarvesterAbsorbedSoul.cs b/Projectiles/NPCs/Bosses/Harvester/HarvesterAbsorbedSoul.cs similarity index 97% rename from Projectiles/NPCs/Bosses/DungeonBird/HarvesterAbsorbedSoul.cs rename to Projectiles/NPCs/Bosses/Harvester/HarvesterAbsorbedSoul.cs index 0c073779..dd8f3398 100644 --- a/Projectiles/NPCs/Bosses/DungeonBird/HarvesterAbsorbedSoul.cs +++ b/Projectiles/NPCs/Bosses/Harvester/HarvesterAbsorbedSoul.cs @@ -1,7 +1,7 @@ using Microsoft.Xna.Framework; using Terraria; -namespace AssortedCrazyThings.Projectiles.NPCs.Bosses.DungeonBird +namespace AssortedCrazyThings.Projectiles.NPCs.Bosses.Harvester { [Content(ContentType.Bosses)] public class HarvesterAbsorbedSoul : AssProjectile diff --git a/Projectiles/NPCs/Bosses/DungeonBird/HarvesterBone.cs b/Projectiles/NPCs/Bosses/Harvester/HarvesterBone.cs similarity index 93% rename from Projectiles/NPCs/Bosses/DungeonBird/HarvesterBone.cs rename to Projectiles/NPCs/Bosses/Harvester/HarvesterBone.cs index 0730bf54..2f739037 100644 --- a/Projectiles/NPCs/Bosses/DungeonBird/HarvesterBone.cs +++ b/Projectiles/NPCs/Bosses/Harvester/HarvesterBone.cs @@ -3,7 +3,7 @@ using Terraria.Audio; using Terraria.ID; -namespace AssortedCrazyThings.Projectiles.NPCs.Bosses.DungeonBird +namespace AssortedCrazyThings.Projectiles.NPCs.Bosses.Harvester { //used in BaseHarvester, same as bone, just applies slow [Content(ContentType.Bosses)] diff --git a/Projectiles/NPCs/Bosses/DungeonBird/HarvesterFracturedSoul.cs b/Projectiles/NPCs/Bosses/Harvester/HarvesterFracturedSoul.cs similarity index 98% rename from Projectiles/NPCs/Bosses/DungeonBird/HarvesterFracturedSoul.cs rename to Projectiles/NPCs/Bosses/Harvester/HarvesterFracturedSoul.cs index d6124b53..85fb8ce3 100644 --- a/Projectiles/NPCs/Bosses/DungeonBird/HarvesterFracturedSoul.cs +++ b/Projectiles/NPCs/Bosses/Harvester/HarvesterFracturedSoul.cs @@ -4,7 +4,7 @@ using Terraria.Audio; using Terraria.ID; -namespace AssortedCrazyThings.Projectiles.NPCs.Bosses.DungeonBird +namespace AssortedCrazyThings.Projectiles.NPCs.Bosses.Harvester { [Content(ContentType.Bosses)] public class HarvesterFracturedSoul : AssProjectile diff --git a/Projectiles/NPCs/Bosses/DungeonBird/HarvesterFracturedSoul.png b/Projectiles/NPCs/Bosses/Harvester/HarvesterFracturedSoul.png similarity index 100% rename from Projectiles/NPCs/Bosses/DungeonBird/HarvesterFracturedSoul.png rename to Projectiles/NPCs/Bosses/Harvester/HarvesterFracturedSoul.png diff --git a/UI/HoverNPCUI.cs b/UI/HoverNPCUI.cs index 59052f6b..52eb824a 100644 --- a/UI/HoverNPCUI.cs +++ b/UI/HoverNPCUI.cs @@ -1,5 +1,5 @@ using AssortedCrazyThings.NPCs; -using AssortedCrazyThings.NPCs.DungeonBird; +using AssortedCrazyThings.NPCs.Harvester; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using ReLogic.Graphics;