1
0
Fork 0
forked from fn/valve

monster_human_grunt: add initial set of schedules

This commit is contained in:
Marco Cawthorne 2025-01-14 03:28:43 -08:00
parent 6bfda4d419
commit d3e22907b5
56 changed files with 381 additions and 164 deletions

View file

@ -24,20 +24,6 @@ ClientGame_EventParse(float fHeader)
case EV_HITNOTIFY:
pSeatLocal->m_flDamageIndicator = 1.0f;
break;
case EV_BLOOD:
vector vBloodPos = g_vec_null;
vector vBloodColor = g_vec_null;
vBloodPos[0] = readcoord();
vBloodPos[1] = readcoord();
vBloodPos[2] = readcoord();
vBloodColor[0] = readbyte() / 255;
vBloodColor[1] = readbyte() / 255;
vBloodColor[2] = readbyte() / 255;
FX_Blood(vBloodPos, vBloodColor);
break;
case EV_GAUSSBEAM:
FX_GaussBeam_Parse();
break;

View file

@ -70,7 +70,6 @@ ClientGame_RendererRestart(string rstr)
Damage_Precache();
Obituary_Precache();
FX_Blood_Init();
FX_GaussBeam_Init();
BEAM_TRIPMINE = particleeffectnum("weapon_tripmine.beam");

View file

@ -38,6 +38,7 @@ void
CodeCallback_StartGameType(void)
{
motd.LoadDefault();
precache.Entity("player_mp");
if (IsTeamplay() == true) {
int c;

View file

@ -45,7 +45,7 @@ AllowFlashlight(void)
void
CodeCallback_StartGameType(void)
{
ents.Precache(autocvar_invasion_monsterClass);
precache.Entity(autocvar_invasion_monsterClass);
motd.LoadDefault();
game.SetSpawnPoint("info_player_deathmatch");

View file

@ -32,7 +32,7 @@ void world_items::world_items(void)
spawnfunc_item_battery();
break;
case 45:
spawnfunc_item_suit();
spawnfunc_HLSuit();
break;
default:
}

View file

@ -1,117 +0,0 @@
/*
* Copyright (c) 2016-2020 Marco Cawthorne <marco@icculus.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifdef CLIENT
var float PARTICLE_BLOOD;
var int DECAL_BLOOD;
void
FX_Blood_Init(void)
{
precache_model("sprites/bloodspray.spr");
precache_model("sprites/blood.spr");
PARTICLE_BLOOD = particleeffectnum("part_blood");
DECAL_BLOOD = particleeffectnum("decal_blood.effect");
}
#endif
void
FX_Blood(vector pos, vector color)
{
#ifdef SERVER
WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET);
WriteByte(MSG_MULTICAST, EV_BLOOD);
WriteCoord(MSG_MULTICAST, pos[0]);
WriteCoord(MSG_MULTICAST, pos[1]);
WriteCoord(MSG_MULTICAST, pos[2]);
WriteByte(MSG_MULTICAST, color[0] * 255);
WriteByte(MSG_MULTICAST, color[1] * 255);
WriteByte(MSG_MULTICAST, color[2] * 255);
msg_entity = self;
multicast(pos, MULTICAST_PVS);
#else
static void Blood_Touch(void)
{
if (self.think != ncEntity::Destroy) {
if (serverkeyfloat("*bspversion") == BSPVER_HL)
Decals_Place(self.origin, sprintf("{blood%d", floor(random(1,9))));
else {
decal_pickwall(self, self.origin);
pointparticles(DECAL_BLOOD, g_tracedDecal.endpos, g_tracedDecal.normal, 1);
}
}
self.think = ncEntity::Destroy;
self.nextthink = time + 5.0f;
}
static void ABlood_Touch(void)
{
if (self.think != ncEntity::Destroy) {
if (serverkeyfloat("*bspversion") == BSPVER_HL)
Decals_Place(self.origin, sprintf("{yblood%d", floor(random(1,9))));
else {
decal_pickwall(self, self.origin);
pointparticles(DECAL_BLOOD, g_tracedDecal.endpos, g_tracedDecal.normal, 1);
}
}
self.think = ncEntity::Destroy;
self.nextthink = time + 5.0f;
}
if (cvar("violence_hblood") <= 0) {
return;
}
env_sprite eBlood = spawn(env_sprite);
eBlood.SetOrigin(pos);
eBlood.SetModel("sprites/bloodspray.spr");
eBlood.SetMaxFrame(modelframecount(eBlood.modelindex));
eBlood.SetFramerate(20);
eBlood.SetLoopFlag(false);
eBlood.SetScale(0.25f);
eBlood.SetRenderColor(color);
eBlood.SetRenderMode(RM_COLOR);
eBlood.SetRenderAmt(1.0f);
eBlood.nextthink = time + 0.05f;
for (int i = 0; i < 3; i++) {
ncRenderableEntity ePart = spawn(ncRenderableEntity);
ePart.SetOrigin(pos);
ePart.SetModel("sprites/blood.spr");
ePart.SetMovetype(MOVETYPE_BOUNCE);
ePart.SetGravity(0.5f);
ePart.SetScale(0.25f);
ePart.SetFrame((random() < 0.5) ? 0 : 1);
ePart.SetRenderColor(color);
ePart.SetRenderMode(RM_COLOR);
ePart.SetRenderAmt(1.0f);
ePart.SetVelocity(randomvec() * 96 + [0,0,64]);
ePart.SetSolid(SOLID_BBOX);
ePart.SetSize([0,0,0], [0,0,0]);
if (color[1] != 0 && color[2] != 0)
ePart.touch = ABlood_Touch;
else
ePart.touch = Blood_Touch;
/* ignore player physics */
ePart.dimension_solid = 1;
ePart.dimension_hit = 1;
ePart.hitcontentsmaski = 0;
}
#endif
}

