]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/mutators/mutator/pinata/sv_pinata.qc
Merge branch 'divVerent/simpler-clipped-rectangle' into 'master'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / mutators / mutator / pinata / sv_pinata.qc
1 #include "sv_pinata.qh"
2
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));
6
7 MUTATOR_HOOKFUNCTION(pinata, PlayerDies)
8 {
9         entity frag_target = M_ARGV(2, entity);
10
11         for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
12         {
13                 .entity weaponentity = weaponentities[slot];
14
15                 if(frag_target.(weaponentity).m_weapon == WEP_Null)
16                         continue;
17
18                 if(slot > 0 && !autocvar_g_pinata_offhand)
19                         break;
20
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);
26                 });
27         }
28
29         return true;
30 }
31
32 MUTATOR_HOOKFUNCTION(pinata, BuildMutatorsString)
33 {
34         M_ARGV(0, string) = strcat(M_ARGV(0, string), ":Pinata");
35 }
36
37 MUTATOR_HOOKFUNCTION(pinata, BuildMutatorsPrettyString)
38 {
39         M_ARGV(0, string) = strcat(M_ARGV(0, string), ", PiƱata");
40 }