------------------------------------------------
 FatFish: the fishing simulation door game.
------------------------------------------------
FatFish is a fishing simulation door game for Synchronet BBS systems.

Please see README.txt.

------------
Requirements
------------
- FatFish relies on the following libraries from mcmlxxix:
	- exec/load/event-timer.js
	- exec/load/frame.js
	- exec/load/mapgenerator.js
	- exec/load/json-client.js
  You can grab these from the Synchronet git repository.

-------------------
Supported Platforms
-------------------
Any platform that supports Synchronet and spidermonkey should be able to run FatFish.

FatFish has been tested on:

- Windows Server 2008 (x86).
- Arch Linux (ARM - Raspberry Pi).
- Ubuntu Linux (x64).

------------
Installation
------------
1. Included with Sychronet. If you don't have them, they can be found on gitlab.synchro.net, the official Synchronet repository.

2. Configure the door in SCFG, if not already done:
	╔[■][?]════════════════════════════════════════════════════╗
	║                         Fat Fish                         ║
	╠══════════════════════════════════════════════════════════╣
	║ │Name                       Fat Fish                     ║ <-- avast!
	║ │Internal Code              FATFISH                      ║ <-- avast!
	║ │Start-up Directory         /sbbs/xtrn/fatfish           ║ <-- avast!
	║ │Command Line               *../xtrn/fatfish/fatfish.js  ║ <-- avast!
	║ │Clean-up Command Line                                   ║
	║ │Execution Cost             None                         ║
	║ │Access Requirements                                     ║ <-- avast?
	║ │Execution Requirements                                  ║
	║ │Multiple Concurrent Users  Yes                          ║ <-- avast!
	║ │Intercept I/O              No                           ║
	║ │Native Executable          No                           ║
	║ │Use Shell to Execute       No                           ║
	║ │Modify User Data           No                           ║
	║ │Execute on Event           No                           ║
	║ │Pause After Execution      No                           ║
	║ │BBS Drop File Type         None                         ║
	║ │Place Drop File In         Node Directory               ║
	╚══════════════════════════════════════════════════════════╝

3. Enable InterBBS connection with the global server, if desired (recommended):

     Edit fatfish.js to modify the lines, thusly:

       var USING_JSON = true;
       var USING_GLOBAL_SERVER = true;

     If you want to use another InterBBS scores server or host your own, see the hosting section below.

------------
Instructions
------------
Please see the README.txt document for in-game instructions.

------------------------
Hosting the JSON Service
------------------------
FatFish can send and retrieve InterBBS data from the global server.  If you want to use another server, skip to step 5.

If you want to host your own JSON service, follow these steps:

1. Your BBS should be configured with the JSON service. In your ctrl/services.ini, ensure this is enabled:
	[JSON]
	Port=10088
	Options=STATIC | LOOP | NO_RECYCLE
	Command=json-service.js

2. Edit ctrl/json-service.ini, adding:
	[fatfish]
	dir=../xtrn/fatfish/
   Note that if you changed the installation path, this line must be similarly changed.

3. Restart the Synchronet Services service.

4. Edit fatfish.js to modify the lines, thusly:

       var USING_JSON = true;
       var USING_GLOBAL_SERVER = false;

5. Edit "server.ini" in the FatFish path to tweak your settings, if you wish to use another InterBBS server other than localhost. You can set "host" and "port" values in this INI file.

---------------
Troubleshooting
---------------

Black areas on screen:
----------------------
FatFish uses some smoothing routines to make things look awesome. Unfortunately, this causes issues on some BBSes, resembling this screenshot:
  http://art.poorcoding.com/fatfish/smoothing-issue.png

In order to fix this, we must disable smoothing. Edit 'fatfish.js' and modify the RENDER_MODE to 0:

/* Default: 1.
     Set to 0 if you see black lines render on the map.
	 We will fallback to an uglier, safer render method. :|
	 */
var RENDER_MODE = 0;