Path: blob/main/Scripts/Global/Spikes.txt
1319 views
//-----------------Sonic CD Spikes Script---------------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Player.Value4 : Player.InvincibleTimer67// Property Values8#alias 0 : SPIKE_DIRECTION_UP9#alias 1 : SPIKE_DIRECTION_RIGHT10#alias 2 : SPIKE_DIRECTION_LEFT11#alias 3 : SPIKE_DIRECTION_DOWN121314sub ObjectPlayerInteraction15switch Object.PropertyValue16case SPIKE_DIRECTION_UP17PlayerObjectCollision(C_BOX, -16, -12, 16, 16)18#platform: Use_Origins19if Player.Animation == ANI_LEDGEPULLUP20PlayerObjectCollision(C_BOX, -14, -12, 14, 16)21end if22#endplatform23if Player.YVelocity > -124if Player.InvincibleTimer == 025PlayerObjectCollision(C_TOUCH, -15, -13, 15, -12)26if CheckResult == true27Player.State = Player_State_GotHit28if Player.XPos > Object.XPos29Player.Speed = 0x2000030else31Player.Speed = -0x2000032end if33end if34end if35end if36break3738case SPIKE_DIRECTION_RIGHT39PlayerObjectCollision(C_BOX, -16, -16, 15, 16)40if Player.XVelocity <= 041if Player.InvincibleTimer == 042PlayerObjectCollision(C_TOUCH, 12, -15, 16, 15)43if CheckResult == true44Player.State = Player_State_GotHit45Player.Speed = 0x2000046end if47end if48end if49break5051case SPIKE_DIRECTION_LEFT52PlayerObjectCollision(C_BOX, -15, -16, 16, 16)53if Player.InvincibleTimer == 054PlayerObjectCollision(C_TOUCH, -16, -15, -12, 15)55if CheckResult == true56Player.State = Player_State_GotHit57Player.Speed = -0x2000058end if59end if60break6162case SPIKE_DIRECTION_DOWN63TempValue0 = Player.YVelocity64PlayerObjectCollision(C_BOX, -16, -16, 16, 15)65if TempValue0 < 166if Player.InvincibleTimer == 067PlayerObjectCollision(C_TOUCH, -15, 12, 15, 16)68if CheckResult == true69Player.State = Player_State_GotHit70if Player.XPos > Object.XPos71Player.Speed = 0x2000072else73Player.Speed = -0x2000074end if75end if76end if77end if78break7980end switch81end sub828384sub ObjectDraw85DrawSprite(Object.PropertyValue)86end sub878889sub ObjectStartup90LoadSpriteSheet("Global/Items3.gif")9192SpriteFrame(-16, -16, 32, 32, 50, 1) // #0 - Spikes facing up93SpriteFrame(-16, -16, 32, 32, 50, 34) // #1 - Spikes facing right94SpriteFrame(-16, -16, 32, 32, 50, 67) // #2 - Spikes facing left95SpriteFrame(-16, -16, 32, 32, 50, 100) // #3 - Spikes facing down96end sub979899// ========================100// Editor Subs101// ========================102103sub RSDKEdit104if Editor.ReturnVariable == true105switch Editor.VariableID106case EDIT_VAR_PROPVAL // Property Value107CheckResult = Object.PropertyValue108break109case 0 // Orientation110CheckResult = Object.PropertyValue111break112end switch113else114switch Editor.VariableID115case EDIT_VAR_PROPVAL // Property Value116Object.PropertyValue = Editor.VariableValue117break118case 0 // Orientation119Object.PropertyValue = Editor.VariableValue120break121end switch122end if123end sub124125126sub RSDKDraw127DrawSprite(Object.PropertyValue)128end sub129130131sub RSDKLoad132LoadSpriteSheet("Global/Items3.gif")133SpriteFrame(-16, -16, 32, 32, 50, 1) // #0 - Spikes facing up134SpriteFrame(-16, -16, 32, 32, 50, 34) // #1 - Spikes facing right135SpriteFrame(-16, -16, 32, 32, 50, 67) // #2 - Spikes facing left136SpriteFrame(-16, -16, 32, 32, 50, 100) // #3 - Spikes facing down137138AddEditorVariable("Orientation")139SetActiveVariable("Orientation")140AddEnumVariable("Up", 0)141AddEnumVariable("Right", 1)142AddEnumVariable("Left", 2)143AddEnumVariable("Down", 3)144end sub145146147