addHook("PlayerThink", function(player) -- Only for the Sonic skin from your Archie sheet if player.mo and player.mo.valid and player.mo.skin == "sonic" then -- ACTIVATE: Press Custom Button 3 -- Only works while in Super form (matching Archie's high-power states) if (player.cmd.buttons & BT_CUSTOM3) and (player.powers[pw_super]) then -- 1. Animation: Force the 'Victory Pose' (Bottom Right of your sheet) player.panim = PA_ABILITY player.mo.momx, player.mo.momy, player.mo.momz = 0, 0, 0 -- Freeze for impact -- 2. Sound: Heavy Power-Up sound S_StartSound(player.mo, sfx_cybdth) -- 3. Visual Burst: Yellow Sparkles fly everywhere for i = 0, 16 do local angle = i * (ANGLE_180 / 8) local sparkle = P_SpawnMobj(player.mo.x, player.mo.y, player.mo.z, MT_IVSP) sparkle.colorized = true sparkle.color = SKINCOLOR_YELLOW sparkle.scale = FRACUNIT * 4 -- Make them huge sparkle.flags = $|MF_MISSILE|MF_BRIGHT|MF_NOGRAVITY -- Launch sparkles outward in a circle sparkle.momx = P_ReturnDirX(angle, 50*FRACUNIT) sparkle.momy = P_ReturnDirY(angle, 50*FRACUNIT) sparkle.fuse = 30 end -- 4. Screen Wipe: Destroy all Badniks (MF_ENEMY) in a 1000-unit radius searchBlockmap("objects", function(sonic, enemy) if enemy and enemy.valid and (enemy.flags & MF_ENEMY) then local dist = P_AproxDistance(sonic.x - enemy.x, sonic.y - enemy.y) if dist < 1000*FRACUNIT then P_KillMobj(enemy, sonic, sonic) -- Yellow "pop" effect at the enemy's location local pop = P_SpawnMobj(enemy.x, enemy.y, enemy.z, MT_IVSP) pop.colorized = true pop.color = SKINCOLOR_YELLOW S_StartSound(enemy, sfx_pop) end end end, player.mo) -- 5. White Screen Flash for 5 frames P_FlashPal(player, PAL_WHITE, 5) end end end)