if not solchars rawset(_G, "solchars", {}) end solchars["sonic"] = {SKINCOLOR_SUPERRED1, 1} addHook("AbilitySpecial", function(player) if player.mo.skin == "sonic" and player.solchar.istransformed > 0 and not (player.pflags & PF_THOKKED) S_StartSound(player.mo, sfx_zoom) player.mo.state = S_PLAY_ROLL player.pflags = $|PF_THOKKED P_Thrust(player.mo, player.mo.angle, 40*FRACUNIT) end end) addHook("PlayerThink", function(player) if player.mo.skin == "sonic" and player.solchar.istransformed > 0 and (player.mo.state == S_PLAY_ROLL) and (P_IsObjectOnGround(player.mo) == true) P_ElementalFire(player) end end) addHook("PlayerThink", function(player) if player.mo.skin == "sonic" and player.solchar.istransformed > 0 and (player.pflags & PF_THOKKED) A_BossScream(player.mo, 0, MT_FIREBALLTRAIL) end end) addHook("PlayerThink", function(player) if player.mo.skin == "sonic" and player.solchar.istransformed > 0 A_BossScream(player.mo, 0, MT_FLAMEPARTICLE) end end)