Implement production vertical slice foundation
This commit is contained in:
1 parent
9d4a89f355
commit
a18e82eb44
104 files changed
+10595
-268
No files matched your search
@@ -0,0 +1,47 @@
|
||||
class_name DiveUpgradeEffects
|
||||
extends RefCounted
|
||||
|
||||
var battery_capacity_bonus_kwh: float
|
||||
var oxygen_capacity_bonus_l: float
|
||||
var hull_integrity_bonus: float
|
||||
var certified_depth_bonus_m: float
|
||||
var battery_consumption_multiplier: float
|
||||
var collision_damage_multiplier: float
|
||||
var pressure_damage_multiplier: float
|
||||
|
||||
|
||||
func _init(
|
||||
p_battery_capacity_bonus_kwh: float = 0.0,
|
||||
p_oxygen_capacity_bonus_l: float = 0.0,
|
||||
p_hull_integrity_bonus: float = 0.0,
|
||||
p_certified_depth_bonus_m: float = 0.0,
|
||||
p_battery_consumption_multiplier: float = 1.0,
|
||||
p_collision_damage_multiplier: float = 1.0,
|
||||
p_pressure_damage_multiplier: float = 1.0
|
||||
) -> void:
|
||||
battery_capacity_bonus_kwh = p_battery_capacity_bonus_kwh
|
||||
oxygen_capacity_bonus_l = p_oxygen_capacity_bonus_l
|
||||
hull_integrity_bonus = p_hull_integrity_bonus
|
||||
certified_depth_bonus_m = p_certified_depth_bonus_m
|
||||
battery_consumption_multiplier = p_battery_consumption_multiplier
|
||||
collision_damage_multiplier = p_collision_damage_multiplier
|
||||
pressure_damage_multiplier = p_pressure_damage_multiplier
|
||||
|
||||
|
||||
func validation_error() -> String:
|
||||
for bonus: float in [
|
||||
battery_capacity_bonus_kwh,
|
||||
oxygen_capacity_bonus_l,
|
||||
hull_integrity_bonus,
|
||||
certified_depth_bonus_m,
|
||||
]:
|
||||
if not is_finite(bonus) or bonus < 0.0:
|
||||
return "upgrade bonuses must be finite and non-negative"
|
||||
for multiplier: float in [
|
||||
battery_consumption_multiplier,
|
||||
collision_damage_multiplier,
|
||||
pressure_damage_multiplier,
|
||||
]:
|
||||
if not is_finite(multiplier) or multiplier <= 0.0:
|
||||
return "upgrade multipliers must be finite and positive"
|
||||
return ""
|
||||
Reference in new issue
Block a user