Path: blob/master/Sonic 1/Scripts/Global/Invincibility2.txt
1480 views
// ----------------------------------1// RSDK Project: Sonic 12// Script Description: Invincibility 2 Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.state : object.isSetup1213private alias object.value0 : object.starPos0.x14private alias object.value1 : object.starPos1.x15private alias object.value2 : object.starPos2.x16private alias object.value3 : object.starPos3.x17private alias object.value4 : object.starPos4.x18private alias object.value5 : object.starPos5.x19private alias object.value6 : object.starPos6.x20private alias object.value7 : object.starPos7.x2122private alias object.value8 : object.starPos0.y23private alias object.value9 : object.starPos1.y24private alias object.value10 : object.starPos2.y25private alias object.value11 : object.starPos3.y26private alias object.value12 : object.starPos4.y27private alias object.value13 : object.starPos5.y28private alias object.value14 : object.starPos6.y29private alias object.value15 : object.starPos7.y3031private alias object.value16 : object.starAngle032private alias object.value17 : object.starAngle13334// value18 is unused3536private alias object.value19 : object.starFrame037private alias object.value20 : object.starFrame13839// Player Aliases40private alias object.xpos : player.xpos41private alias object.ypos : player.ypos42private alias object.direction : player.direction4344private alias object.value7 : player.invincibleTimer4546private alias -1 : DRAWORDER_PLAYER474849// ========================50// Tables51// ========================5253private table Invincibility2_frameTable4547, 4, 6, 4, 4, 6, 4, 7, 4, 6, 6, 455end table5657private table Invincibility2_frameTable3582, 3, 4, 5, 6, 7, 6, 5, 4, 3592, 3, 4, 5, 6, 7, 6, 5, 4, 360end table6162private table Invincibility2_frameTable2631, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2641, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 265end table6667private table Invincibility2_frameTable1680, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1690, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 170end table717273// ========================74// Events75// ========================7677event ObjectUpdate78if object.isSetup == false79object.starPos7.x = player[-playerCount].xpos80object.starPos6.x = player[-playerCount].xpos81object.starPos5.x = player[-playerCount].xpos82object.starPos4.x = player[-playerCount].xpos83object.starPos3.x = player[-playerCount].xpos84object.starPos2.x = player[-playerCount].xpos85object.starPos1.x = player[-playerCount].xpos8687object.starPos0.x = player[-playerCount].xpos88object.starPos7.y = player[-playerCount].ypos89object.starPos6.y = player[-playerCount].ypos90object.starPos5.y = player[-playerCount].ypos91object.starPos4.y = player[-playerCount].ypos92object.starPos3.y = player[-playerCount].ypos93object.starPos2.y = player[-playerCount].ypos94object.starPos1.y = player[-playerCount].ypos95object.starPos0.y = player[-playerCount].ypos9697object.starAngle0 = 18098object.starAngle1 = 099object.isSetup = true100object.inkEffect = INK_ALPHA101object.alpha = 255102object.drawOrder = DRAWORDER_PLAYER103end if104105object.starFrame0++106object.starFrame0 %= 12107object.starFrame1++108object.starFrame1 %= 10109110object.starPos7.x = object.starPos6.x111object.starPos6.x = object.starPos5.x112object.starPos5.x = object.starPos4.x113object.starPos4.x = object.starPos3.x114object.starPos3.x = object.starPos2.x115object.starPos2.x = object.starPos1.x116object.starPos1.x = object.starPos0.x117object.starPos0.x = player[-playerCount].xpos118119object.starPos7.y = object.starPos6.y120object.starPos6.y = object.starPos5.y121object.starPos5.y = object.starPos4.y122object.starPos4.y = object.starPos3.y123object.starPos3.y = object.starPos2.y124object.starPos2.y = object.starPos1.y125object.starPos1.y = object.starPos0.y126object.starPos0.y = player[-playerCount].ypos127128// Make the sparkles fly in the Player's direction129if player[-playerCount].direction == FACING_RIGHT130object.starAngle0 += 144131object.starAngle0 &= 0x1FF132object.starAngle1 += 16133object.starAngle1 &= 0x1FF134else135object.starAngle0 -= 144136object.starAngle0 &= 0x1FF137object.starAngle1 -= 16138object.starAngle1 &= 0x1FF139end if140141if player[-playerCount].invincibleTimer < 32142object.alpha = player[-playerCount].invincibleTimer143object.alpha <<= 3144end if145end event146147148event ObjectDraw149temp2 = object.starAngle1150temp2 += 116151Cos(temp0, temp2)152Sin(temp1, temp2)153temp0 <<= 11154temp1 <<= 11155temp0 += object.starPos7.x156temp1 += object.starPos7.y157GetTableValue(object.frame, object.starFrame0, Invincibility2_frameTable1)158DrawSpriteFX(object.frame, FX_INK, temp0, temp1)159160temp2 = object.starAngle1161temp2 += 372162Cos(temp0, temp2)163Sin(temp1, temp2)164temp0 <<= 11165temp1 <<= 11166temp0 += object.starPos7.x167temp1 += object.starPos7.y168temp2 = object.starFrame0169temp2 += 6170GetTableValue(object.frame, temp2, Invincibility2_frameTable1)171DrawSpriteFX(object.frame, FX_INK, temp0, temp1)172173Cos(temp0, object.starAngle1)174Sin(temp1, object.starAngle1)175temp0 <<= 11176temp1 <<= 11177temp0 += object.starPos5.x178temp1 += object.starPos5.y179GetTableValue(object.frame, object.starFrame0, Invincibility2_frameTable2)180DrawSpriteFX(object.frame, FX_INK, temp0, temp1)181182temp2 = object.starAngle1183temp2 += 256184Cos(temp0, temp2)185Sin(temp1, temp2)186temp0 <<= 11187temp1 <<= 11188temp0 += object.starPos5.x189temp1 += object.starPos5.y190temp2 = object.starFrame0191temp2 += 6192GetTableValue(object.frame, temp2, Invincibility2_frameTable2)193DrawSpriteFX(object.frame, FX_INK, temp0, temp1)194195temp2 = object.starAngle1196temp2 += 168197Cos(temp0, temp2)198Sin(temp1, temp2)199temp0 <<= 11200temp1 <<= 11201temp0 += object.starPos3.x202temp1 += object.starPos3.y203GetTableValue(object.frame, object.starFrame1, Invincibility2_frameTable3)204DrawSpriteFX(object.frame, FX_INK, temp0, temp1)205206temp2 = object.starAngle1207temp2 += 424208Cos(temp0, temp2)209Sin(temp1, temp2)210temp0 <<= 11211temp1 <<= 11212temp0 += object.starPos3.x213temp1 += object.starPos3.y214temp2 = object.starFrame1215temp2 += 5216GetTableValue(object.frame, temp2, Invincibility2_frameTable3)217DrawSpriteFX(object.frame, FX_INK, temp0, temp1)218219Cos(temp0, object.starAngle0)220Sin(temp1, object.starAngle0)221temp0 <<= 11222temp1 <<= 11223temp0 += player[-playerCount].xpos224temp1 += player[-playerCount].ypos225GetTableValue(object.frame, object.starFrame0, Invincibility2_frameTable4)226DrawSpriteFX(object.frame, FX_INK, temp0, temp1)227228temp2 = object.starAngle0229temp2 += 256230Cos(temp0, temp2)231Sin(temp1, temp2)232temp0 <<= 11233temp1 <<= 11234temp0 += player[-playerCount].xpos235temp1 += player[-playerCount].ypos236DrawSpriteFX(object.frame, FX_INK, temp0, temp1)237end event238239240event ObjectStartup241LoadSpriteSheet("Global/Items.gif")242243SpriteFrame(0, 0, 1, 1, 18, 126)244SpriteFrame(0, 0, 1, 1, 19, 126)245SpriteFrame(-1, -1, 3, 3, 18, 125)246SpriteFrame(-2, -2, 5, 5, 18, 129)247SpriteFrame(-3, -3, 7, 7, 18, 135)248SpriteFrame(-4, -4, 9, 9, 18, 143)249SpriteFrame(-7, -7, 15, 15, 18, 153)250SpriteFrame(-15, -15, 31, 31, 18, 169)251end event252253254// ========================255// Editor Events256// ========================257258event RSDKDraw259DrawSprite(0)260end event261262263event RSDKLoad264LoadSpriteSheet("Global/Display.gif")265SpriteFrame(-16, -16, 32, 32, 1, 143)266267SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")268end event269270271