--- /dev/null
+#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;
+}