class ObjectType:
    # layout
    STARTFLAG = 5
    FINISHWARP = 6
    SAVEPOINT = 3

    # blocks + platforms
    BLOCK = 1
    MINIBLOCK = 24
    PLATFORM = 22
    ONEWAYWALL = 44

    # killers
    SPIKE = 0
    MINISPIKE = 7
    CHERRY = 2
    SHURIKEN = 71
    SABER = 98
    LASER = 83
    KILLERBLOCK = 96
    BARRAGEBULLET = 120
    WALKERJR = 102
    JUMPPHANTOM = 125

    # common
    SPINNER = 18
    CANNON = 28
    CANNONBALL = 78
    WATERNONREFRESHING = 20
    WATERREFRESHING = 21
    PLAYERTRIGGER = 8
    OBJECTACTIVATOR = 90
    BUTTON = 72
    TARGET = 124
    JUMPREFRESHER = 23
    CONVEYOR = 25
    SPRING = 48
    COIN = 51
    COINBLOCK = 52
    BLUECOIN = 108
    BLUECOINBLOCK = 109
    CRUSHER = 73
    BULLETREFLECTOR = 79
    TELEPORTERENTRANCE = 94
    TELEPORTEREXIT = 95
    PUSHBLOCK = 101
    BURSTBLOCK = 126

    # power-ups
    TELEKIDACTIVATE = 35
    TELEKIDDEACTIVATE = 36
    TELEPORTACTIVATE = 45
    TELEPORTDEACTIVATE = 46
    TELEPORTREFRESHER = 47
    SWORDACTIVATE = 92
    SWORDDEACTIVATE = 93
    SINGLEJUMP = 39
    DOUBLEJUMP = 38
    TRIPLEJUMP = 37
    PARACHUTE = 99
    PARACHUTEREMOVER = 104
    SMALLKID = 107
    NORMALKID = 106
    BIGKID = 105
    BUBBLEACTIVATE = 121
    BUBBLEDEACTIVATE = 122
    SHIELD = 100

    # gravity + speed
    GRAVITYDOWN = 27
    GRAVITYUP = 26
    LOWGRAVITYFIELD = 42
    HIGHGRAVITYFIELD = 43
    LOWSPEEDFIELD = 40
    HIGHSPEEDFIELD = 41
    ACCELERATIONFIELD = 84

    # vines
    VINERIGHT = 53
    VINELEFT = 62
    VINEPINKRIGHT = 59
    VINEPINKLEFT = 68
    VINECYANRIGHT = 60
    VINECYANLEFT = 69
    VINESTICKYRIGHT = 57
    VINESTICKYLEFT = 66
    VINESLIPPERYRIGHT = 55
    VINESLIPPERYLEFT = 64
    VINELOWGRAVITYRIGHT = 58
    VINELOWGRAVITYLEFT = 67
    VINESPEEDRIGHT = 61
    VINESPEEDLEFT = 70
    VINECONVEYORRIGHT = 81
    VINECONVEYORLEFT = 82

    # props
    BACKGROUNDTILE = 74
    ARROWINDICATOR = 49
    GUNSWORDINDICATOR = 50
    CAUTIONSIGN = 86
    TEXTSIGN = 87
    FORBIDDENTREE = 85
    LIGHTPOST = 110
    CRUSHERSTATUE = 111
    MUSHROOM = 112
    HEART = 113
    FLOWERS = 114
    SPARKLE = 115
    TORCH = 116
    CAMPFIRE = 117
    LIGHT = 123
    COUCH = 119
    PATSBALL = 91
    EFFECTTRIGGER = 88
    EFFECTREMOVER = 89

    # unused
    REDPATHARROW = 29
    REDPATHSTOP = 30
    REDPATHTRIGGER = 75
    BLUEPATHARROW = 31
    BLUEPATHSTOP = 32
    BLUEPATHTRIGGER = 76
    GREENPATHARROW = 33
    GREENPATHSTOP = 34
    GREENPATHTRIGGER = 77
    VINERISINGRIGHT = 54
    VINERISINGLEFT = 63
    VINEGRAVITYFLIPRIGHT = 56
    VINEGRAVITYFLIPLEFT = 65
    BEAM = 103
    HOODEDSTATUE = 118

class EventType:
    # timing
    ONCREATE = 1
    ONMETRONOMETICK = 17
    ONTIMER = 2

    # weapons
    WHENSHOT = 15
    WHENHITBYSWORD = 22

    # player actions
    ONPLAYERJUMP = 13
    ONPLAYERSHOOT = 14
    LEFTRIGHTKEYS = 24
    UPDOWNKEYS = 28
    ONVINEJUMP = 20
    ONCANNONBALLBOUNCE = 23
    SPRUNG = 21
    ONCOINSCOLLECTED = 18
    ONACOINCOLLECTED = 26
    ONBLUECOINSCOLLECTED = 27
    ONSHIELDLOSS = 29

    # triggers + activators
    ONTRIGGER = 16
    TOUCHACTIVATOR = 19
    ONOBJECTCOLLISION = 25
    TOUCHEDEXPLOSION = 30

class ActionType:
    # destroy + collisions
    DESTROY = 103
    TOGGLECOLLISIONS = 107

    # movement
    STARTMOVING = 101
    MOVESETDISTANCE = 105
    FOLLOWPATH = 116
    MOVETOPOSITION = 122
    MOVETOPLAYER = 123
    FOLLOWPLAYERAXIS = 120
    STOPMOVING = 106

    # advanced movement
    SETSPEEDONLY = 124
    SETANGLEONLY = 125
    SETACCELERATION = 113

    # audio + visual
    PLAYSOUND = 104
    PLAYMUSIC = 119
    SETMUSICPITCH = 118
    CAMERAFOLLOW = 117
    ACTIVATEEFFECT = 130
    REMOVEEFFECTS = 131

    # timers
    SETTIMER = 102
    STOPTIMER = 114

    # triggers
    ACTIVATETRIGGER = 110

    # random
    SETRANDOMSPEED = 134
    SETRANDOMANGLE = 133

    # object-specific
    ROTATE90DEGREES = 115
    SETCHERRYCOLOR = 126
    TOGGLEBOUNCE = 137
    SETROTATION = 132
    SETROTATESPEED = 111
    SETRANDOMROTATION = 136
    SETBARRAGEBULLETCOLOR = 127
    SETWALKERWALKSPEED = 128
    RADIUSSHIFTSPEED = 121
    FIRECANNON = 109
    TOGGLECANNONTRACKING = 129
    FIRERANDOMSLOT = 135
    SETCONVEYORSPEED = 112
    ACTIVATEBURSTBLOCK = 138

    # unused
    SETPATHCOLOR = 108