Expose pending service pricing in facility UI

Show normal usage fees separately from the unspecified desire-match surcharge. Preserve free reception and omit guest pricing from warehouse and cleaning rooms.

Validation: 155 suites / 12,310 checks; focused 700 checks; strict state and event equivalence; 16 normal and compact FRONT/BACK captures.
This commit is contained in:
Takeshi
2026-10-01 02:43:39 +09:00
parent 5dde0c5ec2
commit 285528b7a3
5 changed files with 255 additions and 3 deletions
+12 -1
View File
@@ -12182,6 +12182,14 @@ func get_facility_business_price(facility: FacilityInstance) -> int:
return FacilityPricing.apply_multiplier(donation, get_floor_price_multiplier(facility.origin.y))
## Owned presentation data; accepted request/service quotations stay frozen.
## Matching-surcharge charging remains pending until its inputs are specified.
func get_facility_service_pricing_readmodel(facility: FacilityInstance) -> Dictionary:
return FacilityPricing.pending_service_readmodel(
get_facility_business_price(facility), facility.service_attribute
)
func _business_base_price(facility: FacilityInstance) -> int:
return 0 if facility.definition_id == &"reception" else facility.base_price
@@ -12206,6 +12214,7 @@ func get_business_management_report() -> Dictionary:
continue
var amounts: Dictionary = totals.get(facility.instance_id, {})
var base := _business_base_price(facility)
var service_pricing := get_facility_service_pricing_readmodel(facility)
var queued_customers: Dictionary = {}
for request: ServiceRequest in facility_service.get_queue(facility.instance_id):
for guest_id: StringName in request.guest_ids:
@@ -12213,6 +12222,7 @@ func get_business_management_report() -> Dictionary:
rows.append({
&"facility_id": facility.instance_id,
&"definition_id": facility.definition_id,
&"category": definition.category,
&"display_name": definition.display_name,
&"origin": Vector2i(facility.origin.x, facility.origin.y),
&"layer": facility.origin.z,
@@ -12220,7 +12230,8 @@ func get_business_management_report() -> Dictionary:
&"business_open": facility.operator_open,
&"price_mode": StringName(facility.policy_current.get(&"price_mode", &"standard")),
&"base_price": base,
&"price": get_facility_business_price(facility),
&"price": service_pricing[&"normal_price"],
&"service_pricing": service_pricing,
&"floor_price_multiplier_bp": get_floor_price_multiplier(facility.origin.y),
&"donation_multiplier": get_donation_multiplier(facility),
&"faith_per_service": definition.faith_per_service,