]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Hardcode monster item drops
authorMario <mario.mario@y7mail.com>
Thu, 29 Aug 2013 10:04:55 +0000 (20:04 +1000)
committerMario <mario.mario@y7mail.com>
Thu, 29 Aug 2013 10:04:55 +0000 (20:04 +1000)
15 files changed:
monsters.cfg
qcsrc/common/monsters/lib/monsters.qc
qcsrc/common/monsters/monster/animus.qc
qcsrc/common/monsters/monster/bruiser.qc
qcsrc/common/monsters/monster/brute.qc
qcsrc/common/monsters/monster/cerberus.qc
qcsrc/common/monsters/monster/knight.qc
qcsrc/common/monsters/monster/mage.qc
qcsrc/common/monsters/monster/shambler.qc
qcsrc/common/monsters/monster/slime.qc
qcsrc/common/monsters/monster/spider.qc
qcsrc/common/monsters/monster/stingray.qc
qcsrc/common/monsters/monster/wyvern.qc
qcsrc/common/monsters/monster/zombie.qc
qcsrc/server/autocvars.qh

index a2a77a5085068f6be38b6248cef1a900aa04a212..55c1667157730e4ce98069ade87de433caf9a757 100644 (file)
@@ -14,9 +14,6 @@ set g_monster_brute_health 300
 set g_monster_brute_speed_run 200
 set g_monster_brute_speed_stop 300
 set g_monster_brute_speed_walk 100
-
-set g_monster_brute_drop ammo
-set g_monster_brute_drop_size bullets
 // }}}
 // {{{ #2: Animus
 set g_monster_animus_attack_jump_damage 80
@@ -25,9 +22,6 @@ set g_monster_animus_health 150
 set g_monster_animus_speed_run 350
 set g_monster_animus_speed_stop 100
 set g_monster_animus_speed_walk 150
-
-set g_monster_animus_drop health
-set g_monster_animus_drop_size medium
 // }}}
 // {{{ #3: Shambler
 set g_monster_shambler_attack_claw_damage 50
@@ -37,9 +31,6 @@ set g_monster_shambler_health 500
 set g_monster_shambler_speed_run 150
 set g_monster_shambler_speed_stop 300
 set g_monster_shambler_speed_walk 100
-
-set g_monster_shambler_drop health
-set g_monster_shambler_drop_size large
 // }}}
 // {{{ #4: Bruiser
 set g_monster_bruiser_attack_melee_damage 50
@@ -47,9 +38,6 @@ set g_monster_bruiser_health 200
 set g_monster_bruiser_speed_run 360
 set g_monster_bruiser_speed_stop 50
 set g_monster_bruiser_speed_walk 40
-
-set g_monster_bruiser_drop armor
-set g_monster_bruiser_drop_size medium
 // }}}
 // {{{ #5: Wyvern
 set g_monster_wyvern_attack_fireball_damage 30
@@ -62,9 +50,6 @@ set g_monster_wyvern_health 95
 set g_monster_wyvern_speed_run 120
 set g_monster_wyvern_speed_stop 300
 set g_monster_wyvern_speed_walk 40
-
-set g_monster_wyvern_drop ammo
-set g_monster_wyvern_drop_size cells
 // }}}
 // {{{ #6: Cerberus
 set g_monster_cerberus_attack_bite_damage 30
@@ -73,9 +58,6 @@ set g_monster_cerberus_health 100
 set g_monster_cerberus_speed_run 250
 set g_monster_cerberus_speed_stop 50
 set g_monster_cerberus_speed_walk 60
-
-set g_monster_cerberus_drop health
-set g_monster_cerberus_drop_size small
 // }}}
 // {{{ #7: Slime
 set g_monster_slime_attack_explode_damage 250
@@ -83,9 +65,6 @@ set g_monster_slime_health 80
 set g_monster_slime_speed_run 400
 set g_monster_slime_speed_stop 20
 set g_monster_slime_speed_walk 20
-
-set g_monster_slime_drop ammo
-set g_monster_slime_drop_size rockets
 // }}}
 // {{{ #8: Knight
 set g_monster_knight_attack_fireball_chance 0.3
@@ -110,9 +89,6 @@ set g_monster_knight_health 300
 set g_monster_knight_speed_run 150
 set g_monster_knight_speed_stop 100
 set g_monster_knight_speed_walk 75
-
-set g_monster_knight_drop armor
-set g_monster_knight_drop_size medium
 // }}}
 // {{{ #9: Stingray
 set g_monster_stingray_attack_bite_damage 25
