Path: blob/main/Scripts/R6/ElectricArc.txt
1319 views
//----------------Sonic CD Electric Arc Script----------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.Timer67// HUD Alias8#alias Object[24].PropertyValue : HUD.CurrentTimePeriod910// States11#alias 0 : ELECTRICARC_POWERING12#alias 1 : ELECTRICARC_EXTEND_113#alias 2 : ELECTRICARC_EXTEND_214#alias 3 : ELECTRICARC_EXTEND_315#alias 4 : ELECTRICARC_SWAP_TO_TILES1617// Time Periods18#alias 2 : TIME_GOOD_FUTURE192021sub ObjectMain22switch Object.State23case ELECTRICARC_POWERING24Object.Timer++25if Object.Timer == 3026Object.Timer = 027Object.State++28end if29break3031case ELECTRICARC_EXTEND_132case ELECTRICARC_EXTEND_233case ELECTRICARC_EXTEND_334Object.Timer++35if Object.Timer == 336Object.Timer = 037Object.State++38end if39break4041case ELECTRICARC_SWAP_TO_TILES42Object.Timer++43if Object.Timer == 344Object.Timer = 045Object.Type = TypeName[Blank Object]46TempValue1 = Object.XPos47TempValue1 >>= 2348TempValue1--49TempValue2 = Object.YPos50TempValue2 >>= 2351GetTileLayerEntry(TempValue0, 0, TempValue1, TempValue2)52TempValue0 += 353SetTileLayerEntry(TempValue0, 0, TempValue1, TempValue2)54TempValue1++55GetTileLayerEntry(TempValue0, 0, TempValue1, TempValue2)56TempValue0 += 357SetTileLayerEntry(TempValue0, 0, TempValue1, TempValue2)58TempValue1++59GetTileLayerEntry(TempValue0, 0, TempValue1, TempValue2)60TempValue0 += 361SetTileLayerEntry(TempValue0, 0, TempValue1, TempValue2)62end if63break64end switch6566Object.Frame++67Object.Frame %= 1568end sub697071sub ObjectDraw72switch Object.State73case ELECTRICARC_POWERING74TempValue0 = Object.Frame75TempValue0 /= 576DrawSprite(TempValue0)77DrawSpriteFX(TempValue0, FX_FLIP, Object.XPos, Object.YPos)78break7980case ELECTRICARC_EXTEND_181TempValue0 = Object.Frame82TempValue0 /= 583TempValue0 += 384DrawSprite(TempValue0)85DrawSpriteFX(TempValue0, FX_FLIP, Object.XPos, Object.YPos)86break8788case ELECTRICARC_EXTEND_289TempValue0 = Object.Frame90TempValue0 /= 591TempValue0 += 692DrawSprite(TempValue0)93DrawSpriteFX(TempValue0, FX_FLIP, Object.XPos, Object.YPos)94break9596case ELECTRICARC_EXTEND_397TempValue0 = Object.Frame98TempValue0 /= 599TempValue0 += 9100DrawSprite(TempValue0)101DrawSpriteFX(TempValue0, FX_FLIP, Object.XPos, Object.YPos)102break103104case ELECTRICARC_SWAP_TO_TILES105TempValue0 = Object.Frame106TempValue0 /= 5107TempValue0 += 9108DrawSprite(TempValue0)109DrawSpriteFX(TempValue0, FX_FLIP, Object.XPos, Object.YPos)110TempValue0 += 3111DrawSprite(TempValue0)112DrawSpriteFX(TempValue0, FX_FLIP, Object.XPos, Object.YPos)113break114115end switch116end sub117118119sub ObjectStartup120LoadSpriteSheet("R6/Objects3.gif")121122if HUD.CurrentTimePeriod == TIME_GOOD_FUTURE123SpriteFrame(-176, -8, 16, 16, 1, 1) // #0 - Electric Arc frame 0124SpriteFrame(-176, -8, 16, 16, 1, 18) // #1 - Electric Arc frame 1125SpriteFrame(-176, -8, 16, 16, 1, 35) // #2 - Electric Arc frame 2126127SpriteFrame(-176, -8, 32, 16, 1, 1) // #3 - Electric Arc frame 0128SpriteFrame(-176, -8, 32, 16, 1, 18) // #4 - Electric Arc frame 1129SpriteFrame(-176, -8, 32, 16, 1, 35) // #5 - Electric Arc frame 2130131SpriteFrame(-176, -8, 48, 16, 1, 1) // #6 - Electric Arc frame 0132SpriteFrame(-176, -8, 48, 16, 1, 18) // #7 - Electric Arc frame 1133SpriteFrame(-176, -8, 48, 16, 1, 35) // #8 - Electric Arc frame 2134135SpriteFrame(-176, -8, 64, 16, 1, 1) // #9 - Electric Arc frame 0136SpriteFrame(-176, -8, 64, 16, 1, 18) // #10 - Electric Arc frame 1137SpriteFrame(-176, -8, 64, 16, 1, 35) // #11 - Electric Arc frame 2138139SpriteFrame(-112, -8, 16, 16, 1, 1) // #12 - Electric Arc frame 0140SpriteFrame(-112, -8, 16, 16, 1, 18) // #13 - Electric Arc frame 1141SpriteFrame(-112, -8, 16, 16, 1, 35) // #14 - Electric Arc frame 2142else143SpriteFrame(-176, -8, 16, 16, 1, 150) // #0 - Electric Arc frame 0144SpriteFrame(-176, -8, 16, 16, 1, 167) // #1 - Electric Arc frame 1145SpriteFrame(-176, -8, 16, 16, 1, 184) // #2 - Electric Arc frame 2146147SpriteFrame(-176, -8, 32, 16, 1, 150) // #3 - Electric Arc frame 3148SpriteFrame(-176, -8, 32, 16, 1, 167) // #4 - Electric Arc frame 4149SpriteFrame(-176, -8, 32, 16, 1, 184) // #5 - Electric Arc frame 5150151SpriteFrame(-176, -8, 48, 16, 1, 150) // #6 - Electric Arc frame 6152SpriteFrame(-176, -8, 48, 16, 1, 167) // #7 - Electric Arc frame 7153SpriteFrame(-176, -8, 48, 16, 1, 184) // #8 - Electric Arc frame 8154155SpriteFrame(-176, -8, 64, 16, 1, 150) // #9 - Electric Arc frame 9156SpriteFrame(-176, -8, 64, 16, 1, 167) // #10 - Electric Arc frame 10157SpriteFrame(-176, -8, 64, 16, 1, 184) // #11 - Electric Arc frame 11158159SpriteFrame(-112, -8, 16, 16, 1, 150) // #12 - Electric Arc frame 12160SpriteFrame(-112, -8, 16, 16, 1, 167) // #13 - Electric Arc frame 13161SpriteFrame(-112, -8, 16, 16, 1, 184) // #14 - Electric Arc frame 14162end if163end sub164165166// ========================167// Editor Subs168// ========================169170sub RSDKDraw171DrawSprite(0)172end sub173174175sub RSDKLoad176LoadSpriteSheet("R6/Objects3.gif")177CallFunction(EditorHelpers_FindTimePeriod)178if CheckResult == TIME_GOOD_FUTURE179SpriteFrame(-176, -8, 16, 16, 1, 1) // #0 - Electric Arc frame 0180SpriteFrame(-176, -8, 16, 16, 1, 18) // #1 - Electric Arc frame 1181SpriteFrame(-176, -8, 16, 16, 1, 35) // #2 - Electric Arc frame 2182183SpriteFrame(-176, -8, 32, 16, 1, 1) // #3 - Electric Arc frame 0184SpriteFrame(-176, -8, 32, 16, 1, 18) // #4 - Electric Arc frame 1185SpriteFrame(-176, -8, 32, 16, 1, 35) // #5 - Electric Arc frame 2186187SpriteFrame(-176, -8, 48, 16, 1, 1) // #6 - Electric Arc frame 0188SpriteFrame(-176, -8, 48, 16, 1, 18) // #7 - Electric Arc frame 1189SpriteFrame(-176, -8, 48, 16, 1, 35) // #8 - Electric Arc frame 2190191SpriteFrame(-176, -8, 64, 16, 1, 1) // #9 - Electric Arc frame 0192SpriteFrame(-176, -8, 64, 16, 1, 18) // #10 - Electric Arc frame 1193SpriteFrame(-176, -8, 64, 16, 1, 35) // #11 - Electric Arc frame 2194195SpriteFrame(-112, -8, 16, 16, 1, 1) // #12 - Electric Arc frame 0196SpriteFrame(-112, -8, 16, 16, 1, 18) // #13 - Electric Arc frame 1197SpriteFrame(-112, -8, 16, 16, 1, 35) // #14 - Electric Arc frame 2198else199SpriteFrame(-176, -8, 16, 16, 1, 150) // #0 - Electric Arc frame 0200SpriteFrame(-176, -8, 16, 16, 1, 167) // #1 - Electric Arc frame 1201SpriteFrame(-176, -8, 16, 16, 1, 184) // #2 - Electric Arc frame 2202203SpriteFrame(-176, -8, 32, 16, 1, 150) // #3 - Electric Arc frame 3204SpriteFrame(-176, -8, 32, 16, 1, 167) // #4 - Electric Arc frame 4205SpriteFrame(-176, -8, 32, 16, 1, 184) // #5 - Electric Arc frame 5206207SpriteFrame(-176, -8, 48, 16, 1, 150) // #6 - Electric Arc frame 6208SpriteFrame(-176, -8, 48, 16, 1, 167) // #7 - Electric Arc frame 7209SpriteFrame(-176, -8, 48, 16, 1, 184) // #8 - Electric Arc frame 8210211SpriteFrame(-176, -8, 64, 16, 1, 150) // #9 - Electric Arc frame 9212SpriteFrame(-176, -8, 64, 16, 1, 167) // #10 - Electric Arc frame 10213SpriteFrame(-176, -8, 64, 16, 1, 184) // #11 - Electric Arc frame 11214215SpriteFrame(-112, -8, 16, 16, 1, 150) // #12 - Electric Arc frame 12216SpriteFrame(-112, -8, 16, 16, 1, 167) // #13 - Electric Arc frame 13217SpriteFrame(-112, -8, 16, 16, 1, 184) // #14 - Electric Arc frame 14218end if219220SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")221end sub222223224