Browse Source

various small fixes

master
Alison Watson 2 years ago
parent
commit
f26743600c
8 changed files with 28 additions and 28 deletions
  1. +2
    -2
      source/ai_subs.qc
  2. +6
    -13
      source/c_combat.qc
  3. +7
    -0
      source/c_defs.qc
  4. +2
    -2
      source/m_boss.qc
  5. +1
    -1
      source/m_shalrath.qc
  6. +3
    -5
      source/m_shambler.qc
  7. +2
    -3
      source/p_weapons.qc
  8. +5
    -2
      todo

+ 2
- 2
source/ai_subs.qc View File

@@ -277,13 +277,13 @@ some monsters refire twice automatically

void(float normal) sub_attack_finished = {
self.cnt = 0; // refire count for nightmare
if(skill != 3) {
if(skill != SK_NIGHTMARE) {
self.attack_finished = time + normal;
}
};

void(void() thinkst) sub_check_refire = {
if(skill != 3) {
if(skill != SK_NIGHTMARE) {
return;
}
if(self.cnt == 1) {


+ 6
- 13
source/c_combat.qc View File

@@ -113,15 +113,9 @@ void(entity targ, entity inflictor, entity attacker, float damage) ent_damage =
float take;

// team play damage avoidance
if(teamplay == 1 && is_same_team(targ, attacker)) {
return;
}

if(teamplay == 3 && are_both_players(targ, attacker)) {
return;
}

if(!targ.takedamage) {
if((teamplay == 1 && is_same_team(targ, attacker)) ||
(teamplay == 3 && are_both_players(targ, attacker)) ||
!targ.takedamage) {
return;
}

@@ -134,7 +128,6 @@ void(entity targ, entity inflictor, entity attacker, float damage) ent_damage =
}

// save damage based on the target's armor level

save = ceil(targ.armortype * damage);
if(save >= targ.armorvalue) {
save = targ.armorvalue;
@@ -184,8 +177,8 @@ void(entity targ, entity inflictor, entity attacker, float damage) ent_damage =
oldself = self;
self = targ;

if((self.flags & FL_MONSTER) && attacker != world) {
// get mad unless of the same class(except for soldiers)
if(self.flags & FL_MONSTER && attacker != world) {
// get mad unless of the same class (except for soldiers)
if(self != attacker && attacker != self.enemy) {
if((self.classname != attacker.classname)
|| (self.classname == "monster_army")) {
@@ -201,7 +194,7 @@ void(entity targ, entity inflictor, entity attacker, float damage) ent_damage =
if(self.th_pain) {
self.th_pain(attacker, take);
// nightmare mode monsters don't go into pain frames often
if(skill == 3) {
if(skill == SK_NIGHTMARE) {
self.pain_finished = time + 5;
}
}


+ 7
- 0
source/c_defs.qc View File

@@ -608,6 +608,13 @@ enum {
AI_MONSTER_HIGH = 48,
};

enum {
SK_EASY,
SK_NORMAL,
SK_HARD,
SK_NIGHTMARE,
};

// super co-op additions
enum {
PRO_NONE,


+ 2
- 2
source/m_boss.qc View File

@@ -192,7 +192,7 @@ void(vector p) boss_missile = {
org = self.origin + p_x * v_forward + p_y * v_right + p_z*'0 0 1';

// lead the player on hard mode
if(skill > 1) {
if(skill > SK_NORMAL) {
t = vec_len(self.enemy.origin - org) / 300;
vec = self.enemy.velocity;
vec_z = 0;
@@ -225,7 +225,7 @@ void() boss_awake = {
set_model(self, "progs/boss.mdl");
set_size(self, '-128 -128 -24', '128 128 256');

if(skill == 0) {
if(skill == SK_EASY) {
self.health = 1;
} else {
self.health = 3;


+ 1
- 1
source/m_shalrath.qc View File

@@ -158,7 +158,7 @@ void() shalrath_home = {
return;
}
dir = normalize(vtemp - self.origin);
if(skill == 3) {
if(skill == SK_NIGHTMARE) {
self.velocity = dir * 350;
} else {
self.velocity = dir * 250;


+ 3
- 5
source/m_shambler.qc View File

@@ -313,12 +313,10 @@ void() sham_magic6 = [ $magic6, sham_magic9 ] {
sham_cast_lightning();
sound(self, CHAN_WEAPON, "shambler/sboom.wav", 1, ATTN_NORM);
};
void() sham_magic9 = [ $magic9, sham_magic10 ]
{sham_cast_lightning();};
void() sham_magic10 = [ $magic10, sham_magic11 ]
{sham_cast_lightning();};
void() sham_magic9 = [ $magic9, sham_magic10 ] {sham_cast_lightning();};
void() sham_magic10 = [ $magic10, sham_magic11 ] {sham_cast_lightning();};
void() sham_magic11 = [ $magic11, sham_magic12 ] {
if(skill == 3) {
if(skill == SK_NIGHTMARE) {
sham_cast_lightning();
}
};


+ 2
- 3
source/p_weapons.qc View File

@@ -201,8 +201,7 @@ Go to the trouble of combining multiple pellets into a single damage call.
================
*/
void(float shotcount, vector dir, vector spread) fire_bullets = {
vector direction;
vector src;
vector direction, src;

make_vectors(self.v_angle);

@@ -382,7 +381,7 @@ void(vector p1, vector p2, entity from, float damage) lightning_damage = {
f_x = 0 - f_y;
f_y = f_x;
f_z = 0;
f = f * 16;
f *= 16;

e1 = e2 = world;



+ 5
- 2
todo View File

@@ -19,8 +19,7 @@ extraneous features:

add expansion pack entities
emotes
player sound effect option
players shoot through eachother (teamplay 4?)
player sounds option
selectable player models and skins
sound clips
third person player weapon models
@@ -38,3 +37,7 @@ no friendly fire
rename all functions to be lower_underscore
restart map after 10 seconds when everyone is dead
users can cancel map ends ("<name> initiated travel to <mapname>")

rejected:

players shoot through eachother (teamplay 4?) (can theoretically be done in quakec but the math is too complex)

Loading…
Cancel
Save