View file

@ -5,7 +5,6 @@
../../../valve/src/shared/skeleton.h
../../../valve/src/shared/player.qc
../../../valve/src/shared/animations.qc
../../../valve/src/shared/fx_blood.qc
../../../valve/src/shared/fx_gaussbeam.qc
../../../valve/src/shared/HLGaussBeam.qc
../../../valve/src/shared/HLWeapon.qc

View file

@ -7,4 +7,5 @@ entityDef item_healthkit
"snd_acquire" "item.healthkit"
"snd_respawn" "item.respawn"
"inv_health" "skill:healthkit"
"droptofloor" "1"
}

View file

@ -23,7 +23,6 @@ entityDef monster_barney
"snd_death" "Barney.Die"
"snd_ranged_attack" "Barney.FirePistol"
"snd_reload" "HGrunt.Reload"
"snd_thud" "AI_BaseNPC.BodyDrop_Light"
"talk_answer" "!BA_ANSWER"
"talk_ask" "!BA_QUESTION"

View file

@ -18,11 +18,10 @@ entityDef monster_bullchicken
"def_attack_melee" "melee_bullchicken_tailwhip"
"def_attack_melee2" "melee_bullchicken_bite"
"snd_alert" "Bullsquid.Alert"
"snd_alert" "Bullsquid.Growl"
"snd_idle" "Bullsquid.Idle"
"snd_pain" "Bullsquid.Pain"
"snd_death" "Bullsquid.Die"
// Bullsquid.Growl
events {
1 "SpawnProjectileDef" "ranged_bullchicken_spit"
@ -74,4 +73,4 @@ entityDef ranged_bullchicken_spit
entityDef damage_spitDirect
{
damage "skill:bullsquid_dmg_spit"
}
}

View file

