Path: blob/main/Scripts/R6/BossPlatform.txt
1319 views
//---------------Sonic CD Boss Platform Script----------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value1 : Object.YOriginPos6#alias Object.Value2 : Object.YVelocity7#alias Object.Value3 : Object.FallSpeed8#alias Object.Value4 : Object.FloorYPos9#alias Object.Value5 : Object.FCEntityNo10#alias Object.Value6 : Object.IntangibleTime1112#alias Object.State : FloorControl.State13#alias Object.Value0 : FloorControl.Timer1415// HUD Alias16#alias Object[24].PropertyValue : HUD.CurrentTimePeriod1718// Floor Control aliases19#alias 4 : FLOORCONTROL_TILE_SWAP2021// Collision Sides22#alias 0 : CSIDE_FLOOR2324// Player Collision25#alias 1 : PLAYER_COL_FLOOR26#alias 4 : PLAYER_COL_ROOF2728// Stage SFX29#alias 3 : SFX_S_IMPACT13031// Time Periods32#alias 2 : TIME_GOOD_FUTURE333435sub ObjectMain36Object.YOriginPos = Object.YPos3738if Object.FallSpeed > 039Object.YVelocity += Object.FallSpeed40Object.YPos += Object.YVelocity4142ObjectTileCollision(CSIDE_FLOOR, -16, 16, 0)43TempValue0 = CheckResult44ObjectTileCollision(CSIDE_FLOOR, 16, 16, 0)45TempValue0 |= CheckResult46if TempValue0 == true47PlayStageSfx(SFX_S_IMPACT1, false)48Object.FallSpeed = 049Object.YVelocity = 05051#platform: Use_Haptics52HapticEffect(96, 0, 0, 0)53#endplatform5455end if56else57ArrayPos0 = Object.FCEntityNo58if FloorControl[ArrayPos0].State == FLOORCONTROL_TILE_SWAP59if FloorControl[ArrayPos0].Timer > 2960PlayerObjectCollision(C_TOUCH, -16, -512, 16, 512)61if CheckResult == true62Object.FallSpeed = 35846364#platform: Use_Haptics65HapticEffect(44, 0, 0, 0)66#endplatform6768else69Object.FallSpeed = 281670end if71Object.YVelocity = -0x6000072end if73end if7475end if7677Object.FloorYPos = Object.YPos78Object.FloorYPos -= Object.YOriginPos7980if Object.IntangibleTime > 081Object.IntangibleTime--82end if83end sub848586sub ObjectPlayerInteraction87if Object.IntangibleTime == 088TempValue0 = Object.YPos89Object.YPos = Object.YOriginPos9091PlayerObjectCollision(C_BOX, -16, -18, 16, 16)92if CheckResult == PLAYER_COL_FLOOR93Player.YPos += Object.FloorYPos94Player.YPos += 0x2000095else96if Object.FallSpeed > 097if CheckResult == PLAYER_COL_ROOF98CallFunction(Player_Hit)99if Player.State == Player_State_GotHit100Object.IntangibleTime = 20101end if102end if103end if104105PlayerObjectCollision(C_TOUCH, -16, -32, 16, 16)106if CheckResult == true107if Player.YVelocity < -0x40000108if Player.JumpPress == true109TempValue1 = Object.YVelocity110TempValue1 >>= 1111Player.YVelocity += TempValue1112end if113end if114end if115end if116Object.YPos = TempValue0117end if118end sub119120121sub ObjectDraw122DrawSprite(0)123end sub124125126sub ObjectStartup127LoadSpriteSheet("R6/Objects3.gif")128129if HUD.CurrentTimePeriod == TIME_GOOD_FUTURE130SpriteFrame(-16, -16, 32, 32, 223, 200) // #0 - Boss Platform131else132SpriteFrame(-16, -16, 32, 32, 141, 220) // #0 - Boss Platform133end if134end sub135136137// ========================138// Editor Subs139// ========================140141sub RSDKDraw142DrawSprite(0)143end sub144145146sub RSDKLoad147LoadSpriteSheet("R6/Objects3.gif")148CallFunction(EditorHelpers_FindTimePeriod)149// #0 - Boss Platform150if CheckResult == TIME_GOOD_FUTURE151SpriteFrame(-16, -16, 32, 32, 223, 200)152else153SpriteFrame(-16, -16, 32, 32, 141, 220)154end if155156SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")157end sub158159160