Path: blob/main/Scripts/R6/EggmanStatue.txt
1319 views
//---------------Sonic CD Eggman Statue Script----------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.Timer67// Statue Bomb Aliases8#alias Object.XPos : Bomb.XPos9#alias Object.YPos : Bomb.YPos10#alias Object.Value2 : Bomb.YLandingPos1112// States13#alias 0 : EGGMANSTATUE_INACTIVE14#alias 1 : EGGMANSTATUE_DESTROYED15#alias 2 : EGGMANSTATUE_BOMB_DROP1617// Global SFX18#alias 22 : SFX_G_EXPLOSION1920// Function declarations21#function EggmanStatue_HandleBombDrop222324function EggmanStatue_HandleBombDrop25TempValue2 = Object.YPos26TempValue2 += 0x26000027CreateTempObject(TypeName[Statue Bomb], 0, Object.XPos, Object.YPos)28Bomb[TempObjectPos].XPos -= 0x18000029Bomb[TempObjectPos].YPos -= 0xE0000030Bomb[TempObjectPos].YLandingPos = TempValue23132CreateTempObject(TypeName[Statue Bomb], 0, Object.XPos, Object.YPos)33Bomb[TempObjectPos].XPos -= 0x8000034Bomb[TempObjectPos].YPos -= 0x60000035Bomb[TempObjectPos].YLandingPos = TempValue23637CreateTempObject(TypeName[Statue Bomb], 0, Object.XPos, Object.YPos)38Bomb[TempObjectPos].XPos += 0x8000039Bomb[TempObjectPos].YPos -= 0xA0000040Bomb[TempObjectPos].YLandingPos = TempValue24142CreateTempObject(TypeName[Statue Bomb], 0, Object.XPos, Object.YPos)43Bomb[TempObjectPos].XPos += 0x18000044Bomb[TempObjectPos].YPos -= 0x120000045Bomb[TempObjectPos].YLandingPos = TempValue24647CreateTempObject(TypeName[Statue Bomb], 0, Object.XPos, Object.YPos)48Bomb[TempObjectPos].XPos += 0x28000049Bomb[TempObjectPos].YPos -= 0x120000050Bomb[TempObjectPos].YLandingPos = TempValue25152CreateTempObject(TypeName[Statue Bomb], 0, Object.XPos, Object.YPos)53Bomb[TempObjectPos].XPos += 0x38000054Bomb[TempObjectPos].YPos -= 0x60000055Bomb[TempObjectPos].YLandingPos = TempValue25657CreateTempObject(TypeName[Statue Bomb], 0, Object.XPos, Object.YPos)58Bomb[TempObjectPos].XPos += 0x48000059Bomb[TempObjectPos].YPos -= 0x60000060Bomb[TempObjectPos].YLandingPos = TempValue26162CreateTempObject(TypeName[Statue Bomb], 0, Object.XPos, Object.YPos)63Bomb[TempObjectPos].XPos += 0x58000064Bomb[TempObjectPos].YPos -= 0x120000065Bomb[TempObjectPos].YLandingPos = TempValue26667CreateTempObject(TypeName[Statue Bomb], 0, Object.XPos, Object.YPos)68Bomb[TempObjectPos].XPos += 0x68000069Bomb[TempObjectPos].YPos -= 0x60000070Bomb[TempObjectPos].YLandingPos = TempValue27172CreateTempObject(TypeName[Statue Bomb], 0, Object.XPos, Object.YPos)73Bomb[TempObjectPos].XPos += 0x78000074Bomb[TempObjectPos].YPos -= 0xE0000075Bomb[TempObjectPos].YLandingPos = TempValue276end function777879sub ObjectMain80switch Object.State81case EGGMANSTATUE_DESTROYED82TempValue0 = Object.Timer83TempValue0 &= 384if TempValue0 == 085Rand(TempValue0, 32)86TempValue0 -= 1687TempValue0 <<= 1688TempValue0 += Object.XPos8990Rand(TempValue1, 48)91TempValue1 -= 2492TempValue1 <<= 1693TempValue1 += Object.YPos9495CreateTempObject(TypeName[Explosion], 0, TempValue0, TempValue1)96PlaySfx(SFX_G_EXPLOSION, false)97end if9899Object.Timer++100if Object.Timer == 40101Object.Timer = 0102Object.State++103end if104break105106case EGGMANSTATUE_BOMB_DROP107Object.Timer++108if Object.Timer == 60109Object.Timer = 0110CallFunction(EggmanStatue_HandleBombDrop)111Object.Type = TypeName[Blank Object]112end if113break114115end switch116end sub117118119sub ObjectPlayerInteraction120if Object.State == EGGMANSTATUE_INACTIVE121CheckEqual(Player.Animation, ANI_JUMPING)122TempValue0 = CheckResult123#platform: Use_Origins124CheckEqual(Player.Animation, ANI_GLIDING)125TempValue0 |= CheckResult126if Stage.PlayerListPos == PLAYER_AMY127if Player.Animation == ANI_HAMMER_JUMP128TempValue0 = true129end if130if Player.Animation == ANI_HAMMER_DASH131TempValue0 = true132end if133end if134#endplatform135if TempValue0 == true136137#platform: Use_Origins138PlayerObjectCollision(C_ENEMY, -16, -24, 16, 24)139if CheckResult == true140if Stage.PlayerListPos == PLAYER_AMY141game.callbackParam0 = 1142game.callbackParam1 = 3143EngineCallback(NOTIFY_STATS_BREAK_OBJECT)144end if145if Stage.PlayerListPos == PLAYER_KNUCKLES146game.callbackParam0 = 1147game.callbackParam1 = 2148EngineCallback(NOTIFY_STATS_BREAK_OBJECT)149end if150Object.State = EGGMANSTATUE_DESTROYED151end if152#endplatform153154#platform: Use_Standalone155PlayerObjectCollision(C_TOUCH, -16, -24, 16, 24)156if CheckResult == true157Object.State = EGGMANSTATUE_DESTROYED158end if159#endplatform160end if161end if162end sub163164165sub ObjectDraw166if Object.State < EGGMANSTATUE_BOMB_DROP167DrawSprite(0)168end if169end sub170171172sub ObjectStartup173LoadSpriteSheet("R6/Objects3.gif")174175SpriteFrame(-20, -28, 40, 56, 81, 181) // #0 - Eggman Statue176end sub177178179// ========================180// Editor Subs181// ========================182183sub RSDKDraw184DrawSprite(0)185end sub186187188sub RSDKLoad189LoadSpriteSheet("R6/Objects3.gif")190191SpriteFrame(-20, -28, 40, 56, 81, 181) // #0 - Eggman Statue192193SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")194end sub195196197