Path: blob/main/Scripts/R3/Moth.txt
1319 views
//-------------------Sonic CD Moth Script---------------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.Timer6#alias Object.Value1 : Object.XVelocity7#alias Object.Value2 : Object.YVelocity8#alias Object.Value3 : Object.FrameTimer9#alias Object.Value4 : Object.XOriginPos10#alias Object.Value5 : Object.YOriginPos1112#alias Object.PropertyValue : Object.Quality1314// States15#alias 0 : MOTH_IDLE16#alias 1 : MOTH_RESPAWN17#alias 2 : MOTH_REVEAL18#alias 3 : MOTH_FLY1920// Badnik Quality / Property Values21#alias 0 : GOOD_QUALITY22#alias 1 : BAD_QUALITY2324// Priority25#alias 0 : PRIORITY_BOUNDS26#alias 1 : PRIORITY_ACTIVE272829sub ObjectMain30switch Object.State31case MOTH_IDLE32PlayerObjectCollision(C_TOUCH, -96, -256, 96, 256)33if CheckResult == true34Object.DrawOrder = 53536Object.State = MOTH_REVEAL3738Object.FrameTimer = 039Object.Frame = 04041Object.Priority = PRIORITY_ACTIVE4243Object.XOriginPos = Object.XPos44Object.YOriginPos = Object.YPos45end if46break4748case MOTH_RESPAWN49if Object.OutOfBounds == true50Object.State = MOTH_IDLE51Object.Priority = PRIORITY_BOUNDS52end if53break5455case MOTH_REVEAL56if Object.Timer < 11057Object.Timer++5859if Object.Timer == 3060Object.Frame++61end if6263if Object.Timer == 6064Object.Frame++65end if6667else68if Object.XPos > Player.XPos69Object.XVelocity = -0x800070Object.Direction = FACING_RIGHT71else72Object.XVelocity = 0x800073Object.Direction = FACING_LEFT74end if7576Object.State = MOTH_FLY7778Object.Timer = 07980if Object.Quality > GOOD_QUALITY81Object.XVelocity >>= 182end if8384Object.YVelocity = 0x800085end if8687if Object.OutOfBounds == true88Object.State = MOTH_RESPAWN8990Object.Timer = 09192Object.XPos = Object.XOriginPos93Object.YPos = Object.YOriginPos94end if95break9697case MOTH_FLY98Object.XPos += Object.XVelocity99Object.YPos += Object.YVelocity100101if Object.Timer < 65102Object.Timer++103else104Object.Timer = 0105FlipSign(Object.YVelocity)106if Object.Quality == GOOD_QUALITY // Only good quality moths drop sparkles107CreateTempObject(TypeName[Moth Sparkle], 0, Object.XPos, Object.YPos)108Object[TempObjectPos].DrawOrder = 5109end if110end if111112Object.FrameTimer++113Object.FrameTimer %= 20114115Object.Frame = Object.FrameTimer116Object.Frame /= 5117118if Object.Quality == GOOD_QUALITY119Object.Frame += 3120else121Object.Frame += 7122end if123124if Object.OutOfBounds == true125Object.State = MOTH_RESPAWN126Object.Timer = 0127128Object.XPos = Object.XOriginPos129Object.YPos = Object.YOriginPos130end if131break132133end switch134135CallFunction(StageSetup_CheckGoodFuture) // Check if it should be a flower136end sub137138139sub ObjectPlayerInteraction140if Object.State > MOTH_REVEAL141#platform: Use_Standalone142PlayerObjectCollision(C_TOUCH, -16, -8, 16, 8)143#endplatform144#platform: Use_Origins145PlayerObjectCollision(C_ENEMY, -16, -8, 16, 8)146#endplatform147if CheckResult == true148CallFunction(Player_BadnikBreak)149end if150end if151end sub152153154sub ObjectDraw155if Object.State > MOTH_RESPAWN156DrawSpriteFX(Object.Frame, FX_FLIP, Object.XPos, Object.YPos)157end if158end sub159160161sub ObjectStartup162LoadSpriteSheet("R3/Objects.gif")163164SpriteFrame(-12, -16, 24, 16, 1, 216) // #0 - Moth Reveal Frame 0165SpriteFrame(-12, -16, 24, 24, 26, 216) // #1 - Moth Reveal Frame 1166SpriteFrame(-12, -20, 24, 32, 231, 170) // #2 - Moth Reveal Frame 2167// New Moth168SpriteFrame(-12, -12, 32, 24, 34, 191) // #3 - Moth Fly Frame 0169SpriteFrame(-12, -8, 32, 16, 165, 183) // #4 - Moth Fly Frame 1170SpriteFrame(-12, -8, 32, 16, 166, 233) // #5 - Moth Fly Frame 2171SpriteFrame(-12, -8, 32, 16, 165, 183) // #6 - Moth Fly Frame 3172// Old Moth173SpriteFrame(-12, -12, 32, 24, 1, 157) // #7 - Moth Fly Frame 0174SpriteFrame(-12, -8, 32, 16, 1, 182) // #8 - Moth Fly Frame 1175SpriteFrame(-12, -8, 32, 16, 1, 199) // #9 - Moth Fly Frame 2176SpriteFrame(-12, -8, 32, 16, 1, 182) // #10 - Moth Fly Frame 3177end sub178179180// ========================181// Editor Subs182// ========================183184sub RSDKDraw185Object.InkEffect = 2186Object.Alpha = 196187DrawSpriteFX(0, FX_INK, Object.XPos, Object.YPos)188end sub189190191sub RSDKLoad192LoadSpriteSheet("R3/Objects.gif")193SpriteFrame(-12, -20, 24, 32, 231, 170) // #0 - Moth Reveal194195SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")196end sub197198199