From 9c9698a93d54574fbd5ab6240db07ff77da61013 Mon Sep 17 00:00:00 2001 From: Niko Date: Sat, 22 Nov 2025 14:35:27 +0000 Subject: [PATCH] Add notes for dev boss AI --- Content/NPCs/OriginalLexy/Lexy.cs | 20 +++++++++--------- Content/NPCs/OriginalNeptune/Neptune.cs | 28 +++++++++++++++++++++++-- Content/NPCs/OriginalNeptune/Raccoon.cs | 12 ++++++++++- Content/NPCs/OriginalNiko/Niko.cs | 23 ++++++++++++++++++++ 4 files changed, 70 insertions(+), 13 deletions(-) diff --git a/Content/NPCs/OriginalLexy/Lexy.cs b/Content/NPCs/OriginalLexy/Lexy.cs index 41af16b..37afb8d 100644 --- a/Content/NPCs/OriginalLexy/Lexy.cs +++ b/Content/NPCs/OriginalLexy/Lexy.cs @@ -12,7 +12,6 @@ namespace ForgottenWawiTech.Content.NPCs.OriginalLexy { public override void SetStaticDefaults() { - // DisplayName.SetDefault("Original Lexy"); Main.npcFrameCount[NPC.type] = 1; } @@ -33,6 +32,16 @@ namespace ForgottenWawiTech.Content.NPCs.OriginalLexy public override void AI() { + /* + IDEA: + Lexy has yet to determine his fight style, but has a rough idea for enraged behaviour. + */ + /* + IDEA: Enraged Behaviour + Lexy will teleport near a player and unleash every ability he has in a frantic assault - taking 5% of his max health every second while in this state - while becoming invulnerable to player damage. + His damage will be multiplied to the power of 1000 - no player is expected to survive this. If they do, Lexy drops a dev set and a unique weapon (TBD). + This will last until he dies. + */ // For now, the boss instantly dies NPC.life = 0; NPC.checkDead(); @@ -45,15 +54,6 @@ namespace ForgottenWawiTech.Content.NPCs.OriginalLexy public override void OnKill() { -/* // Spawn LexyNPC when killed - if (Main.netMode != NetmodeID.MultiplayerClient) - { - NPC.NewNPC(NPC.GetSource_Death(), (int)NPC.Center.X, (int)NPC.Center.Y, ModContent.NPCType()); - } - else - { - NetMessage.SendData(MessageID.SpawnNPC, number: ModContent.NPCType(), number2: NPC.whoAmI); - } */ // Set a world flag or similar to indicate Lexy has been defeated WorldDefeatedBosses.Lexy = true; // Immediate sync of world flags diff --git a/Content/NPCs/OriginalNeptune/Neptune.cs b/Content/NPCs/OriginalNeptune/Neptune.cs index cf830ec..73d53b5 100644 --- a/Content/NPCs/OriginalNeptune/Neptune.cs +++ b/Content/NPCs/OriginalNeptune/Neptune.cs @@ -35,8 +35,32 @@ namespace ForgottenWawiTech.Content.NPCs.OriginalNeptune public override void AI() { - // Phased boss AI: at 50% HP spawn Raccoon. Neptune becomes invulnerable and does not attack - // until Raccoon is defeated, then move to Phase 2. + /* + IDEA: + Neptune will mostly hover and fly around at high speeds on a ship similiar to the Respawn Ship from SOT. + He will fire projectiles at high speeds which cause high AOE damage and inflict strong crushing debuffs. + All players will receive a debuff that nearly nullifies wing time while fighting him. + At 50% health, he will "throw" Mr Raccoon off the ship to fight on the ground with the player. His AI will be listed in his file. + During this time, Neptune will become mildly less aggressive, however still dangerous and on the offensive. + At 25% health, he will double his attack speed and movement speed, becoming a frantic danger to players. + 100 - 50% HP will be Phase 1 + 50% - 25% HP will be Phase 2 (Raccoon fight) + 25% - 0% HP will be Phase 3 + + If Neptune is hit with 2/3/4 (Normal/Expert/Master) cannon balls while above 95% HP, he will throw Raccoon overboard and swap AI (only if this happens in Phase 1): + - Neptune will become enraged, tripling attack speed, movement speed, damage, projectile speed, attack range, and reducing all cooldowns by 75%. + - He will also become invulnerable, only taking damage over time until being defeated after ~10 minutes. + - In the last 30 seconds of this state, he will enter a "final stand" mode where he salutes and fires a massive barrage of projectiles rapidly, before ramming + the ship into the floor, causing a humongous explosion (no tile damage) that will insta kill players in range (~70 tiles). + - After being defeated in this state, he will drop an item that functions as infinite wood biome-respected alongside a developer vanity set. + */ + /* + IDEA: Attack ideas from Neptune + - Neptune will occasionally will try and snipe the player(s) with a high damage, high speed trident using predictive aiming. Damage will be 100 - 150 with full armor penetration (ignores defense). + - If the player gets in front of the ship, the ship throws fire at the player, dealing 300 damage and inflicting On Fire! or Brimstone Flames for 10 seconds. + - The ship will drop explosive barrels that act like mines - when the player gets close they explode for high damage. + - During Phase 2, Neptune will throw 6-8 hunting spears overboard straight down, each equally distant from each other, and if the player is hit, it deals 300 damage (full armor pen) and inflicts a custom debuff "Pierced" that reduces healing received by 50% for 10 seconds. Will move slowly. + */ NPC.TargetClosest(false); Player target = Main.player[NPC.target]; diff --git a/Content/NPCs/OriginalNeptune/Raccoon.cs b/Content/NPCs/OriginalNeptune/Raccoon.cs index 138b485..5a87795 100644 --- a/Content/NPCs/OriginalNeptune/Raccoon.cs +++ b/Content/NPCs/OriginalNeptune/Raccoon.cs @@ -31,7 +31,17 @@ namespace ForgottenWawiTech.Content.NPCs.OriginalNeptune public override void AI() { - // Placeholder AI: dash toward player occasionally + /* + IDEA: + Mr Raccoon will fight on the ground, throwing himself and projectiles at the player. + He will have a dash attack where he quickly rushes the player, dealing high damage on contact. + He will also have a projectile attack where he throws pieces of trash at the player from a distance. + He is meant to serve as a distraction and secondary threat while Neptune fights from above - meaning to overwhelm the player with multiple threats. + 0 - 50% HP: Normal behavior (Phase 1) + 50% - 25% HP: Increases dash attack speed and frequency (Phase 2) + 25% - 0% HP: Increases all attack speeds and movement speeds (Phase 3) + If Neptune is defeated while Mr Raccoon is still alive, Mr Raccoon will flee the battle (run towards the ocean) - if he is defeated during this state, he will drop a vanity developer set. + */ Player target = Main.player[NPC.target]; if (!target.active || target.dead) { diff --git a/Content/NPCs/OriginalNiko/Niko.cs b/Content/NPCs/OriginalNiko/Niko.cs index a345567..a747fd7 100644 --- a/Content/NPCs/OriginalNiko/Niko.cs +++ b/Content/NPCs/OriginalNiko/Niko.cs @@ -47,6 +47,29 @@ namespace ForgottenWawiTech.Content.NPCs.OriginalNiko Nintendo don't sue me - I am only copying Inner Agent 3 here. Alongside rough ideas of the Uzi and Cyn fight from Murder Drones. Music (if legality allows) is planned to be a rock-ier remix of "In The End" by Linkin Park, fitting Niko's emo ass. */ + /* + IDEA: Enraged Behaviour + Attack 1: + Niko will use the Shockwave Hammer (fortnite) and start rapidly bouncing towards the closest player, making large arcs in the air while rapidly spinning. They can not change direction while in the air. + They will throw out Nyananades while in this state, designed to either overwhelm or lag the player to death. + When nearing a player, they will slam on/next to the player, inflicting extremely high damage. If this doesn't kill the player, Niko will then throw/swing the hammer at the player with predictive aiming, which on hit + will launch the player at high speeds and completely negating wing time. + If the player is launched, this is practically instadeath for the player. Niko will teleport behind them and slam them into the ground at high speed, on impact will kill the player. + Its escapable if the player is launched into a hole going down to hell, as terminal velocity will eventually slow the player down enough to survive the impact. + Attack 2: + Niko will summon a large amount of floating speakers to orbit around them, launching sound waves at the player at quite high speeds periodically. + The speakers can be destroyed with enough damage. + Each sound wave that hits the player will inflict a stacking debuff that increases damage taken by 5% per stack, up to 10 stacks (50% increased damage taken). + Attack 3: + Niko will charge up the Last Prism from Vanilla Terraria, tracking the player with the beam. + This will last for ~30 seconds, dealing massive damage to players caught in the beam. + Attack 4: + Niko will grab a cannon and start launching Avali Scouts at the player with high velocity. + These Avali Scouts will have 1/10th of Niko's health and deal 1/10th of Niko's damage, but will swarm the player in large numbers. + They will prioritise players with the lowest health. + Each attack will be used in a semi-random order, with ~0.5 second gaps between each attack to allow the player to reposition. + This will repeat until the player is defeated or Niko is defeated. + */ NPC.TargetClosest(false); Player target = Main.player[NPC.target];