void melee_actor::load_internal( JsonObject &obj, const std::string & ) { // Optional: if( obj.has_array( "damage_max_instance" ) ) { JsonArray arr = obj.get_array( "damage_max_instance" ); damage_max_instance = load_damage_instance( arr ); } else if( obj.has_object( "damage_max_instance" ) ) { damage_max_instance = load_damage_instance( obj ); } min_mul = obj.get_float( "min_mul", 0.0f ); max_mul = obj.get_float( "max_mul", 1.0f ); move_cost = obj.get_int( "move_cost", 100 ); accuracy = obj.get_int( "accuracy", INT_MIN ); optional( obj, was_loaded, "miss_msg_u", miss_msg_u, translated_string_reader, _( "The %s lunges at you, but you dodge!" ) ); optional( obj, was_loaded, "no_dmg_msg_u", no_dmg_msg_u, translated_string_reader, _( "The %1$s bites your %2$s, but fails to penetrate armor!" ) ); optional( obj, was_loaded, "hit_dmg_u", hit_dmg_u, translated_string_reader, _( "The %1$s bites your %2$s!" ) ); optional( obj, was_loaded, "miss_msg_npc", miss_msg_npc, translated_string_reader, _( "The %s lunges at <npcname>, but they dodge!" ) ); optional( obj, was_loaded, "no_dmg_msg_npc", no_dmg_msg_npc, translated_string_reader, _( "The %1$s bites <npcname>'s %2$s, but fails to penetrate armor!" ) ); optional( obj, was_loaded, "hit_dmg_npc", hit_dmg_npc, translated_string_reader, _( "The %1$s bites <npcname>'s %2$s!" ) ); if( obj.has_array( "body_parts" ) ) { JsonArray jarr = obj.get_array( "body_parts" ); while( jarr.has_more() ) { JsonArray sub = jarr.next_array(); const body_part bp = get_body_part_token( sub.get_string( 0 ) ); const float prob = sub.get_float( 1 ); body_parts.add_or_replace( bp, prob ); } } if( obj.has_array( "effects" ) ) { JsonArray jarr = obj.get_array( "effects" ); while( jarr.has_more() ) { JsonObject eff = jarr.next_object(); effects.push_back( load_mon_effect_data( eff ) ); } } }
mon_effect_data get_next( JsonIn &jin ) const { JsonObject e = jin.get_object(); return load_mon_effect_data( e ); }