Path: blob/master/Sonic 2/Scripts/Global/SuperSpark.txt
1480 views
// ----------------------------------1// RSDK Project: Sonic 22// Script Description: Super Spark Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.propertyValue : object.isChild12private alias object.value0 : object.timer1314private alias 0 : SUPERSPARK_SETUP15private alias 1 : SUPERSPARK_ANIMATE116private alias 2 : SUPERSPARK_ANIMATE217private alias 3 : SUPERSPARK_DELAY18private alias 4 : SUPERSPARK_FINISHED1920// Player aliases21private alias object.xpos : player.xpos22private alias object.ypos : player.ypos23private alias object.speed : player.speed24private alias object.value18 : player.sortedDrawOrder25private alias object.value42 : player.prevGravity2627private alias -1 : DRAWORDER_PLAYER282930// ========================31// Events32// ========================333435event ObjectUpdate36if object.isChild == false37object.xpos = player[-playerCount].xpos38object.ypos = player[-playerCount].ypos39end if4041switch object.state42case SUPERSPARK_SETUP43if player[-playerCount].prevGravity == 044temp0 = player[-playerCount].speed45Abs(temp0)4647if temp0 >= 0x8000048object.drawOrder = DRAWORDER_PLAYER49object.timer = 050object.frame = 051object.state++52end if53end if54break5556case SUPERSPARK_ANIMATE157object.timer++58if object.timer >= 359object.timer = 160object.frame++61if object.frame >= 262object.state++63end if64end if65break6667case SUPERSPARK_ANIMATE268object.timer++69if object.timer >= 370object.timer = 171object.frame--72if object.frame <= 073object.state++74end if75end if76break7778case SUPERSPARK_DELAY79object.timer++80if object.timer >= 381object.timer = 982object.state++83end if84break8586case SUPERSPARK_FINISHED87if object.isChild == true88object.type = TypeName[Blank Object]89end if9091object.timer++92if object.timer >= 1393temp0 = player[-playerCount].speed94Abs(temp0)95CheckLower(temp0, 0x80000)96temp0 = checkResult97CheckEqual(player[-playerCount].prevGravity, 0)98temp0 &= checkResult99CheckEqual(object[-playerCount].state, Player_State_Climb)100temp0 |= checkResult101102if temp0 == true103object.state = SUPERSPARK_SETUP104else105object.timer = 0106CreateTempObject(TypeName[Super Spark], true, object[-playerCount].xpos, object[-playerCount].ypos)107object[tempObjectPos].frame = 0108object[tempObjectPos].state = SUPERSPARK_ANIMATE1109object[tempObjectPos].drawOrder = player[-playerCount].sortedDrawOrder110end if111end if112break113114end switch115end event116117118event ObjectDraw119switch object.state120default121case SUPERSPARK_SETUP122case SUPERSPARK_FINISHED123break124125case SUPERSPARK_ANIMATE1126case SUPERSPARK_ANIMATE2127case SUPERSPARK_DELAY128DrawSprite(object.frame)129break130131end switch132end event133134135event ObjectStartup136LoadSpriteSheet("Global/Items.gif")137138SpriteFrame(-8, -8, 16, 16, 200, 33)139SpriteFrame(-16, -16, 32, 32, 223, 116)140SpriteFrame(-24, -24, 48, 48, 207, 149)141end event142143144// ========================145// Editor Events146// ========================147148event RSDKDraw149DrawSprite(0)150end event151152153event RSDKLoad154LoadSpriteSheet("Global/Items.gif")155SpriteFrame(-8, -8, 16, 16, 200, 33)156157SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")158end event159160