home · contact · privacy
Server: Execute THINGS_HERE command only on existing worlds.
[plomrogue] / SERVER_COMMANDS
index e31d3312e81fcc6cfc410b5ce5a0de662b90c8c8..de6ad7be1a2b75d2b268ef9f90a02b049d9db3c4 100644 (file)
@@ -14,8 +14,10 @@ In any case, from then on, further commands are read in from ./server/in. New
 commands must be appended to the file – which is what the client does. All
 commands from ./server/in except meta commands are also written to ./record.
 
-At the end of each turn, ./savefile is written – with a list of all god commands
-necessary to recreate the current world state.
+Every fifteen seconds, if any turns have passed, ./savefile is written – with a
+list of all god commands necessary to recreate the current world state. On each
+world state change, ./server/worldstate is updated and a message "WORLD_UPDATED"
+written to ./server/out.
 
 Replay mode
 -----------
@@ -51,9 +53,17 @@ Write "PONG" line to ./server/out file.
 QUIT
 Shut down server.
 
+THINGS_HERE [0 to 255] [0 to 255]
+If world exists, write line-by-line list of things at y position of first
+argument, x position of second argument of map into ./server/out file, enclosed
+by two lines "THINGS_HERE START" and "THINGS_HERE END".
+
 Player commands
 ---------------
 
+ai
+Do what the AI would do.
+
 wait
 Make player character wait one turn.
 
@@ -92,7 +102,8 @@ MAKE_WORLD [0 to 4294967296]
 Set map seed and randomness seed to argument. Remove all things. (Re-)generate
 map. Add to map things specified in thing types table in quantity defined there
 by START_NUMBER command, with first thing (of thing ID of 0) of type defined as
-player type by PLAYER_TYPE command. Set world turn to 1. Activate world.
+player type by PLAYER_TYPE command. Set world turn to 1. Activate world. Answer
+with 'NEW_WORLD' message in ./server/out file.
 
 MAP_LENGTH [1 to 256]
 Deactivate world. Remove ./server/worldstate file. Remove all things. Remove
@@ -123,7 +134,7 @@ T_ID [-32768 to 32767]
 Select thing to manipulate by argument as ID. If argument is <0 or >255, change
 it to the lowest unused thing ID. If thing of ID does not exist yet, create it
 with default position of y=0/x=0, the first thing type's ID, and that type's
-lifepoints value. If world is active and the thing is animate, build its field
+lifepoints value; if world is active and the thing is animate, build its field
 of view.
 
 T_TYPE [0 to 255]
@@ -161,6 +172,10 @@ T_MEMMAP [0 to 255] [string]
 Set part of selected thing's memory of the game map to string argument: the line
 of the argument's number.
 
+T_MEMTHING [0 to 255] [0 to 255] [0 to 255]
+Add to selected thing's memory of things on map thing of ID of first argument,
+y position of second argument and x position of third argument.
+
 TT_ID [-32768 to 32767]
 Select thing type to manipulate by argument as ID. If argument is <0 or <255,
 change it to the lowest unused thing type ID. If thing type of ID does not exist
@@ -190,3 +205,9 @@ game log and the inventory.
 TT_CORPSE_ID [0-255]
 Set to argument the ID of the thing type that things of the selected type
 transform into when their state changes from animate to inanimate.
+
+TT_PROLIFERATE [0-255]
+If non-zero, there is a chance of 1 divided by the given value each turn for any
+thing of the selected type to emit an offspring to a random neighbor cell if one
+is available that is passable and not inhabited by a thing of the same same type
+or, if the proliferating thing is animate, any other animate thing.