Path: blob/master/Sonic 2/Scripts/Global/LightningShield.txt
1480 views
// ----------------------------------1// RSDK Project: Sonic 22// 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--6869if object.animationTimer <= 07071object.frameTimer++72if object.frameTimer >= 1273object.frameTimer = 074end if7576object.animTimer++77if object.animTimer >= 2478object.animTimer = 079end if8081GetTableValue(object.animationTimer, object.frameTimer, LightningShield_durationTable)82GetTableValue(object.sortedDrawOrder, object.animTimer, LightningShield_planeTable)83GetTableValue(object.direction, object.animTimer, LightningShield_directionTable)8485end if8687GetTableValue(object.frame, object.frameTimer, LightningShield_frameTable)88end event899091event ObjectDraw92if Player_superState != SUPERSTATE_SUPER93DrawSpriteFX(object.frame, FX_FLIP, object[-playerCount].xpos, object[-playerCount].ypos)94end if95end event969798event ObjectStartup99LoadSpriteSheet("Global/Items3.gif")100101// Sprite frames102SpriteFrame(-8, -24, 31, 48, 191, 1)103SpriteFrame(-1, -24, 24, 48, 223, 1)104SpriteFrame(-8, -24, 31, 48, 174, 52)105SpriteFrame(-8, -24, 32, 48, 206, 52)106SpriteFrame(-8, -24, 16, 48, 239, 52)107SpriteFrame(-24, -24, 48, 48, 1, 83)108SpriteFrame(-24, -24, 48, 48, 50, 91)109SpriteFrame(-24, -24, 48, 48, 99, 91)110SpriteFrame(0, 0, 1, 1, 1, 1) // Empty frame111end event112113114// ========================115// Editor Events116// ========================117118event RSDKDraw119DrawSprite(0)120end event121122123event RSDKLoad124LoadSpriteSheet("Global/Items3.gif")125SpriteFrame(-8, -24, 31, 48, 191, 1)126127SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")128end event129130131