Path: blob/master/Sonic 2/Scripts/Enemies/Balkiry.txt
1480 views
// ----------------------------------1// RSDK Project: Sonic 22// Script Description: Balkiry Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value1 : object.startPos.x1213// Player aliases14private alias object.value40 : player.hitboxLeft15private alias object.value38 : player.hitboxTop16private alias object.value41 : player.hitboxRight17private alias object.value39 : player.hitboxBottom181920// ========================21// Function Declarations22// ========================2324reserve function Balkiry_DebugDraw25reserve function Balkiry_DebugSpawn262728// ========================29// Function Definitions30// ========================3132private function Balkiry_DebugDraw33DrawSprite(2)34end function353637private function Balkiry_DebugSpawn38CreateTempObject(TypeName[Balkiry], 0, object.xpos, object.ypos)39object[tempObjectPos].xvel = -0x3000040end function414243// ========================44// Events45// ========================4647event ObjectUpdate48if object.priority != PRIORITY_XBOUNDS_DESTROY49object.priority = PRIORITY_ACTIVE50end if5152object.xpos += object.xvel53if object.outOfBounds == true54temp0 = object.xpos55object.xpos = object.startPos.x56if object.outOfBounds == true57if object.priority != PRIORITY_XBOUNDS_DESTROY58object.priority = PRIORITY_BOUNDS59end if60else61object.xpos = temp062end if63end if6465foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)66BoxCollisionTest(C_TOUCH, object.entityPos, -24, -12, 24, 12, currentPlayer, player[currentPlayer].hitboxLeft, player[currentPlayer].hitboxTop, player[currentPlayer].hitboxRight, player[currentPlayer].hitboxBottom)67if checkResult == true68CallFunction(Player_BadnikBreak)69end if70next7172object.frame = object.animationTimer73object.frame >>= 174object.animationTimer++75object.animationTimer &= 376end event777879event ObjectDraw80DrawSprite(3)81DrawSprite(object.frame)82end event838485event ObjectStartup86CheckCurrentStageFolder("Zone10")87if checkResult == true88LoadSpriteSheet("SCZ/Objects.gif")89SpriteFrame(27, -5, 16, 8, 186, 90)90SpriteFrame(27, -5, 7, 8, 186, 99)91SpriteFrame(-36, -20, 64, 32, 1, 1)92SpriteFrame(-36, -20, 69, 34, 1, 34)93else94LoadSpriteSheet("MBZ/Objects.gif")95SpriteFrame(27, -5, 16, 8, 186, 90)96SpriteFrame(27, -5, 7, 8, 186, 99)97SpriteFrame(-36, -20, 64, 32, 1, 1)98SpriteFrame(-36, -20, 69, 34, 1, 34)99end if100101foreach (TypeName[Balkiry], arrayPos0, ALL_ENTITIES)102object[arrayPos0].startPos.x = object[arrayPos0].xpos103if object[arrayPos0].propertyValue == 0104object[arrayPos0].xvel = -0x30000105else106object[arrayPos0].xvel = -0x50000107end if108next109110SetTableValue(TypeName[Balkiry], DebugMode_ObjCount, DebugMode_TypesTable)111SetTableValue(Balkiry_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)112SetTableValue(Balkiry_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)113DebugMode_ObjCount++114end event115116117// ========================118// Editor Events119// ========================120121event RSDKEdit122if editor.returnVariable == true123switch editor.variableID124case EDIT_VAR_PROPVAL // property value125checkResult = object.propertyValue126break127128case 0 // speed129checkResult = object.propertyValue130break131132end switch133else134switch editor.variableID135case EDIT_VAR_PROPVAL // property value136object.propertyValue = editor.variableValue137break138139case 0 // speed140object.propertyValue = editor.variableValue141break142143end switch144end if145end event146147148event RSDKDraw149DrawSprite(2)150end event151152153event RSDKLoad154CheckCurrentStageFolder("Zone10")155if checkResult == true156LoadSpriteSheet("SCZ/Objects.gif")157SpriteFrame(27, -5, 16, 8, 186, 90)158SpriteFrame(27, -5, 7, 8, 186, 99)159SpriteFrame(-36, -20, 64, 32, 1, 1)160SpriteFrame(-36, -20, 69, 34, 1, 34)161else162LoadSpriteSheet("MBZ/Objects.gif")163SpriteFrame(27, -5, 16, 8, 186, 90)164SpriteFrame(27, -5, 7, 8, 186, 99)165SpriteFrame(-36, -20, 64, 32, 1, 1)166SpriteFrame(-36, -20, 69, 34, 1, 34)167end if168169AddEditorVariable("speed")170SetActiveVariable("speed")171AddEnumVariable("Slow", 0)172AddEnumVariable("Fast", 1)173end event174175176