@ -1,6 +1,6 @@
entityDef monster_human_grunt
{
"spawnclass" "ncSquadMonster"
"spawnclass" "ncTalkMonster"
"model" "models/hgrunt.mdl"
"netname" "Grunt"
"health" "skill:hgrunt_health"
@ -38,6 +38,10 @@ entityDef monster_human_grunt
"snd_death" "HGrunt.Die"
"snd_reload" "HGrunt.Reload"
"weapons" "3"
"mindset_idle" "hgrunt_idle"
"mindset_defense" "hgrunt_takeCover"
"mindset_combat" "hgrunt_combatFace"
"squad_leader_body" "1:2"
@ -63,6 +67,13 @@ entityDef monster_human_grunt
// animation event callbacks
events {
2 "StartSoundDef" "HGrunt.Reload"
3 "SpawnProjectileDef" "melee_hgrunt_kick"
4 "SpawnProjectileDef" "ranged_hgrunt_mp5"
5 "SpawnProjectileDef" "ranged_hgrunt_mp5"
6 "SpawnProjectileDef" "ranged_hgrunt_mp5"
7 "SpawnProjectileDef" "projectile_hgrunt_grenade"
8 "SpawnProjectileDef" "projectile_hgrunt_ARgrenade"
9 "SpawnProjectileDef" "projectile_hgrunt_grenadePlant"
}
}
@ -145,8 +156,14 @@ entityDef projectile_hgrunt_grenade
"explode_light_radius" "320"
"explode_light_fadetime" "0.5"
"snd_explode" "weapon_handgrenade.explode"
"snd_bounce" "weapon_handgrenade.bounce"
"snd_explode" "BaseExplosionEffect.Sound"
"snd_bounce" "Weapon_HandGrenade.GrenadeBounce"
}
entityDef projectile_hgrunt_grenade Plant
{
"inherit" "projectile_hgrunt_grenade"
"velocity" "15 0 128"
}
entityDef damage_grenadeSplash

View file

@ -20,13 +20,13 @@ entityDef monster_snark
// Snark.Deploy
"snd_attack" "Snark.Bounce"
"snd_pain" "Snark.Pain"
"snd_pain" "Snark.Die"
"snd_death" "Snark.Die"
"snd_gib" "Snark.Gibbed"
"leap_damage" "skill:snark_dmg_bite"
events {
jump "AddVelocity" "512 0 250"
jump "StartSoundDef" "monster_snark.attack"
jump "StartSoundDef" "Snark.Squeak"
}
}

View file

@ -7,6 +7,21 @@ entityDef player
"propdata" "actor_human"
"armorProtection" "0.2"
"armorBonus" "0.5"
"snd_stepladderLeft" "step_ladder.left"
"snd_stepladderRight" "step_ladder.right"
"snd_fall" "Player.FallDamage"
"snd_landHard" "Player.LightFall"
"snd_death" "Player.Death"
"snd_airGaspLight" "Player.GaspLight"
"snd_pain" "Player.Pain"
"snd_airGaspHeavy" "Player.GaspHeavy"
"snd_waterExit" "Player.WaterExit"
"snd_waterEnter" "Player.WaterEnter"
"snd_useDeny" "Player.DenyWeaponSelection"
"snd_useSuccess" "Player.WeaponSelected"
"snd_waterWade" "Player.Wade"
"snd_waterSwim" "Player.Swim"
}
entityDef player_mp

View file

@ -9,7 +9,7 @@ entityDef weapon_357
"spawnclass" "HLWeapon"
"model" "models/w_357.mdl"
"model_view" "models/v_357.mdl"
"snd_acquire" "weapon.pickup"
"snd_acquire" "Player.PickupWeapon"
"snd_respawn" "item.respawn"
// weapon specific

View file

@ -9,7 +9,7 @@ entityDef weapon_9mmAR
"spawnclass" "HLWeapon"
"model" "models/w_9mmAR.mdl"
"model_view" "models/v_9mmAR.mdl"
"snd_acquire" "weapon.pickup"
"snd_acquire" "Player.PickupWeapon"
"snd_respawn" "item.respawn"
// ncWeapon specific

View file

@ -19,7 +19,7 @@ entityDef weapon_9mmhandgun
"spawnclass" "HLWeapon"
"model" "models/w_9mmhandgun.mdl"
"model_view" "models/v_9mmhandgun.mdl"
"snd_acquire" "weapon.pickup"
"snd_acquire" "Player.PickupWeapon"
"snd_respawn" "item.respawn"
// weapon specific

View file

@ -9,7 +9,7 @@ entityDef weapon_crossbow
"spawnclass" "HLWeapon"
"model" "models/w_crossbow.mdl"
"model_view" "models/v_crossbow.mdl"
"snd_acquire" "weapon.pickup"
"snd_acquire" "Player.PickupWeapon"
"snd_respawn" "item.respawn"
// weapon specific

View file

@ -9,7 +9,7 @@ entityDef weapon_crowbar
"spawnclass" "HLWeapon"
"model" "models/w_crowbar.mdl"
"model_view" "models/v_crowbar.mdl"
"snd_acquire" "weapon.pickup"
"snd_acquire" "Player.PickupWeapon"
"snd_respawn" "item.respawn"
// weapon specific

