webperimental: killstack decides stack protects.
[freeciv.git] / ai / handicaps.h
blob1be3f7f153f6e9d9fd250d4a5142b8d823fb3d1a
1 /***********************************************************************
2 Freeciv - Copyright (C) 1996 - A Kjeldberg, L Gregersen, P Unold
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 2, or (at your option)
6 any later version.
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
12 ***********************************************************************/
13 #ifndef FC__HANDICAPS_H
14 #define FC__HANDICAPS_H
16 enum handicap_type {
17 H_DIPLOMAT = 0, /* Can't build offensive diplomats */
18 H_AWAY, /* Away mode */
19 H_LIMITEDHUTS, /* Can get only 25 gold and barbs from huts */
20 H_DEFENSIVE, /* Build defensive buildings without calculating need */
21 H_EXPERIMENTAL, /* Enable experimental AI features (for testing) */
22 H_RATES, /* Can't set its rates beyond government limits */
23 H_TARGETS, /* Can't target anything it doesn't know exists */
24 H_HUTS, /* Doesn't know which unseen tiles have huts on them */
25 H_FOG, /* Can't see through fog of war */
26 H_NOPLANES, /* Doesn't build air units */
27 H_MAP, /* Only knows map_is_known tiles */
28 H_DIPLOMACY, /* Not very good at diplomacy */
29 H_REVOLUTION, /* Cannot skip anarchy */
30 H_EXPANSION, /* Don't like being much larger than human */
31 H_DANGER, /* Always thinks its city is in danger */
32 H_CEASEFIRE, /* Has to offer cease-fire on first contact */
33 H_NOBRIBE_WF, /* Can't bribe worker and city founder units. */
34 H_PRODCHGPEN, /* Pays production change penalty. */
35 H_LAST
38 BV_DEFINE(bv_handicap, H_LAST);
40 void handicaps_init(struct player *pplayer);
41 void handicaps_close(struct player *pplayer);
43 void handicaps_set(struct player *pplayer, bv_handicap handicaps);
44 bool has_handicap(const struct player *pplayer, enum handicap_type htype);
46 #endif /* FC__HANDICAPS_H */