2019-04-08 17:39:55 +00:00
# include "editor.h"
// Explanations by Lady Saavik
const char * CEditor : : Explain ( int Tile , int Layer )
{
switch ( Tile )
{
case TILE_AIR :
return " EMPTY: Can be used as an eraser. " ;
case TILE_SOLID :
if ( Layer = = LAYER_GAME )
return " HOOKABLE: It's possible to hook and collide with it. " ;
break ;
case TILE_DEATH :
if ( Layer = = LAYER_GAME )
return " KILL: Kills the tee. " ;
break ;
case TILE_NOHOOK :
if ( Layer = = LAYER_GAME )
return " UNHOOKABLE: It's not possible to hook it, but can collide with it. " ;
break ;
case TILE_NOLASER :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " LASER BLOCKER: Doesn't let DRAGGIN & SPINNING LASER and PLASMA TURRET reach tees through it. " ;
break ;
2019-04-10 13:48:23 +00:00
case TILE_THROUGH_CUT :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " HOOKTRHOUGH: Shortcut for new hookthrough. " ;
2019-04-10 15:57:56 +00:00
break ;
2019-04-10 13:48:23 +00:00
case TILE_THROUGH_ALL :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " HOOKTRHOUGH: Combined with collision tile is new hookthrough, otherwise stops hooks, from all directions. " ;
2019-04-10 15:57:56 +00:00
break ;
2019-04-10 13:48:23 +00:00
case TILE_THROUGH_DIR :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " HOOKTRHOUGH: Combined with a collision tile is new hookthrough, otherwise stops hook, from one direction. " ;
2019-04-10 15:57:56 +00:00
break ;
2019-04-08 17:39:55 +00:00
case TILE_THROUGH :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " HOOKTHROUGH: Combined with (UN)HOOKABLE tiles, allows to hook through the walls. " ;
break ;
case TILE_JUMP :
if ( Layer = = LAYER_SWITCH )
return " JUMP: Sets defined amount of jumps (default is 2). " ;
break ;
case TILE_FREEZE :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " FREEZE: Freezes tees for 3 seconds. " ;
if ( Layer = = LAYER_SWITCH )
return " FREEZE: Freezes tees for defined amount of seconds. " ;
break ;
case TILE_UNFREEZE :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " UNFREEZE: Unfreezes tees immediately. " ;
break ;
case TILE_TELEINEVIL :
if ( Layer = = LAYER_TELE )
2019-04-09 12:23:37 +00:00
return " RED TELEPORT: After falling into this tile, tees appear on TO with the same number. Speed and hooks are reset. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_DFREEZE :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " DEEP FREEZE: Permanent freeze. Only UNDEEP tile can cancel this effect. " ;
break ;
case TILE_DUNFREEZE :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " UNDEEP: Removes DEEP FREEZE effect. " ;
break ;
case TILE_TELEINWEAPON :
if ( Layer = = LAYER_TELE )
return " WEAPON TELEPORT: Teleports bullets shot into it to TELEPORT TO, where it comes out. Direction, angle and length are kept. " ;
break ;
case TILE_TELEINHOOK :
if ( Layer = = LAYER_TELE )
2019-04-09 12:23:37 +00:00
return " HOOK TELEPORT: Teleports hooks entering into it to TELEPORT TO, where it comes out. Direction, angle and length are kept. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_WALLJUMP :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
2019-04-09 12:23:37 +00:00
return " WALLJUMP: Placed next to a wall. Enables climbing up the wall. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_EHOOK_START :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
2019-04-09 12:23:37 +00:00
return " ENDLESS HOOK: Activates endless hook. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_EHOOK_END :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
2019-04-09 12:23:37 +00:00
return " ENDLESS HOOK OFF: Deactivates endless hook. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_HIT_START :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " HIT OTHERS: You can hit others. " ;
if ( Layer = = LAYER_SWITCH )
2019-04-09 12:23:37 +00:00
return " HIT OTHERS: You can activate hitting others for single weapons, using delay number to select which. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_HIT_END :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " HIT OTHERS: You can't hit others. " ;
if ( Layer = = LAYER_SWITCH )
2019-04-09 12:23:37 +00:00
return " HIT OTHERS: You can deactivate hitting others for single weapons, using delay number to select which. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_SOLO_START :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " SOLO: You are now in a solo part. " ;
break ;
case TILE_SOLO_END : // also TILE_SWITCHTIMEDOPEN
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " SOLO: You are now out of the solo part. " ;
if ( Layer = = LAYER_SWITCH )
2019-04-09 12:23:37 +00:00
return " TIME SWITCH: Activates switch (e.g. closes door) with the same number for a set amount of seconds. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_SWITCHTIMEDCLOSE :
if ( Layer = = LAYER_SWITCH )
2019-04-09 12:23:37 +00:00
return " TIME SWITCH: Deactivates switch (e.g. opens door) with the same number for a set amount of seconds. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_SWITCHOPEN :
if ( Layer = = LAYER_SWITCH )
return " SWITCH: Activates switch (e.g. closes door) with the same number. " ;
break ;
case TILE_SWITCHCLOSE :
if ( Layer = = LAYER_SWITCH )
2019-04-09 12:23:37 +00:00
return " SWITCH: Deactivates switch (e.g. opens door) with the same number. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_TELEIN :
if ( Layer = = LAYER_TELE )
2019-04-09 12:23:37 +00:00
return " BLUE TELEPORT: After falling into this tile, tees appear on TO with the same number. Speed and hook are kept. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_TELEOUT :
if ( Layer = = LAYER_TELE )
2019-04-09 12:23:37 +00:00
return " TELEPORT TO: Destination tile for FROMs, WEAPON & HOOK TELEPORTs with the same numbers. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_BOOST :
if ( Layer = = LAYER_SPEEDUP )
return " SPEEDUP: Gives tee defined speed. Arrow shows direction and angle. " ;
break ;
case TILE_TELECHECK :
if ( Layer = = LAYER_TELE )
return " CHECKPOINT TELEPORT: After having touched this tile, any CFRM will teleport you to CTO with the same number. " ;
break ;
case TILE_TELECHECKOUT :
if ( Layer = = LAYER_TELE )
2019-04-09 12:23:37 +00:00
return " CHECKPOINT TELEPORT TO: Tees will appear here after touching TELEPORT CHECKPOINT with the same number and falling into CFROM TELEPORT. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_TELECHECKIN :
if ( Layer = = LAYER_TELE )
2019-04-09 12:23:37 +00:00
return " BLUE CHECKPOINT TELEPORT: Sends tees to CTO with the same number as the last touched TELEPORT CHECKPOINT. Speed and hook are kept. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_REFILL_JUMPS :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " REFILL JUMPS: Restores all jumps. " ;
break ;
case TILE_BEGIN :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " START: Starts counting your race time. " ;
break ;
case TILE_END :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " FINISH: End of race. " ;
break ;
case TILE_STOP :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " STOPPER: You can hook and shoot through it. You can't go through it against the arrow. " ;
break ;
case TILE_STOPS :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " STOPPER: You can hook and shoot through it. You can't go through it against the arrows. " ;
break ;
case TILE_STOPA :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " STOPPER: You can hook and shoot through it. You can't go through it. " ;
break ;
case TILE_TELECHECKINEVIL :
if ( Layer = = LAYER_TELE )
2019-04-09 12:23:37 +00:00
return " RED CHECKPOINT TELEPORT: Send tees to CTO with the same number as the last touched TELEPORT CHECKPOINT. Speed and hook are reset. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_CP :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " SPEEDER: Causes weapons, SHIELD, HEART and SPINNING LASER to move slowly. " ;
break ;
case TILE_CP_F :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " SPEEDER: Causes weapons, SHIELD, HEART and SPINNING LASER to move quickly. " ;
break ;
case TILE_TUNE1 :
if ( Layer = = LAYER_TUNE )
return " TUNE ZONE: Area where defined tunes work. " ;
break ;
case TILE_OLDLASER :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
2019-04-09 12:23:37 +00:00
return " GLOBAL OLD SHOTGUN: Shotgun drags others always towards the shooter, even after having bounced. Shooter can't hit themselves. Place only one tile somewhere on the map. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_NPC :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
2019-04-09 12:23:37 +00:00
return " GLOBAL COLLISION OFF: Nobody can collide with others. Place only one tile somewhere on the map. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_EHOOK :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
2019-04-09 12:23:37 +00:00
return " GLOBAL ENDLESS HOOK ON: Everyone has endless hook. Place only one tile somewhere on the map. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_NOHIT :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
2019-04-09 12:23:37 +00:00
return " GLOBAL HIT OTHERS OFF: Nobody can hit others. Place only one tile somewhere on the map. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_NPH :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
2019-04-09 12:23:37 +00:00
return " GLOBAL HOOK OTHERS OFF: Nobody can hook others. Place only one tile somewhere on the map. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_UNLOCK_TEAM :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
2019-04-09 12:23:37 +00:00
return " UNLOCK TEAM: Forces team to be unlocked so that team doesn't get killed when one dies. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_PENALTY :
if ( Layer = = LAYER_SWITCH )
return " PENALTY: Adds time to your current race time. Opposite of BONUS. " ;
break ;
case TILE_NPC_END :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
2019-04-09 12:23:37 +00:00
return " COLLISION OFF: You can't collide with others. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_SUPER_END :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
2019-04-09 12:23:37 +00:00
return " SUPER JUMP OFF: You don't have unlimited air jumps. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_JETPACK_END :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
2019-04-09 12:23:37 +00:00
return " JETPACK OFF: You lose your jetpack gun. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_NPH_END :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
2019-04-09 12:23:37 +00:00
return " HOOK OTHERS OFF: You can't hook others. " ;
2019-04-08 17:39:55 +00:00
break ;
case TILE_BONUS :
if ( Layer = = LAYER_SWITCH )
return " BONUS: Subtracts time from your current race time. Opposite of PENALTY. " ;
break ;
case TILE_NPC_START :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " COLLISION: You can collide with others. " ;
break ;
case TILE_SUPER_START :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " SUPER JUMP: You have unlimited air jumps. " ;
break ;
case TILE_JETPACK_START :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " JETPACK: You have a jetpack gun. " ;
break ;
case TILE_NPH_START :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " HOOK OTHERS: You can hook others. " ;
break ;
case TILE_CREDITS_1 :
case TILE_CREDITS_2 :
case TILE_CREDITS_3 :
case TILE_CREDITS_4 :
case TILE_CREDITS_5 :
case TILE_CREDITS_6 :
case TILE_CREDITS_7 :
case TILE_CREDITS_8 :
return " CREDITS: Who designed the entities. " ;
case TILE_ENTITIES_OFF_1 :
case TILE_ENTITIES_OFF_2 :
return " ENTITIES OFF SIGN: Informs people playing with entities about important marks, tips, information or text on the map. " ;
// Entities
case ENTITY_OFFSET + ENTITY_SPAWN :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " SPAWN: Here tees will appear after joining the game or dying somewhere on the map. " ;
break ;
case ENTITY_OFFSET + ENTITY_SPAWN_RED :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
2019-04-09 12:23:37 +00:00
return " SPAWN: Red team members spawn here, same as normal spawn in DDRace. " ;
2019-04-08 17:39:55 +00:00
break ;
case ENTITY_OFFSET + ENTITY_SPAWN_BLUE :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
2019-04-09 12:23:37 +00:00
return " SPAWN: Blue team members spawn here, same as normal spawn in DDRace. " ;
2019-04-08 17:39:55 +00:00
break ;
case ENTITY_OFFSET + ENTITY_FLAGSTAND_RED :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " FLAG: Not used in DDRace. Place where red team flag is. " ;
break ;
case ENTITY_OFFSET + ENTITY_FLAGSTAND_BLUE :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
2019-04-09 12:23:37 +00:00
return " FLAG: Not used in DDRace. Place where blue team flag is. " ;
2019-04-08 17:39:55 +00:00
break ;
case ENTITY_OFFSET + ENTITY_ARMOR_1 :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " SHIELD: Takes all weapons (except hammer and pistol) away. " ;
break ;
case ENTITY_OFFSET + ENTITY_HEALTH_1 :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " HEART: Works like a FREEZE tile. Freezes tees for 3 seconds by default. " ;
break ;
case ENTITY_OFFSET + ENTITY_WEAPON_SHOTGUN :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " SHOTGUN: Drags the tees towards it. Bounces off the walls. " ;
break ;
case ENTITY_OFFSET + ENTITY_WEAPON_GRENADE :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " GRENADE LAUNCHER: Throws exploding bullets. Also known as rocket. " ;
break ;
case ENTITY_OFFSET + ENTITY_POWERUP_NINJA :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " NINJA: Makes you invisible in the darkest nights. " ;
break ;
case ENTITY_OFFSET + ENTITY_WEAPON_RIFLE :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
2019-04-09 12:23:37 +00:00
return " RIFLE: Unfreezes hit tee. Bounces off the walls. Also known as laser. " ;
2019-04-08 17:39:55 +00:00
break ;
case ENTITY_OFFSET + ENTITY_LASER_FAST_CCW :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " SPINNING LASER: Tile where freezing laser (made with LASER LENGTH) begins. Counter-Clockwise, fast. " ;
break ;
case ENTITY_OFFSET + ENTITY_LASER_NORMAL_CCW :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " SPINNING LASER: Tile where freezing laser (made with LASER LENGTH) begins. Counter-Clockwise, medium speed. " ;
break ;
case ENTITY_OFFSET + ENTITY_LASER_SLOW_CCW :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " SPINNING LASER: Tile where freezing laser (made with LASER LENGTH) begins. Counter-Clockwise, slow. " ;
break ;
case ENTITY_OFFSET + ENTITY_LASER_STOP :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " NON-SPINNING LASER: Tile where freezing laser (made with LASER LENGTH) begins. " ;
break ;
case ENTITY_OFFSET + ENTITY_LASER_SLOW_CW :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " SPINNING LASER: Tile where freezing laser (made with LASER LENGTH) begins. Clockwise, slow. " ;
break ;
case ENTITY_OFFSET + ENTITY_LASER_NORMAL_CW :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " SPINNING LASER: Tile where freezing laser (made with LASER LENGTH) begins. Clockwise, medium speed. " ;
break ;
case ENTITY_OFFSET + ENTITY_LASER_FAST_CW :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " SPINNING LASER: Tile where freezing laser (made with LASER LENGTH) begins. Clockwise, fast. " ;
break ;
case ENTITY_OFFSET + ENTITY_LASER_SHORT :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
2019-04-09 12:23:37 +00:00
return " LASER LENGTH: Put next to DOOR or SPINNING LASER, makes it 3 tiles long. " ;
2019-04-08 17:39:55 +00:00
break ;
case ENTITY_OFFSET + ENTITY_LASER_MEDIUM :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
2019-04-09 12:23:37 +00:00
return " LASER LENGTH: Put next to DOOR or SPINNING LASER, makes it 6 tiles long. " ;
2019-04-08 17:39:55 +00:00
break ;
case ENTITY_OFFSET + ENTITY_LASER_LONG :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
2019-04-09 12:23:37 +00:00
return " LASER LENGTH: Put next to DOOR or SPINNING LASER, makes it 9 tiles long. " ;
2019-04-08 17:39:55 +00:00
break ;
case ENTITY_OFFSET + ENTITY_LASER_C_SLOW :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
2019-04-09 12:23:37 +00:00
return " LASER LENGTH CHANGE: Put next to LASER LENGTH, causes it to length and shorten constantly. Works only on (NON-)SPINNING LASER, not on DOOR. Lengthen, slow. " ;
2019-04-08 17:39:55 +00:00
break ;
case ENTITY_OFFSET + ENTITY_LASER_C_NORMAL :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
2019-04-09 12:23:37 +00:00
return " LASER LENGTH CHANGE: Put next to LASER LENGTH, causes it to length and shorten constantly. Works only on (NON-)SPINNING LASER, not on DOOR. Lengthen, medium speed. " ;
2019-04-08 17:39:55 +00:00
break ;
case ENTITY_OFFSET + ENTITY_LASER_C_FAST :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
2019-04-09 12:23:37 +00:00
return " LASER LENGTH CHANGE: Put next to LASER LENGTH, causes it to length and shorten constantly. Works only on (NON-)SPINNING LASER, not on DOOR. Lengthen, fast. " ;
2019-04-08 17:39:55 +00:00
break ;
case ENTITY_OFFSET + ENTITY_LASER_O_SLOW :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
2019-04-09 12:23:37 +00:00
return " LASER LENGTH CHANGE: Put next to LASER LENGTH, causes it to length and shorten constantly. Works only on (NON-)SPINNING LASER, not on DOOR. Shorten, slow. " ;
2019-04-08 17:39:55 +00:00
break ;
case ENTITY_OFFSET + ENTITY_LASER_O_NORMAL :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
2019-04-09 12:23:37 +00:00
return " LASER LENGTH CHANGE: Put next to LASER LENGTH, causes it to length and shorten constantly. Works only on (NON-)SPINNING LASER, not on DOOR. Shorten, medium speed. " ;
2019-04-08 17:39:55 +00:00
break ;
case ENTITY_OFFSET + ENTITY_LASER_O_FAST :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
2019-04-09 12:23:37 +00:00
return " LASER LENGTH CHANGE: Put next to LASER LENGTH, causes it to length and shorten constantly. Works only on (NON-)SPINNING LASER, not on DOOR. Shorten, fast. " ;
2019-04-08 17:39:55 +00:00
break ;
case ENTITY_OFFSET + ENTITY_PLASMAE :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " PLASMA TURRET: Shoots plasma bullets at the closest tee. They explode on an obstactle they hit (wall or tee). " ;
break ;
case ENTITY_OFFSET + ENTITY_PLASMAF :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " PLASMA TURRET: Shoots plasma bullets that work like FREEZE at the closest tee. " ;
break ;
case ENTITY_OFFSET + ENTITY_PLASMA :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " PLASMA TURRET: Shoots plasma bullets that work like FREEZE at the closest tee. They also explode on an obstactly they hit (wall or tee). " ;
break ;
case ENTITY_OFFSET + ENTITY_PLASMAU :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " PLASMA TURRET: Shoots plasma bullets that work like UNFREEZE at the closest tee. " ;
break ;
case ENTITY_OFFSET + ENTITY_CRAZY_SHOTGUN_EX :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " EXPLODING BULLET: Bounces off the walls with explosion. Touching the bullet works like FREEZE tile (freezes for 3 seconds by default). " ;
break ;
case ENTITY_OFFSET + ENTITY_CRAZY_SHOTGUN :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " EXPLODING BULLET: Bounces off the walls without explosion. Touching the bullet works like FREEZE tile (freezes for 3 seconds by default). " ;
break ;
case ENTITY_OFFSET + ENTITY_DRAGGER_WEAK :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " DRAGGING LASER: Grabs and attracts the closest tee to it. Can't reach tees through walls and LASER BLOCKER. Weak. " ;
break ;
case ENTITY_OFFSET + ENTITY_DRAGGER_NORMAL :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " DRAGGING LASER: Grabs and attracts the closest tee to it. Can't reach tees through walls and LASER BLOCKER. Medium strength. " ;
break ;
case ENTITY_OFFSET + ENTITY_DRAGGER_STRONG :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " DRAGGING LASER: Grabs and attracts the closest tee to it. Can't reach tees through walls and LASER BLOCKER. Strong. " ;
break ;
case ENTITY_OFFSET + ENTITY_DRAGGER_WEAK_NW :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " DRAGGING LASER: Grabs and attracts the closest tee to it. Can reach tees through walls but not through LASER BLOCKER. Weak. " ;
break ;
case ENTITY_OFFSET + ENTITY_DRAGGER_NORMAL_NW :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " DRAGGING LASER: Grabs and attracts the closest tee to it. Can reach tees through walls but not through LASER BLOCKER. Medium strength. " ;
break ;
case ENTITY_OFFSET + ENTITY_DRAGGER_STRONG_NW :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " DRAGGING LASER: Grabs and attracts the closest tee to it. Can reach tees through walls but not through LASER BLOCKER. Strong. " ;
break ;
case ENTITY_OFFSET + ENTITY_DOOR :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT | | Layer = = LAYER_SWITCH )
return " DOOR: Combined with LASER LENGTH creates doors. Doesn't allow to go through it (only with NINJA). " ;
break ;
2019-04-08 20:36:47 +00:00
case TILE_TELE_GUN_ENABLE :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
return " TELEGUN: Turn gun on as telegun weapon. " ;
break ;
case TILE_TELE_GUN_DISABLE :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
2019-04-09 12:23:37 +00:00
return " TELEGUN OFF: Turn gun off as telegun weapon. " ;
2019-04-08 20:36:47 +00:00
break ;
case TILE_ALLOW_TELE_GUN :
if ( Layer = = LAYER_FRONT )
return " TELEGUN: Place on top of a collision tile, activates a spot to teleport to, cancels movement. " ;
if ( Layer = = LAYER_SWITCH )
2019-04-09 12:23:37 +00:00
return " TELEGUN: Place on top of a collision tile, activates a spot to teleport to, cancels movement, for single weapons, using delay number to select which. " ;
2019-04-08 20:36:47 +00:00
break ;
case TILE_ALLOW_BLUE_TELE_GUN :
if ( Layer = = LAYER_FRONT )
return " TELEGUN: Place on top of a collision tile, activates a spot to teleport to, preserves movement. " ;
if ( Layer = = LAYER_SWITCH )
2019-04-09 12:23:37 +00:00
return " TELEGUN: Place on top of a collision tile, activates a spot to teleport to, preserves movement, for single weapons, using delay number to select which. " ;
2019-04-08 20:36:47 +00:00
break ;
case TILE_TELE_GRENADE_ENABLE :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
2019-04-09 12:23:37 +00:00
return " TELEGRENADE: Turn grenade on as telegun weapon. " ;
2019-04-08 20:36:47 +00:00
break ;
case TILE_TELE_GRENADE_DISABLE :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
2019-04-09 12:23:37 +00:00
return " TELEGRENADE OFF: Turn grenade off as telegun weapon. " ;
2019-04-08 20:36:47 +00:00
break ;
case TILE_TELE_LASER_ENABLE :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
2019-04-09 12:23:37 +00:00
return " TELELASER: Turn laser on as telegun weapon. " ;
2019-04-08 20:36:47 +00:00
break ;
case TILE_TELE_LASER_DISABLE :
if ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT )
2019-04-09 12:23:37 +00:00
return " TELELASER OFF: Turn laser off as telegun weapon. " ;
2019-04-08 20:36:47 +00:00
break ;
2019-04-08 17:39:55 +00:00
}
if ( Tile > = TILE_CHECKPOINT_FIRST & & Tile < = TILE_CHECKPOINT_LAST & & ( Layer = = LAYER_GAME | | Layer = = LAYER_FRONT ) )
return " TIME CHECKPOINT: Compares your current race time with your record to show you whether you are running faster or slower. " ;
return " " ;
}