Exemple #1
0
	bool ObjectManager::load_base(ROBJECT_TYPE::ENUM type, SlkTable& table)
	{
		switch (type)
		{
		case ROBJECT_TYPE::UNIT:
			load_unit(table);
			break;
		case ROBJECT_TYPE::ITEM:
			load_item(table);
			break;
		case ROBJECT_TYPE::DESTRUCTABLE:
			load_destructable(table);
			break;
		case ROBJECT_TYPE::BUFF:
			load_buff(table);
			break;
		case ROBJECT_TYPE::DOODAD:
			load_doodad(table);
			break;
		case ROBJECT_TYPE::ABILITY:
			load_ability(table);
			break;
		case ROBJECT_TYPE::UPGRADE:
			load_upgrde(table);
			break;
		default:
			assert(false);
			return false;
		}

		return true;
	}
void load_martial_art(JsonObject &jo)
{
    martialart ma;
    JsonArray jsarr;

    ma.id = jo.get_string("id");
    ma.name = _(jo.get_string("name").c_str());
    ma.description = _(jo.get_string("description").c_str());

    jsarr = jo.get_array("static_buffs");
    while (jsarr.has_more()) {
        JsonObject jsobj = jsarr.next_object();
        ma.static_buffs.push_back(load_buff(jsobj));
    }

    jsarr = jo.get_array("onmove_buffs");
    while (jsarr.has_more()) {
        JsonObject jsobj = jsarr.next_object();
        ma.onmove_buffs.push_back(load_buff(jsobj));
    }

    jsarr = jo.get_array("onhit_buffs");
    while (jsarr.has_more()) {
        JsonObject jsobj = jsarr.next_object();
        ma.onhit_buffs.push_back(load_buff(jsobj));
    }

    jsarr = jo.get_array("onattack_buffs");
    while (jsarr.has_more()) {
        JsonObject jsobj = jsarr.next_object();
        ma.onattack_buffs.push_back(load_buff(jsobj));
    }

    jsarr = jo.get_array("ondodge_buffs");
    while (jsarr.has_more()) {
        JsonObject jsobj = jsarr.next_object();
        ma.ondodge_buffs.push_back(load_buff(jsobj));
    }

    jsarr = jo.get_array("onblock_buffs");
    while (jsarr.has_more()) {
        JsonObject jsobj = jsarr.next_object();
        ma.onblock_buffs.push_back(load_buff(jsobj));
    }

    jsarr = jo.get_array("ongethit_buffs");
    while (jsarr.has_more()) {
        JsonObject jsobj = jsarr.next_object();
        ma.onblock_buffs.push_back(load_buff(jsobj));
    }

    ma.techniques = jo.get_tags("techniques");

    ma.leg_block = jo.get_int("leg_block", -1);
    ma.arm_block = jo.get_int("arm_block", -1);

    martialarts[ma.id] = ma;
}