From 6a15a2c2de586839fafbeb622ca925b46002b606 Mon Sep 17 00:00:00 2001 From: Ben Lubar Date: Sun, 16 Jun 2024 08:16:10 -0500 Subject: [PATCH] energy shield balance suggestions for testing --- src/game/shared/swarm/asw_equipment_list.cpp | 2 +- src/game/shared/swarm/asw_gamerules.cpp | 4 ++-- src/game/shared/swarm/asw_marine_skills.cpp | 12 ++++++------ src/game/shared/swarm/asw_marine_skills.h | 2 +- .../shared/swarm/asw_weapon_energy_shield_shared.cpp | 6 +++--- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/game/shared/swarm/asw_equipment_list.cpp b/src/game/shared/swarm/asw_equipment_list.cpp index 541adcd0a..f880c3c83 100644 --- a/src/game/shared/swarm/asw_equipment_list.cpp +++ b/src/game/shared/swarm/asw_equipment_list.cpp @@ -146,7 +146,7 @@ ConVar asw_ammo_count_bait( "asw_ammo_count_bait", "9", FCVAR_CHEAT | FCVAR_REPL ConVar asw_ammo_count_stun_grenades( "asw_ammo_count_stun_grenades", "10", FCVAR_CHEAT | FCVAR_REPLICATED ); ConVar asw_ammo_count_incendiary_grenades( "asw_ammo_count_incendiary_grenades", "7", FCVAR_CHEAT | FCVAR_REPLICATED ); ConVar asw_ammo_count_shield_bubble( "asw_ammo_count_shield_bubble", "3", FCVAR_CHEAT | FCVAR_REPLICATED ); -ConVar asw_ammo_count_rifle_burst( "asw_ammo_count_rifle_burst", "120", FCVAR_CHEAT | FCVAR_REPLICATED ); +ConVar asw_ammo_count_rifle_burst( "asw_ammo_count_rifle_burst", "99", FCVAR_CHEAT | FCVAR_REPLICATED ); #define WEAPON_CLASS_NAME( class, name ) "asw_weapon_" #class, "#asw_weapon_" #name, "#asw_weaponl_" #name, "#asw_wdesc_" #name, "#asw_weapon_" #name "_altfire", "#asw_weapon_" #name "_attributes" #define WEAPON_NAME( name ) WEAPON_CLASS_NAME( name, name ) diff --git a/src/game/shared/swarm/asw_gamerules.cpp b/src/game/shared/swarm/asw_gamerules.cpp index b7a47371b..701b98bfc 100644 --- a/src/game/shared/swarm/asw_gamerules.cpp +++ b/src/game/shared/swarm/asw_gamerules.cpp @@ -789,10 +789,10 @@ ConVar sk_plr_dmg_asw_eshield( "sk_plr_dmg_asw_eshield", "10", FCVAR_REPLICATED ConVar sk_npc_dmg_asw_eshield( "sk_npc_dmg_asw_eshield", "10", FCVAR_REPLICATED | FCVAR_CHEAT ); ConVar sk_max_asw_eshield( "sk_max_asw_eshield", "8", FCVAR_REPLICATED | FCVAR_CHEAT ); -// Burst Rifle (4 clips, 120 per) +// Burst Rifle (5 clips, 99 per) ConVar sk_plr_dmg_asw_r_burst( "sk_plr_dmg_asw_r_burst", "7", FCVAR_REPLICATED | FCVAR_CHEAT ); ConVar sk_npc_dmg_asw_r_burst( "sk_npc_dmg_asw_r_burst", "7", FCVAR_REPLICATED | FCVAR_CHEAT ); -ConVar sk_max_asw_r_burst( "sk_max_asw_r_burst", "480", FCVAR_REPLICATED | FCVAR_CHEAT ); +ConVar sk_max_asw_r_burst( "sk_max_asw_r_burst", "495", FCVAR_REPLICATED | FCVAR_CHEAT ); ConVar sk_asw_parasite_infest_dmg_easy( "sk_asw_parasite_infest_dmg_easy", "175", FCVAR_REPLICATED | FCVAR_CHEAT, "Total damage from parasite infestation" ); ConVar sk_asw_parasite_infest_dmg_normal( "sk_asw_parasite_infest_dmg_normal", "225", FCVAR_REPLICATED | FCVAR_CHEAT, "Total damage from parasite infestation" ); diff --git a/src/game/shared/swarm/asw_marine_skills.cpp b/src/game/shared/swarm/asw_marine_skills.cpp index a64217fa2..099919a30 100644 --- a/src/game/shared/swarm/asw_marine_skills.cpp +++ b/src/game/shared/swarm/asw_marine_skills.cpp @@ -51,8 +51,7 @@ ConVar asw_skill_engineering_welding_base( "asw_skill_engineering_welding_base", ConVar asw_skill_engineering_sentry_base( "asw_skill_engineering_sentry_base", "1.0", FCVAR_REPLICATED | FCVAR_CHEAT ); ConVar asw_skill_engineering_firerate_base( "asw_skill_engineering_firerate_base", "0.0", FCVAR_REPLICATED | FCVAR_CHEAT ); ConVar asw_skill_engineering_shield_health_base( "asw_skill_engineering_shield_health_base", "300", FCVAR_REPLICATED | FCVAR_CHEAT ); -ConVar asw_skill_engineering_shield_duration_base( "asw_skill_engineering_shield_duration_base", "30", FCVAR_REPLICATED | FCVAR_CHEAT ); -ConVar asw_skill_engineering_shield_damage_base( "asw_skill_engineering_shield_damage_base", "2", FCVAR_REPLICATED | FCVAR_CHEAT ); +ConVar asw_skill_engineering_shield_duration_base( "asw_skill_engineering_shield_duration_base", "6", FCVAR_REPLICATED | FCVAR_CHEAT ); ConVar asw_skill_grenades_radius_base( "asw_skill_grenades_radius_base", "280", FCVAR_REPLICATED | FCVAR_CHEAT ); ConVar asw_skill_grenades_dmg_base( "asw_skill_grenades_dmg_base", "128", FCVAR_REPLICATED | FCVAR_CHEAT ); @@ -109,8 +108,7 @@ ConVar asw_skill_engineering_welding_step( "asw_skill_engineering_welding_step", ConVar asw_skill_engineering_sentry_step( "asw_skill_engineering_sentry_step", "0.25", FCVAR_REPLICATED | FCVAR_CHEAT ); ConVar asw_skill_engineering_firerate_step( "asw_skill_engineering_firerate_step", "0.005", FCVAR_REPLICATED | FCVAR_CHEAT ); ConVar asw_skill_engineering_shield_health_step( "asw_skill_engineering_shield_health_step", "50", FCVAR_REPLICATED | FCVAR_CHEAT ); -ConVar asw_skill_engineering_shield_duration_step( "asw_skill_engineering_shield_duration_step", "5", FCVAR_REPLICATED | FCVAR_CHEAT ); -ConVar asw_skill_engineering_shield_damage_step( "asw_skill_engineering_shield_damage_step", "2", FCVAR_REPLICATED | FCVAR_CHEAT ); +ConVar asw_skill_engineering_shield_duration_step( "asw_skill_engineering_shield_duration_step", "1", FCVAR_REPLICATED | FCVAR_CHEAT ); ConVar asw_skill_grenades_radius_step( "asw_skill_grenades_radius_step", "20", FCVAR_REPLICATED | FCVAR_CHEAT ); ConVar asw_skill_grenades_dmg_step( "asw_skill_grenades_dmg_step", "20", FCVAR_REPLICATED | FCVAR_CHEAT ); @@ -179,6 +177,8 @@ ConVar asw_skill_accuracy_shield_rifle_dmg_base( "asw_skill_accuracy_shield_rifl ConVar asw_skill_accuracy_shield_rifle_dmg_step( "asw_skill_accuracy_shield_rifle_dmg_step", "2", FCVAR_REPLICATED | FCVAR_CHEAT ); ConVar asw_skill_accuracy_cryo_dmg_base( "asw_skill_accuracy_cryo_dmg_base", "0", FCVAR_REPLICATED | FCVAR_CHEAT ); ConVar asw_skill_accuracy_cryo_dmg_step( "asw_skill_accuracy_cryo_dmg_step", "0.5", FCVAR_REPLICATED | FCVAR_CHEAT ); +ConVar asw_skill_accuracy_shield_damage_base( "asw_skill_accuracy_shield_damage_base", "30", FCVAR_REPLICATED | FCVAR_CHEAT ); +ConVar asw_skill_accuracy_shield_damage_step( "asw_skill_accuracy_shield_damage_step", "20", FCVAR_REPLICATED | FCVAR_CHEAT ); ConVar asw_skill_laser_mines_base( "asw_skill_laser_mines_base", "1", FCVAR_REPLICATED | FCVAR_CHEAT, "Number of laser mines to deploy by marines with no Explosives skills", true, 1, true, 10 ); ConVar asw_skill_laser_mines_moderate( "asw_skill_laser_mines_moderate", "2", FCVAR_REPLICATED | FCVAR_CHEAT, "Number of laser mines to deploy by marines with moderate(>1) Explosives skills", true, 1, true, 10 ); @@ -362,8 +362,6 @@ float CASW_Marine_Skills::GetSkillBasedValue( CASW_Marine_Profile *pProfile, ASW return asw_skill_engineering_shield_health_base.GetFloat() + asw_skill_engineering_shield_health_step.GetFloat() * iSkillPoints; case ASW_MARINE_SUBSKILL_ENGINEERING_SHIELD_DURATION: return asw_skill_engineering_shield_duration_base.GetFloat() + asw_skill_engineering_shield_duration_step.GetFloat() * iSkillPoints; - case ASW_MARINE_SUBSKILL_ENGINEERING_SHIELD_DAMAGE: - return asw_skill_engineering_shield_damage_base.GetFloat() + asw_skill_engineering_shield_damage_step.GetFloat() * iSkillPoints; default: Assert( 0 ); return 0.0f; @@ -409,6 +407,8 @@ float CASW_Marine_Skills::GetSkillBasedValue( CASW_Marine_Profile *pProfile, ASW return asw_skill_accuracy_shield_rifle_dmg_base.GetFloat() + asw_skill_accuracy_shield_rifle_dmg_step.GetFloat() * iSkillPoints; case ASW_MARINE_SUBSKILL_ACCURACY_CRYO_DMG: return asw_skill_accuracy_cryo_dmg_base.GetFloat() + asw_skill_accuracy_cryo_dmg_step.GetFloat() * iSkillPoints; + case ASW_MARINE_SUBSKILL_ACCURACY_SHIELD_DAMAGE: + return asw_skill_accuracy_shield_damage_base.GetFloat() + asw_skill_accuracy_shield_damage_step.GetFloat() * iSkillPoints; default: Assert( 0 ); return 0.0f; diff --git a/src/game/shared/swarm/asw_marine_skills.h b/src/game/shared/swarm/asw_marine_skills.h index cc5d2e9d7..510756e4e 100644 --- a/src/game/shared/swarm/asw_marine_skills.h +++ b/src/game/shared/swarm/asw_marine_skills.h @@ -94,7 +94,6 @@ const char *SkillToString( ASW_Skill nSkill ); ENUM_ITEM( ENGINEERING, ENGINEERING_FIRERATE, 2 ) \ ENUM_ITEM( ENGINEERING, ENGINEERING_SHIELD_HEALTH, 3 ) \ ENUM_ITEM( ENGINEERING, ENGINEERING_SHIELD_DURATION, 4 ) \ - ENUM_ITEM( ENGINEERING, ENGINEERING_SHIELD_DAMAGE, 5 ) \ \ ENUM_ITEM( ACCURACY, ACCURACY_RIFLE_DMG, 0 ) \ ENUM_ITEM( ACCURACY, ACCURACY_PRIFLE_DMG, 1 ) \ @@ -115,6 +114,7 @@ const char *SkillToString( ASW_Skill nSkill ); ENUM_ITEM( ACCURACY, ACCURACY_MINING_LASER_DMG, 16 ) \ ENUM_ITEM( ACCURACY, ACCURACY_SHIELD_RIFLE_DMG, 17 ) \ ENUM_ITEM( ACCURACY, ACCURACY_CRYO_DMG, 18 ) \ + ENUM_ITEM( ACCURACY, ACCURACY_SHIELD_DAMAGE, 19 ) \ \ ENUM_ITEM( GRENADES, GRENADE_RADIUS, 0 ) \ ENUM_ITEM( GRENADES, GRENADE_DMG, 1 ) \ diff --git a/src/game/shared/swarm/asw_weapon_energy_shield_shared.cpp b/src/game/shared/swarm/asw_weapon_energy_shield_shared.cpp index f66a47b9f..017fb5dcf 100644 --- a/src/game/shared/swarm/asw_weapon_energy_shield_shared.cpp +++ b/src/game/shared/swarm/asw_weapon_energy_shield_shared.cpp @@ -30,8 +30,8 @@ ConVar rd_energy_shield_holster_shield( "rd_energy_shield_holster_shield", "2", ConVar rd_energy_shield_activation_blocks_shooting( "rd_energy_shield_activation_blocks_shooting", "0.5", FCVAR_CHEAT | FCVAR_REPLICATED, "minimum delay between activating shield and shooting next burst" ); #ifdef GAME_DLL ConVar rd_energy_shield_touch_interval( "rd_energy_shield_touch_interval", "0.2", FCVAR_CHEAT, "time between damage ticks for the energy shield's electric dissolve" ); -ConVar rd_energy_shield_distance_min( "rd_energy_shield_distance_min", "64", FCVAR_CHEAT, "shield min distance in front of marine" ); -ConVar rd_energy_shield_distance_max( "rd_energy_shield_distance_max", "112", FCVAR_CHEAT, "shield max distance in front of marine (it stays this far out unless there's a wall)" ); +ConVar rd_energy_shield_distance_min( "rd_energy_shield_distance_min", "40", FCVAR_CHEAT, "shield min distance in front of marine" ); +ConVar rd_energy_shield_distance_max( "rd_energy_shield_distance_max", "70", FCVAR_CHEAT, "shield max distance in front of marine (it stays this far out unless there's a wall)" ); ConVar rd_energy_shield_height_min( "rd_energy_shield_height_min", "32", FCVAR_CHEAT, "shield height above floor when marine is aiming horizontally or lower" ); ConVar rd_energy_shield_height_max( "rd_energy_shield_height_max", "64", FCVAR_CHEAT, "shield height above floor when marine is aiming straight up" ); ConVar rd_energy_shield_move_speed( "rd_energy_shield_move_speed", "10", FCVAR_CHEAT, "speed multiplier for shield moving forward and backward" ); @@ -721,7 +721,7 @@ void CASW_Energy_Shield::TouchThink() { if ( !IsShieldInactive() ) { - CTakeDamageInfo info( this, m_hCreatorMarine, m_hCreatorWeapon, MarineSkills()->GetSkillBasedValueByMarine( m_hCreatorMarine, ASW_MARINE_SKILL_ENGINEERING, ASW_MARINE_SUBSKILL_ENGINEERING_SHIELD_DAMAGE ), DMG_DISSOLVE ); + CTakeDamageInfo info( this, m_hCreatorMarine, m_hCreatorWeapon, MarineSkills()->GetSkillBasedValueByMarine( m_hCreatorMarine, ASW_MARINE_SKILL_ACCURACY, ASW_MARINE_SUBSKILL_ACCURACY_SHIELD_DAMAGE ), DMG_DISSOLVE ); info.SetAmmoType( m_hCreatorWeapon->GetSecondaryAmmoType() ); info.SetDamagePosition( m_hCreatorMarine->Weapon_ShootPosition() ); info.SetDamageForce( m_hCreatorMarine->Forward() );