View file

@ -9,7 +9,7 @@ entityDef weapon_egon
"spawnclass" "HLWeapon"
"model" "models/w_egon.mdl"
"model_view" "models/v_egon.mdl"
"snd_acquire" "weapon.pickup"
"snd_acquire" "Player.PickupWeapon"
"snd_respawn" "item.respawn"
"def_onFire" "projectile_egonbeam"

View file

@ -9,7 +9,7 @@ entityDef weapon_gauss
"spawnclass" "HLWeapon"
"model" "models/w_gauss.mdl"
"model_view" "models/v_gauss.mdl"
"snd_acquire" "weapon.pickup"
"snd_acquire" "Player.PickupWeapon"
"snd_respawn" "item.respawn"
// weapon specific

View file

@ -9,7 +9,7 @@ entityDef weapon_handgrenade
"spawnclass" "HLWeapon"
"model" "models/w_grenade.mdl"
"model_view" "models/v_grenade.mdl"
"snd_acquire" "weapon.pickup"
"snd_acquire" "Player.PickupWeapon"
"snd_respawn" "item.respawn"
"inv_name" "Hand Grenade"

View file

@ -9,7 +9,7 @@ entityDef weapon_rpg
"spawnclass" "HLWeapon"
"model" "models/w_rpg.mdl"
"model_view" "models/v_rpg.mdl"
"snd_acquire" "weapon.pickup"
"snd_acquire" "Player.PickupWeapon"
"snd_respawn" "item.respawn"
"def_fireInfo" "fireInfo_rpg"

View file

@ -9,7 +9,7 @@ entityDef weapon_satchel
"spawnclass" "HLWeapon"
"model" "models/w_satchel.mdl"
"model_view" "models/v_satchel.mdl"
"snd_acquire" "weapon.pickup"
"snd_acquire" "Player.PickupWeapon"
"snd_respawn" "item.respawn"
"def_fireInfo" "fireInfo_satchel_primary"

View file

@ -9,7 +9,7 @@ entityDef weapon_shotgun
"spawnclass" "HLWeapon"
"model" "models/w_shotgun.mdl"
"model_view" "models/v_shotgun.mdl"
"snd_acquire" "weapon.pickup"
"snd_acquire" "Player.PickupWeapon"
"snd_respawn" "item.respawn"
// weapon specific
@ -113,6 +113,7 @@ entityDef fireInfo_altShotgun_mp
"ammoPerShot" "2"
"fireRate" "1.5"
"punchAngle" "-10 0 0"
"act_fire" "2"
}
entityDef weapon_shotgun_mp

View file

@ -10,7 +10,7 @@ entityDef weapon_snark
"model" "models/w_sqknest.mdl"
"model_view" "models/v_squeak.mdl"
"frame" "1"
"snd_acquire" "weapon.pickup"
"snd_acquire" "Player.PickupWeapon"
"snd_respawn" "item.respawn"
"inv_name" "Snark"

View file

@ -12,7 +12,7 @@ entityDef weapon_tripmine
"body0" "2"
"body1" "2"
"frame" "8"
"snd_acquire" "weapon.pickup"
"snd_acquire" "Player.PickupWeapon"
"snd_respawn" "item.respawn"
"def_fireInfo" "fireInfo_tripminePlant"

View file

@ -0,0 +1,13 @@
typeInfo hgrunt_combatFace
{
"task_1" "StopMovement"
"task_2" "PlayActivity idleAngry"
"task_3" "TurnToEnemy"
"task_4" "PerformSchedule hgrunt_sweep"
"fail_onNewEnemy" "1"
"fail_onDeadEnemy" "1"
"fail_onDamage" "1"
"fail_onCanRangedAttack1" "1"
"fail_onCanRangedAttack2" "1"
"Damage" "ChangeMindset defense"
}

View file

@ -0,0 +1,9 @@
typeInfo hgrunt_combatFail
{
"task_1" "StopMovement"
"task_2" "PlayActivity combatIdle"
"task_3" "TurnToEnemy"
"task_4" "WaitPVS"
"fail_onCanRangedAttack1" "1"
"fail_onCanRangedAttack2" "1"
}

View file

