e.pickup_anyway = true;
e.spawnfunc_checked = true;
spawnfunc_item_armor_small(e);
- e.movetype = MOVETYPE_TOSS;
- e.gravity = 1;
- e.reset = SUB_Remove;
- setorigin(e, frag_target.origin + '0 0 32');
- e.velocity = '0 0 200' + normalize(targ.origin - frag_target.origin) * 500;
- SUB_SetFade(e, time + 5, 1);
+ if (!wasfreed(e)) { // might have been blocked by a mutator
+ e.movetype = MOVETYPE_TOSS;
+ e.gravity = 1;
+ e.reset = SUB_Remove;
+ setorigin(e, frag_target.origin + '0 0 32');
+ e.velocity = '0 0 200' + normalize(targ.origin - frag_target.origin) * 500;
+ SUB_SetFade(e, time + 5, 1);
+ }
frag_target.ok_lastwep = PS(frag_target).m_switchweapon.m_id;