48 lines
1.5 KiB
GDScript
48 lines
1.5 KiB
GDScript
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 ""
|