Path: blob/main/Scripts/R1/PataBata.txt
1319 views
//------------------Sonic CD PataBata Script------------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.Oscillation6#alias Object.Value1 : Object.YOriginPos78#alias Object.PropertyValue : Object.Quality910// States11#alias 0 : PATABATA_FLY_DOWN12#alias 1 : PATABATA_FLY_UP1314// Badnik Quality / Property Values15#alias 0 : GOOD_QUALITY16#alias 1 : BAD_QUALITY171819sub ObjectMain20if Object.Quality == GOOD_QUALITY21Object.Frame++22if Object.Frame > 3923Object.Frame = 024end if2526switch Object.State27case PATABATA_FLY_DOWN28Sin(Object.YPos, Object.Oscillation)29Object.YPos <<= 1230Object.YPos += Object.YOriginPos3132Object.XPos -= 0x80003334Object.Oscillation -= 435if Object.Oscillation == 036Object.State = PATABATA_FLY_UP37Object.Direction = FACING_LEFT38end if39break4041case PATABATA_FLY_UP42Sin(Object.YPos, Object.Oscillation)43FlipSign(Object.YPos)44Object.YPos <<= 1245Object.YPos += Object.YOriginPos4647Object.XPos += 0x80004849Object.Oscillation += 450if Object.Oscillation == 204851Object.State = PATABATA_FLY_DOWN52Object.Direction = FACING_RIGHT53end if54break5556end switch57else58Object.Frame++59if Object.Frame > 3960Object.Frame = 2061end if6263switch Object.State64case PATABATA_FLY_DOWN65Sin(Object.YPos, Object.Oscillation)66Object.YPos <<= 1167Object.YPos += Object.YOriginPos6869Object.XPos -= 0x40007071Object.Oscillation -= 272if Object.Oscillation == 073Object.State = PATABATA_FLY_UP74Object.Direction = FACING_LEFT75end if76break7778case PATABATA_FLY_UP79Sin(Object.YPos, Object.Oscillation)80FlipSign(Object.YPos)81Object.YPos <<= 1182Object.YPos += Object.YOriginPos8384Object.XPos += 0x40008586Object.Oscillation += 287if Object.Oscillation == 204888Object.State = PATABATA_FLY_DOWN89Object.Direction = FACING_RIGHT90end if91break9293end switch94end if9596CallFunction(StageSetup_CheckGoodFuture) // Check if it should be a flower97end sub9899100sub ObjectPlayerInteraction101#platform: Use_Standalone102PlayerObjectCollision(C_TOUCH, -14, -14, 14, 14)103#endplatform104#platform: Use_Origins105PlayerObjectCollision(C_ENEMY, -14, -14, 14, 14)106#endplatform107if CheckResult == true108CallFunction(Player_BadnikBreak)109end if110end sub111112113sub ObjectDraw114if Object.Quality == GOOD_QUALITY115TempValue0 = Object.Frame116TempValue0 >>= 3117DrawSpriteFX(TempValue0, FX_FLIP, Object.XPos, Object.YPos)118else119TempValue0 = Object.Frame120TempValue0 >>= 2121DrawSpriteFX(TempValue0, FX_FLIP, Object.XPos, Object.YPos)122end if123end sub124125126sub ObjectStartup127LoadSpriteSheet("R1/Objects.gif")128129// Good PataBata130SpriteFrame(-16, -16, 32, 32, 1, 51) // #0 - PataBata Fly Frame 0131SpriteFrame(-16, -8, 32, 16, 1, 84) // #1 - PataBata Fly Frame 1132SpriteFrame(-16, -16, 32, 32, 117, 1) // #2 - PataBata Fly Frame 2133SpriteFrame(-16, -8, 32, 16, 1, 84) // #3 - PataBata Fly Frame 3134SpriteFrame(-16, -16, 32, 32, 1, 51) // #4 - PataBata Fly Frame 4135136// Bad PataBata137SpriteFrame(-16, -16, 32, 32, 150, 1) // #5 - PataBata Fly Frame 0138SpriteFrame(-16, -8, 32, 16, 1, 84) // #6 - PataBata Fly Frame 1139SpriteFrame(-16, -16, 32, 32, 183, 1) // #7 - PataBata Fly Frame 2140SpriteFrame(-16, -8, 32, 16, 1, 84) // #8 - PataBata Fly Frame 3141SpriteFrame(-16, -16, 32, 32, 150, 1) // #9 - PataBata Fly Frame 4142143// Used to be below LoadSpriteSheet, moved here for consistency144ArrayPos0 = 32145while ArrayPos0 < 1056146if Object[ArrayPos0].Type == TypeName[PataBata]147Object[ArrayPos0].YOriginPos = Object[ArrayPos0].YPos148Object[ArrayPos0].Oscillation = 1024149Object[ArrayPos0].Frame = Object[ArrayPos0].Quality150Object[ArrayPos0].Frame *= 20151end if152ArrayPos0++153loop154end sub155156157// ========================158// Editor Subs159// ========================160161sub RSDKEdit162if Editor.ReturnVariable == true163switch Editor.VariableID164case EDIT_VAR_PROPVAL // Property Value165CheckResult = Object.PropertyValue166CheckResult &= 1167break168case 0 // type169CheckResult = Object.PropertyValue170CheckResult &= 1171break172end switch173else174switch Editor.VariableID175case EDIT_VAR_PROPVAL // Property Value176Object.PropertyValue = Editor.VariableValue177Object.PropertyValue &= 1178break179case 0 // type180Object.PropertyValue = Editor.VariableValue181Object.PropertyValue &= 1182break183end switch184end if185end sub186187188sub RSDKDraw189DrawSprite(Object.PropertyValue)190end sub191192193sub RSDKLoad194LoadSpriteSheet("R1/Objects.gif")195196// Good PataBata197SpriteFrame(-16, -16, 32, 32, 1, 51) // #0 - PataBata Fly Frame 0198199// Bad PataBata200SpriteFrame(-16, -16, 32, 32, 150, 1) // #5 - PataBata Fly Frame 0201202AddEditorVariable("condition")203SetActiveVariable("condition")204AddEnumVariable("Good Quality", GOOD_QUALITY)205AddEnumVariable("Bad Quality", BAD_QUALITY)206end sub207208209