]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Emerald nade is replaced to monster nade, now monster nade is renamed as tandem nade...
authorLegendaryGuard <rootuser999@gmail.com>
Thu, 7 Jul 2022 12:18:50 +0000 (14:18 +0200)
committerLegendaryGuard <rootuser999@gmail.com>
Thu, 7 Jul 2022 12:18:50 +0000 (14:18 +0200)
gfx/hud/default/nade_emerald.tga [deleted file]
gfx/hud/default/nade_monster.tga [deleted file]
gfx/hud/default/nade_tandem.tga [new file with mode: 0644]
gfx/hud/luma/nade_emerald.tga [deleted file]
gfx/hud/luma/nade_monster.tga [deleted file]
gfx/hud/luma/nade_tandem.tga [new file with mode: 0644]
mutators.cfg
qcsrc/common/mutators/mutator/nades/nades.inc
qcsrc/common/mutators/mutator/nades/nades.qc
qcsrc/common/mutators/mutator/nades/nades.qh

diff --git a/gfx/hud/default/nade_emerald.tga b/gfx/hud/default/nade_emerald.tga
deleted file mode 100644 (file)
index 86c3d99..0000000
Binary files a/gfx/hud/default/nade_emerald.tga and /dev/null differ
diff --git a/gfx/hud/default/nade_monster.tga b/gfx/hud/default/nade_monster.tga
deleted file mode 100644 (file)
index fbd516d..0000000
Binary files a/gfx/hud/default/nade_monster.tga and /dev/null differ
diff --git a/gfx/hud/default/nade_tandem.tga b/gfx/hud/default/nade_tandem.tga
new file mode 100644 (file)
index 0000000..86c3d99
Binary files /dev/null and b/gfx/hud/default/nade_tandem.tga differ
diff --git a/gfx/hud/luma/nade_emerald.tga b/gfx/hud/luma/nade_emerald.tga
deleted file mode 100644 (file)
index 7588761..0000000
Binary files a/gfx/hud/luma/nade_emerald.tga and /dev/null differ
diff --git a/gfx/hud/luma/nade_monster.tga b/gfx/hud/luma/nade_monster.tga
deleted file mode 100644 (file)
index b042d62..0000000
Binary files a/gfx/hud/luma/nade_monster.tga and /dev/null differ
diff --git a/gfx/hud/luma/nade_tandem.tga b/gfx/hud/luma/nade_tandem.tga
new file mode 100644 (file)
index 0000000..7588761
Binary files /dev/null and b/gfx/hud/luma/nade_tandem.tga differ
index e4182bbd0baef0ec6b094e640c9e230d9a82212c..07875a64768a0322683bbcb094ddcb72b8ede21b 100644 (file)
@@ -202,12 +202,12 @@ set g_nades_nade_edgedamage 90
 set g_nades_nade_radius 300
 set g_nades_nade_force 650
 set g_nades_nade_newton_style 0 "nade velocity: 0 is absolute, 1 is relative (takes into account player velocity), 2 is something in between"
-set g_nades_nade_type 1 "Type of the off-hand grenade. 1:normal 2:napalm 3:ice 4:translocate 5:spawn 6:heal 7:pokenade 8:entrap 9:veil"
+set g_nades_nade_type 1 "Type of the off-hand grenade. 1:normal 2:napalm 3:ice 4:translocate 5:spawn 6:heal 7:pokenade 8:entrap 9:veil, 10:ammo, 11:dark"
 
 seta cl_nade_timer 1 "show a visual timer for nades, 1 = only circle, 2 = circle with text"
 seta cl_nade_type 3
-seta cl_pokenade_type "zombie"
-seta cl_tandemnade_type 0
+seta cl_pokenade_type "zombie" "monster, item, vehicle and turret to spawn"
+seta cl_tandemnade_type 0 "tandem nade selection; 0: monster, 1: item, 2: vehicle, 3: turret"
 
 // ------------
 //  Nade bonus
@@ -221,7 +221,7 @@ seta cl_tandemnade_type 0
 //
 set g_nades_bonus 0 "Enable bonus grenades"
 set g_nades_bonus_client_select 0 "Allow client side selection of bonus nade type"