@ -0,0 +1,9 @@
typeInfo hgrunt_establishLoF
{
"task_1" "SetFailSchedule hgrunt_fail"
"task_2" "TargetEnemy"
"task_3" "Sentence !HG_COVER"
"task_4" "RunToTarget"
"task_5" "WaitForMovement"
"task_6" "PerformSchedule hgrunt_rangedAttack1A"
}

View file

@ -0,0 +1,12 @@
typeInfo hgrunt_fail
{
"task_1" "StopMovement"
"task_2" "PlayActivity idle"
"task_3" "Wait 2"
"task_4" "WaitPVS"
"fail_onCanRangedAttack1" "1"
"fail_onCanRangedAttack2" "1"
"fail_onCanMeleeAttack1" "1"
"fail_onCanMeleeAttack2" "1"
"NewEnemy" "PerformSchedule hgrunt_combatFace"
}

View file

@ -0,0 +1,7 @@
typeInfo hgrunt_foundEnemy
{
"task_1" "StopMovement"
"task_2" "TurnToEnemy"
"task_3" "PlayActivity signal1"
"task_4" "ChangeMindset combat"
}

View file

@ -0,0 +1,11 @@
typeInfo hgrunt_grenadeCover
{
"task_1" "StopMovement"
"task_2" "FindCoverNodeFromEnemy 99"
"task_3" "FindFarCoverNodeFromEnemy 384"
"task_4" "PlayActivity specialAttack1"
"task_5" "CLEAR MOVE WAIT ?"
"task_6" "RunToTarget"
"task_7" "WaitForMovement"
"task_8" "PerformSchedule hgrunt_WaitInCover"
}

View file

@ -0,0 +1,13 @@
typeInfo hgrunt_hideReload
{
"task_1" "StopMovement"
"task_2" "SetFailSchedule reload"
"task_3" "FindCoverFromEnemy"
"task_4" "RunToTarget"
"task_5" "WaitForMovement"
"task_6" "Remember inCover"
"task_7" "TurnToEnemy"
"task_8" "PlayActivity reload"
"fail_onHeavyDamage" "1"
"fail_onAlertSound" "1"
}

View file

@ -0,0 +1,11 @@
typeInfo hgrunt_idle
{
"task_1" "StopMovement"
"task_2" "PlayActivity idle"
"task_3" "Wait 2"
"task_4" "WaitPVS"
"fail_onNewEnemy" "1"
"fail_onDamage" "1"
"NewEnemy" "PerformSchedule hgrunt_foundEnemy"
"Damage" "PerformSchedule hgrunt_takeCover"
}

View file

@ -0,0 +1,25 @@
typeInfo hgrunt_rangedAttack1A
{
"task_1" "StopMovement"
"task_2" "TurnToEnemy"
"task_3" "PlayActivity crouch"
"task_4" "TaskCheck_FriendlyFire"
"task_5" "AttackRanged1"
"task_6" "TurnToEnemy"
"task_7" "TaskCheck_FriendlyFire"
"task_8" "AttackRanged1"
"task_9" "TurnToEnemy"
"task_10" "TaskCheck_FriendlyFire"
"task_11" "AttackRanged1"
"task_12" "TurnToEnemy"
"task_13" "TaskCheck_FriendlyFire"
"task_14" "AttackRanged1"
"fail_onNewEnemy" "1"
"fail_onDeadEnemy" "1"
"fail_onHeavyDamage" "1"
"fail_onAlertSound" "1"
"fail_onOccludedEnemy" "1"
"fail_onNoAmmo" "1"
"DeadEnemy" "PerformSchedule hgrunt_victoryDance"
"HeavyDamage" "ChangeMindset defense"
}

View file

@ -0,0 +1,24 @@
typeInfo hgrunt_rangedAttack1B
{
"task_1" "StopMovement"
"task_2" "TurnToEnemy"
"task_3" "PlayActivity idleAngry"
"task_4" "TaskCheck_FriendlyFire"
"task_5" "AttackRanged1"
"task_6" "TurnToEnemy"
"task_7" "TaskCheck_FriendlyFire"
"task_8" "AttackRanged1"
"task_9" "TurnToEnemy"
"task_10" "TaskCheck_FriendlyFire"
"task_11" "AttackRanged1"
"task_12" "TurnToEnemy"
"task_13" "TaskCheck_FriendlyFire"
"task_14" "AttackRanged1"
"fail_onNewEnemy" "1"
"fail_onDeadEnemy" "1"
"fail_onHeavyDamage" "1"
"fail_onAlertSound" "1"
"fail_onOccludedEnemy" "1"
"fail_onNoAmmo" "1"
"DeadEnemy" "PerformSchedule hgrunt_victoryDance"
}

