Exemplo n.º 1
0
const char* Card::can_attack(Game* g, Player* p) const {
    CHECK_RETURN(controller == p);
    CHECK_RETURN(!tapped);
    CHECK_RETURN(has_text("creature"));
    CHECK_RETURN(!sick || has_ability("haste"));
    return nullptr;
}
Exemplo n.º 2
0
void trace_view_adv_filter_callback(gboolean accept,
				    const gchar *text,
				    gint *event_ids,
				    gpointer data)
{
	struct event_filter *event_filter;
	GtkTreeView *trace_tree = data;
	GtkTreeModel *model;
	TraceViewStore *store;
	char error_str[200];
	int ret;
	int i;

	if (!accept)
		return;

	model = gtk_tree_view_get_model(trace_tree);
	if (!model)
		return;

	if (!has_text(text) && !event_ids)
		return;

	store = TRACE_VIEW_STORE(model);

	event_filter = trace_view_store_get_event_filter(store);

	if (event_ids) {
		for (i = 0; event_ids[i] >= 0; i++)
			pevent_filter_remove_event(event_filter, event_ids[i]);
	}

	if (has_text(text)) {

		trace_view_store_clear_all_events_enabled(store);

		ret = pevent_filter_add_filter_str(event_filter, text);
		if (ret < 0) {
			pevent_strerror(event_filter->pevent, ret,
					error_str, sizeof(error_str));
			warning("filter failed due to: %s", error_str);
			return;
		}
	}

	update_rows(trace_tree, store);
}
Exemplo n.º 3
0
const char* Card::can_tap(Game* g, Player* p) const {
    // Does the player control it?
    CHECK_RETURN(controller == p);
    // Is it not tapped?
    CHECK_RETURN(!tapped);
    // Is it in play?
    CHECK_RETURN(g->is_in_play(this));
    // If it's a creature, is it sick?
    CHECK_RETURN(!has_text("creature") || !sick || has_ability("haste"));

    return nullptr;
}