-set g_nades_bonus_type 2 "Type of the bonus grenade. 1:normal 2:napalm 3:ice 4:translocate 5:spawn 6:heal 7:pokenade 8:entrap 9:veil"
+set g_nades_bonus_type 2 "Type of the bonus grenade. 1:normal 2:napalm 3:ice 4:translocate 5:spawn 6:heal 7:tandemnade 8:entrap 9:veil"
 set g_nades_bonus_onstrength 1 "Always give bonus grenades to players that have the strength powerup"
 set g_nades_bonus_max 3 "Maximum number of bonus grenades"
 set g_nades_bonus_only 0 "Disallow regular nades, only bonus nades can be used"
@@ -243,16 +243,16 @@ set g_nades_napalm_selfdamage 1 "Whether the player that tossed the nade can be
 // Napalm fireballs
 set g_nades_napalm_ball_count 6 "Number of fireballs emitted during the explosion"
 set g_nades_napalm_ball_spread 500 "Maximum force which the fireballs will have on explosion"
-set g_nades_napalm_ball_damageforcescale 4
-set g_nades_napalm_ball_damage 40
-set g_nades_napalm_ball_lifetime 7
+set g_nades_napalm_ball_damageforcescale 4 "How affected fireballs are by damage"
+set g_nades_napalm_ball_damage 40 "Damage caused by the fireball"
+set g_nades_napalm_ball_lifetime 7 "How long the fireball will last"
 set g_nades_napalm_ball_radius 100 "Distance from the fireball within which you may get burned"
 // Napalm Fire fountain
 set g_nades_napalm_fountain_lifetime 3 "Time period during which extra fire mines are ejected"
 set g_nades_napalm_fountain_delay 0.5 "Delay between emissions by the fountain"
 set g_nades_napalm_fountain_damage 50 "Damage caused by the center of the fountain"
 set g_nades_napalm_fountain_edgedamage 20 "Damage caused by the edge of the fountain"
-set g_nades_napalm_fountain_radius 130
+set g_nades_napalm_fountain_radius 130 "Distance from the fountain"
 
 // Ice (3)
 set g_nades_ice_freeze_time 3 "How long the ice field will last"
@@ -269,20 +269,39 @@ set g_nades_heal_rate 30 "Health given per second"
 set g_nades_heal_friend 1 "Multiplier of health given to team mates"
 set g_nades_heal_foe   -2 "Multiplier of health given to enemies"
 
-// Pokenade (7)
+// Tandem (7)
 set g_nades_pokenade_monster_lifetime 150 "How long pokenade monster will survive"
-set g_nades_pokenade_monster_type "zombie" "Monster to spawn"
+set g_nades_pokenade_type "zombie" "Monster, item, vehicle and turret to spawn"
+set g_nades_tandemnade_type 0 "Tandem nade selection; 0: monster, 1: item, 2: vehicle, 3: turret"
+set g_nades_tandem_ball_spread 0.5 "Maximum force which the ball will have on explosion"
+set g_nades_tandem_ball_item_spawncount 10 "Number of items ball will spawn at their explosion location"
+set g_nades_tandem_ball_lifetime 1 "How long the ball will last"
+set g_nades_tandem_fountain_lifetime 1 "Time period during which fountain is ejected"
+set g_nades_tandem_fountain_delay 5 "Delay between emissions by the fountain"
+set g_nades_tandem_item_lifetime 5 "Life time of the item"
+set g_nades_tandem_item_includespecial 0 "Include jetpack and powerups"
+set g_nades_tandem_randomweapon_includespecial 0 "Include special and super weapons"
 
 // Entrap (8)
 set g_nades_entrap_strength 0.01 "Strength of the orb's movement slowing powers"
 set g_nades_entrap_speed 0.5 "Running speed while entrapped"
 set g_nades_entrap_time 10 "Life time of the orb"
-set g_nades_entrap_radius 500
+set g_nades_entrap_radius 500 "Distance from the entrap orb"
 
 // Veil (9)
 set g_nades_veil_time 8 "Life time of the orb"
-set g_nades_veil_radius 200
-
+set g_nades_veil_radius 200 "Distance from the veil orb"
+
+// Ammo (10)
+set g_nades_ammo_time 4 "Life time of the orb"
+set g_nades_ammo_rate 30 "Ammo given per second"
+set g_nades_ammo_friend 1 "Multiplier of ammo given to team mates"
+set g_nades_ammo_foe   -2 "Multiplier of ammo given to enemies"
+
+// Darkness (11)
+set g_nades_dark_damage 25 "How much damage dark orb can do when foes are entering inside"
+set g_nades_dark_time 13 "Life time of the orb"
+set g_nades_dark_radius 700 "Distance from the dark orb"
 
 // ============
 //  camp check
