Add scripting API control over unit 'stay'
[freeciv.git] / server / techtools.h
blob7bfda5ec700f26af6c4be313cb057b59dbf3e335
1 /**********************************************************************
2 Freeciv - Copyright (C) 2005 The Freeciv Team
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__TECHTOOLS_H
14 #define FC__TECHTOOLS_H
16 #include "player.h"
17 #include "tech.h"
19 struct research;
21 void research_apply_penalty(struct research *presearch, Tech_type_id tech,
22 int penalty_percent);
23 void do_tech_parasite_effect(struct player *pplayer);
25 void send_research_info(const struct research *presearch,
26 const struct conn_list *dest);
28 void script_tech_learned(struct research *presearch,
29 struct player *originating_plr, struct advance *tech,
30 const char *reason);
31 void found_new_tech(struct research *presearch, Tech_type_id tech_found,
32 bool was_discovery, bool saving_bulbs);
33 void update_bulbs(struct player *pplayer, int bulbs, bool check_tech);
34 void init_tech(struct research *presearch, bool update);
35 void choose_tech(struct research *presearch, Tech_type_id tech);
36 void choose_random_tech(struct research *presearch);
37 void choose_tech_goal(struct research *presearch, Tech_type_id tech);
38 Tech_type_id steal_a_tech(struct player *pplayer, struct player *target,
39 Tech_type_id preferred);
41 Tech_type_id give_immediate_free_tech(struct research *presearch);
42 void give_initial_techs(struct research *presearch, int num_random_techs);
44 bool tech_transfer(struct player *plr_recv, struct player *plr_donor,
45 Tech_type_id tech);
47 Tech_type_id pick_random_tech(const struct research *presearch);
48 Tech_type_id pick_cheapest_tech(const struct research *presearch);
50 #endif /* FC__TECHTOOLS_H */