29 namespace ai {
class engine_lua; }
30 namespace ai {
class lua_ai_action_handler; }
31 namespace ai {
class lua_ai_context; }
62 bool has_preloaded_ =
false;
75 int intf_allow_end_turn(lua_State *);
76 int intf_allow_undo(lua_State *);
77 int intf_cancel_action(lua_State *);
78 int intf_add_time_area(lua_State *);
79 int intf_remove_time_area(lua_State *);
80 int intf_get_time_area(lua_State *);
81 int intf_animate_unit(lua_State *);
82 int intf_gamestate_inspector(lua_State *);
83 int impl_run_animation(lua_State *);
84 int intf_create_animator(lua_State *);
85 int intf_get_unit(lua_State *);
86 int intf_get_units(lua_State *);
87 int intf_get_displayed_unit(lua_State*);
88 int intf_match_unit(lua_State *L);
89 int intf_get_recall_units(lua_State *L);
90 int intf_get_variable(lua_State *L);
91 int intf_set_variable(lua_State *L);
92 int intf_highlight_hex(lua_State *L);
93 int intf_is_enemy(lua_State *L);
94 int intf_unit_ability(lua_State *L);
95 int intf_view_locked(lua_State *L);
96 int intf_lock_view(lua_State *L);
97 int impl_get_terrain_info(lua_State *L);
98 template<
bool cons
ider_illuminates>
99 int intf_get_time_of_day(lua_State *L);
100 int impl_schedule_get(lua_State *L);
101 int impl_schedule_len(lua_State *L);
102 void luaW_push_schedule(lua_State* L,
int area_index);
103 int intf_get_village_owner(lua_State *L);
104 int intf_set_village_owner(lua_State *L);
105 int intf_get_mouseover_tile(lua_State *L);
106 int intf_get_selected_tile(lua_State *L);
107 int impl_game_config_get(lua_State *L)
override;
108 int impl_game_config_set(lua_State *L)
override;
109 int impl_scenario_get(lua_State *L);
110 int impl_scenario_set(lua_State *L);
111 int impl_current_get(lua_State *L);
112 int intf_clear_messages(lua_State*);
113 int impl_end_level_data_set(lua_State*);
114 int intf_end_turn(lua_State*);
115 int intf_find_cost_map(lua_State *L);
117 int intf_find_reach(lua_State *L);
118 int intf_find_vision_range(lua_State *L);
119 int intf_heal_unit(lua_State *L);
120 int intf_message(lua_State *L);
121 int intf_play_sound(lua_State *L);
122 int intf_set_achievement(lua_State *L);
123 int intf_has_achievement(lua_State *L);
124 int intf_get_achievement(lua_State *L);
125 int intf_set_floating_label(lua_State* L,
bool spawn);
126 int intf_remove_floating_label(lua_State* L);
127 int intf_move_floating_label(lua_State* L);
129 int intf_put_unit(lua_State *L);
130 int intf_erase_unit(lua_State *L);
131 int intf_put_recall_unit(lua_State *L);
132 int intf_extract_unit(lua_State *L);
133 int intf_find_vacant_tile(lua_State *L);
134 int intf_float_label(lua_State *L);
135 int intf_set_end_campaign_credits(lua_State *L);
136 int intf_set_end_campaign_text(lua_State *L);
137 int intf_clear_menu_item(lua_State *L);
138 int intf_create_side(lua_State *L);
139 int intf_set_menu_item(lua_State *L);
140 int intf_toggle_shroud(lua_State *L,
bool place_shroud);
141 int intf_override_shroud(lua_State *L);
142 int intf_simulate_combat(lua_State *L);
143 int intf_scroll_to_tile(lua_State *L);
144 int intf_select_unit(lua_State *L);
145 int intf_deselect_hex(lua_State *L);
146 int intf_is_skipping_messages(lua_State *L);
147 int intf_skip_messages(lua_State *L);
148 int intf_get_locations(lua_State *L);
149 int intf_match_location(lua_State *L);
150 int intf_match_side(lua_State *L);
151 int intf_set_side_id(lua_State *L);
152 int intf_modify_ai_wml(lua_State *L);
153 int intf_get_sides(lua_State* L);
154 int intf_get_side(lua_State* L);
155 int intf_add_tile_overlay(lua_State *L);
156 int intf_remove_tile_overlay(lua_State *L);
157 template<
bool is_menu_item>
158 int intf_add_event_simple(lua_State* L);
159 int intf_add_event_wml(lua_State* L);
160 int intf_add_event(lua_State *L);
161 int intf_remove_event(lua_State *L);
162 int intf_color_adjust(lua_State *L);
163 int intf_get_color_adjust(lua_State *L);
164 int intf_screen_fade(lua_State *L);
166 int intf_add_label(lua_State *L);
167 int intf_remove_label(lua_State *L);
168 int intf_get_label(lua_State* L);
169 int intf_redraw(lua_State *L);
170 int intf_replace_schedule(lua_State *l);
171 int impl_schedule_set(lua_State *L);
172 int intf_scroll(lua_State *L);
173 int intf_get_all_vars(lua_State *L);
174 int impl_theme_item(lua_State *L, std::string name);
175 int impl_theme_items_get(lua_State *L);
176 int impl_theme_items_set(lua_State *L);
177 int cfun_builtin_effect(lua_State *L);
178 int cfun_wml_action(lua_State *L);
179 int intf_fire_event(lua_State *L,
const bool by_id);
180 int intf_fire_wml_menu_item(lua_State *L);
181 int intf_teleport(lua_State *L);
183 int intf_toggle_fog(lua_State *L,
const bool clear);
184 int intf_get_fog_or_shroud(lua_State *L,
bool fog);
185 int intf_log_replay(lua_State* L);
186 int intf_zoom(lua_State* L);
189 std::string synced_state();
190 void lua_chat(
const std::string& caption,
const std::string&
msg);
191 std::vector<int> get_sides_vector(
const vconfig& cfg);
195 std::vector<team> & teams();
211 virtual std::string
my_name()
override {
return "Game Lua Kernel"; }
213 std::string apply_effect(
const std::string& name,
unit& u,
const config& cfg,
bool need_apply);
215 void save_game(
config & level);
216 void load_game(
const config& level);
219 void push_builtin_effect();
221 void set_wml_condition(
const std::string&,
bool(*)(
const vconfig&));
222 bool run_wml_action(
const std::string&,
const vconfig&,
224 bool run_filter(
char const *name,
const unit& u);
225 bool run_filter(
char const *name,
const map_location& l);
226 bool run_filter(
char const *name,
const team&
t);
227 bool run_filter(
char const *name,
int nArgs);
228 bool run_wml_conditional(
const std::string&,
const vconfig&);
234 int save_wml_event();
243 int save_wml_event(
const std::string& name,
const std::string&
id,
const std::string& code);
250 int save_wml_event(
int idx);
255 void clear_wml_event(
int ref);
266 virtual void log_error(
char const*
msg,
char const* context =
"Lua error")
override;
std::stack< game_events::queued_event const *> queued_events_
int map_locked_
A value != 0 means that the shouldn't remove any units from the map, usually because we are currently...
game_display * game_display_
This class represents a single unit of a specific type.
int(* lua_CFunction)(lua_State *L)
void clear(const std::string &key)
virtual std::string my_name() override
User-visible name of the lua kernel that they are talking to.
const std::string & gamedata
Define actions for the game's events mechanism.
static void msg(const char *act, debug_info &i, const char *to="", const char *result="")
void(* handler)(const queued_event &, const vconfig &)
Unit and team statistics.
This class stores all the data for a single 'side' (in game nomenclature).
A small explanation about what's going on here: Each action has access to two game_info objects First...
static int intf_delay(lua_State *L)
Proxy table for the AI context.
Encapsulates the map of the game.
play_controller & play_controller_
Encapsulates the map of the game.
Game configuration data as global variables.
Proxy class for calling AI action handlers defined in Lua.
static int intf_find_path(lua_State *L)
Finds a path between two locations.
A variable-expanding proxy for the config class.
static config preload_config
Container associating units to locations.
game_display * get_display() const
A config object defines a single node in a WML file, with access to child nodes.
std::string custom_command()
static std::vector< config > preload_scripts
static int intf_log(lua_State *L)
Logs a message Arg 1: (optional) Logger Arg 2: Message.