Path: blob/main/Scripts/R4/RotatingSpikes2.txt
1319 views
//-------------Sonic CD Rotating Spikes 2 Script--------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.Angle67// Property Value8#alias 0 : CLOCKWISE_ROTATION9#alias 128 : COUNTERCLOCKWISE_ROTATION1011sub ObjectMain12if Object.PropertyValue < 12813Object.Angle += 214Object.Angle &= 51115else16Object.Angle -= 217if Object.Angle < 018Object.Angle += 51219end if20end if21end sub222324sub ObjectPlayerInteraction25TempValue0 = Object.XPos26TempValue1 = Object.YPos2728TempValue2 = Object.Angle2930TempValue3 = 03132if Object.PropertyValue < 12833while TempValue3 < 434Cos(Object.XPos, TempValue2)35Object.XPos <<= 1336Object.XPos += TempValue03738Sin(Object.YPos, TempValue2)39Object.YPos <<= 1340Object.YPos += TempValue14142PlayerObjectCollision(C_TOUCH, -12, -12, 12, 12)43if CheckResult == true44CallFunction(Player_Hit)45end if4647TempValue2 += 1648TempValue3++49loop50else51TempValue2 += 6452while TempValue3 < 453Cos(Object.XPos, TempValue2)54Object.XPos <<= 1355Object.XPos += TempValue056Sin(Object.YPos, TempValue2)57Object.YPos <<= 1358Object.YPos += TempValue159PlayerObjectCollision(C_TOUCH, -12, -12, 12, 12)60if CheckResult == true61CallFunction(Player_Hit)62end if63TempValue2 -= 1664TempValue3++65loop66end if67Object.XPos = TempValue068Object.YPos = TempValue169end sub707172sub ObjectDraw73TempValue2 = Object.Angle74TempValue3 = 075if Object.PropertyValue < 12876while TempValue3 < 477Cos(TempValue0, TempValue2)78TempValue0 <<= 1379TempValue0 += Object.XPos8081Sin(TempValue1, TempValue2)82TempValue1 <<= 1383TempValue1 += Object.YPos8485DrawSpriteXY(0, TempValue0, TempValue1)86TempValue2 += 1687TempValue3++88loop89else90TempValue2 += 6491while TempValue3 < 492Cos(TempValue0, TempValue2)93TempValue0 <<= 1394TempValue0 += Object.XPos9596Sin(TempValue1, TempValue2)97TempValue1 <<= 1398TempValue1 += Object.YPos99100DrawSpriteXY(0, TempValue0, TempValue1)101TempValue2 -= 16102TempValue3++103loop104end if105end sub106107108sub ObjectStartup109LoadSpriteSheet("R4/Objects.gif")110111SpriteFrame(-16, -16, 32, 32, 221, 53) // #0 - Spike Ball112end sub113114115// ========================116// Editor Subs117// ========================118119sub RSDKEdit120if Editor.ReturnVariable == true121switch Editor.VariableID122case EDIT_VAR_PROPVAL // Property Value123CheckResult = Object.PropertyValue124break125case 0 // rotatingDir126CheckResult = Object.PropertyValue127break128end switch129else130switch Editor.VariableID131case EDIT_VAR_PROPVAL // Property Value132Object.PropertyValue = Editor.VariableValue133break134case 0 // rotatingDir135Object.PropertyValue = Editor.VariableValue136break137end switch138end if139end sub140141142sub RSDKDraw143TempValue2 = Object.Angle144TempValue3 = 0145if Object.PropertyValue < 128146while TempValue3 < 4147Cos(TempValue0, TempValue2)148TempValue0 <<= 13149TempValue0 += Object.XPos150151Sin(TempValue1, TempValue2)152TempValue1 <<= 13153TempValue1 += Object.YPos154155DrawSpriteXY(0, TempValue0, TempValue1)156TempValue2 += 16157TempValue3++158loop159else160TempValue2 += 64161while TempValue3 < 4162Cos(TempValue0, TempValue2)163TempValue0 <<= 13164TempValue0 += Object.XPos165166Sin(TempValue1, TempValue2)167TempValue1 <<= 13168TempValue1 += Object.YPos169170DrawSpriteXY(0, TempValue0, TempValue1)171TempValue2 -= 16172TempValue3++173loop174end if175end sub176177178sub RSDKLoad179LoadSpriteSheet("R4/Objects.gif")180181SpriteFrame(-16, -16, 32, 32, 221, 53) // #0 - Spike Ball182183AddEditorVariable("rotationDir")184SetActiveVariable("rotationDir")185AddEnumVariable("Clockwise", CLOCKWISE_ROTATION)186AddEnumVariable("Counter-clockwise", COUNTERCLOCKWISE_ROTATION)187end sub188189190