Path: blob/master/Sonic 2/Scripts/Enemies/BigTurtloid.txt
1487 views
// ----------------------------------1// RSDK Project: Sonic 22// Script Description: Big Turtloid Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value0 : object.timer12private alias object.value1 : object.child13private alias object.value2 : object.handleFrame1415// States16private alias 0 : BIGTURTLOID_AWAITPLAYER17private alias 1 : BIGTURTLOID_FIREDSHOT18private alias 2 : BIGTURTLOID_IDLE1920// Player Aliases21private alias object.xpos : player.xpos222324// ========================25// Function Declarations26// ========================2728reserve function BigTurtloid_DebugDraw29reserve function BigTurtloid_DebugSpawn3031private function BigTurtloid_DebugDraw32DrawSprite(2)33end function343536private function BigTurtloid_DebugSpawn37CreateTempObject(TypeName[Big Turtloid], 0, object.xpos, object.ypos)38object[tempObjectPos].xvel = 0x800039end function404142// ========================43// Events44// ========================4546event ObjectUpdate47switch object.state48case BIGTURTLOID_AWAITPLAYER49if object.child > 050temp0 = object.xpos51temp0 -= player[0].xpos52Abs(temp0)53if temp0 < 0x80000054#platform: USE_ORIGINS55temp0 = object.xpos56temp0 -= SCZSetup_scrollPos.x57temp0 >>= 1658CheckGreater(temp0, 0)59temp1 = checkResult60CheckLower(temp0, screen.xsize)61temp1 &= checkResult62if temp1 == true63#endplatform64object.xvel = 065arrayPos0 = object.child66object[arrayPos0].frame = 167object.handleFrame = 36869CreateTempObject(TypeName[Turtloid Shot], 0, object.xpos, object.ypos)70object[tempObjectPos].xpos -= 0x12000071object[tempObjectPos].ypos += 0x9000072object[tempObjectPos].xvel = -0x800073PlaySfx(SfxName[Shot], false)74object.state++75#platform: USE_ORIGINS76end if77#endplatform78end if79end if80break8182case BIGTURTLOID_FIREDSHOT83object.timer++84if object.timer == 1685object.timer = 086object.xvel = -0x800087arrayPos0 = object.child88object.handleFrame = 289object.state++90end if91break9293case BIGTURTLOID_IDLE94break9596end switch9798object.xpos += object.xvel99object.xpos += SCZSetup_scrollVelocity.x100object.ypos += SCZSetup_scrollVelocity.y101foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)102BoxCollisionTest(C_PLATFORM, object.entityPos, -24, -15, 24, 0, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)103if checkResult == true104player[currentPlayer].xpos += SCZSetup_scrollVelocity.x105player[currentPlayer].xpos += object.xvel106end if107next108109object.frame = object.animationTimer110object.frame >>= 1111object.animationTimer++112object.animationTimer &= 3113end event114115116event ObjectDraw117DrawSprite(object.handleFrame)118DrawSprite(object.frame)119end event120121122event ObjectStartup123CheckCurrentStageFolder("Zone10")124if checkResult == true125LoadSpriteSheet("SCZ/Objects.gif")126SpriteFrame(28, 6, 16, 8, 186, 90)127SpriteFrame(28, 6, 7, 8, 186, 99)128SpriteFrame(-28, -15, 56, 31, 72, 42)129SpriteFrame(-28, -15, 56, 31, 129, 42)130else131LoadSpriteSheet("MBZ/Objects.gif")132SpriteFrame(28, 6, 16, 8, 186, 90)133SpriteFrame(28, 6, 7, 8, 186, 99)134SpriteFrame(-28, -15, 56, 31, 72, 42)135SpriteFrame(-28, -15, 56, 31, 129, 42)136end if137138foreach (TypeName[Big Turtloid], arrayPos0, ALL_ENTITIES)139temp0 = screen.xsize140temp0 -= 320141temp0 <<= 16142object[arrayPos0].handleFrame = 2143object[arrayPos0].xpos += 0x400000144object[arrayPos0].xpos -= temp0145object[arrayPos0].xvel = -0x8000146arrayPos1 = arrayPos0147arrayPos1++148if object[arrayPos1].type == TypeName[SmallTurtloid]149object[arrayPos0].child = arrayPos1150else151object[arrayPos0].child = 0152end if153next154155SetTableValue(TypeName[Big Turtloid], DebugMode_ObjCount, DebugMode_TypesTable)156SetTableValue(BigTurtloid_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)157SetTableValue(BigTurtloid_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)158DebugMode_ObjCount++159end event160161162// ========================163// Editor Events164// ========================165166event RSDKDraw167DrawSprite(2)168end event169170171event RSDKLoad172CheckCurrentStageFolder("Zone10")173if checkResult == true174LoadSpriteSheet("SCZ/Objects.gif")175SpriteFrame(28, 6, 16, 8, 186, 90)176SpriteFrame(28, 6, 7, 8, 186, 99)177SpriteFrame(-28, -15, 56, 31, 72, 42)178SpriteFrame(-28, -15, 56, 31, 129, 42)179else180LoadSpriteSheet("MBZ/Objects.gif")181SpriteFrame(28, 6, 16, 8, 186, 90)182SpriteFrame(28, 6, 7, 8, 186, 99)183SpriteFrame(-28, -15, 56, 31, 72, 42)184SpriteFrame(-28, -15, 56, 31, 129, 42)185end if186187SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")188end event189190191