Skip to content

Commit 0dfaed8

Browse files
committed
wip on_hit_effect
1 parent 8fac787 commit 0dfaed8

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

src/ammo_effect.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,17 @@ void ammo_effect::load( const JsonObject &jo, const std::string_view )
9090
JsonObject joe = jo.get_object( "explosion" );
9191
aoe_explosion_data = load_explosion_data( joe );
9292
}
93+
if( jo.has_member( "on_hit_effects" ) ) {
94+
JsonArray json_arr = jo.get_array( "on_hit_effects" );
95+
for( JsonObject joe : json_arr ) {
96+
on_hit_effect new_effect;
97+
optional( joe, was_loaded, "bp_to_hit", new_effect.bp_to_hit, bodypart_str_id::NULL_ID() );
98+
mandatory( joe, was_loaded, "duration", new_effect.duration );
99+
mandatory( joe, was_loaded, "effect", new_effect.effect );
100+
mandatory( joe, was_loaded, "intensity", new_effect.intensity );
101+
on_hit_effects.push_back( new_effect );
102+
}
103+
}
93104
optional( jo, was_loaded, "do_flashbang", do_flashbang, false );
94105
optional( jo, was_loaded, "do_emp_blast", do_emp_blast, false );
95106
optional( jo, was_loaded, "foamcrete_build", foamcrete_build, false );

src/ammo_effect.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ template <typename T> class generic_factory;
1919

2020
generic_factory<ammo_effect> &get_all_ammo_effects();
2121

22+
struct on_hit_effect {
23+
bodypart_id bp_to_hit;
24+
efftype_id effect;
25+
int duration;
26+
int intensity;
27+
};
28+
2229
struct ammo_effect {
2330
public:
2431
void load( const JsonObject &jo, std::string_view src );
@@ -53,6 +60,8 @@ struct ammo_effect {
5360
int trail_intensity_max = 0;
5461
int trail_chance = 100;
5562

63+
std::vector<on_hit_effect> on_hit_effects;
64+
5665
// Used by generic_factory
5766
ammo_effect_str_id id;
5867
std::vector<std::pair<ammo_effect_str_id, mod_id>> src;

0 commit comments

Comments
 (0)