void Monster_DropItem (string itype, string itemsize)
{
- if(itype == "0")
- return; // someone didnt want an item...
vector backuporigin = self.origin + ((self.mins + self.maxs) * 0.5);
entity oldself;
else if (itemsize == "rockets") spawnfunc_item_rockets();
else print("Invalid monster drop item selected.\n");
}
+ else
+ {
+ print("Invalid monster drop item selected.\n");
+ self = oldself;
+ return;
+ }
self.velocity = randomvec() * 175 + '0 0 325';
self.effects |= (EF_FULLBRIGHT | EF_RED);
}
self.health += healthboost;
- self.cnt += 20;
ScaleMonster(1.5);
self.flags |= MONSTERFLAG_MINIBOSS;
if(teamplay && autocvar_g_monsters_teams)
return;
- do
- {
- self.colormod_x = random();
- self.colormod_y = random();
- self.colormod_z = random();
- self.colormod = normalize(self.colormod);
- }
- while (self.colormod_x > 0.6 && self.colormod_y > 0.6 && self.colormod_z > 0.6);
+
+ self.colormod = randomvec();
}
}
self.health = max(1, self.revive_progress * self.max_health);
if(self.sprite)
- {
WaypointSprite_UpdateHealth(self.sprite, self.health);
- }
+
+ movelib_beak_simple(stopspeed);
self.velocity = '0 0 0';
self.enemy = world;
self.health -= damage;
if(self.sprite)
- {
WaypointSprite_UpdateHealth(self.sprite, self.health);
- }
self.dmg_time = time;
if(sound_allowed(MSG_BROADCAST, attacker) && deathtype != DEATH_DROWN)
spamsound (self, CH_PAIN, "misc/bodyimpact1.wav", VOL_BASE, ATTN_NORM); // FIXME: PLACEHOLDER
- if(self.damageforcescale < 1 && self.damageforcescale > 0)
- self.velocity += force * self.damageforcescale;
- else
- self.velocity += force;
+ self.velocity += force * self.damageforcescale;
if(deathtype != DEATH_DROWN)
{
if(chance < 0.10 || self.flags & MONSTERFLAG_MINIBOSS)
{
- self.superweapons_finished = time + autocvar_g_balance_superweapons_time;
+ self.superweapons_finished = time + autocvar_g_balance_superweapons_time + 5; // give the player a few seconds to find the weapon
W_ThrowNewWeapon(self, WEP_FIREBALL, 0, self.origin, self.velocity);
}