Path: blob/main/Scripts/R4/ButtonPrize.txt
1319 views
//----------------Sonic CD Button Prize Script----------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.Timer67// Bubble aliases8#alias Object.XPos : AirBubble.XPos9#alias Object.Value1 : AirBubble.Angle10#alias Object.Value2 : AirBubble.XVelocity11#alias Object.Value3 : AirBubble.YVelocity12#alias Object.DrawOrder : AirBubble.DrawOrder1314// Push Button aliases15#alias Object.PropertyValue : PushButton.Pressed1617// States18#alias 0 : BUTTONPRIZE_USED19#alias 1 : BUTTONPRIZE_CREATE_BUBBLES20#alias 2 : BUTTONPRIZE_CREATE_RINGS2122// Property Values23#alias 0 : BUTTONPRIZE_SPIKES24#alias 1 : BUTTONPRIZE_SCORE25#alias 2 : BUTTONPRIZE_BUBBLES26#alias 3 : BUTTONPRIZE_BUBBLES_2 // No real difference to the normal one, just uses some different objects27#alias 4 : BUTTONPRIZE_RINGS28#alias 5 : BUTTONPRIZE_RINGS_2 // No real difference to the normal one, just uses some different objects2930// Air Bubble Property Values31#alias 5 : BUBBLE_BREATHABLE3233// Object Score property values34#alias 3 : OBJECTSCORE_10003536// Priority37#alias 0 : PRIORITY_BOUNDS383940sub ObjectMain41switch Object.State42case BUTTONPRIZE_USED43if PushButton[-1].Pressed == true44switch Object.PropertyValue45case BUTTONPRIZE_SPIKES46Object[-1].Type = TypeName[Blank Object]47Object[+1].Type = TypeName[Moving Spikes]48Object[+3].Type = TypeName[Moving Spikes]49Object[+5].Type = TypeName[Moving Spikes]50Object[+7].Type = TypeName[Moving Spikes]51Object[+9].Type = TypeName[Moving Spikes]52CreateTempObject(TypeName[Explosion], 0, Object[-1].XPos, Object[-1].YPos)53CreateTempObject(TypeName[Explosion], 0, Object[+1].XPos, Object[+1].YPos)54CreateTempObject(TypeName[Explosion], 0, Object[+3].XPos, Object[+3].YPos)55CreateTempObject(TypeName[Explosion], 0, Object[+5].XPos, Object[+5].YPos)56CreateTempObject(TypeName[Explosion], 0, Object[+7].XPos, Object[+7].YPos)57CreateTempObject(TypeName[Explosion], 0, Object[+9].XPos, Object[+9].YPos)58break5960case BUTTONPRIZE_SCORE61Object[-3].Type = TypeName[Object Score]62Object[-3].PropertyValue = OBJECTSCORE_100063Object[-1].Type = TypeName[Blank Object]64Object[+1].Type = TypeName[Object Score]65Object[+1].PropertyValue = OBJECTSCORE_100066Object[+3].Type = TypeName[Object Score]67Object[+3].PropertyValue = OBJECTSCORE_100068Object[+5].Type = TypeName[Object Score]69Object[+5].PropertyValue = OBJECTSCORE_100070Object[+7].Type = TypeName[Object Score]71Object[+7].PropertyValue = OBJECTSCORE_100072CreateTempObject(TypeName[Explosion], 0, Object[-3].XPos, Object[-3].YPos)73CreateTempObject(TypeName[Explosion], 0, Object[-1].XPos, Object[-1].YPos)74CreateTempObject(TypeName[Explosion], 0, Object[+1].XPos, Object[+1].YPos)75CreateTempObject(TypeName[Explosion], 0, Object[+3].XPos, Object[+3].YPos)76CreateTempObject(TypeName[Explosion], 0, Object[+5].XPos, Object[+5].YPos)77CreateTempObject(TypeName[Explosion], 0, Object[+7].XPos, Object[+7].YPos)78Player.Score += 500079break8081case BUTTONPRIZE_BUBBLES82Object[-5].Type = TypeName[Button Prize]83Object[-3].Type = TypeName[Button Prize]84Object[-1].Type = TypeName[Button Prize]85Object[+1].Type = TypeName[Button Prize]86Object[+3].Type = TypeName[Button Prize]87Object[+5].Type = TypeName[Button Prize]88Object[-5].State = BUTTONPRIZE_CREATE_BUBBLES89Object[-3].State = BUTTONPRIZE_CREATE_BUBBLES90Object[-1].State = BUTTONPRIZE_CREATE_BUBBLES91Object[+1].State = BUTTONPRIZE_CREATE_BUBBLES92Object[+3].State = BUTTONPRIZE_CREATE_BUBBLES93Object[+5].State = BUTTONPRIZE_CREATE_BUBBLES94CreateTempObject(TypeName[Explosion], 0, Object[-5].XPos, Object[-5].YPos)95CreateTempObject(TypeName[Explosion], 0, Object[-3].XPos, Object[-3].YPos)96CreateTempObject(TypeName[Explosion], 0, Object[-1].XPos, Object[-1].YPos)97CreateTempObject(TypeName[Explosion], 0, Object[+1].XPos, Object[+1].YPos)98CreateTempObject(TypeName[Explosion], 0, Object[+3].XPos, Object[+3].YPos)99CreateTempObject(TypeName[Explosion], 0, Object[+5].XPos, Object[+5].YPos)100break101102case BUTTONPRIZE_BUBBLES_2103Object[-7].Type = TypeName[Button Prize]104Object[-5].Type = TypeName[Button Prize]105Object[-3].Type = TypeName[Button Prize]106Object[-1].Type = TypeName[Button Prize]107Object[+1].Type = TypeName[Button Prize]108Object[+3].Type = TypeName[Button Prize]109Object[-7].State = BUTTONPRIZE_CREATE_BUBBLES110Object[-5].State = BUTTONPRIZE_CREATE_BUBBLES111Object[-3].State = BUTTONPRIZE_CREATE_BUBBLES112Object[-1].State = BUTTONPRIZE_CREATE_BUBBLES113Object[+1].State = BUTTONPRIZE_CREATE_BUBBLES114Object[+3].State = BUTTONPRIZE_CREATE_BUBBLES115CreateTempObject(TypeName[Explosion], 0, Object[-7].XPos, Object[-7].YPos)116CreateTempObject(TypeName[Explosion], 0, Object[-5].XPos, Object[-5].YPos)117CreateTempObject(TypeName[Explosion], 0, Object[-3].XPos, Object[-3].YPos)118CreateTempObject(TypeName[Explosion], 0, Object[-1].XPos, Object[-1].YPos)119CreateTempObject(TypeName[Explosion], 0, Object[+1].XPos, Object[+1].YPos)120CreateTempObject(TypeName[Explosion], 0, Object[+3].XPos, Object[+3].YPos)121break122123case BUTTONPRIZE_RINGS124Object[-9].Type = TypeName[Blank Object]125Object[-7].Type = TypeName[Blank Object]126Object[-5].Type = TypeName[Blank Object]127Object[-3].Type = TypeName[Blank Object]128Object[-1].Type = TypeName[Button Prize]129Object[-1].XPos += 0x200000130Object[-1].State = BUTTONPRIZE_CREATE_RINGS131Object[+1].Type = TypeName[Blank Object]132CreateTempObject(TypeName[Explosion], 0, Object[-9].XPos, Object[-9].YPos)133CreateTempObject(TypeName[Explosion], 0, Object[-7].XPos, Object[-7].YPos)134CreateTempObject(TypeName[Explosion], 0, Object[-5].XPos, Object[-5].YPos)135CreateTempObject(TypeName[Explosion], 0, Object[-3].XPos, Object[-3].YPos)136CreateTempObject(TypeName[Explosion], 0, Object[-1].XPos, Object[-1].YPos)137CreateTempObject(TypeName[Explosion], 0, Object[+1].XPos, Object[+1].YPos)138break139140case BUTTONPRIZE_RINGS_2141Object[-11].Type = TypeName[Blank Object]142Object[-9].Type = TypeName[Blank Object]143Object[-7].Type = TypeName[Blank Object]144Object[-5].Type = TypeName[Blank Object]145Object[-3].Type = TypeName[Blank Object]146Object[-1].Type = TypeName[Button Prize]147Object[-1].State = BUTTONPRIZE_CREATE_RINGS148CreateTempObject(TypeName[Explosion], 0, Object[-11].XPos, Object[-11].YPos)149CreateTempObject(TypeName[Explosion], 0, Object[-9].XPos, Object[-9].YPos)150CreateTempObject(TypeName[Explosion], 0, Object[-7].XPos, Object[-7].YPos)151CreateTempObject(TypeName[Explosion], 0, Object[-5].XPos, Object[-5].YPos)152CreateTempObject(TypeName[Explosion], 0, Object[-3].XPos, Object[-3].YPos)153CreateTempObject(TypeName[Explosion], 0, Object[-1].XPos, Object[-1].YPos)154break155156end switch157Object.Type = TypeName[Blank Object]158end if159break160161case BUTTONPRIZE_CREATE_BUBBLES162Object.Timer++163if Object.Timer == 60164CreateTempObject(TypeName[Air Bubble], BUBBLE_BREATHABLE, Object.XPos, Object.YPos)165AirBubble[TempObjectPos].XVelocity = AirBubble[TempObjectPos].XPos166Rand(AirBubble[TempObjectPos].Angle, 256)167AirBubble[TempObjectPos].Angle <<= 1168AirBubble[TempObjectPos].DrawOrder = 4169AirBubble[TempObjectPos].YVelocity = -0x8800170end if171if Object.Timer == 120172CreateTempObject(TypeName[Air Bubble], BUBBLE_BREATHABLE, Object.XPos, Object.YPos)173AirBubble[TempObjectPos].XVelocity = AirBubble[TempObjectPos].XPos174Rand(AirBubble[TempObjectPos].Angle, 256)175AirBubble[TempObjectPos].Angle <<= 1176AirBubble[TempObjectPos].DrawOrder = 4177AirBubble[TempObjectPos].YVelocity = -0x8800178Object.Type = TypeName[Blank Object]179end if180break181182case BUTTONPRIZE_CREATE_RINGS183Object.Timer++184if Object.Timer == 360185Object.Type = TypeName[Blank Object]186Object.Priority = PRIORITY_BOUNDS187end if188189TempValue0 = Object.Timer190TempValue0 &= 15191if TempValue0 == 0192CreateTempObject(TypeName[Lose Ring], 0, Object.XPos, Object.YPos)193Object[TempObjectPos].YPos -= 0xB80000194Object[TempObjectPos].AnimationSpeed = 256195196TempValue1 = Object.Timer197TempValue1 >>= 4198TempValue1 %= 10199switch TempValue1200case 0201Object[TempObjectPos].XPos -= 0xA00000202break203204case 1205case 9206Object[TempObjectPos].XPos -= 0x800000207break208209case 2210case 8211Object[TempObjectPos].XPos -= 0x600000212break213214case 3215case 7216Object[TempObjectPos].XPos -= 0x400000217break218219case 4220case 6221Object[TempObjectPos].XPos -= 0x200000222break223224case 5225break226227end switch228end if229break230231end switch232end sub233234235// ========================236// Editor Subs237// ========================238239sub RSDKDraw240DrawSprite(0)241end sub242243244sub RSDKLoad245LoadSpriteSheet("Global/Display.gif")246SpriteFrame(-16, -16, 32, 32, 1, 143) // #0 - "Script" Icon247248SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")249end sub250251252