1 #include "sv_pinata.qh"
3 string autocvar_g_pinata;
4 bool autocvar_g_pinata_offhand;
5 REGISTER_MUTATOR(pinata, expr_evaluate(autocvar_g_pinata) && !MUTATOR_IS_ENABLED(mutator_instagib) && !MUTATOR_IS_ENABLED(ok));
7 MUTATOR_HOOKFUNCTION(pinata, PlayerDies)
9 entity frag_target = M_ARGV(2, entity);
11 for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
13 .entity weaponentity = weaponentities[slot];
15 if(frag_target.(weaponentity).m_weapon == WEP_Null)
18 if(slot > 0 && !autocvar_g_pinata_offhand)
21 FOREACH(Weapons, it != WEP_Null, {
22 if(STAT(WEAPONS, frag_target) & WepSet_FromWeapon(it))
23 if(frag_target.(weaponentity).m_weapon != it)
24 if(W_IsWeaponThrowable(frag_target, it.m_id))
25 W_ThrowNewWeapon(frag_target, it.m_id, false, CENTER_OR_VIEWOFS(frag_target), randomvec() * 175 + '0 0 325', weaponentity);
32 MUTATOR_HOOKFUNCTION(pinata, BuildMutatorsString)
34 M_ARGV(0, string) = strcat(M_ARGV(0, string), ":Pinata");
37 MUTATOR_HOOKFUNCTION(pinata, BuildMutatorsPrettyString)
39 M_ARGV(0, string) = strcat(M_ARGV(0, string), ", PiƱata");