From 10fc63fdf1ccb61fbf0b70094fa8906c18bd9af3 Mon Sep 17 00:00:00 2001 From: Bitl Date: Mon, 7 Apr 2025 09:23:09 -0700 Subject: [PATCH 1/3] Make it so Vita-Saw attacks on MVM robots spawn a bolt instead of a spleen. --- src/game/server/tf/tf_player.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/game/server/tf/tf_player.cpp b/src/game/server/tf/tf_player.cpp index b83535ce550..ff648b5d510 100644 --- a/src/game/server/tf/tf_player.cpp +++ b/src/game/server/tf/tf_player.cpp @@ -3072,6 +3072,7 @@ void CTFPlayer::PrecacheTFPlayer() PrecacheModel( "effects/beam001_blu.vmt" ); PrecacheModel( "effects/beam001_white.vmt" ); PrecacheModel( "models/player/gibs/random_organ.mdl" ); + PrecacheModel( "models/player/gibs/gibs_bolt.mdl" ); PrecacheScriptSound( "Weapon_Mantreads.Impact" ); @@ -9112,7 +9113,15 @@ int CTFPlayer::OnTakeDamage( const CTakeDamageInfo &inputInfo ) pRandomInternalOrgan->KeyValue( "origin", buf ); Q_snprintf( buf, sizeof( buf ), "%.10f %.10f %.10f", GetAbsAngles().x, GetAbsAngles().y, GetAbsAngles().z ); pRandomInternalOrgan->KeyValue( "angles", buf ); - pRandomInternalOrgan->KeyValue( "model", "models/player/gibs/random_organ.mdl" ); + if (TFGameRules()->IsMannVsMachineMode() && GetTeamNumber() == TF_TEAM_BLUE) + { + //robots don't have spleens.... + pRandomInternalOrgan->KeyValue("model", "models/player/gibs/gibs_bolt.mdl"); + } + else + { + pRandomInternalOrgan->KeyValue("model", "models/player/gibs/random_organ.mdl"); + } pRandomInternalOrgan->KeyValue( "fademindist", "-1" ); pRandomInternalOrgan->KeyValue( "fademaxdist", "0" ); pRandomInternalOrgan->KeyValue( "fadescale", "1" ); From 0e8a16c9701458fa573a9b4132c317e2c64f9390 Mon Sep 17 00:00:00 2001 From: Bitl Date: Wed, 9 Apr 2025 20:27:53 -0700 Subject: [PATCH 2/3] Improve implementation based on reviews. --- src/game/server/tf/tf_player.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/server/tf/tf_player.cpp b/src/game/server/tf/tf_player.cpp index ff648b5d510..4b1c8aa341d 100644 --- a/src/game/server/tf/tf_player.cpp +++ b/src/game/server/tf/tf_player.cpp @@ -9113,7 +9113,7 @@ int CTFPlayer::OnTakeDamage( const CTakeDamageInfo &inputInfo ) pRandomInternalOrgan->KeyValue( "origin", buf ); Q_snprintf( buf, sizeof( buf ), "%.10f %.10f %.10f", GetAbsAngles().x, GetAbsAngles().y, GetAbsAngles().z ); pRandomInternalOrgan->KeyValue( "angles", buf ); - if (TFGameRules()->IsMannVsMachineMode() && GetTeamNumber() == TF_TEAM_BLUE) + if (TFGameRules() && TFGameRules()->IsMannVsMachineMode() && GetTeamNumber() == TF_TEAM_PVE_INVADERS) { //robots don't have spleens.... pRandomInternalOrgan->KeyValue("model", "models/player/gibs/gibs_bolt.mdl"); From 2a35da2d69e34486a32363d0df9b84039d8c1b9b Mon Sep 17 00:00:00 2001 From: Bitl Date: Thu, 10 Apr 2025 22:08:36 -0700 Subject: [PATCH 3/3] Implement all of ficool's suggestions --- src/game/server/tf/tf_player.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/game/server/tf/tf_player.cpp b/src/game/server/tf/tf_player.cpp index 4b1c8aa341d..6ba76de3334 100644 --- a/src/game/server/tf/tf_player.cpp +++ b/src/game/server/tf/tf_player.cpp @@ -2774,6 +2774,8 @@ void CTFPlayer::PrecacheMvM() PrecacheModel( "models/items/currencypack_large.mdl" ); PrecacheModel( "models/bots/tw2/boss_bot/twcarrier_addon.mdl" ); + + PrecacheModel( "models/player/gibs/gibs_bolt.mdl" ); PrecacheParticleSystem( "bot_impact_light" ); PrecacheParticleSystem( "bot_impact_heavy" ); @@ -3072,7 +3074,6 @@ void CTFPlayer::PrecacheTFPlayer() PrecacheModel( "effects/beam001_blu.vmt" ); PrecacheModel( "effects/beam001_white.vmt" ); PrecacheModel( "models/player/gibs/random_organ.mdl" ); - PrecacheModel( "models/player/gibs/gibs_bolt.mdl" ); PrecacheScriptSound( "Weapon_Mantreads.Impact" ); @@ -9113,14 +9114,14 @@ int CTFPlayer::OnTakeDamage( const CTakeDamageInfo &inputInfo ) pRandomInternalOrgan->KeyValue( "origin", buf ); Q_snprintf( buf, sizeof( buf ), "%.10f %.10f %.10f", GetAbsAngles().x, GetAbsAngles().y, GetAbsAngles().z ); pRandomInternalOrgan->KeyValue( "angles", buf ); - if (TFGameRules() && TFGameRules()->IsMannVsMachineMode() && GetTeamNumber() == TF_TEAM_PVE_INVADERS) + if (TFGameRules()->IsMannVsMachineMode() && GetTeamNumber() == TF_TEAM_PVE_INVADERS && BloodColor() == DONT_BLEED) { //robots don't have spleens.... - pRandomInternalOrgan->KeyValue("model", "models/player/gibs/gibs_bolt.mdl"); + pRandomInternalOrgan->KeyValue( "model", "models/player/gibs/gibs_bolt.mdl" ); } else { - pRandomInternalOrgan->KeyValue("model", "models/player/gibs/random_organ.mdl"); + pRandomInternalOrgan->KeyValue( "model", "models/player/gibs/random_organ.mdl" ); } pRandomInternalOrgan->KeyValue( "fademindist", "-1" ); pRandomInternalOrgan->KeyValue( "fademaxdist", "0" );