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,52 @@
|
||||
class_name DiveDifficultyProfile
|
||||
extends RefCounted
|
||||
|
||||
var profile_id: StringName
|
||||
var oxygen_consumption_multiplier: float
|
||||
var battery_consumption_multiplier: float
|
||||
var collision_damage_multiplier: float
|
||||
var pressure_damage_multiplier: float
|
||||
var crush_grace_multiplier: float
|
||||
|
||||
|
||||
func _init(
|
||||
p_profile_id: StringName,
|
||||
p_oxygen_consumption_multiplier: float,
|
||||
p_battery_consumption_multiplier: float,
|
||||
p_collision_damage_multiplier: float,
|
||||
p_pressure_damage_multiplier: float,
|
||||
p_crush_grace_multiplier: float
|
||||
) -> void:
|
||||
profile_id = p_profile_id
|
||||
oxygen_consumption_multiplier = p_oxygen_consumption_multiplier
|
||||
battery_consumption_multiplier = p_battery_consumption_multiplier
|
||||
collision_damage_multiplier = p_collision_damage_multiplier
|
||||
pressure_damage_multiplier = p_pressure_damage_multiplier
|
||||
crush_grace_multiplier = p_crush_grace_multiplier
|
||||
|
||||
|
||||
static func exploration():
|
||||
return new(&"exploration", 0.75, 0.80, 0.65, 0.50, 1.50)
|
||||
|
||||
|
||||
static func standard():
|
||||
return new(&"standard", 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
|
||||
|
||||
static func expert():
|
||||
return new(&"expert", 1.20, 1.15, 1.25, 1.35, 0.75)
|
||||
|
||||
|
||||
func validation_error() -> String:
|
||||
if profile_id.is_empty():
|
||||
return "difficulty profile_id is empty"
|
||||
for value: float in [
|
||||
oxygen_consumption_multiplier,
|
||||
battery_consumption_multiplier,
|
||||
collision_damage_multiplier,
|
||||
pressure_damage_multiplier,
|
||||
crush_grace_multiplier,
|
||||
]:
|
||||
if not is_finite(value) or value <= 0.0:
|
||||
return "difficulty multipliers must be finite and positive"
|
||||
return ""
|
||||
Reference in new issue
Block a user