Implement production vertical slice foundation

This commit is contained in:
chindit committed 2026-10-02 15:27:48 +02:00
1 parent 9d4a89f355
commit a18e82eb44
104 files changed
+10595 -268

No files matched your search

+47
View File
@@ -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 ""