Path: blob/main/Scripts/R3/PinballBomb.txt
1319 views
//---------------Sonic CD Pinball Bomb Script-----------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.FrameTimer6#alias Object.Value1 : Object.XVelocity7#alias Object.Value2 : Object.YVelocity8#alias Object.Value3 : Object.Bounces910// Collision Sides11#alias 0 : CSIDE_FLOOR12#alias 1 : CSIDE_LWALL13#alias 2 : CSIDE_RWALL1415// Gravity16#alias 1 : GRAVITY_AIR1718// Global SFX19#alias 22 : SFX_G_EXPLOSION2021// Priority22#alias 1 : PRIORITY_ACTIVE232425sub ObjectMain26Object.YVelocity += 0x200027// if the bomb goes fast enough, get to the background28if Object.YVelocity > 0x4000029Object.DrawOrder = 330end if31Object.XPos += Object.XVelocity32Object.YPos += Object.YVelocity3334Object.FrameTimer++35Object.FrameTimer &= 33637if Object.XVelocity > 038ObjectTileCollision(CSIDE_LWALL, 8, 0, 0)39else40ObjectTileCollision(CSIDE_RWALL, -8, 0, 0)41end if42if CheckResult == true43FlipSign(Object.XVelocity)44end if4546ObjectTileCollision(CSIDE_FLOOR, 0, 8, 0)47if CheckResult == true48FlipSign(Object.YVelocity)49Object.YVelocity >>= 15051if Object.Bounces < 152Object.Bounces++53else54PlaySfx(SFX_G_EXPLOSION, false)55ResetObjectEntity(Object.EntityNo, TypeName[Explosion], 0, Object.XPos, Object.YPos)56end if57end if58end sub596061sub ObjectPlayerInteraction62PlayerObjectCollision(C_TOUCH, -8, -8, 8, 8)63if CheckResult == true64PlaySfx(SFX_G_EXPLOSION, false)6566#platform: Use_Haptics67HapticEffect(96, 0, 0, 0)68#endplatform6970ResetObjectEntity(Object.EntityNo, TypeName[Explosion], 0, Object.XPos, Object.YPos)71Object.Priority = PRIORITY_ACTIVE7273TempValue0 = Player.XPos74TempValue0 -= Object.XPos7576TempValue1 = Player.YPos77TempValue1 -= Object.YPos78ATan2(TempValue2, TempValue0, TempValue1)7980Cos256(TempValue0, TempValue2)81Sin256(TempValue1, TempValue2)82TempValue0 *= 0x70083TempValue1 *= 0x7008485Player.XVelocity = TempValue086Player.YVelocity = TempValue187Player.Speed = Player.XVelocity8889Player.Gravity = GRAVITY_AIR90Player.Timer = 091end if92end sub939495sub ObjectDraw96if Object.FrameTimer == 097DrawSprite(0)98else99DrawSprite(1)100end if101end sub102103104sub ObjectStartup105LoadSpriteSheet("R3/Objects2.gif")106107SpriteFrame(-12, -12, 24, 24, 232, 0) // #0 - Pinball Bomb Frame 0108SpriteFrame(-8, -8, 16, 16, 130, 67) // #1 - Pinball Bomb Frame 1109end sub110111112// ========================113// Editor Subs114// ========================115116sub RSDKDraw117DrawSprite(0)118end sub119120121sub RSDKLoad122LoadSpriteSheet("R3/Objects2.gif")123124SpriteFrame(-12, -12, 24, 24, 232, 0) // #0 - Pinball Bomb125126SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")127end sub128129130