From: Mario Date: Mon, 11 Feb 2013 20:36:40 +0000 (+1100) Subject: Replace cloaked soldier with a familiar marine X-Git-Tag: xonotic-v0.8.0~241^2^2~519 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=d18c04bda898c17c1e2d3234924ddf389f13ceb5;p=xonotic%2Fxonotic-data.pk3dir.git Replace cloaked soldier with a familiar marine --- diff --git a/models/monsters/soldier.mdl b/models/monsters/soldier.mdl deleted file mode 100644 index a0cd4d7c7..000000000 Binary files a/models/monsters/soldier.mdl and /dev/null differ diff --git a/models/monsters/soldier.mdl.framegroups b/models/monsters/soldier.mdl.framegroups deleted file mode 100644 index 0d6938607..000000000 --- a/models/monsters/soldier.mdl.framegroups +++ /dev/null @@ -1 +0,0 @@ -1 8 10 1 // ogre stand 10 15 10 1 // ogre walk 26 7 10 1 // ogre run 34 13 10 1 // ogre swing 48 13 10 1 // ogre smash 62 5 10 1 // ogre shoot 68 4 10 0 // ogre pain1 73 2 10 0 // ogre pain2 76 5 10 0 // ogre pain3 82 15 10 0 // ogre pain4 98 14 10 0 // ogre pain5 113 13 10 0 // ogre death1 127 9 10 0 // ogre death2 137 10 10 0 // ogre pull \ No newline at end of file diff --git a/models/monsters/soldier.zym b/models/monsters/soldier.zym new file mode 100644 index 000000000..1615af482 Binary files /dev/null and b/models/monsters/soldier.zym differ diff --git a/qcsrc/server/monsters/monster/soldier.qc b/qcsrc/server/monsters/monster/soldier.qc index 54c7849e8..a5bea6d93 100644 --- a/qcsrc/server/monsters/monster/soldier.qc +++ b/qcsrc/server/monsters/monster/soldier.qc @@ -16,16 +16,40 @@ float autocvar_g_monster_soldier_weapon_rocketlauncher_chance; float autocvar_g_monster_soldier_attack_uzi_bullets; // animations -#define soldier_anim_stand 0 -#define soldier_anim_death1 1 -#define soldier_anim_death2 2 -#define soldier_anim_reload 3 -#define soldier_anim_pain1 4 -#define soldier_anim_pain2 5 -#define soldier_anim_pain3 6 -#define soldier_anim_run 7 -#define soldier_anim_shoot 8 -#define soldier_anim_prowl 9 +#define soldier_anim_die1 0 +#define soldier_anim_die2 1 +#define soldier_anim_draw 2 +#define soldier_anim_duck 3 +#define soldier_anim_duckwalk 4 +#define soldier_anim_duckjump 5 +#define soldier_anim_duckidle 6 +#define soldier_anim_idle 7 +#define soldier_anim_jump 8 +#define soldier_anim_pain1 9 +#define soldier_anim_pain2 10 +#define soldier_anim_shoot 11 +#define soldier_anim_taunt 12 +#define soldier_anim_run 13 +#define soldier_anim_runbackwards 14 +#define soldier_anim_strafeleft 15 +#define soldier_anim_straferight 16 +#define soldier_anim_dead1 17 +#define soldier_anim_dead2 18 +#define soldier_anim_forwardright 19 +#define soldier_anim_forwardleft 20 +#define soldier_anim_backright 21 +#define soldier_anim_backleft 22 + +//#define soldier_anim_stand 0 +//#define soldier_anim_death1 1 +//#define soldier_anim_death2 2 +//#define soldier_anim_reload 3 +//#define soldier_anim_pain1 4 +//#define soldier_anim_pain2 5 +//#define soldier_anim_pain3 6 +//#define soldier_anim_run 7 +//#define soldier_anim_shoot 8 +//#define soldier_anim_prowl 9 void soldier_think () { @@ -38,12 +62,12 @@ void soldier_think () if(time < self.attack_finished_single) monster_move(0, 0, 0, soldier_anim_shoot, soldier_anim_shoot, soldier_anim_shoot); else - monster_move(autocvar_g_monster_soldier_speed_run, autocvar_g_monster_soldier_speed_walk, 50, soldier_anim_run, soldier_anim_prowl, soldier_anim_stand); + monster_move(autocvar_g_monster_soldier_speed_run, autocvar_g_monster_soldier_speed_walk, 50, soldier_anim_run, soldier_anim_run, soldier_anim_idle); } void soldier_reload () { - self.frame = soldier_anim_reload; + self.frame = soldier_anim_draw; self.attack_finished_single = time + 2; self.currentammo = autocvar_g_monster_soldier_ammo; sound (self, CH_SHOTS, "weapons/reload.wav", VOL_BASE, ATTN_LARGE); @@ -221,6 +245,8 @@ void soldier_die() { Monster_CheckDropCvars ("soldier"); + remove(self.weaponentity); + self.solid = SOLID_NOT; self.takedamage = DAMAGE_NO; self.event_damage = func_null; @@ -229,6 +255,7 @@ void soldier_die() self.think = Monster_Fade; self.nextthink = time + 2.1; self.pain_finished = self.nextthink; + self.weaponentity = world; if (self.attack_ranged == soldier_missile_uzi) W_ThrowNewWeapon(self, WEP_UZI, 0, self.origin, self.velocity); @@ -240,9 +267,9 @@ void soldier_die() W_ThrowNewWeapon(self, WEP_LASER, 0, self.origin, self.velocity); if (random() < 0.5) - self.frame = soldier_anim_death1; + self.frame = soldier_anim_die1; else - self.frame = soldier_anim_death2; + self.frame = soldier_anim_die2; monster_hook_death(); // for post-death mods } @@ -256,9 +283,10 @@ void soldier_spawn () self.classname = "monster_soldier"; self.checkattack = SoldierCheckAttack; self.attack_melee = soldier_bash; + self.frame = soldier_anim_draw; self.nextthink = time + random() * 0.5 + 0.1; self.think = soldier_think; - self.sprite_height = 30 * self.scale; + self.sprite_height = 45 * self.scale; self.items = (IT_SHELLS | IT_ROCKETS | IT_NAILS); RandomSelection_Init(); @@ -267,6 +295,12 @@ void soldier_spawn () RandomSelection_Add(world, WEP_UZI, string_null, autocvar_g_monster_soldier_weapon_machinegun_chance, 1); RandomSelection_Add(world, WEP_ROCKET_LAUNCHER, string_null, autocvar_g_monster_soldier_weapon_rocketlauncher_chance, 1); + self.weaponentity = spawn(); + self.weaponentity.movetype = MOVETYPE_NOCLIP; + self.weaponentity.owner = self; + setmodel(self.weaponentity, "models/weapons/v_seeker.md3"); + setattachment(self.weaponentity, self, "bip01 r hand"); + if (RandomSelection_chosen_float == WEP_ROCKET_LAUNCHER) { self.weapon = WEP_ROCKET_LAUNCHER; @@ -317,11 +351,9 @@ void spawnfunc_monster_soldier () return; } - self.scale = 1.3; - if not (monster_initialize( "Grunt", - "models/monsters/soldier.mdl", + "models/monsters/soldier.zym", SOLDIER_MIN, SOLDIER_MAX, FALSE, soldier_die, soldier_spawn)) diff --git a/textures/marine.tga b/textures/marine.tga new file mode 100644 index 000000000..752c40f64 Binary files /dev/null and b/textures/marine.tga differ diff --git a/textures/marine_gloss.tga b/textures/marine_gloss.tga new file mode 100644 index 000000000..deb4151cb Binary files /dev/null and b/textures/marine_gloss.tga differ diff --git a/textures/marine_glow.tga b/textures/marine_glow.tga new file mode 100644 index 000000000..9af5a193a Binary files /dev/null and b/textures/marine_glow.tga differ diff --git a/textures/marine_norm.tga b/textures/marine_norm.tga new file mode 100644 index 000000000..850ce4954 Binary files /dev/null and b/textures/marine_norm.tga differ diff --git a/textures/marine_pants.tga b/textures/marine_pants.tga new file mode 100644 index 000000000..1f295b800 Binary files /dev/null and b/textures/marine_pants.tga differ diff --git a/textures/marine_shirt.tga b/textures/marine_shirt.tga new file mode 100644 index 000000000..a31f3d098 Binary files /dev/null and b/textures/marine_shirt.tga differ