X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_effects.c;fp=player_effects.c;h=0092f19a0c3bbab18a1e5730755a2cf4887a8387;hb=71b7175073e0c764c3c5cb0c7ceee0f8cca09e58;hp=0000000000000000000000000000000000000000;hpb=60b814f700fb47b6730d603dd85a5affad67272e;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_effects.c b/player_effects.c new file mode 100644 index 0000000..0092f19 --- /dev/null +++ b/player_effects.c @@ -0,0 +1,33 @@ +#include "player_effects.h" +#include "particle.h" + +static void effect_blink_apply( effect_blink *ef, player_pose *pose, f32 dt ){ + if( ef->t < 0.0f ){ + ef->t = (1.0f-powf(vg_randf64(),4.0f))*4.0f; + ef->l = 0.08f; + } + + pose->keyframes[ localplayer.id_eyes-1 ].s[1] = ef->l > 0.0f? 0.2f: 1.0f; + + ef->t -= dt; + ef->l -= dt; +} + +static void effect_spark_apply( effect_spark *ef, v3f co, v3f v, f32 dt ){ + if( !ef->colour ) return; + + if( ef->t < 0.0f ){ + ef->t = 0.05f+vg_randf64()*0.1f; + + v3f dir; + v3_copy( v, dir ); + dir[1] += 1.0f; + f32 l = v3_length(dir); + v3_muls( dir, 1.0f/l, dir ); + + particle_spawn_cone( &particles_grind, co, dir, VG_PIf/2.0f, l, + 4.0f, ef->colour ); + } + else + ef->t -= dt; +}