Path: blob/master/Sonic 2/Scripts/Global/FireShield.txt
1480 views
// ----------------------------------1// RSDK Project: Sonic 22// Script Description: Fire Shield Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value0 : object.timer12private alias object.value18 : object.sortedDrawOrder1314private alias -1 : DRAWORDER_PLAYER1516private alias object.state : player.state17private alias object.xpos : player.xpos18private alias object.ypos : player.ypos1920// Flame shield states21private alias 0 : FIRESHIELD_IDLE_SETUP22private alias 1 : FIRESHIELD_IDLE23private alias 2 : FIRESHIELD_DASH_SETUP24private alias 3 : FIRESHIELD_DASH2526// Super States27private alias 1 : SUPERSTATE_SUPER282930// ========================31// Tables32// ========================3334// Passive/idle ver - just staying around the player normally35private table FireShield_idleFrameTable360, 1, 2, 3, 4, 5, 6, 7, 8, 9, 6, 7, 4, 5, 2, 3, 0, 137end table3839// Active - During flame dash40private table FireShield_dashFrameTable4110, 11, 12, 10, 12, 13, 10, 11, 12, 10, 12, 13, 042end table434445// ========================46// Editor Events47// ========================4849event ObjectUpdate50object.drawOrder = DRAWORDER_PLAYER5152// Unload if the player shouldn't have a shield53if player[-playerCount].state == Player_State_Death54object.type = TypeName[Blank Object]55end if5657if player[-playerCount].state == Player_State_Drown58object.type = TypeName[Blank Object]59end if6061switch object.state62case FIRESHIELD_IDLE_SETUP63object.animationTimer = 064object.timer = 065object.sortedDrawOrder = 066object.direction = FLIP_NONE67GetTableValue(object.frame, object.timer, FireShield_idleFrameTable)68object.state++69// Fall through to below70case FIRESHIELD_IDLE71object.animationTimer++7273if object.animationTimer >= 374object.animationTimer = 175object.timer++76object.sortedDrawOrder ^= 17778if object.timer >= 1079object.direction = FLIP_Y80if object.timer >= 1881object.timer = 082object.direction = FLIP_NONE83end if84end if8586GetTableValue(object.frame, object.timer, FireShield_idleFrameTable)87end if88break8990case FIRESHIELD_DASH_SETUP91object.animationTimer = 092object.timer = 093object.sortedDrawOrder = 094GetTableValue(object.frame, object.timer, FireShield_dashFrameTable)95object.state++96// Fall through again97case FIRESHIELD_DASH98object.animationTimer++99100if object.animationTimer >= 3101102object.animationTimer = 1103object.timer++104105if object.timer >= 12106object.state = FIRESHIELD_IDLE_SETUP107end if108109GetTableValue(object.frame, object.timer, FireShield_dashFrameTable)110end if111break112113end switch114end event115116117event ObjectDraw118if Player_superState != SUPERSTATE_SUPER119DrawSpriteFX(object.frame, FX_FLIP, player[-playerCount].xpos, player[-playerCount].ypos)120end if121end event122123124event ObjectStartup125126LoadSpriteSheet("Global/Items3.gif")127128// Flame shield frames129SpriteFrame(-16, 9, 37, 15, 131, 52)130SpriteFrame(-20, -24, 39, 15, 131, 68)131SpriteFrame(-20, 3, 40, 21, 148, 101)132SpriteFrame(-23, -24, 47, 23, 189, 101)133SpriteFrame(-24, -9, 48, 29, 148, 125)134SpriteFrame(-24, -19, 48, 27, 197, 125)135SpriteFrame(-24, -15, 48, 28, 1, 132)136SpriteFrame(-24, -21, 48, 34, 50, 140)137SpriteFrame(-23, -17, 46, 32, 99, 140)138SpriteFrame(-24, -22, 48, 42, 1, 161)139SpriteFrame(-4, -21, 20, 43, 64, 175)140SpriteFrame(-24, -23, 48, 46, 85, 175)141SpriteFrame(-32, -19, 56, 38, 135, 175)142SpriteFrame(-40, -24, 63, 47, 192, 166)143SpriteFrame(0, 0, 1, 1, 1, 1) // (Empty)144end event145146147// ========================148// Editor Events149// ========================150151event RSDKDraw152DrawSprite(0)153end event154155156event RSDKLoad157LoadSpriteSheet("Global/Display.gif")158SpriteFrame(-16, -16, 32, 32, 1, 143)159160SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")161end event162163164