Path: blob/master/Sonic 2/Scripts/Enemies/SlicerArm.txt
1483 views
// ----------------------------------1// RSDK Project: Sonic 22// Script Description: Slicer Arm 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.parent1314// States15private alias 0 : SLICERARM_THROWN16private alias 1 : SLICERARM_FALLING1718// Player Aliases19private alias object.xpos : player.xpos202122// ========================23// Events24// ========================2526event ObjectUpdate27object.xpos += object.xvel28object.ypos += object.yvel2930if object.state == SLICERARM_THROWN31temp2 = 0x7FFFFFFF32arrayPos0 = 033foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)34temp0 = player[currentPlayer].xpos35temp0 -= object.xpos36if temp0 < 037FlipSign(temp0)38end if3940if temp0 < temp241temp2 = temp042arrayPos0 = currentPlayer43end if44next4546if object[arrayPos0].xpos < object.xpos47object.xvel -= 0x100048if object.xvel < -0x2000049object.xvel = -0x2000050end if51else52object.xvel += 0x100053if object.xvel > 0x2000054object.xvel = 0x2000055end if56end if5758if object[arrayPos0].ypos < object.ypos59object.yvel -= 0x100060if object.yvel < -0x2000061object.yvel = -0x2000062end if63else64object.yvel += 0x100065if object.yvel > 0x2000066object.yvel = 0x2000067end if68end if6970object.timer++71if object.timer >= 12072object.state++73end if7475arrayPos0 = object.parent76if object[arrayPos0].type != TypeName[Slicer]77object.state++78end if79else80object.yvel += 0x380081end if8283temp0 = screen.xcenter84temp0 += 3285temp1 = screen.ycenter86temp1 += 3287CheckCameraProximity(object.ixpos, object.iypos, temp0, temp1)88if checkResult == false89object.type = TypeName[Blank Object]90end if9192foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)93BoxCollisionTest(C_TOUCH, object.entityPos, -12, -12, 12, 12, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)94if checkResult == true95CallFunction(Player_Hit)96end if97next9899object.frame = object.animationTimer100object.frame >>= 2101object.animationTimer++102object.animationTimer &= 15103end event104105106event ObjectDraw107DrawSpriteFX(object.frame, FX_FLIP, object.xpos, object.ypos)108end event109110111event ObjectStartup112CheckCurrentStageFolder("Zone09")113if checkResult == true114LoadSpriteSheet("MPZ/Objects.gif")115SpriteFrame(0, -16, 16, 16, 75, 51)116SpriteFrame(0, 0, 16, 16, 58, 51)117SpriteFrame(-16, 0, 16, 16, 75, 34)118SpriteFrame(-16, -16, 16, 16, 58, 34)119else120LoadSpriteSheet("MBZ/Objects.gif")121SpriteFrame(0, -16, 16, 16, 926, 306)122SpriteFrame(0, 0, 16, 16, 909, 306)123SpriteFrame(-16, 0, 16, 16, 926, 289)124SpriteFrame(-16, -16, 16, 16, 909, 289)125end if126end event127128129// ========================130// Editor Events131// ========================132133event RSDKDraw134DrawSprite(0)135end event136137138event RSDKLoad139CheckCurrentStageFolder("Zone09")140if checkResult == true141LoadSpriteSheet("MPZ/Objects.gif")142SpriteFrame(0, -16, 16, 16, 75, 51)143else144LoadSpriteSheet("MBZ/Objects.gif")145SpriteFrame(0, -16, 16, 16, 926, 306)146end if147148SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")149end event150151152