View file

@ -0,0 +1,18 @@
typeInfo hgrunt_rangedAttack2
{
"task_1" "StopMovement"
"task_2" "TurnToEnemy"
"task_3" "PlayActivity crouch"
"task_4" "TaskCheck_FriendlyFire"
"task_5" "AttackRanged1"
"task_6" "TurnToEnemy"
"task_7" "TaskCheck_FriendlyFire"
"task_8" "AttackRanged1"
"task_9" "TurnToEnemy"
"task_10" "TaskCheck_FriendlyFire"
"task_11" "AttackRanged1"
"task_12" "TurnToEnemy"
"task_13" "TaskCheck_FriendlyFire"
"task_14" "AttackRanged1"
"DeadEnemy" "PerformSchedule hgrunt_victoryDance"
}

View file

@ -0,0 +1,10 @@
typeInfo hgrunt_repel
{
"task_1" "StopMovement"
"task_2" "TurnToIdealPosition"
"task_3" "PlayActivity glide"
"fail_onNewEnemy" "1"
"fail_onSeeEnemy" "1"
"fail_onDamage" "1"
"fail_onAlertSound" "1"
}

View file

@ -0,0 +1,6 @@
typeInfo hgrunt_repelAttack
{
"task_1" "StopMovement"
"task_2" "TurnToEnemy"
"task_3" "PlayActivity fly"
}

View file

@ -0,0 +1,13 @@
typeInfo hgrunt_repelLand
{
"task_1" "StopMovement"
"task_2" "PlayActivity land"
"task_3" "TargetLastPosition"
"task_4" "RunToTarget"
"task_5" "WaitForMovement"
"task_6" "ClearLastPosition"
"fail_onNewEnemy" "1"
"fail_onSeeEnemy" "1"
"fail_onDamage" "1"
"fail_onAlertSound" "1"
}

View file

@ -0,0 +1,24 @@
typeInfo hgrunt_signalSuppress
{
"task_1" "StopMovement"
"task_2" "TurnToEnemy"
"task_3" "PlayActivity signal2"
"task_4" "TaskCheck_FriendlyFire"
"task_5" "AttackRanged1"
"task_6" "TurnToEnemy"
"task_7" "TaskCheck_FriendlyFire"
"task_8" "AttackRanged1"
"task_9" "TurnToEnemy"
"task_10" "TaskCheck_FriendlyFire"
"task_11" "AttackRanged1"
"task_12" "TurnToEnemy"
"task_13" "TaskCheck_FriendlyFire"
"task_14" "AttackRanged1"
"task_15" "TurnToEnemy"
"task_16" "TaskCheck_FriendlyFire"
"task_17" "AttackRanged1"
"fail_onDeadEnemy" "1"
"fail_onDamage" "1"
"fail_onAlertSound" "1"
"fail_onNoAmmo" "1"
}

View file

@ -0,0 +1,23 @@
typeInfo hgrunt_suppress
{
"task_1" "StopMovement"
"task_2" "TurnToEnemy"
"task_3" "TaskCheck_FriendlyFire"
"task_4" "AttackRanged1"
"task_5" "TurnToEnemy"
"task_6" "TaskCheck_FriendlyFire"
"task_7" "AttackRanged1"
"task_8" "TurnToEnemy"
"task_9" "TaskCheck_FriendlyFire"
"task_10" "AttackRanged1"
"task_11" "TurnToEnemy"
"task_12" "TaskCheck_FriendlyFire"
"task_13" "AttackRanged1"
"task_14" "TurnToEnemy"
"task_15" "TaskCheck_FriendlyFire"
"task_16" "AttackRanged1"
"fail_onDeadEnemy" "1"
"fail_onAlertSound" "1"
"fail_onDamage" "1"
"fail_onNoAmmo" "1"
}

View file

