Path: blob/main/Scripts/Global/WarpSonic.txt
1319 views
//----------------Sonic CD Warp Sonic 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.Timer7#alias Object.Value2 : Object.WarpStarTimer89// Afterimage 1 Aliases10#alias Object[1].Value0 : AfterImage1.Delay11#alias Object[1].Value1 : AfterImage1.Delay212#alias Object[1].Value2 : AfterImage1.Delay313#alias Object[1].Value3 : AfterImage1.YPos1415// Afterimage 2 Aliases16#alias Object[1].Value4 : AfterImage2.Delay17#alias Object[1].Value5 : AfterImage2.Delay218#alias Object[1].Value6 : AfterImage2.Delay319#alias Object[1].Value7 : AfterImage2.YPos2021// Afterimage 3 Aliases22#alias Object[2].Value0 : AfterImage3.Delay23#alias Object[2].Value1 : AfterImage3.Delay224#alias Object[2].Value2 : AfterImage3.Delay325#alias Object[2].Value3 : AfterImage3.YPos2627// Time Warp Aliases28#alias Object[0].State : TimeWarp.State2930// Warp Star Aliases31#alias Object.Value1 : WarpStar.RandFadeTimer32#alias Object.State : WarpStar.State3334// States35#alias 0 : WARPSONIC_REACH_CENTER36#alias 1 : WARPSONIC_IDLE37#alias 2 : WARPSONIC_LEAVE3839// WarpStar States40#alias 2 : WARPSTAR_CUTSCENE4142// TimeWarp States43#alias 4 : TIMEWARP_LEAVING4445// Player46#alias 0 : PLAYER_SONIC_A47#alias 1 : PLAYER_TAILS_A4849// Ink50#alias 2 : INK_ALPHA515253sub ObjectMain54// tldr;55// this gets the ypos for the afterimages56AfterImage3.YPos = AfterImage3.Delay357AfterImage3.Delay3 = AfterImage3.Delay258AfterImage3.Delay2 = AfterImage3.Delay59AfterImage3.Delay = AfterImage2.YPos6061AfterImage2.YPos = AfterImage2.Delay362AfterImage2.Delay3 = AfterImage2.Delay263AfterImage2.Delay2 = AfterImage2.Delay64AfterImage2.Delay = AfterImage1.YPos6566AfterImage1.YPos = AfterImage1.Delay367AfterImage1.Delay3 = AfterImage1.Delay268AfterImage1.Delay2 = AfterImage1.Delay69AfterImage1.Delay = Object.YPos7071switch Object.State72case WARPSONIC_REACH_CENTER73Object.YPos -= 0x8000074if Object.YPos < 0x78000075Object.YPos = 0x78000076Object.State = WARPSONIC_IDLE77Object.Timer = 078end if79break8081case WARPSONIC_IDLE82Object.Timer++8384#platform: Use_Haptics85if Object.Timer == 6086HapticEffect(9, 0, 0, 0)87end if88#endplatform8990if Object.Timer == 12091Object.Timer = 092Object.State = WARPSONIC_LEAVE93TimeWarp.State = TIMEWARP_LEAVING94end if95break9697case WARPSONIC_LEAVE98Object.YPos -= 0x8000099if Object.OutOfBounds == true100Object.Type = TypeName[Blank Object]101end if102break103104end switch105106Object.WarpStarTimer++107if Object.WarpStarTimer == 4108Object.WarpStarTimer = 0109Rand(TempValue0, 32)110TempValue0 -= 16111TempValue0 <<= 16112TempValue0 += Object.XPos113114Rand(TempValue1, 32)115TempValue1 -= 16116TempValue1 <<= 16117TempValue1 += Object.YPos118119CreateTempObject(TypeName[Warp Star], 0, TempValue0, TempValue1)120WarpStar[TempObjectPos].State = WARPSTAR_CUTSCENE121122Rand(WarpStar[TempObjectPos].RandFadeTimer, 32)123WarpStar[TempObjectPos].RandFadeTimer += 16124end if125end sub126127128sub ObjectDraw129// Afterimages Frames130TempValue0 = Object.Frame131TempValue0++132if TempValue0 > 4133TempValue0 = 0134end if135136// Afterimages137if Object.YPos < 0x1040000138Object.InkEffect = INK_ALPHA139Object.Alpha = 160140DrawSpriteFX(TempValue0, FX_INK, Object.XPos, AfterImage1.YPos)141Object.Alpha = 128142DrawSpriteFX(TempValue0, FX_INK, Object.XPos, AfterImage2.YPos)143Object.Alpha = 96144DrawSpriteFX(TempValue0, FX_INK, Object.XPos, AfterImage3.YPos)145end if146147DrawSprite(Object.Frame)148Object.FrameTimer++149if Object.FrameTimer > 2150Object.FrameTimer = 0151Object.Frame++152if Object.Frame > 4153Object.Frame = 0154end if155end if156end sub157158159sub ObjectStartup160// #0 - Bouncing Frame 0161// #1 - Bouncing Frame 1162// #2 - Bouncing Frame 2163// #3 - Bouncing Frame 3164// #4 - Bouncing Frame 4165166if Stage.PlayerListPos == PLAYER_SONIC_A167LoadSpriteSheet("Global/Items3.gif")168SpriteFrame(-14, -22, 29, 44, 116, 211)169SpriteFrame(-11, -22, 20, 44, 146, 211)170SpriteFrame(-11, -22, 25, 44, 167, 211)171SpriteFrame(-13, -22, 25, 44, 193, 211)172SpriteFrame(-8, -22, 20, 44, 219, 211)173end if174175if Stage.PlayerListPos == PLAYER_TAILS_A176LoadSpriteSheet("Players/Tails2.gif")177SpriteFrame(-17, -22, 24, 48, 1, 1)178SpriteFrame(-11, -22, 24, 48, 26, 1)179SpriteFrame(-13, -22, 24, 48, 51, 1)180SpriteFrame(-7, -22, 24, 48, 76, 1)181SpriteFrame(-10, -22, 21, 48, 101, 1)182end if183184#platform: Use_Origins185if Stage.PlayerListPos == PLAYER_KNUCKLES186LoadSpriteSheet("Players/KTE5.gif")187SpriteFrame(-14, -21, 29, 45, 1, 70)188SpriteFrame(-13, -21, 24, 45, 31, 70)189SpriteFrame(-11, -21, 30, 45, 56, 70)190SpriteFrame(-18, -21, 30, 45, 87, 66)191SpriteFrame(-10, -21, 24, 45, 118, 66)192end if193194if Stage.PlayerListPos == PLAYER_AMY195LoadSpriteSheet("Players/Amy3.gif")196SpriteFrame(-12, -21, 24, 39, 1, 1)197SpriteFrame(-13, -21, 21, 39, 26, 1)198SpriteFrame(-14, -21, 28, 39, 48, 1)199SpriteFrame(-13, -21, 28, 39, 77, 1)200SpriteFrame(-7, -21, 21, 39, 1, 41)201end if202#endplatform203204end sub205206207// ========================208// Editor Subs209// ========================210211sub RSDKDraw212DrawSprite(0)213end sub214215216sub RSDKLoad217LoadSpriteSheet("Global/Items3.gif")218SpriteFrame(-14, -22, 29, 44, 116, 211) // #0 - Bouncing Frame 0219220SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")221end sub222223224