@@ -121,9 +97,6 @@ set g_monster_stingray_health 115
 set g_monster_stingray_speed_run 200
 set g_monster_stingray_speed_stop 10
 set g_monster_stingray_speed_walk 40
-
-set g_monster_stingray_drop health
-set g_monster_stingray_drop_size small
 // }}}
 // {{{ #10: Mage
 set g_monster_mage_attack_grenade_chance 30
@@ -151,9 +124,6 @@ set g_monster_mage_shield_time 3
 set g_monster_mage_speed_run 75
 set g_monster_mage_speed_stop 50
 set g_monster_mage_speed_walk 50
-
-set g_monster_mage_drop health
-set g_monster_mage_drop_size medium
 // }}}
 // {{{ #11: Zombie
 set g_monster_zombie_attack_leap_damage 50
@@ -166,9 +136,6 @@ set g_monster_zombie_health 150
 set g_monster_zombie_speed_run 400
 set g_monster_zombie_speed_stop 100
 set g_monster_zombie_speed_walk 150
-
-set g_monster_zombie_drop health
-set g_monster_zombie_drop_size large
 // }}}
 // {{{ #12: Spider
 set g_monster_spider_attack_bite_damage 35
@@ -182,9 +149,6 @@ set g_monster_spider_health 160
 set g_monster_spider_speed_run 400
 set g_monster_spider_speed_stop 100
 set g_monster_spider_speed_walk 150
-
-set g_monster_spider_drop health
-set g_monster_spider_drop_size large
 // }}}
 
 // {{{ Misc
@@ -193,10 +157,7 @@ set g_monsters_think_delay 0.1
 set g_monsters_skill 1 "Monster skill (affecting some of their attributes). 1 - easy, 2 - medium, 3 - hard, 4 - insane, 5 - nightmare"
 set g_monsters_miniboss_chance 5
 set g_monsters_miniboss_healthboost 100
-set g_monsters_forcedrop 0
 set g_monsters_drop_time 10
-set g_monsters_drop_type armor "Type of item to drop when forced. Possible values are: health, armor, ammo"
-set g_monsters_drop_size medium "Size of the item monsters drop. Possible health/amor values are: small, medium, large. Possible ammo values are: shells, bullets, cells, rockets"
 set g_monsters_owners 1
 set g_monsters_teams 1
 set g_monsters_spawnshieldtime 2
index 6772028f6c85406aa1525d8361565f4a065f5b47..af71727184a62198e1876c34fa93e41599242d33 100644 (file)
@@ -24,57 +24,24 @@ void monster_item_spawn()
        SUB_SetFade(self, time + autocvar_g_monsters_drop_time, 1);
 }
 
-void Monster_DropItem (string itype, string itemsize)
+void monster_dropitem()
 {
+       if(!self.candrop || !self.monster_loot)
+               return;
+
        vector org = self.origin + ((self.mins + self.maxs) * 0.5);
        entity e = spawn();
        
        setorigin(e, org);
        
-       switch(itype)
-       {
-               case "armor":
-               {
-                       switch(itemsize)
-                       {
-                               case "mega": e.monster_loot = spawnfunc_item_armor_large; break;
-                               case "large": e.monster_loot = spawnfunc_item_armor_big; break;
-                               case "medium": e.monster_loot = spawnfunc_item_armor_medium; break;
-                               case "small": e.monster_loot = spawnfunc_item_armor_small; break;
-                       }
-                       break;
-               }
-               case "health":
-               {
-                       switch(itemsize)
-                       {
-                               case "mega": e.monster_loot = spawnfunc_item_health_mega; break;
-                               case "large": e.monster_loot = spawnfunc_item_health_large; break;
-                               case "medium": e.monster_loot = spawnfunc_item_health_medium; break;
-                               case "small": e.monster_loot = spawnfunc_item_health_small; break;
-                       }
-                       break;
-               }
-               case "ammo":
-               {
-                       switch(itemsize)
-                       {
-                               case "shells": e.monster_loot = spawnfunc_item_shells; break;
-                               case "cells": e.monster_loot = spawnfunc_item_cells; break;
-                               case "rockets": e.monster_loot = spawnfunc_item_rockets; break;
-                               case "bullets":
-                               case "nails": e.monster_loot = spawnfunc_item_bullets; break;
-                       }
-                       break;
-               }
-       }
+       e.monster_loot = self.monster_loot;
        
        other = e;
        MUTATOR_CALLHOOK(MonsterDropItem);
        e = other;
-               
+       
        e.think = monster_item_spawn;
-       e.nextthink = time + 0.1;
+       e.nextthink = time + 0.3;
 }
 
 void monsters_setframe(float _frame)
