Path: blob/main/Scripts/Animals/R8_Sheep.txt
1319 views
//------------------Sonic CD Sheep Script---------------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.YVelocity67// HUD alias8#alias Object[24].PropertyValue : HUD.CurrentTimePeriod910// States11#alias 0 : SHEEP_HOPRIGHT12#alias 1 : SHEEP_HOPLEFT1314// Collision Side Aliases15#alias 0 : CSIDE_FLOOR1617// Time Period Aliases18#alias 2 : TIME_GOOD_FUTURE192021sub ObjectMain22Object.YPos += Object.YVelocity2324// Gravity of around 0.156px25Object.YVelocity += 0x28002627switch Object.State28case SHEEP_HOPRIGHT2930// Advance at a rate of 1px per frame31Object.XPos += 0x100003233// Only check for collision when going down34if Object.YVelocity > 035ObjectTileCollision(CSIDE_FLOOR, 0, 8, 0)3637if CheckResult == true38// Turn around3940Object.Direction = FACING_LEFT4142// Bounce back up with a velocity of 5px per frame43Object.YVelocity = -0x500004445Object.State = SHEEP_HOPLEFT46end if47end if48break4950case SHEEP_HOPLEFT5152// Go left at a rate of 1px per frame53Object.XPos -= 0x100005455// Collision is only to be checked when falling56if Object.YVelocity > 057ObjectTileCollision(CSIDE_FLOOR, 0, 8, 0)5859if CheckResult == true60// Turn around again6162Object.Direction = FACING_RIGHT6364// Initial Y Velocity of 5px upwards again65Object.YVelocity = -0x500006667Object.State = SHEEP_HOPRIGHT68end if69end if70break7172end switch7374end sub757677sub ObjectDraw78if MetalSonic_Destroyed == true79if Object.YVelocity < 080DrawSpriteFX(0, FX_FLIP, Object.XPos, Object.YPos)81else82DrawSpriteFX(1, FX_FLIP, Object.XPos, Object.YPos)83end if84end if8586if HUD.CurrentTimePeriod == TIME_GOOD_FUTURE87if Object.YVelocity < 088DrawSpriteFX(0, FX_FLIP, Object.XPos, Object.YPos)89else90DrawSpriteFX(1, FX_FLIP, Object.XPos, Object.YPos)91end if92end if9394end sub959697sub ObjectStartup98LoadSpriteSheet("R8/Objects2.gif")99100SpriteFrame(-10, -8, 24, 16, 160, 110)101SpriteFrame(-10, -8, 24, 16, 160, 127)102103// Used to be below LoadSpriteSheet, moved here for consistency104// Setup all Sheep in the level105ArrayPos0 = 32106while ArrayPos0 < 1056107if Object[ArrayPos0].Type == TypeName[Sheep]108109// Start the Sheep going upwards at 5px per frame110Object[ArrayPos0].YVelocity = -0x50000111112end if113114ArrayPos0++115loop116117end sub118119120// ========================121// Editor Subs122// ========================123124sub RSDKDraw125DrawSprite(0)126end sub127128129sub RSDKLoad130LoadSpriteSheet("R8/Objects2.gif")131SpriteFrame(-10, -8, 24, 16, 160, 110)132133SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")134end sub135136137