@ -0,0 +1,15 @@
typeInfo hgrunt_sweep
{
"task_1" "TurnLeft 179"
"task_2" "Wait 1.0"
"task_3" "TurnLeft 179"
"task_4" "Wait 1.0"
"fail_onNewEnemy" "1"
"fail_onDamage" "1"
"fail_onCanRangedAttack1" "1"
"fail_onCanRangedAttack2" "1"
"fail_onAlertSound" "1"
"CanRangedAttack1" "PerformSchedule hgrunt_rangedAttack1A"
"CanRangedAttack2" "PerformSchedule hgrunt_rangedAttack2"
"Damage" "ChangeMindset defense"
}

View file

@ -0,0 +1,12 @@
typeInfo hgrunt_takeCover
{
"task_1" "SetFailSchedule hgrunt_rangedAttack1A"
"task_2" "StopMovement"
"task_3" "Wait 0.2"
"task_4" "FindCoverFromEnemy"
"task_5" "SpeakSentence !HG_COVER"
"task_6" "RunToTarget"
"task_7" "WaitForMovement"
"task_8" "Remember inCover"
"task_9" "PerformSchedule hgrunt_waitInCover"
}

View file

@ -0,0 +1,10 @@
typeInfo hgrunt_takeCoverFromBestSound
{
"task_1" "SetFailScheduke cower"
"task_2" "StopMovement"
"task_3" "FindCoverFromBestSound"
"task_4" "RunToTarget"
"task_5" "WaitForMovement"
"task_6" "Rememeber inCover"
"task_7" "TurnLeft 179"
}

View file

@ -0,0 +1,6 @@
typeInfo hgrunt_tossGrenadeCover
{
"task_1" "TurnToEnemy"
"task_2" "AttackRanged2"
"task_3" "PerformSchedule hgrunt_takeCover"
}

View file

@ -0,0 +1,11 @@
typeInfo hgrunt_victoryDance
{
"task_1" "StopMovement"
"task_2" "TurnToEnemy"
"task_3" "Wait 1.5"
"task_4" "TargetEnemy"
"task_5" "WalkToTarget"
"task_6" "PlayActivity victoryDance"
"fail_onNewEnemy" "1"
"fail_onDamage" "1"
}

View file

@ -0,0 +1,15 @@
typeInfo hgrunt_waitInCover
{
"task_1" "SetFailSchedule hgrunt_takeCover"
"task_2" "StopMovement"
"task_3" "PlayActivity idle"
"task_4" "WaitFacingEnemy"
"fail_onNewEnemy" "1"
"fail_onAlertSound" "1"
"fail_onCanRangedAttack1" "1"
"fail_onCanRangedAttack2" "1"
"fail_onCanMeleeAttack1" "1"
"fail_onCanMeleeAttack2" "1"
"CanRangedAttack1" "PerformSchedule hgrunt_rangedAttack1A"
"CanRangedAttack2" "PerformSchedule hgrunt_rangedAttack2"
}

View file

@ -8,6 +8,11 @@ ammo.respawn
sample items/suitchargeok1.wav
}
item.longjump
{
sample items/gunpickup2.wav
}
item.airtank
{
sample items/airtank1.wav
@ -43,11 +48,6 @@ item.respawn
sample items/suitchargeok1.wav
}
weapon.pickup
{
sample items/gunpickup2.wav
}
item_weaponbox.Pickup
{
sample items/gunpickup2.wav

View file

@ -283,7 +283,6 @@ BigMomma.FootstepRight
Bullsquid.Growl
{
sample bullchicken/bc_attackgrowl1.wav
sample bullchicken/bc_attackgrowl2.wav
sample bullchicken/bc_attackgrowl3.wav
}

View file

@ -119,3 +119,9 @@ Player.Swim
sample player/pl_swim3.wav
sample player/pl_swim4.wav
}
Player.PickupWeapon
{
sample items/gunpickup2.wav
}

View file

@ -4,6 +4,6 @@ set maxplayers "8"
set con_color "255 150 0"
set vgui_color "255 170 0"
set cross_color "0 255 0"
set r_menutint "0.157 0.094 0.0"
set con_textfont "CONCHARS?fmt=hl"
set con_textsize "-12"

View file

View file

Binary file not shown.

View file

@ -0,0 +1,15 @@
// Overriding this material
// so that r_wireframe being
// 2 means that we'll have an overlay
// of triangle lines instead of
// wall hacks
wireframe
{
program wireframe
{
if r_wireframe == 1
nodepthtest
endif
}
}