@@ -231,25 +198,6 @@ float monster_melee (entity targ, float damg, float er, float deathtype, float d
        return TRUE;
 }
 
-void Monster_CheckDropCvars (string mon)
-{
-       if not(self.candrop)
-               return; // forced off
-       
-       string dropitem;
-       string dropsize;
-       
-       dropitem = cvar_string(strcat("g_monster_", mon, "_drop"));
-       dropsize = cvar_string(strcat("g_monster_", mon, "_drop_size"));
-       
-       if(autocvar_g_monsters_forcedrop)
-               Monster_DropItem(autocvar_g_monsters_drop_type, autocvar_g_monsters_drop_size);
-       else if(dropitem != "")
-               Monster_DropItem(dropitem, dropsize);      
-       else
-               Monster_DropItem("armor", "medium");
-}
-
 void Monster_CheckMinibossFlag ()
 {
        if(MUTATOR_CALLHOOK(MonsterCheckBossFlag))
@@ -832,7 +780,7 @@ void monster_die()
        self.nextthink = self.ticrate;
        self.ltime = time + 5;
        
-       Monster_CheckDropCvars(self.netname);
+       monster_dropitem();
 
        WaypointSprite_Kill(self.sprite);
                
index 05abfe02393602c4b3a7522422c1420364fb33a5..40cf6126569372c0ae2830138418f9c2acb383a5 100644 (file)
@@ -104,7 +104,8 @@ float m_animus(float req)
                case MR_SETUP:
                {
                        if not(self.health) self.health = MON_CVAR(animus, health);
-                               
+                       
+                       self.monster_loot = spawnfunc_item_health_medium;
                        self.monster_attackfunc = animus_attack;
                        monsters_setframe(animus_anim_stand);
                        
index 015d0abf2c79d6119df4a96ee8bda25e03629232..d0872f7c6a3a5de03d092e74581ced251e29edce 100644 (file)
@@ -95,7 +95,8 @@ float m_bruiser(float req)
                case MR_SETUP:
                {
                        if not(self.health) self.health = MON_CVAR(bruiser, health);
-                               
+                       
+                       self.monster_loot = spawnfunc_item_armor_medium;
                        self.monster_attackfunc = bruiser_attack;
                        monsters_setframe(bruiser_anim_stand);
                        
index d744166d8f93d2e97f373dc7167e3f26a99ac39d..f0268b72817fa825d6b0d361dfdec13c913c740f 100644 (file)
@@ -217,7 +217,8 @@ float m_brute(float req)
                case MR_SETUP:
                {
                        if not(self.health) self.health = MON_CVAR(brute, health);
-                               
+                       
+                       self.monster_loot = spawnfunc_item_bullets;
                        self.monster_attackfunc = brute_attack;
                        monsters_setframe(brute_anim_idle);
                        self.weapon = WEP_GRENADE_LAUNCHER;
index d7acb316f27da61e0b7d0e54a3e6826473e098fe..afbf3aceda9d52d11b3a9826e3abb23e1cca40a0 100644 (file)
@@ -142,7 +142,8 @@ float m_cerberus(float req)
                case MR_SETUP:
                {
                        if not(self.health) self.health = MON_CVAR(cerberus, health);
-                               
+                       
+                       self.monster_loot = spawnfunc_item_health_small;
                        self.monster_attackfunc = cerberus_attack;
                        monsters_setframe(cerberus_anim_idle);
                        
index c841bc09e592775e5238717c6f855f71fd2e7474..f87ca009188174155ee0b93c09ca4845c59c2d3b 100644 (file)
@@ -296,7 +296,8 @@ float m_knight(float req)
                case MR_SETUP:
                {
                        if not(self.health) self.health = MON_CVAR(knight, health);
-                               
+                       
+                       self.monster_loot = spawnfunc_item_armor_big;
                        self.monster_attackfunc = knight_attack;
                        monsters_setframe(knight_anim_stand);
                        
index 00d333497304f38646dcde1803a34342ce73e872..67a3fac95d1a8d44d2ab9a3d63aca3a8886e0969 100644 (file)
@@ -413,7 +413,8 @@ float m_mage(float req)
                case MR_SETUP:
                {
                        if not(self.health) self.health = MON_CVAR(mage, health);
-                               
+                       
+                       self.monster_loot = spawnfunc_item_health_large;
                        self.monster_attackfunc = mage_attack;
                        monsters_setframe(mage_anim_walk);
                        
index b29e8e3efe93f582a44a9d742ab75e324762dd6d..ceddda3a73e8dbbbb7810189a0ee6f462f80c3e0 100644 (file)
@@ -135,7 +135,8 @@ float m_shambler(float req)
                case MR_SETUP:
                {
                        if not(self.health) self.health = MON_CVAR(shambler, health);
-                               
+                       
+                       self.monster_loot = spawnfunc_item_health_mega;
                        self.monster_attackfunc = shambler_attack;
                        monsters_setframe(shambler_anim_stand);
                        self.weapon = WEP_NEX;
index a973c3d50c8de8984269fe0e5a8755698d983f19..93897b48048300b141ae0ffa198229c4e1cebd54 100644 (file)
@@ -77,8 +77,6 @@ void slime_dead()
        self.health = -100; // gibbed
        slime_explode();
        
-       Monster_CheckDropCvars (self.netname); // TODO: add a special function to drop items after death
-       
        self.deadflag = DEAD_DEAD;
        self.think = Monster_Fade;
        self.nextthink = time + 0.1;
@@ -125,7 +123,8 @@ float m_slime(float req)
                case MR_SETUP:
                {
                        if not(self.health) self.health = MON_CVAR(slime, health);
-                               
+                       
+                       self.monster_loot = spawnfunc_item_rockets;
                        self.monster_attackfunc = slime_attack;
                        monsters_setframe(slime_anim_idle);
                        
index 8046170e246376af831f1d70c8385433dcc48e36..8888faa0545ebae82f229a58c93bc4ae752facbd 100644 (file)
@@ -197,7 +197,8 @@ float m_spider(float req)
                {
                        if not(self.health) self.health = MON_CVAR(spider, health);
                        if not(self.spider_type) self.spider_type = MON_CVAR(spider, attack_type);
-                               
+                       
+                       self.monster_loot = spawnfunc_item_health_medium;
                        self.monster_attackfunc = spider_attack;
                        monsters_setframe(spider_anim_idle);
                        
index c93b728facfaec01b59faad1c1d5beeb5a85fa99..dc11f84678000accafd2a64851b9b54cb0df46f2 100644 (file)
@@ -74,7 +74,8 @@ float m_stingray(float req)
                case MR_SETUP:
                {
                        if not(self.health) self.health = MON_CVAR(stingray, health);
-                               
+                       
+                       self.monster_loot = spawnfunc_item_health_small;
                        self.monster_attackfunc = stingray_attack;
                        monsters_setframe(stingray_anim_swim);
                        
index 9ca7b66339cdbc1a31c7f9f707852c8566dfc10b..9b0c0281c623d862d0debe0c6b1bff9a038f033c 100644 (file)
@@ -131,7 +131,8 @@ float m_wyvern(float req)
                case MR_SETUP:
                {
                        if not(self.health) self.health = MON_CVAR(wyvern, health);
-                               
+                       
+                       self.monster_loot = spawnfunc_item_cells;
                        self.monster_attackfunc = wyvern_attack;
                        monsters_setframe(wyvern_anim_hover);
                        
index d698b4a731124e50144251a7ad1afce6e6f539dd..c3afdea88ff7fd2c536e2bf5a7dfb6ab5f195ffd 100644 (file)
@@ -142,7 +142,8 @@ float m_zombie(float req)
                case MR_SETUP:
                {
                        if not(self.health) self.health = MON_CVAR(zombie, health);
-                               
+                       
+                       self.monster_loot = spawnfunc_item_health_medium;
                        self.monster_attackfunc = zombie_attack;
                        monsters_setframe(zombie_anim_spawn);
                        self.spawn_time = time + 2.1;
index c414382b6aac6cf2f136a80b8c2006f5e16857b4..622ab1af5ed459b340bde1ce0b20371cfde362d6 100644 (file)
@@ -1239,10 +1239,7 @@ float autocvar_g_monsters_typefrag;
 float autocvar_g_monsters_owners;
 float autocvar_g_monsters_miniboss_chance;
 float autocvar_g_monsters_miniboss_healthboost;
-float autocvar_g_monsters_forcedrop;
 float autocvar_g_monsters_drop_time;
-string autocvar_g_monsters_drop_type;
-string autocvar_g_monsters_drop_size;
 float autocvar_g_monsters_spawnshieldtime;
 float autocvar_g_monsters_teams;
 float autocvar_g_monsters_healthbars;