Path: blob/main/Scripts/R6/FreezeJet.txt
1319 views
//-----------------Sonic CD Freeze Jet Script-----------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.Timer6#alias Object.Value1 : Object.TimerResetFreq7#alias Player.Value4 : Player.InvincibleTimer89// States10#alias 0 : FREEZEJET_STARTUP11#alias 1 : FREEZEJET_SHOT_BEAM12#alias 2 : FREEZEJET_STOPPING_BEAM13#alias 3 : FREEZEJET_COOLDOWN1415// Warp Destination16#alias 0 : WARPDEST_NONE171819sub ObjectMain20switch Object.State21case FREEZEJET_STARTUP22if Object.Timer < 12023Object.Timer++24Object.Frame = 225else26Object.Timer = 027Object.State++28Object.Frame = 129end if30break3132case FREEZEJET_SHOT_BEAM33if Object.Timer < 16034TempValue0 = Object.Timer35TempValue0 &= 136if TempValue0 == 037Object.Frame++38end if39if Object.Frame > 640Object.Frame = 341Object.Direction++42Object.Direction &= FACING_LEFT43end if44Object.Timer++45else46Object.Timer = 047Object.State++48Object.Frame = 749end if50break5152case FREEZEJET_STOPPING_BEAM53if Object.Timer < 2454TempValue0 = Object.Timer55TempValue0 &= 356if TempValue0 == 057Object.Frame++58end if59if Object.Frame > 1260Object.Frame = 761Object.Direction++62Object.Direction &= FACING_LEFT63end if64Object.Timer++65else66Object.Timer = 067Object.TimerResetFreq = 768Object.State++69end if70break7172case FREEZEJET_COOLDOWN73if Object.Timer < 12074TempValue0 = Object.Timer75TempValue0 &= Object.TimerResetFreq76if TempValue0 == 077Object.Frame++78Object.TimerResetFreq++79Object.TimerResetFreq <<= 180Object.TimerResetFreq--81end if82if Object.Frame > 1283Object.Frame = 784Object.Direction++85Object.Direction &= FACING_LEFT86end if87Object.Timer++88else89Object.Timer = 090Object.State = FREEZEJET_SHOT_BEAM91Object.Frame = 192end if93break9495end switch96end sub979899sub ObjectPlayerInteraction100if Object.State == FREEZEJET_SHOT_BEAM101PlayerObjectCollision(C_TOUCH, -16, 0, 16, 60)102if CheckResult == true103if Player.InvincibleTimer == 0104if Warp.Destination > WARPDEST_NONE105if Warp.Timer > 99106if Warp.Timer < 220107Warp.Destination = WARPDEST_NONE108end if109end if110Warp.Timer = 0111end if112Player.State = Player_State_Static113114Player.Visible = false115Player.ObjectInteraction = false116117Player.Speed = 0118Player.XVelocity = 0119Player.YVelocity = 0120121CreateTempObject(TypeName[Ice Block], 0, Player.XPos, Player.YPos)122Object[TempObjectPos].DrawOrder = 4123end if124end if125end if126end sub127128129sub ObjectDraw130DrawSpriteFX(Object.Frame, FX_FLIP, Object.XPos, Object.YPos)131132DrawSprite(0)133end sub134135136sub ObjectStartup137LoadSpriteSheet("R6/Objects.gif")138139SpriteFrame(-32, -8, 64, 16, 1, 1) // #0 - Freeze Jet Machine140141SpriteFrame(-16, 0, 32, 36, 1, 46) // #1 - Freeze Beam frame 0142SpriteFrame(-16, 0, 0, 0, 1, 46) // #2 - Freeze Beam frame 1143SpriteFrame(-16, 0, 0, 0, 1, 46) // #3 - Freeze Beam frame 2144SpriteFrame(-16, 0, 32, 60, 1, 22) // #4 - Freeze Beam frame 3145SpriteFrame(-16, 0, 0, 0, 1, 46) // #5 - Freeze Beam frame 4146SpriteFrame(-16, 4, 32, 64, 1, 18) // #6 - Freeze Beam frame 5147SpriteFrame(-16, 0, 0, 0, 1, 46) // #7 - Freeze Beam frame 6148SpriteFrame(-16, 0, 0, 0, 1, 46) // #8 - Freeze Beam frame 7149SpriteFrame(-16, 0, 32, 60, 1, 22) // #9 - Freeze Beam frame 8150SpriteFrame(-16, 0, 0, 0, 1, 46) // #10 - Freeze Beam frame 9151SpriteFrame(-16, 0, 0, 0, 1, 46) // #11 - Freeze Beam frame 10152SpriteFrame(-16, 4, 32, 64, 1, 18) // #12 - Freeze Beam frame 11153end sub154155156// ========================157// Editor Subs158// ========================159160sub RSDKDraw161DrawSprite(0)162end sub163164165sub RSDKLoad166LoadSpriteSheet("R6/Objects.gif")167168SpriteFrame(-32, -8, 64, 16, 1, 1) // #0 - Freeze Jet Machine169170SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")171end sub172173174