/**
* This is the standard object for the player-shop manager handbooks
* as used by Tarnach's in Sator Square.
*
* No actions are necessary for these handbooks, as they are
* automatically loaded, set up and used by the managers' office.
*
* @author Ringo
* @started 1st August 1999
*/
#include "player_shop.h"
inherit BOOK_OBJ;
private string _office;
void setup() {
set_name( "book" );
add_alias( "handbook" );
set_short( "manager handbook");
set_main_plural( "manager handbooks" );
add_adjective( "manager" );
set_weight( 5 );
set_value( 5 );
set_no_pages( 11 );
add_property( "no recycling", 1 );
}
/* setup() */
/** @ignore yes */
void set_office( string office ) {
_office = office;
if ( !query_property( "office" ) ) {
add_property( "office", office );
}
set_long( "This is a handbook for Managers of "+ office->query_shop_name()+
", "+ office->query_place()+ ". It covers those aspects of "
"the managers' job not covered by the staff handbook.\n"
"You may <read book>, <open book to page #> and "
"<turn a page of book>.\n" );
set_open_page( 1 );
set_read_mess( "\n"
" TABLE OF CONTENTS Page 1\n"
" .o0o.o0o.o0o.o0o.o0o.o0o.o0o.o0o.\n\n"
" Introduction............................................2\n"
" The job.................................................3\n"
" The way things work.....................................4\n"
" Specific commands.......................................5-7\n"
" Hiring new employees....................................8-9\n"
" Disciplinary procedures.................................10-11\n",
"common", 100 );
set_open_page( 2 );
set_read_mess( "\n"
" Introduction Page 2\n"
" -=-=-=-=-==-=-=-=-=-\n\n"
" This handbook has been written specifically for managers to detail\n"
" the manager's role in the shop. You will find details of commands\n"
" specific to managers, and a more detailed explanation of the workings\n"
" of the shop. This book is to be treated as a confidential document,\n"
" and its contents only to be discussed with other managers.\n",
"common", 100 );
set_open_page( 3 );
set_read_mess( "\n"
" The Job Page 3\n"
" -=-=-=-=-=-\n\n"
" It is the responsibility of managers to ensure the smooth operation\n"
" of the shop. This includes staff motivation, advertising, pay and\n"
" staffing levels, accounts, discipline and personnel.\n"
" Motivation and advertisements are left to the judgement of managers,\n"
" whilst the personnel issues should follow strict guidelines detailed\n"
" later.\n\n"
" As you should be aware, since you now hold the highest position in the\n"
" store, there is nothing to work towards regarding your promotion. You\n"
" are paid at a higher rate, however, so there are still benefits to be\n"
" obtained from carrying out the more 'mundane' tasks within the shop.\n\n"
" Finally, managers are allowed to \"retire\" and continue in an advisory\n"
" capacity. Whilst having very limited functional control over the\n"
" shop, retired managers are still able to keep their badge, and use\n"
" the notice board and \"memo\" facility.\n",
"common", 100 );
set_open_page( 4 );
set_read_mess( "\n"
" The way things work Page 4\n"
" -=-=-=-=-=-=-=-=-=-=-=-\n\n"
" On being hired, employees are paid according to the amount of work\n"
" they do. Along with their pay, they accumulate points towards\n"
" promotion in the shop. The pay and points depend on the amount of\n"
" work done, and not on the amount of time spent in the shop. Precisely,\n"
" employees receive a set amount per transaction, with a maximum of one\n"
" paid transaction every minute.\n"
" Each employee's status is reviewed every 3 DW days, their points added,\n"
" and their pay awarded. This pay is transferred into their bank account\n"
" every month, and a written confirmation of the amount is sent.\n"
" Employees are paid according to their status. This is done in a ratio\n"
" of 2:3:4 so that managers will be paid twice as much as employees, with\n"
" supervisors halfway in between. The bonuses are calculated in the same\n"
" way.\n",
"common", 100 );
set_open_page( 5 );
set_read_mess( "\n"
" Specific commands Page 5\n"
" -=-=-=-=-=-=-=-=-=-=-=-\n\n"
" There are a number of additional commands once promotion to manager\n"
" is gained. The majority of these are either self-explanatory, and\n"
" so will only be covered briefly. The remainder merit an explanation.\n\n"
" accounts - Check the current value of the accounts\n"
" list - As in the main office, with the addition of baddies & applicants\n"
" mail - Yes, you now have access to your mail from the managers' office\n"
" memo - Send a memo to the other managers of the shop\n"
" retire - The alternative to resignation\n"
" view - View a person's record with this shop. This is extremely useful\n"
" when deciding on disciplinary matters, or before hiring applicants\n"
" query - Check the current settings for maximum number of employees and\n"
" pay rates\n"
" project - Gives a projection of the months' pay packet based on the\n"
" employees' activity so far, and also the projected bonus amounts\n"
" based on the current value of the bonus fund. Useful when setting\n"
" these values\n"
" transfer - Transfer money between two accounts (Continued...)\n",
"common", 100 );
set_open_page( 6 );
set_read_mess( "\n"
" Page 6\n\n"
" set - This command sets the maximum number of employees (speaks for\n"
" itself), or the base pay rate. The base pay rate is the amount\n"
" that each employee will receive per transaction. This rate is\n"
" then adjusted accordingly for supervisors and managers.\n"
" Changing this amount will not affect transactions already made\n"
" by employees, but will affect all subsequent transactions.\n"
" buy/sell - These commands are used to buy and sell storeroom cabinets.\n"
" Cabinets are sold for 50% of the buying price, so make sure\n"
" you really do want a cabinet before buying it as they can be\n"
" expensive.\n"
" (un)ban - These commands are used to ban or unban a person from the shop.\n"
" A person can be banned automatically, and will also be unbanned\n"
" automatically after 28 days. If, however, you wish to unban\n"
" someone sooner, you may do so with this command.\n"
" vote - Allows you to vote for, against, or abstain on an applicant. This\n"
" will be your only chance to vote on this applicant, so make sure it\n"
" is the right decision.\n"
" check - Allows you to check your current votes (Continued...)\n",
"common", 100 );
set_open_page( 7 );
set_read_mess( "\n"
" Page 7\n\n"
" leave - Allows you to place an employee on leave for up to 14 days\n"
" commend - Allows you to commend an outstanding employee. This will\n"
" place an entry in their employment record, and award them\n"
" extra promotion points.\n"
" warn - Officially reprimand an employee. Will place an entry in their\n"
" record, and deduct promotion points.\n"
" suspend - Suspend an employee's bonus entitlement for a specified\n"
" number of months following the current month.\n"
" demote - Demote a supervisor to employee. Will start them off as if\n"
" they were a new employee, but with their employment record\n"
" reflecting their history.\n"
" fire - Terminate someone's employment with this shop.\n",
"common", 100 );
set_open_page( 8 );
set_read_mess( "\n"
" Hiring new employees Page 8\n"
" -=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n"
" This is a brief description of the process involved in hiring a\n"
" new employee.\n\n"
" 1) Prospective employees \"apply\" in the shop and a mail is sent\n"
" to each manager with the employee's application.\n"
" 2) Managers check the list in the office which will show applicants\n"
" waiting for employment, applicants yet to confirm their offer,\n"
" and new applicants yet to be voted upon (with votes so far).\n"
" 3) Managers \"vote\" on each prospective employee. Only one vote\n"
" per employee per manager is allowed, and the first vote counts.\n"
" 4) As soon as the number of votes for employment equals 50% of the\n"
" current manager base, the candidate is accepted. If votes against\n"
" exceeds 50%, the candidate is rejected.\n"
" 5) If 50% hasn't been reached after 7 days, then the candidate is\n"
" hired/rejected on the basis of votes received so far. (Continued...)\n",
"common", 100 );
set_open_page( 9 );
set_read_mess( "\n"
" Page 9\n\n"
" 6) The approved candidate has 7 days from being accepted to confirm\n"
" their offer, otherwise they are removed from the list.\n"
" 7) Once confirmed, the employee is kept advised of their current\n"
" position in the waiting list, and hired as soon as a position\n"
" becomes vacant in the shop.\n"
" 8) The candidate can \"cancel\" their application at any time until\n"
" they are hired.\n\n"
" Since the candidates are hired in order of being accepted, please make\n"
" sure you vote for the oldest applications first.\n",
"common", 100 );
set_open_page( 10 );
set_read_mess( "\n"
" Disciplinary procedures Page 10\n"
" -=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n"
" This section is intended as a guide to disciplinary procedures. It\n"
" is ultimately down to managers to set their own policies within the\n"
" shop.\n"
" The first step in any action is to verbally warn an employee before\n"
" taking any formal action. This avoids any unpleasant comebacks on\n"
" the manager involved.\n"
" The next stage is either a warning, or suspending an employee's bonus.\n"
" Whilst a warning reduces an employee's promotion points, bonuses can\n"
" be suspended indefinitely.\n"
" If the employee is a supervisor, the next stage is probably demotion.\n"
" Following demotion, or if the employee is not a supervisor, dismissal\n"
" may be the only course of action open to you.\n"
" It is important to check the employee's history before taking any\n"
" action as this will allow you to see what action has already been\n"
" taken, and when. (Continued...)\n",
"common", 100 );
set_open_page( 11 );
set_read_mess( "\n"
" Page 11\n\n"
" Again, it is the responsibility of managers to develop a policy as\n"
" to what merits disciplinary action. A few guidelines are set out in\n"
" the staff handbook, but more can be added.\n\n"
" Finally, if there are any changes that need making to this, or indeed\n"
" the staff handbook, please let me know. I am open to comments and\n"
" suggestions on content as well as shop policy.\n"
" (c) "+ capitalize( CREATOR )+ " 1999",
"common", 100 );
set_open_page( 0 );
}
/* setup() */
void init () {
set_open_page( 0 );
if ( !_office || _office == "" ) {
if ( !query_property( "office" ) ) {
return;
}
_office = query_property( "office" );
set_office( _office );
}
if ( !_office->query_manager( environment(TO)->query_name() ) &&
!_office->query_retired( environment(TO)->query_name() ) &&
!creatorp(ENV(TO)) ) {
return;
}
::init();
}
/* init() */