index ae69d682b83a4dc5c207cf2ec53ceb9eb387719b..26cddf2b1efc462ea5c19e8ffe86bb44133b4ac5 100644 (file)
@@ -63,13 +63,13 @@ REGISTER_NADE(HEAL) {
 #endif
 }
 
-REGISTER_NADE(MONSTER) {
-    this.m_color = '0.25 0.75 0';
-    this.m_name = _("Monster grenade");
-    this.m_icon = "nade_monster";
+REGISTER_NADE(TANDEM) {
+    this.m_color = '0.33 1 0.67';
+    this.m_name = _("Tandem grenade");
+    this.m_icon = "nade_tandem";
 #ifdef GAMEQC
-    NADE_PROJECTILE(0, PROJECTILE_NADE_MONSTER, EFFECT_NADE_TRAIL_RED);
-    NADE_PROJECTILE(1, PROJECTILE_NADE_MONSTER_BURN, EFFECT_NADE_TRAIL_BURN_RED);
+    NADE_PROJECTILE(0, PROJECTILE_NADE_TANDEM, EFFECT_NADE_TRAIL_GREEN);
+    NADE_PROJECTILE(1, PROJECTILE_NADE_TANDEM_BURN, EFFECT_NADE_TRAIL_BURN_GREEN);
 #endif
 }
 
@@ -94,18 +94,6 @@ REGISTER_NADE(VEIL) {
 #endif
 }
 
-//LegendGuard writes Emerald nade code 01-03-2021
-REGISTER_NADE(EMERALD) {
-    this.m_color = '0.33 1 0.66';
-    this.m_name = _("Emerald grenade");
-    this.m_icon = "nade_emerald";
-#ifdef GAMEQC
-    NADE_PROJECTILE(0, PROJECTILE_NADE_EMERALD, EFFECT_NADE_TRAIL_GREEN);
-    NADE_PROJECTILE(1, PROJECTILE_NADE_EMERALD_BURN, EFFECT_NADE_TRAIL_BURN_GREEN);
-#endif
-}
-
-//LegendGuard writes Ammo nade code 13-02-2021
 REGISTER_NADE(AMMO) {
     this.m_color = '0.66 0.33 0';
     this.m_name = _("Ammo grenade");
@@ -116,13 +104,12 @@ REGISTER_NADE(AMMO) {
 #endif
 }
 
-//LegendGuard writes Dark nade code 08-02-2021
 REGISTER_NADE(DARK) {
     this.m_color = '0.23 0 0.23';
     this.m_name = _("Dark grenade");
     this.m_icon = "nade_dark";
 #ifdef GAMEQC
     NADE_PROJECTILE(0, PROJECTILE_NADE_DARK, EFFECT_NADE_TRAIL_PURPLE);
-    NADE_PROJECTILE(1, PROJECTILE_NADE_DARK_BURN, EFFECT_Null);
+    NADE_PROJECTILE(1, PROJECTILE_NADE_DARK_BURN, EFFECT_NADE_TRAIL_BURN_PURPLE);
 #endif
 }
\ No newline at end of file
index 9cb161880744e16798f005e7270b98dc7d06f284..56fae5e121d8e1c4ae88449f99970b23b98df595 100644 (file)
@@ -187,9 +187,7 @@ void DrawAmmoNades(vector myPos, vector mySize, bool draw_expanding, float expan
 #include <common/gamemodes/_mod.qh>
 #include <common/monsters/sv_spawn.qh>
 #include <common/monsters/sv_monsters.qh>
-//LegendGuard adds include for spawning vehicles 20-06-2021
 #include <common/vehicles/all.qh>
-//LegendGuard adds include for spawning turrets 22-06-2021
 #include <common/turrets/all.qh>
 
 .float nade_time_primed;
@@ -689,58 +687,7 @@ void nade_heal_boom(entity this)
        settouch(orb, nade_heal_touch);
        orb.colormod = '1 0 0';
 }
-
-void nade_monster_boom(entity this)
-{
-       if(!autocvar_g_monsters)
-               return;
-       entity e = spawn();
-       e.noalign = true; // don't drop to floor
-       e = spawnmonster(e, this.pokenade_type, MON_Null, this.realowner, this.realowner, this.origin, false, false, 1);
-       if(!e)
-               return; // monster failed to be spawned
-
-       if(autocvar_g_nades_pokenade_monster_lifetime > 0)
-               e.monster_lifetime = time + autocvar_g_nades_pokenade_monster_lifetime;
-       e.monster_skill = MONSTER_SKILL_INSANE;
-}
-
-void nade_veil_touch(entity this, entity toucher)
-{
-       if ( IS_REAL_CLIENT(toucher) || (IS_VEHICLE(toucher) && toucher.owner) )
-       {
-               entity show_tint = (IS_VEHICLE(toucher) && toucher.owner) ? toucher.owner : toucher;
-
-               float tint_alpha = 0.75;
-               if(SAME_TEAM(toucher, this.realowner))
-               {
-                       tint_alpha = 0.45;
-                       if(!STAT(VEIL_ORB, show_tint))
-                       {
-                               toucher.nade_veil_prevalpha = toucher.alpha;
-                               toucher.alpha = -1;
-                       }
-               }
-               STAT(VEIL_ORB, show_tint) = time + 0.1;
-               STAT(VEIL_ORB_ALPHA, show_tint) = tint_alpha * (this.ltime - time) / this.orb_lifetime;
-       }
-}
-
-void nade_veil_boom(entity this)
-{
-       entity orb = nades_spawn_orb(this.owner, this.realowner, this.origin, autocvar_g_nades_veil_time, autocvar_g_nades_veil_radius);
-
-       settouch(orb, nade_veil_touch);
-       orb.colormod = NADE_TYPE_VEIL.m_color;
-}
-/**************LEGENDGUARD NEW NADES: EMERALD, AMMO AND DARK NADES functions "cl_nade_type 10", "cl_nade_type 11" and "cl_nade_type 12" *** //more ideas: SPAWNING MINI SPIDERS NADE, SPARKING NADE ***********************/
-// All nade icons are in these directories, samples: gfx/hud/default/nade_emerald.tga and gfx/hud/luma/nade_emerald.tga 02-03-2021
-// Mario suggests to rename itemdrop nade name to "emerald" nade 02-03-2021
-
-//LegendGuard adds weapon item spawn option for emerald nade 25-05-2021
-
-//LegendGuard adds random weapon item spawn function for emerald nade 25-05-2021
-void nade_emerald_randomweapon(entity e, vector org)
+void nade_tandem_randomweapon(entity e, vector org)
 {
        RandomSelection_Init();
        FOREACH(Weapons, 
@@ -749,7 +696,7 @@ void nade_emerald_randomweapon(entity e, vector org)
                        || (it.spawnflags & WEP_FLAG_MUTATORBLOCKED) 
                        || (it.spawnflags & WEP_FLAG_SPECIALATTACK) 
                        || (it.spawnflags & WEP_FLAG_SUPERWEAPON))
-                       || autocvar_g_nades_emerald_randomweapons_includespecial),
+                       || autocvar_g_nades_tandem_randomweapon_includespecial),
        {
                if((it.spawnflags & WEP_FLAG_HIDDEN)
                        && (it.spawnflags & WEP_FLAG_MUTATORBLOCKED))
@@ -772,11 +719,7 @@ void nade_emerald_randomweapon(entity e, vector org)
        weapon_defaultspawnfunc(e, RandomSelection_chosen_ent);
 }
 
-//LegendGuard adds vehicle spawn option for emerald nade 20-06-2021
-
-//LegendGuard adds turret spawn option for emerald nade 22-06-2021
-
-entity nade_emerald_randomitem()
+entity nade_tandem_randomitem()
 {
        RandomSelection_Init();
        FOREACH(Items, 
@@ -788,7 +731,7 @@ entity nade_emerald_randomitem()
                        && !(it.m_itemid & IT_INVINCIBLE)
                        && !(it.m_itemid & IT_INVISIBILITY)
                        && !(it.m_itemid & IT_SPEED)
-                       || autocvar_g_nades_emerald_items_includespecial),
+                       || autocvar_g_nades_tandem_item_includespecial),
        {
                if(it.m_canonical_spawnfunc == "item_armor_mega" 
                || it.m_canonical_spawnfunc == "item_health_mega" 
@@ -805,7 +748,7 @@ entity nade_emerald_randomitem()
        return RandomSelection_chosen_ent;
 }
 
-void nade_emerald_spawnitem(entity e, vector org)
+void nade_tandem_spawnitem(entity e, vector org)
 {
        entity itm;
 
@@ -823,12 +766,12 @@ void nade_emerald_spawnitem(entity e, vector org)
                }
                case "jetpack" : 
                { 
-                       itm = (!autocvar_g_nades_emerald_items_includespecial) ? 
+                       itm = (!autocvar_g_nades_tandem_item_includespecial) ? 
                        ITEM_JetpackFuel : (random() < 0.5) ? 
                        ITEM_JetpackFuel : ITEM_Jetpack; 
                        break; 
                }
-               default: { itm = nade_emerald_randomitem(); break; }
+               default: { itm = nade_tandem_randomitem(); break; }
        }
 
        if((IS_GAMETYPE(FREEZETAG) || IS_GAMETYPE(LMS)) 
@@ -847,10 +790,10 @@ void nade_emerald_spawnitem(entity e, vector org)
        setorigin(e, org);
        e.velocity = randomvec() * 175 + '0 0 325';
        e.item_spawnshieldtime = time + 0.7;
-       SUB_SetFade(e, time + autocvar_g_nades_emerald_lifetime, 1);
+       SUB_SetFade(e, time + autocvar_g_nades_tandem_item_lifetime, 1);
 }
 
-void nade_emerald_dropping(entity this, vector org)
+void nade_tandem_dropping(entity this, vector org)
 {
        entity e = spawn();
        e.spawnfunc_checked = true;
@@ -860,18 +803,18 @@ void nade_emerald_dropping(entity this, vector org)
        {
                switch (this.pokenade_type)
                {
-                       case "weapon"   : { nade_emerald_randomweapon(e, org); return; }
+                       case "weapon"   : { nade_tandem_randomweapon(e, org); return; }
                        case "health"   : 
                        case "armor"    : 
                        case "ammo"             : 
                        case "jetpack"  : 
-                       default                 : { nade_emerald_spawnitem(e, org); return; }
+                       default                 : { nade_tandem_spawnitem(e, org); return; }
                }
        }
        else print_to(this, "Items can't be spawned on CA and Instagib");
 }
 
-void emerald_ball_think(entity this)
+void tandem_ball_think(entity this)
 {
        if(round_handler_IsActive())
        if(!round_handler_IsRoundStarted())
@@ -897,16 +840,16 @@ void emerald_ball_think(entity this)
 
        this.angles = vectoangles(this.velocity);
 
-       if (this.nade_item_spawncount < autocvar_g_nades_emerald_spawncount)
+       if (this.nade_item_spawncount < autocvar_g_nades_tandem_ball_item_spawncount)
        {
                this.nade_item_spawncount++;
-               nade_emerald_dropping(this, this.origin);
+               nade_tandem_dropping(this, this.origin);
        }
 
        this.nextthink = time + 0.1;
 }
 
-void nade_emerald_ball(entity this)
+void nade_tandem_ball(entity this)
 {
        entity proj;
        vector kick;
@@ -921,16 +864,16 @@ void nade_emerald_ball(entity this)
        proj.scale = 1; //0.5;
        setsize(proj, '-4 -4 -4', '4 4 4');
        setorigin(proj, this.origin);
-       setthink(proj, emerald_ball_think);
+       setthink(proj, tandem_ball_think);
        proj.nextthink = time;
        proj.effects = EF_LOWPRECISION;
 
-       kick.x =(random() - 0.5) * 2 * autocvar_g_nades_emerald_ball_spread;
-       kick.y = (random() - 0.5) * 2 * autocvar_g_nades_emerald_ball_spread;
-       kick.z = (random() / 2 + 0.5) * autocvar_g_nades_emerald_ball_spread;
+       kick.x =(random() - 0.5) * 2 * autocvar_g_nades_tandem_ball_spread;
+       kick.y = (random() - 0.5) * 2 * autocvar_g_nades_tandem_ball_spread;
+       kick.z = (random() / 2 + 0.5) * autocvar_g_nades_tandem_ball_spread;
        proj.velocity = kick;
 
-       proj.pushltime = time + autocvar_g_nades_emerald_ball_lifetime;
+       proj.pushltime = time + autocvar_g_nades_tandem_ball_lifetime;
 
        proj.angles = vectoangles(proj.velocity);
        proj.flags = FL_PROJECTILE;
@@ -939,7 +882,7 @@ void nade_emerald_ball(entity this)
        proj.missile_flags = MIF_SPLASH | MIF_PROXY | MIF_ARC;
 }
 
-void emerald_fountain_think(entity this)
+void tandem_fountain_think(entity this)
 {
        if(round_handler_IsActive())
        if(!round_handler_IsRoundStarted())
@@ -971,15 +914,15 @@ void emerald_fountain_think(entity this)
        this.nextthink = time + 0.1;
        if(time >= this.nade_special_time)
        {
-               this.nade_special_time = time + autocvar_g_nades_emerald_fountain_delay;
-               nade_emerald_ball(this);
+               this.nade_special_time = time + autocvar_g_nades_tandem_fountain_delay;
+               nade_tandem_ball(this);
                Send_Effect(EFFECT_SMOKE_LARGE, this.origin, '0 0 0', 1);
        }
 }
 
-void emerald_item_fountain_explode(entity this)
+void tandem_item_fountain_explode(entity this)
 {
-       entity fountain = new(nade_emerald_fountain);
+       entity fountain = new(nade_tandem_fountain);
        fountain.owner = this.owner;
        fountain.realowner = this.realowner;
        fountain.origin = this.origin;
@@ -988,9 +931,9 @@ void emerald_item_fountain_explode(entity this)
        IL_PUSH(g_projectiles, fountain);
        IL_PUSH(g_bot_dodge, fountain);
        setorigin(fountain, fountain.origin);
-       setthink(fountain, emerald_fountain_think);
+       setthink(fountain, tandem_fountain_think);
        fountain.nextthink = time;
-       fountain.ltime = time + autocvar_g_nades_emerald_fountain_lifetime;
+       fountain.ltime = time + autocvar_g_nades_tandem_fountain_lifetime;
        fountain.pushltime = fountain.ltime;
        fountain.team = this.team;
        
@@ -1011,10 +954,10 @@ void emerald_item_fountain_explode(entity this)
        fountain.bot_dodge = true;
        fountain.nade_special_time = time;
        setsize(fountain, '-16 -16 -16', '16 16 16');
-       CSQCProjectile(fountain, true, PROJECTILE_NADE_EMERALD_BURN, true);
+       CSQCProjectile(fountain, true, PROJECTILE_NADE_TANDEM_BURN, true);
 }
 
-void nade_emerald_boom(entity this)
+void nade_tandem_boom(entity this)
 {
        entity e = spawn();
        e.noalign = true; // don't drop to floor
@@ -1026,7 +969,7 @@ void nade_emerald_boom(entity this)
        {
                case 1:
                {
-                       emerald_item_fountain_explode(this);
+                       tandem_item_fountain_explode(this);
                        return;
                }
                case 2:
@@ -1081,7 +1024,17 @@ void nade_emerald_boom(entity this)
                        if(!autocvar_g_monsters)
                                return;
 
-                       e = spawnmonster(e, this.pokenade_type, MON_Null, this.realowner, this.realowner, this.origin, false, false, 1);
+                       e = spawnmonster(
+                               e, 
+                               this.pokenade_type, 
+                               MON_Null, 
+                               this.realowner, 
+                               this.realowner, 
+                               this.origin, 
+                               false, 
+                               false, 
+                               1
+                       );
 
                        if(!e)
                                return; // monster failed to be spawned
@@ -1093,7 +1046,46 @@ void nade_emerald_boom(entity this)
        }
 }
 
-/***********************************************************************************/
+void nade_veil_touch(entity this, entity toucher)
+{
+       if ( IS_REAL_CLIENT(toucher) || (IS_VEHICLE(toucher) && toucher.owner) )
+       {
+               entity show_tint = (IS_VEHICLE(toucher) && toucher.owner) ? toucher.owner : toucher;
+
+               float tint_alpha = 0.75;
+               if(SAME_TEAM(toucher, this.realowner))
+               {
+                       tint_alpha = 0.45;
+                       if(!STAT(VEIL_ORB, show_tint))
+                       {
+                               toucher.nade_veil_prevalpha = toucher.alpha;
+                               toucher.alpha = -1;
+                       }
+               }
+               STAT(VEIL_ORB, show_tint) = time + 0.1;
+               STAT(VEIL_ORB_ALPHA, show_tint) = tint_alpha * (this.ltime - time) / this.orb_lifetime;
+       }
+}
+
+void nade_veil_boom(entity this)
+{
+       entity orb = nades_spawn_orb(this.owner, this.realowner, this.origin, autocvar_g_nades_veil_time, autocvar_g_nades_veil_radius);
+
+       settouch(orb, nade_veil_touch);
+       orb.colormod = NADE_TYPE_VEIL.m_color;
+}
+/**************LEGENDGUARD NEW NADES: EMERALD, AMMO AND DARK NADES functions "cl_nade_type 10", "cl_nade_type 11" and "cl_nade_type 12" *** //more ideas: SPAWNING MINI SPIDERS NADE, SPARKING NADE ***********************/
+// All nade icons are in these directories, samples: gfx/hud/default/nade_emerald.tga and gfx/hud/luma/nade_emerald.tga 02-03-2021
+// Mario suggests to rename itemdrop nade name to "emerald" (funny suggestion lol) nade 02-03-2021
+
+//LegendGuard adds weapon item spawn option for tandem nade 25-05-2021
+
+//LegendGuard adds random weapon item spawn function for tandem nade 25-05-2021
+
+//LegendGuard adds vehicle spawn option for tandem nade 20-06-2021
+
+//LegendGuard adds turret spawn option for tandem nade 22-06-2021
+
 //LegendGuard develops ammo nade 13-02-2021
 void nade_ammo_touch(entity this, entity toucher)
 {
@@ -1319,12 +1311,22 @@ void nade_boom(entity this)
                case NADE_TYPE_TRANSLOCATE:
                        nade_blast = false;
                        break;
-               case NADE_TYPE_MONSTER:
+               case NADE_TYPE_TANDEM:
                        if(!autocvar_g_monsters)
                        {
                                expef = EFFECT_NADE_EXPLODE(this.realowner.team);
                                break; // fall back to a standard nade explosion
                        }
+                       if(!autocvar_g_vehicles)
+                       {
+                               expef = EFFECT_NADE_EXPLODE(this.realowner.team);
+                               break; // fall back to a standard nade explosion
+                       }
+                       if(!autocvar_g_turrets)
+                       {
+                               expef = EFFECT_NADE_EXPLODE(this.realowner.team);
+                               break; // fall back to a standard nade explosion
+                       }
                case NADE_TYPE_SPAWN:
                        nade_blast = false;
                        switch(this.realowner.team)
@@ -1350,11 +1352,6 @@ void nade_boom(entity this)
                        nade_blast = false;
                        expef = EFFECT_SPAWN_NEUTRAL;
                        break;
-               
-               case NADE_TYPE_EMERALD: //LegendGuard adds nade case 11-02-2021
-                       nade_blast = false;
-                       expef = EFFECT_EXPLOSION_SMALL;
-                       break;
 
                case NADE_TYPE_AMMO: //LegendGuard adds nade case 13-02-2021
                        nade_blast = false;
@@ -1395,10 +1392,9 @@ void nade_boom(entity this)
                case NADE_TYPE_TRANSLOCATE: nade_translocate_boom(this); break;
                case NADE_TYPE_SPAWN: nade_spawn_boom(this); break;
                case NADE_TYPE_HEAL: nade_heal_boom(this); break;
-               case NADE_TYPE_MONSTER: nade_monster_boom(this); break;
+               case NADE_TYPE_TANDEM: nade_tandem_boom(this); break;
                case NADE_TYPE_ENTRAP: nade_entrap_boom(this); break;
                case NADE_TYPE_VEIL: nade_veil_boom(this); break;
-               case NADE_TYPE_EMERALD: nade_emerald_boom(this); break; //LegendGuard adds the register of new nade 11-02-2021
                case NADE_TYPE_AMMO: nade_ammo_boom(this); break; //LegendGuard adds the register of new nade 13-02-2021
                case NADE_TYPE_DARK: nade_dark_boom(this); break; //LegendGuard adds the register of new nade 08-02-2021
        }
@@ -1777,7 +1773,7 @@ void nade_prime(entity this)
        else
        {
                ntype = ((autocvar_g_nades_client_select) ? CS_CVAR(this).cvar_cl_nade_type : autocvar_g_nades_nade_type);
-               pntype = ((autocvar_g_nades_client_select) ? CS_CVAR(this).cvar_cl_pokenade_type : autocvar_g_nades_pokenade_monster_type);
+               pntype = ((autocvar_g_nades_client_select) ? CS_CVAR(this).cvar_cl_pokenade_type : autocvar_g_nades_pokenade_type);
                tntype = ((autocvar_g_nades_client_select) ? CS_CVAR(this).cvar_cl_tandemnade_type : autocvar_g_nades_tandemnade_type);
        }
 
@@ -1946,7 +1942,7 @@ MUTATOR_HOOKFUNCTION(nades, PlayerPreThink)
                        else
                        {
                                STAT(NADE_BONUS_TYPE, player) = autocvar_g_nades_bonus_type;
-                               player.pokenade_type = autocvar_g_nades_pokenade_monster_type;
+                               player.pokenade_type = autocvar_g_nades_pokenade_type;
                                player.tandemnade_type = autocvar_g_nades_tandemnade_type;
                        }
 
index f26cccfba3ccd46924df5461fbc7621d80b79706..c3cf84afc994dd93c53f53e1a26c3e651a3548ff 100644 (file)
@@ -64,22 +64,22 @@ float autocvar_g_nades_entrap_radius = 500;
 float autocvar_g_nades_entrap_time = 10;
 float autocvar_g_nades_veil_time = 8;
 float autocvar_g_nades_veil_radius = 300;
-float autocvar_g_nades_emerald_lifetime = 5; //LegendGuard adds new nade cvars 28-02-2021
-bool autocvar_g_nades_emerald_randomweapons_includespecial = false;
-bool autocvar_g_nades_emerald_items_includespecial = false;
-float autocvar_g_nades_emerald_spawncount = 1;
-float autocvar_g_nades_emerald_ball_spread = 0.5;
-float autocvar_g_nades_emerald_ball_lifetime = 1; //if much time, many items will spawn
-float autocvar_g_nades_emerald_fountain_delay = 5;
-float autocvar_g_nades_emerald_fountain_lifetime = 1; //if much time, fountain will remain
-float autocvar_g_nades_ammo_time = 5; //LegendGuard adds new nade cvars 13-02-2021
-float autocvar_g_nades_ammo_rate = 30;
-float autocvar_g_nades_ammo_friend = 1;
-float autocvar_g_nades_ammo_foe = -2;
-float autocvar_g_nades_dark_damage = 25; //LegendGuard adds new nade cvars 08-02-2021
-float autocvar_g_nades_dark_time = 13;
-float autocvar_g_nades_dark_radius = 700;
-string autocvar_g_nades_pokenade_monster_type;
+float autocvar_g_nades_tandem_item_lifetime; //LegendGuard adds new nade cvars 28-02-2021
+bool autocvar_g_nades_tandem_randomweapon_includespecial = false;
+bool autocvar_g_nades_tandem_item_includespecial;
+float autocvar_g_nades_tandem_ball_item_spawncount = 1;
+float autocvar_g_nades_tandem_ball_spread;
+float autocvar_g_nades_tandem_ball_lifetime = 1; //if much time, ball will stay longer
+float autocvar_g_nades_tandem_fountain_delay = 5;
+float autocvar_g_nades_tandem_fountain_lifetime;
+float autocvar_g_nades_ammo_time; //LegendGuard adds new nade cvars 13-02-2021
+float autocvar_g_nades_ammo_rate;
+float autocvar_g_nades_ammo_friend;
+float autocvar_g_nades_ammo_foe;
+float autocvar_g_nades_dark_damage; //LegendGuard adds new nade cvars 08-02-2021
+float autocvar_g_nades_dark_time;
+float autocvar_g_nades_dark_radius;
+string autocvar_g_nades_pokenade_type;
 int autocvar_g_nades_tandemnade_type; //LegendGuard adds new nade cvar for emerald nade options 01-07-2021
 float autocvar_g_nades_pokenade_monster_lifetime;
 #endif
@@ -96,8 +96,8 @@ const int PROJECTILE_NADE_TRANSLOCATE = 78;
 const int PROJECTILE_NADE_SPAWN = 79;
 const int PROJECTILE_NADE_HEAL = 80;
 const int PROJECTILE_NADE_HEAL_BURN = 81;
-const int PROJECTILE_NADE_MONSTER = 82;
-const int PROJECTILE_NADE_MONSTER_BURN = 83;
+const int PROJECTILE_NADE_TANDEM = 82;
+const int PROJECTILE_NADE_TANDEM_BURN = 83;
 const int PROJECTILE_NADE_ENTRAP = 84;
 const int PROJECTILE_NADE_ENTRAP_BURN = 85;
 const int PROJECTILE_NADE_VEIL = 86;