addHook("ThinkFrame", do for player in players.iterate if (player.mo.skin == "amy") if (player.cmd.buttons & BT_CUSTOM1) and not (player.exiting) if (P_IsObjectOnGround(player.mo)) and not (player.panim == PA_ABILITY2) and not (player.mo.custom1held == true) player.mo.state = S_PLAY_MELEE S_StartSound(player.mo, sfx_s3k42) A_Thrust(player.mo, 6, 0) if (player.mo.eflags & MFE_UNDERWATER) A_ZThrust(player.mo, 1, 0) else A_ZThrust(player.mo, 2, 0) end elseif (not P_IsObjectOnGround(player.mo)) and not (P_PlayerInPain(player)) and not (player.mo.custom1held == true) and not (player.panim == PA_ABILITY) and not (player.panim == PA_ABILITY2) and not (player.mo.state == S_PLAY_SPRING) and (player.pflags & PF_JUMPED) if (player.pflags & PF_THOKKED) and not (skins[player.mo.skin].flags & SF_MULTIABILITY) return else player.mo.state = S_PLAY_TWINSPIN player.pflags = $|PF_THOKKED S_StartSound(player.mo, sfx_s3k42) end elseif (player.mo.custom1held == true) and (P_IsObjectOnGround(player.mo)) and (player.mo.twirltimer >= 1) and (player.mo.twirltimer <= 14) //and not (player.mo.state == S_PLAY_MELEE_FINISH) player.mo.state = S_PLAY_MELEE_FINISH player.mo.sprite2 = SPR2_MLEL A_ZThrust(player.mo, 0, 0) S_StartSound(player.mo, sfx_s3k42) end end if not (player.mo.custom1held) player.mo.custom1held = false end if (player.cmd.buttons & BT_CUSTOM1) player.mo.custom1held = true else player.mo.custom1held = false end if not (player.mo.twirltimer) player.mo.twirltimer = 0 end if (player.mo.state == S_PLAY_TWINSPIN) player.mo.twirltimer = $1 + 1 elseif (player.mo.state == S_PLAY_JUMP) or (player.mo.state == S_PLAY_FALL) or (player.mo.state == S_PLAY_MELEE) or (player.mo.state == S_PLAY_MELEE_FINISH) or (player.mo.custom1held == false) player.mo.twirltimer = 0 end if (player.mo.state == S_PLAY_TWINSPIN) player.charability = CA_TWINSPIN elseif (player.mo.state == S_PLAY_MELEE) or (player.mo.state == S_PLAY_MELEE_LANDING) or ((player.panim == PA_ABILITY2) and not (player.pflags & PF_SPINNING)) player.charability2 = CA2_MELEE else player.charability = CA2_NONE player.charability2 = CA2_NONE end end end end) addHook("AbilitySpecial", function(player) if (player.mo.skin == "amy") if (player.charability == CA_TWINSPIN) or (player.charability == CA2_MELEE) return true end end end)