/**********************************************************
*************** S U N D E R M U D *** 2 . 0 **************
**********************************************************
* The unique portions of the SunderMud code as well as *
* the integration efforts for code from other sources is *
* based primarily on the efforts of: *
* *
* Lotherius <aelfwyne@operamail.com> (Alvin W. Brinson) *
* and many others, see "help sundermud" in the mud. *
**********************************************************/
#ifndef _CLAN_H
# define _CLAN_H 1
# define MAX_CLANAREAS 5
# define MAX_CLANMEMBERS 50
# define RANK_LEADER 5
# define RANK_TWO 4
# define RANK_THREE 3
# define RANK_FOUR 2
# define RANK_FIVE 1
# define RANK_BOTTOM 0
# define CLAN_NEW 0 // Clan is new and unrecognized.
# define CLAN_PROBATION 1 // Clan needs to clean up its shit or begone.
# define CLAN_UNDERGROUND 2 // Clan is "underground" and does not want/ cannot have, recognition
# define CLAN_RECOGNIZED 3 // Clan is recognized by IMMs. Anything this high or higher will show on clist
# define CLAN_RENEW 4 // Something needs checked on the clan.
struct clan_area_type
{
struct clan_area_type *next; /* Next Area */
AREA_DATA *area; /* The area controlled */
int areatax; /* Tax on the area */
long totaltax; /* Tax collected */
int guards; /* Number of guards in this area */
sh_int yeartaken; /* Year area taken */
sh_int monthtaken; /* Month area taken */
sh_int daytaken; /* Day area taken */
};
struct clan_member_type
{
struct clan_member_type *next; /* Next member */
char *member_name; /* Name duh */
sh_int year_joined; /* Dates */
sh_int month_joined;
sh_int day_joined;
long taxpaid;
sh_int clanrank;
};
struct clan_main_type
{
struct clan_main_type *next;
// To increase the possible amount of wars, simply add more pointers here,
// and update the requisite code in clan.c
// I didn't use a MAX_ type counter for simplicity elsewhere. If you add
// more, it may work better to use a struct here
//
struct clan_main_type *war_a; /* At war with X clan */
struct clan_main_type *war_b; /* At war with Y clan */
ROOM_INDEX_DATA *hq; /* Pointer to Clan's HQ */
/* struct clan_member_type *clan_members[MAX_CLANMEMBERS];
struct clan_area_type *clanareas[MAX_CLANAREAS]; */
char *clan_name; /* The Clan "LongName" */
char *clan_short; /* The Clan "ShortName" Keyword */
char *mranks[6]; /* 6 male ranks */
char *franks[6]; /* 6 female ranks */
int portalto; /* VNum where the clan portal goes, vnum of HQ! */
bool nosave; /* If true, clan will not save for next boot. */
sh_int status; /* Clan Status */
int clanpk; /* Number of times the clan has won PKill */
int clandie; /* Number of times the clan has lost PKill */
long clanbank; /* Clan Bank Account */
int clanmtax; /* Tax on clan's members */
int membercount; /* How many members now? */
char *reason; /* Reason an imm has done something to the clan. Usually involving non-recognition. */
bool pkallow; /* Does this clan even ALLOW PKill -- if not, can't have a stronghold, declare or set bounties */
bool autoaccept; /* Accept anyone who wants to join this clan automatically? */
int moveyear; /* Year the clan stronghold was moved. Can't be moved again for 3 years, unless forced */
char *demigod; /* The demigod to whom this clan owes alliegence */
bool demiapprove; /* Does the Demi-God approve of the clan */
int experience; /* Clan experience -- Gained through various activities */
int join_level; /* Minimum level to join the clan */
int join_cost; /* Cost in Gold to join the clan */
int join_minalign; /* Minimum alignment to join the clan */
int join_maxalign; /* Maximum alignment to join the clan */
/* Set the ranks */
int rank_setjoin; /* Lowest rank that can set the joining level & cost */
int rank_recruit; /* Lowest rank that can recruit someone */
int rank_outcast; /* Lowest rank that can outcast someone lower than them */
int rank_promote; /* Lowest rank that can promote a member */
int rank_demote; /* Lowest rank that can demote a member */
int rank_settax; /* Lowest rank that can set a tax. */
int rank_declare; /* Lowest rank that can declare Wars against other clans or Holy Wars */
int rank_claim; /* Lowest rank that can claim an area in the name of the clan */
int rank_bounty; /* Lowest rank that can set bounties. */
int rank_recall; /* Lowest rank that can recall to the clan stronghold */
int rank_move; /* Lowest rank that can move the clan stronghold */
};
typedef struct clan_main_type CLAN_INDEX;
extern struct clan_main_type * clan_list;
void handle_edit_clan args ( ( DESCRIPTOR_DATA *d, char *argument ) );
#endif // _CLAN_H