#ifndef __SYS__INHUME
#define __SYS__INHUME
// many things in the AM guild use this file directly after
// <morpork.h>, which #defines LOG.
#ifdef LOG
#undef LOG
#endif
#undef DEBUG // Define to start logging skills info to LOGFILE. undefine for normal use.
// #define NOKILL  // For testing purposes -- noone will attack or die if this is defined
#define INHUME "/obj/handlers/secure_handlers/inhume"
#define NO_INHUME_PROP  "cannot inhume"
#define NO_CONTRACT_PROP "cannot place contracts"
// These defines are for the inhume handler...
#define LOGDIR          "/log/secure/assassins/"
#define LOG             ( LOGDIR + "INHUME" )
#define INHUMED         ( LOGDIR + "INHUMED" )
#define RECEIPTS        ( LOGDIR + "INHUME_RECEIPTS" )
#define LOGFILE         ( LOGDIR + "inhume_debug" )
#define PLAY_LOG        ( LOGDIR + "play_inhume_debug" )
#define TM_LOG          ( LOGDIR + "INHUME_TMS" )
#define NPC_LOG         ( LOGDIR + "NPC_CONTRACTS" )
/**
 * This class keeps track of all the contract details.
 * @member status Requested, Validated, Informed, Active, or Special
 * @member bastard The name of the person who requested/paid for it
 * @member value Cost of the contract, in money units (4 units = 1 AM pence)
 * @member time Time progress was last made
 * @member reveal Whether or not the requestor wants their identity revealed
 * @member message Message if any to be passed on to the victim
 * @member name String to be displayed on the receipt as the requestor's name
 * @member place Office where the contract was requested.
 * @member nodeath 1 if no life will be lost when the contract is closed,
 *   0 otherwise. (0 is normal)
 * @member originator The person who originally requested the contract,
 *   if different from the current bastard.
 */
//Size of contract class without location
#define CONTRACT_NO_LOCATION 10 
class contract {
   int status;
   string bastard;
   int value;
   int time;
   int reveal;
   string message;
   string name;
   string place;    //This is for money.
   int nodeath;
   string originator;
   string location; //This is for location!
} /* class contract */
#define EXP_TIME   2419200       // 28 days
#define TAXES      40            // how much they steal in taxes
#define SURCHARGE  10            // service charge for timed-out contracts
#define NOTME_MULT 1.1           // How much extra if you pay for a
                                 // contract someone else requested.
#define MIN_LEVEL  50            // minimum level for a contract
#define PK_MULT    0             // how much extra nonPKs cost
                                 // 0 indicates disallowed
#define COST_MULT  ( 5 * 400 )   // how much per level 400 = 1$AM
#define COST_GUILD ( 6 * 400 )   // Premium rate for contracts on
                                 // guild members.
#define MAXTIMES 4               // how many times can you inhume
                                 // an NPC.
#define NO_DEATH_MULT 0.5        // How much less you pay for a contract
                                 // that doesn't cause the victim to lose
                                 // a life.
/* failure values when validating contracts */
#define LOW          -1
#define NON_KILLER   -2
#define CRE          -3
#define TOO_SOON     -4
/* status values for contracts */
#define REQUESTED 0
#define VALIDATED 1
#define INFORMED 2
#define ACTIVE 3
#define SPECIAL 4
/* type defines for collect classes */
#define INHUME_COLLECT_NONE   0
#define INHUME_COLLECT_REFUND 1
#define INHUME_COLLECT_WAGES  2
#define INHUME_COLLECT_MIXED  3
/* defines for checking whether an assassin can handle PK contracts */
#define INHUME_PK_THRESH_GUILD_LEVEL   175
#define INHUME_PK_THRESH_NUM_CONTRACTS 4
#define INHUME_PK_THRESH_AGE_DAYS      10
/* Rate at which a given player can be inhumed. */
#define REPEAT_RATE ( 60 * 60 * 24 * 7 * 2 ) // 2 weeks
/* Time before an npc will start working on a player contract */
#define NPC_TIME ( 60 * 60 * 24 * 7 * 2 ) // 2 weeks
/* Number of crimes a player has to commit before they become
   inhume-on-sight on Guild grounds */
#define INHUME_ON_SIGHT_THRESH 10
/* How long it takes crime-free to have your crime count drop by one */
#define INHUME_CRIME_EXPIRY_TIME ( 60 * 60 * 24 * 3 )
/* How long you have to wait before another contract can pop up on this NPC */
#define INHUME_NPC_WAIT_TIME ( 60 * 60 * 12 )
#endif /* __SYS__INHUME */