Skip to content

Commit

Permalink
add self damage multiplier
Browse files Browse the repository at this point in the history
  • Loading branch information
mmaulwurff committed Jun 25, 2021
1 parent 0b16627 commit 25d92e9
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 8 deletions.
7 changes: 4 additions & 3 deletions cvarinfo.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@ server int cd_player_max_health = 0;
server float cd_player_speed_mult = 0;
server float cd_player_jump_mult = 0;

server bool cd_player_misc_enabled = false;
server float cd_player_airControl_mult = 1;
server float cd_player_friction_mult = 1;
server bool cd_player_misc_enabled = false;
server float cd_player_airControl_mult = 1;
server float cd_player_friction_mult = 1;
server float cd_player_self_damage_mult = 1;

// Monster menu CVARs //////////////////////////////////////////////////////////

Expand Down
2 changes: 1 addition & 1 deletion keyconf.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Aliases //////////////////////////sa////////////////////////////////////////////////////////////////

alias cd_reset_to_defaults "resetcvar cd_player_weapon_damage_mult; resetcvar cd_player_damage_taken_mult; resetcvar cd_player_start_type; resetcvar cd_player_start_health; resetcvar cd_player_start_armor; resetcvar cd_player_start_savePercent; resetcvar cd_player_max_health; resetcvar cd_player_speed_mult; resetcvar cd_player_jump_mult; resetcvar cd_player_misc_enabled; resetcvar cd_player_airControl_mult; resetcvar cd_player_friction_mult; resetcvar cd_monster_health_mult; resetcvar cd_monster_speed_mult; resetcvar cd_health_regen_enabled; resetcvar cd_health_regen_amount; resetcvar cd_health_regen_freq; resetcvar cd_health_regen_cap; resetcvar cd_health_sound_enabled; resetcvar cd_health_regen_pulse; resetcvar cd_health_blend_color_r; resetcvar cd_health_blend_color_g; resetcvar cd_health_blend_color_b; resetcvar cd_health_blend_color_int; resetcvar cd_armor_regen_enabled; resetcvar cd_armor_regen_amount; resetcvar cd_armor_regen_freq; resetcvar cd_armor_regen_min; resetcvar cd_armor_regen_cap; resetcvar cd_armor_sound_enabled; resetcvar cd_armor_regen_pulse; resetcvar cd_armor_blend_color_r; resetcvar cd_armor_blend_color_g; resetcvar cd_armor_blend_color_b; resetcvar cd_armor_blend_color_int; resetcvar cd_ammo_regen_enabled; resetcvar cd_ammo_regen_backpack_req; resetcvar cd_ammo_regen_amount; resetcvar cd_ammo_regen_freq; resetcvar cd_ammo_regen_pulse; resetcvar cd_ammo_blend_color_r; resetcvar cd_ammo_blend_color_g; resetcvar cd_ammo_blend_color_b; resetcvar cd_ammo_blend_color_int; resetcvar cd_health_degen_enabled; resetcvar cd_health_degen_amount; resetcvar cd_health_degen_freq; resetcvar cd_health_degen_limit; resetcvar cd_armor_degen_amount; resetcvar cd_armor_degen_freq; resetcvar cd_armor_degen_limit; resetcvar cd_power_invisibility_permanent; resetcvar cd_power_invulnerability_permanent; resetcvar cd_power_ironFeet_permanent; resetcvar cd_power_lightAmp_permanent; resetcvar cd_power_drain_permanent; resetcvar cd_power_highJump_permanent; resetcvar cd_power_infiniteAmmo_permanent; resetcvar cd_power_protecton_permanent; resetcvar cd_power_regeneraton_permanent; resetcvar cd_power_speed_permanent; resetcvar cd_power_strength_permanent; resetcvar cd_power_timeFreezer_permanent; resetcvar cd_power_doubleFiringSpeed_permanent; resetcvar cd_power_flight_permanent; resetcvar cd_power_frightener_permanent; resetcvar cd_power_scanner_permanent; resetcvar cd_power_damage_permanent; resetcvar cd_power_ghost_permanent; resetcvar cd_power_shadow_permanent; resetcvar cd_power_torch_permanent; resetcvar cd_power_minotaur_permanent; resetcvar cd_power_morph_permanent; resetcvar cd_power_mask_permanent; resetcvar cd_power_weaponLevel2_permanent; resetcvar cd_power_targeter_permanent; resetcvar cd_power_buddha_permanent"
alias cd_reset_to_defaults "resetcvar cd_player_weapon_damage_mult; resetcvar cd_player_damage_taken_mult; resetcvar cd_player_start_type; resetcvar cd_player_start_health; resetcvar cd_player_start_armor; resetcvar cd_player_start_savePercent; resetcvar cd_player_max_health; resetcvar cd_player_speed_mult; resetcvar cd_player_jump_mult; resetcvar cd_player_misc_enabled; resetcvar cd_player_airControl_mult; resetcvar cd_player_friction_mult; resetcvar cd_player_self_damage_mult; resetcvar cd_monster_health_mult; resetcvar cd_monster_speed_mult; resetcvar cd_health_regen_enabled; resetcvar cd_health_regen_amount; resetcvar cd_health_regen_freq; resetcvar cd_health_regen_cap; resetcvar cd_health_sound_enabled; resetcvar cd_health_regen_pulse; resetcvar cd_health_blend_color_r; resetcvar cd_health_blend_color_g; resetcvar cd_health_blend_color_b; resetcvar cd_health_blend_color_int; resetcvar cd_armor_regen_enabled; resetcvar cd_armor_regen_amount; resetcvar cd_armor_regen_freq; resetcvar cd_armor_regen_min; resetcvar cd_armor_regen_cap; resetcvar cd_armor_sound_enabled; resetcvar cd_armor_regen_pulse; resetcvar cd_armor_blend_color_r; resetcvar cd_armor_blend_color_g; resetcvar cd_armor_blend_color_b; resetcvar cd_armor_blend_color_int; resetcvar cd_ammo_regen_enabled; resetcvar cd_ammo_regen_backpack_req; resetcvar cd_ammo_regen_amount; resetcvar cd_ammo_regen_freq; resetcvar cd_ammo_regen_pulse; resetcvar cd_ammo_blend_color_r; resetcvar cd_ammo_blend_color_g; resetcvar cd_ammo_blend_color_b; resetcvar cd_ammo_blend_color_int; resetcvar cd_health_degen_enabled; resetcvar cd_health_degen_amount; resetcvar cd_health_degen_freq; resetcvar cd_health_degen_limit; resetcvar cd_armor_degen_amount; resetcvar cd_armor_degen_freq; resetcvar cd_armor_degen_limit; resetcvar cd_power_invisibility_permanent; resetcvar cd_power_invulnerability_permanent; resetcvar cd_power_ironFeet_permanent; resetcvar cd_power_lightAmp_permanent; resetcvar cd_power_drain_permanent; resetcvar cd_power_highJump_permanent; resetcvar cd_power_infiniteAmmo_permanent; resetcvar cd_power_protecton_permanent; resetcvar cd_power_regeneraton_permanent; resetcvar cd_power_speed_permanent; resetcvar cd_power_strength_permanent; resetcvar cd_power_timeFreezer_permanent; resetcvar cd_power_doubleFiringSpeed_permanent; resetcvar cd_power_flight_permanent; resetcvar cd_power_frightener_permanent; resetcvar cd_power_scanner_permanent; resetcvar cd_power_damage_permanent; resetcvar cd_power_ghost_permanent; resetcvar cd_power_shadow_permanent; resetcvar cd_power_torch_permanent; resetcvar cd_power_minotaur_permanent; resetcvar cd_power_morph_permanent; resetcvar cd_power_mask_permanent; resetcvar cd_power_weaponLevel2_permanent; resetcvar cd_power_targeter_permanent; resetcvar cd_power_buddha_permanent"

