Path: blob/main/Scripts/R6/BossBarrier.txt
1319 views
//---------------Sonic CD Boss Barrier Script-----------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.BarrierHeight67// Boss Camera Aliases8#alias Object[+1].Priority : BossCamera.Priority9#alias Object[+1].Value0 : BossCamera.CameraHeight1011// Eggman Mobile Aliases12#alias Object[+7].Priority : EggMobile.Priority13#alias Object[+7].State : EggMobile.State1415// Floor Control Aliases16#alias Object[+8].Priority : FloorControl.Priority17#alias Object[+8].Value6 : FloorControl.CurrentFloor1819// States20#alias 0 : BOSSBARRIER_IDLE21#alias 1 : BOSSBARRIER_SETUP_BOSS22#alias 2 : BOSSBARRIER_CLOSE_DOOR23#alias 3 : BOSSBARRIER_CLOSED2425// Eggman Mobile States26#alias 1 : R6_EGG_START2728// Fade Music Property Values29#alias 0 : FADEMUSIC_TO_BOSS3031// Priority32#alias 1 : PRIORITY_ACTIVE333435sub ObjectMain36switch Object.State37case BOSSBARRIER_IDLE38TempValue0 = Player.XPos39TempValue0 -= Object.XPos40if TempValue0 > 0x60000041Object.State = BOSSBARRIER_SETUP_BOSS42end if43break4445case BOSSBARRIER_SETUP_BOSS46if Object.BarrierHeight < 0x40000047Object.BarrierHeight += 0x2000048Object.YPos += 0x2000049end if5051TempValue0 = Player.XPos52TempValue0 -= Object.XPos53if TempValue0 > 0x80000054Object.State = BOSSBARRIER_CLOSE_DOOR5556CreateTempObject(TypeName[Fade Music], FADEMUSIC_TO_BOSS, Object.XPos, Object.YPos)57Stage.NewXBoundary1 = Object.iXPos58Stage.NewXBoundary1 -= 165960Stage.NewXBoundary2 = Stage.NewXBoundary161Stage.NewXBoundary2 += 4486263Object[+1].Type = TypeName[Boss Camera]64BossCamera.Priority = PRIORITY_ACTIVE65BossCamera.CameraHeight = -16667EggMobile.State = R6_EGG_START68EggMobile.Priority = PRIORITY_ACTIVE6970Object[+8].Type = TypeName[Floor Control]71FloorControl.Priority = PRIORITY_ACTIVE72FloorControl.CurrentFloor = -173end if74break7576case BOSSBARRIER_CLOSE_DOOR77if Object.BarrierHeight < 0x40000078Object.BarrierHeight += 0x2000079Object.YPos += 0x2000080else81Object.State = BOSSBARRIER_CLOSED82end if83break8485end switch86end sub878889sub ObjectPlayerInteraction90if Object.BarrierHeight < 0x40000091PlayerObjectCollision(C_BOX, -16, -32, 16, 32)92else93PlayerObjectCollision(C_BOX, -16, -32, 16, 64)94end if95end sub969798sub ObjectDraw99DrawSprite(0)100DrawSprite(1)101DrawSprite(2)102end sub103104105sub ObjectStartup106LoadSpriteSheet("R6/Objects2.gif")107108SpriteFrame(-16, -32, 32, 32, 173, 223) // #0 - Barrier Top109SpriteFrame(-16, 0, 32, 32, 173, 223) // #1 - Barrier Bottom110SpriteFrame(16, -6, 16, 32, 239, 183) // #2 - Boss Electrode111end sub112113114// ========================115// Editor Subs116// ========================117118sub RSDKDraw119DrawSprite(0)120DrawSprite(1)121DrawSprite(2)122end sub123124125sub RSDKLoad126LoadSpriteSheet("R6/Objects2.gif")127128SpriteFrame(-16, -32, 32, 32, 173, 223) // #0 - Barrier Top129SpriteFrame(-16, 0, 32, 32, 173, 223) // #1 - Barrier Bottom130SpriteFrame(16, -6, 16, 32, 239, 183) // #2 - Boss Electrode131132SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")133end sub134135136