Path: blob/master/Sonic 2/Scripts/CNZ/SlotPrize.txt
1482 views
// ----------------------------------1// RSDK Project: Sonic 22// Script Description: Slot Prize Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value0 : object.originPos.x12private alias object.value1 : object.originPos.y13private alias object.value2 : object.timer1415// States16private alias 0 : SLOTPRIZE_WINNER17private alias 1 : SLOTPRIZE_LOSER1819// Player Aliases20private alias object.value0 : player.rings21private alias object.value16 : player.isSidekick2223// Game Modes24private alias 2 : MODE_TIMEATTACK2526// Music Events27private alias 25 : SLOT_MUSICEVENT_CHANGE2829private alias 2 : MUSICEVENT_TRANSITION303132// ========================33// Static Values34// ========================3536private value SlotPrize_SpikeSfxTimer = 0373839// ========================40// Events41// ========================4243event ObjectUpdate44temp0 = object.xpos45temp0 -= object.originPos.x46temp0 >>= 447object.xpos -= temp04849temp0 = object.ypos50temp0 -= object.originPos.y51temp0 >>= 452object.ypos -= temp05354if object.alpha < 0x10055object.alpha += 0x2056end if5758if object.state == SLOTPRIZE_WINNER59object.frame++60object.frame &= 761end if6263object.timer--64if object.timer == 065foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)66BoxCollisionTest(C_TOUCH, object.entityPos, -16, -16, 16, 16, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)67if player[currentPlayer].isSidekick == true68if object.type != TypeName[Slot Prize]69checkResult = false70end if71end if7273if checkResult == true74if object.state == SLOTPRIZE_WINNER75player[currentPlayer].rings++76if player[currentPlayer].rings > 99977player[currentPlayer].rings = 99978end if7980if player[0].rings >= ringExtraLife81if options.gameMode != MODE_TIMEATTACK82#platform: USE_STANDALONE83player.lives++84#endplatform85#platform: USE_ORIGINS86if game.coinMode == false87player.lives++88else89CallNativeFunction2(NotifyCallback, NOTIFY_ADD_COIN, 1)90end if91#endplatform92PlaySfx(SfxName[Life], false)93PauseMusic()94ResetObjectEntity(SLOT_MUSICEVENT_CHANGE, TypeName[Music Event], MUSICEVENT_TRANSITION, 0, 0)95object[25].priority = PRIORITY_ACTIVE96end if9798ringExtraLife += 10099if ringExtraLife > 300100ringExtraLife = 1000101end if102end if103104if ringPan == 0105PlaySfx(SfxName[Ring L], false)106SetSfxAttributes(SfxName[Ring L], -1, -100)107ringPan = 1108else109PlaySfx(SfxName[Ring R], false)110SetSfxAttributes(SfxName[Ring R], -1, 100)111ringPan = 0112end if113114ResetObjectEntity(object.entityPos, TypeName[Ring Sparkle], 0, object.xpos, object.ypos)115else116if player[currentPlayer].rings > 0117player[currentPlayer].rings--118end if119120if SlotPrize_SpikeSfxTimer == 0121PlaySfx(SfxName[Spike], false)122end if123124SlotPrize_SpikeSfxTimer++125SlotPrize_SpikeSfxTimer %= 3126object.type = TypeName[Blank Object]127end if128else129if object.type == TypeName[Slot Prize]130object.type = TypeName[Blank Object]131end if132end if133next134end if135end event136137138event ObjectDraw139DrawSpriteFX(object.frame, FX_INK, object.xpos, object.ypos)140end event141142143event ObjectStartup144LoadSpriteSheet("CNZ/Objects.gif")145146// 0-7 - Ring frames :D147SpriteFrame(-8, -8, 16, 16, 110, 256)148SpriteFrame(-8, -8, 16, 16, 110, 273)149SpriteFrame(-8, -8, 16, 16, 110, 290)150SpriteFrame(-8, -8, 16, 16, 110, 307)151SpriteFrame(-8, -8, 16, 16, 110, 324)152SpriteFrame(-8, -8, 16, 16, 110, 341)153SpriteFrame(-8, -8, 16, 16, 110, 358)154SpriteFrame(-8, -8, 16, 16, 110, 375)155156// 8 - Spike ball frame D:157SpriteFrame(-8, -8, 15, 15, 226, 34)158159SlotPrize_SpikeSfxTimer = 0160end event161162163// ========================164// Editor Events165// ========================166167event RSDKDraw168DrawSprite(0)169end event170171172event RSDKLoad173LoadSpriteSheet("CNZ/Objects.gif")174SpriteFrame(-8, -8, 16, 16, 110, 256)175176SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")177end event178179180