alias cd_reset_random_to_defaults "resetcvar cd_random_enabled; resetcvar cd_random_frequency; resetcvar cd_random_timer_enabled; resetcvar cd_random_notification_type; resetcvar cd_random_notification_sound_enabled; resetcvar cd_random_notification_volume; resetcvar cd_random_player_weapon_damage_mult_min; resetcvar cd_random_player_weapon_damage_mult_max; resetcvar cd_random_player_damage_taken_mult_min; resetcvar cd_random_player_damage_taken_mult_max; resetcvar cd_random_player_start_health_min; resetcvar cd_random_player_start_health_max; resetcvar cd_random_player_start_armor_min; resetcvar cd_random_player_start_armor_max; resetcvar cd_random_player_start_savePercent_min; resetcvar cd_random_player_start_savePercent_max; resetcvar cd_random_player_max_health_min; resetcvar cd_random_player_max_health_max; resetcvar cd_random_player_speed_mult_min; resetcvar cd_random_player_speed_mult_max; resetcvar cd_random_player_jump_mult_min; resetcvar cd_random_player_jump_mult_max; resetcvar cd_random_health_regen_amount_min; resetcvar cd_random_health_regen_amount_max; resetcvar cd_random_health_regen_freq_min; resetcvar cd_random_health_regen_freq_max; resetcvar cd_random_health_regen_cap_min; resetcvar cd_random_health_regen_cap_max; resetcvar cd_random_armor_regen_amount_min; resetcvar cd_random_armor_regen_amount_max; resetcvar cd_random_armor_regen_freq_min; resetcvar cd_random_armor_regen_freq_max; resetcvar cd_random_armor_regen_min_min; resetcvar cd_random_armor_regen_min_max; resetcvar cd_random_armor_regen_cap_min; resetcvar cd_random_armor_regen_cap_max; resetcvar cd_random_ammo_regen_amount_min; resetcvar cd_random_ammo_regen_amount_max; resetcvar cd_random_ammo_regen_freq_min; resetcvar cd_random_ammo_regen_freq_max; resetcvar cd_random_health_degen_amount_min; resetcvar cd_random_health_degen_amount_max; resetcvar cd_random_health_degen_freq_min; resetcvar cd_random_health_degen_freq_max; resetcvar cd_random_health_degen_limit_min; resetcvar cd_random_health_degen_limit_max; resetcvar cd_random_armor_degen_amount_min; resetcvar cd_random_armor_degen_amount_max; resetcvar cd_random_armor_degen_freq_min; resetcvar cd_random_armor_degen_freq_max; resetcvar cd_random_armor_degen_limit_min; resetcvar cd_random_armor_degen_limit_max"

