We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 8fac787 commit 0dfaed8Copy full SHA for 0dfaed8
src/ammo_effect.cpp
@@ -90,6 +90,17 @@ void ammo_effect::load( const JsonObject &jo, const std::string_view )
90
JsonObject joe = jo.get_object( "explosion" );
91
aoe_explosion_data = load_explosion_data( joe );
92
}
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
104
optional( jo, was_loaded, "do_flashbang", do_flashbang, false );
105
optional( jo, was_loaded, "do_emp_blast", do_emp_blast, false );
106
optional( jo, was_loaded, "foamcrete_build", foamcrete_build, false );
src/ammo_effect.h
@@ -19,6 +19,13 @@ template <typename T> class generic_factory;
19
20
generic_factory<ammo_effect> &get_all_ammo_effects();
21
22
+struct on_hit_effect {
23
+ bodypart_id bp_to_hit;
24
+ efftype_id effect;
25
+ int duration;
26
+ int intensity;
27
+};
28
+
29
struct ammo_effect {
30
public:
31
void load( const JsonObject &jo, std::string_view src );
@@ -53,6 +60,8 @@ struct ammo_effect {
53
60
int trail_intensity_max = 0;
54
61
int trail_chance = 100;
55
62
63
+ std::vector<on_hit_effect> on_hit_effects;
64
56
65
// Used by generic_factory
57
66
ammo_effect_str_id id;
58
67
std::vector<std::pair<ammo_effect_str_id, mod_id>> src;
0 commit comments