Path: blob/master/Sonic 1/Scripts/Global/LightningShield.txt
1481 views
// ----------------------------------1// RSDK Project: Sonic 12// Script Description: LightningShield Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value0 : object.frameTimer12private alias object.value1 : object.animTimer13private alias object.value18 : object.sortedDrawOrder1415// Player aliases16private alias object.state : player.state17private alias object.xpos : player.xpos18private alias object.ypos : player.ypos1920// Super States21private alias 1 : SUPERSTATE_SUPER222324// ========================25// Tables26// ========================2728private table LightningShield_frameTable290, 1, 2, 3, 4, 3, 2, 1, 0, 5, 6, 730end table3132private table LightningShield_planeTable330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1341, 1, 1, 1, 1, 0, 0, 035end table3637private table LightningShield_directionTable380, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1390, 0, 0, 0, 0, 0, 0, 040end table4142private table LightningShield_durationTable434, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 244end table454647// ========================48// Events49// ========================5051event ObjectUpdate52// Bug Details:53// Unlike the other shields which set its draw order to -1, this one sets it to 754// This would act the same way... if your name isn't Origins and you didn't make draw order 7 an actual thing55// Otherwise it'll end up drawing in front of every tile regardless of the player's draw order56object.drawOrder = 75758// Unload if the player shouldn't have a shield59if player[-playerCount].state == Player_State_Death60object.type = TypeName[Blank Object]61end if62if player[-playerCount].state == Player_State_Drown63object.type = TypeName[Blank Object]64end if6566// Update animation67object.animationTimer--68if object.animationTimer <= 06970object.frameTimer++71if object.frameTimer >= 1272object.frameTimer = 073end if7475object.animTimer++76if object.animTimer >= 2477object.animTimer = 078end if7980GetTableValue(object.animationTimer, object.frameTimer, LightningShield_durationTable)81GetTableValue(object.sortedDrawOrder, object.animTimer, LightningShield_planeTable)82GetTableValue(object.direction, object.animTimer, LightningShield_directionTable)8384end if8586GetTableValue(object.frame, object.frameTimer, LightningShield_frameTable)87end event888990event ObjectDraw91if Player_superState != SUPERSTATE_SUPER92DrawSpriteFX(object.frame, FX_FLIP, player[-playerCount].xpos, player[-playerCount].ypos)93end if94end event959697event ObjectStartup98LoadSpriteSheet("Global/Items3.gif")99100// Sprite frames101SpriteFrame(-8, -24, 31, 48, 191, 1)102SpriteFrame(-1, -24, 24, 48, 223, 1)103SpriteFrame(-8, -24, 31, 48, 174, 52)104SpriteFrame(-8, -24, 32, 48, 206, 52)105SpriteFrame(-8, -24, 16, 48, 239, 52)106SpriteFrame(-24, -24, 48, 48, 1, 83)107SpriteFrame(-24, -24, 48, 48, 50, 91)108SpriteFrame(-24, -24, 48, 48, 99, 91)109SpriteFrame(0, 0, 1, 1, 1, 1) // Empty frame110end event111112113// ========================114// Editor Events115// ========================116117event RSDKDraw118DrawSprite(0)119end event120121122event RSDKLoad123LoadSpriteSheet("Global/Display.gif")124SpriteFrame(-16, -16, 32, 32, 1, 143)125126SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")127end event128129130