Expand Down
1 change: 1 addition & 0 deletions language.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ CD_JUMP_Z_MULTIPLIER_CAPTION = "Jump multiplier";

CD_AIR_CONTROL_CAPTION = "Air control multiplier";
CD_FRICTION_CAPTION = "Friction multiplier";
CD_SELF_DAMAGE = "Self damage multiplier";

// Monster Options Menu ////////////////////////////////////////////////////////

Expand Down
1 change: 1 addition & 0 deletions menudef.txt
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ OptionMenu cd_MiscPlayer

cd_MinField "$CD_AIR_CONTROL_CAPTION" , cd_player_airControl_mult, 0
Slider "$CD_FRICTION_CAPTION" , cd_player_friction_mult, 0.95, 1.25, 0.01, 2
cd_MinField "$CD_SELF_DAMAGE" , cd_player_self_damage_mult, 0

} // OptionMenu cd_MiscPlayer

Expand Down
13 changes: 13 additions & 0 deletions zscript/properties/cd_misc_properties.zs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ class cd_MiscProperties play
{
updateAirControl(settings);
updateFriction(settings, player);
updateSelfDamage(settings, player);
}

// private: //////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -64,6 +65,16 @@ class cd_MiscProperties play
: _originalFriction;
}

private
void updateSelfDamage(cd_MiscSettings settings, PlayerInfo player)
{
PlayerPawn pawn = player.mo;

pawn.selfDamageFactor = settings.isEnabled()
? _originalSelfDamage * settings.selfDamage()
: _originalSelfDamage;
}

private
void rememberOriginals(PlayerInfo player)
{
Expand All @@ -72,12 +83,14 @@ class cd_MiscProperties play
_originalAirControl = level.airControl;
_originalFriction = pawn.friction;
_airControl = _originalAirControl;
_originalSelfDamage = pawn.selfDamageFactor;
}

// private: //////////////////////////////////////////////////////////////////

private double _originalAirControl;
private double _originalFriction;
private double _originalSelfDamage;

// level air control can be changed without UCD knowing about it,
// so better save the value and check it.
Expand Down
11 changes: 7 additions & 4 deletions zscript/settings/cd_misc_settings.zs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
*/

/**
* This class represents level settings.
* This class represents miscellaneous settings.
*/
class cd_MiscSettings
{
Expand All @@ -27,12 +27,14 @@ class cd_MiscSettings
bool isEnabled () { return _isEnabled .value(); }
double airControl() { return _airControl.value(); }
double friction () { return _friction .value(); }
double selfDamage() { return _selfDamage.value(); }

cd_MiscSettings init(PlayerInfo player)
{
_isEnabled = new("cd_BoolSetting" ).init("cd_player_misc_enabled" , player);
_airControl = new("cd_DoubleSetting").init("cd_player_airControl_mult", player);
_friction = new("cd_DoubleSetting").init("cd_player_friction_mult" , player);
_isEnabled = new("cd_BoolSetting" ).init("cd_player_misc_enabled" , player);
_airControl = new("cd_DoubleSetting").init("cd_player_airControl_mult" , player);
_friction = new("cd_DoubleSetting").init("cd_player_friction_mult" , player);
_selfDamage = new("cd_DoubleSetting").init("cd_player_self_damage_mult" , player);

return self;
}
Expand All @@ -42,5 +44,6 @@ class cd_MiscSettings
private cd_BoolSetting _isEnabled;
private cd_DoubleSetting _airControl;
private cd_DoubleSetting _friction;
private cd_DoubleSetting _selfDamage;

} // class cd_MiscSettings

0 comments on commit 25d92e9

Please sign in to comment.