Path: blob/main/Scripts/R1/Boss_Bumper.txt
1319 views
//----------------Sonic CD Boss Bumper Script-----------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.ArmEntity6#alias Object.Value2 : Object.XOffSet7#alias Object.Value5 : Object.YOffSet89// Arm Aliases10#alias Object.Frame : Arm.Frame11#alias Object.XPos : Arm.XPos12#alias Object.YPos : Arm.YPos1314// States15#alias 0 : BOSSBUMPER_SETUP16#alias 1 : BOSSBUMPER_IDLE17#alias 2 : BOSSBUMPER_DESTROYED1819// Global SFX20#alias 11 : SFX_G_SPRING2122// Priority23#alias 0 : PRIORITY_BOUNDS242526sub ObjectMain27switch Object.State28case BOSSBUMPER_SETUP29Object.State = BOSSBUMPER_IDLE30// Fall-Through31case BOSSBUMPER_IDLE32ArrayPos0 = Object.ArmEntity3334Object.XPos = Arm[ArrayPos0].XPos35Object.XPos -= 0x13000036Object.YPos = Arm[ArrayPos0].YPos3738if Arm[ArrayPos0].Frame != 039if Arm[ArrayPos0].Frame == 140Object.XPos += 0x8000041else42Object.XPos += 0x10000043end if44end if45break4647case BOSSBUMPER_DESTROYED48Object.XOffSet -= 0x50049Object.XPos += Object.XOffSet5051Object.YOffSet += 0x180052Object.YPos += Object.YOffSet5354if Object.OutOfBounds == true55Object.Type = TypeName[Blank Object]56Object.Priority = PRIORITY_BOUNDS57end if58break59end switch60end sub616263sub ObjectPlayerInteraction64if Object.State < BOSSBUMPER_DESTROYED65if Player.Animation != ANI_HURT66ArrayPos0 = Object.ArmEntity6768if Arm[ArrayPos0].Frame == 069PlayerObjectCollision(C_TOUCH, -10, -16, 14, 16)70if CheckResult == true7172Player.Speed = -0x4000073Player.XVelocity = -0x400007475if Object.Frame == 076PlaySfx(SFX_G_SPRING, false)77end if78Object.Frame = 27980#platform: Use_Origins81if Stage.PlayerListPos == PLAYER_KNUCKLES82if Player.Animation == ANI_GLIDING83Player.Animation = ANI_GLIDING_DROP84Player.State = Player_State_GlideDrop85end if86end if87#endplatform8889#platform: Use_Haptics90HapticEffect(10, 0, 0, 0)91#endplatform92end if93end if94end if95end if96end sub979899sub ObjectDraw100DrawSprite(Object.Frame)101102if Object.Frame > 0103Object.Frame--104end if105end sub106107108sub ObjectStartup109LoadSpriteSheet("R1/Objects3.gif")110111SpriteFrame(-14, -16, 24, 32, 99, 26) // #0 - EGG-HVC-001 Bumper112SpriteFrame(-18, -16, 24, 32, 99, 26) // #1 - EGG-HVC-001 Bumper (different offset)113SpriteFrame(-18, -16, 24, 32, 99, 26) // #2 - EGG-HVC-001 Bumper (same offset as frame 1, here to pad out animation length)114end sub115116117// ========================118// Editor Subs119// ========================120121sub RSDKDraw122DrawSprite(0)123end sub124125126sub RSDKLoad127LoadSpriteSheet("R1/Objects3.gif")128SpriteFrame(-14, -16, 24, 32, 99, 26) // #0 - EGG-HVC-001 Bumper129130SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")131end sub132133134