feat: author emergent situations and dialogue
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
[gd_resource type="Resource" script_class="SituationDefinition" load_steps=10 format=3]
|
||||
|
||||
[ext_resource type="Script" path="res://simulation/situations/SituationDefinition.gd" id="1_definition"]
|
||||
[ext_resource type="Script" path="res://simulation/situations/SituationPredicate.gd" id="2_predicate"]
|
||||
[ext_resource type="Script" path="res://simulation/situations/SituationAlternativeDefinition.gd" id="3_alternative"]
|
||||
|
||||
[sub_resource type="Resource" id="Predicate_pantry_withdrawal"]
|
||||
script = ExtResource("2_predicate")
|
||||
predicate_id = &"pantry_withdrawal"
|
||||
evaluator_id = &"event_type"
|
||||
parameters = {"event_type": "storage_withdrawn"}
|
||||
|
||||
[sub_resource type="Resource" id="Predicate_withdrawal_from_pantry"]
|
||||
script = ExtResource("2_predicate")
|
||||
predicate_id = &"withdrawal_from_pantry"
|
||||
evaluator_id = &"event_participant_id"
|
||||
parameters = {"entity_id": "village_pantry", "role": "source"}
|
||||
|
||||
[sub_resource type="Resource" id="Predicate_withdrawal_of_food"]
|
||||
script = ExtResource("2_predicate")
|
||||
predicate_id = &"withdrawal_of_food"
|
||||
evaluator_id = &"event_payload_equals"
|
||||
parameters = {"key": "item_id", "value": "food"}
|
||||
|
||||
[sub_resource type="Resource" id="Predicate_pantry_empty"]
|
||||
script = ExtResource("2_predicate")
|
||||
predicate_id = &"pantry_empty"
|
||||
evaluator_id = &"state_number_lte"
|
||||
source = "state"
|
||||
parameters = {"fact_key": "pantry.food", "value": 0.0}
|
||||
|
||||
[sub_resource type="Resource" id="Predicate_pantry_restocked"]
|
||||
script = ExtResource("2_predicate")
|
||||
predicate_id = &"pantry_restocked"
|
||||
evaluator_id = &"event_pantry_supplied"
|
||||
parameters = {"amount": 1.0, "item_id": "food", "target_id": "village_pantry"}
|
||||
|
||||
[sub_resource type="Resource" id="Alternative_restock"]
|
||||
script = ExtResource("3_alternative")
|
||||
alternative_id = &"restock_pantry"
|
||||
display_name = "Restock the pantry"
|
||||
description = "Bring at least one food item to the village pantry."
|
||||
resolution_predicate_ids = Array[StringName]([&"pantry_restocked"])
|
||||
dialogue_topic_ids = Array[StringName]([&"topic_pantry_shortage"])
|
||||
commitment_terms = {"action_id": "deposit_food", "amount": 1.0, "item_id": "food", "target_id": "village_pantry"}
|
||||
|
||||
[sub_resource type="Resource" id="Alternative_endure"]
|
||||
script = ExtResource("3_alternative")
|
||||
alternative_id = &"endure_shortage"
|
||||
display_name = "Endure the shortage"
|
||||
description = "Make no promise and let the immediate concern pass."
|
||||
resolution_predicate_ids = Array[StringName]([&"pantry_restocked"])
|
||||
dialogue_topic_ids = Array[StringName]([&"topic_pantry_shortage"])
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_definition")
|
||||
situation_definition_id = &"situation_pantry_shortage"
|
||||
display_name = "The Pantry Is Empty"
|
||||
description = "The village pantry has run out of food."
|
||||
severity = 70
|
||||
priority = 80
|
||||
trigger_predicates = [SubResource("Predicate_pantry_withdrawal"), SubResource("Predicate_withdrawal_from_pantry"), SubResource("Predicate_withdrawal_of_food"), SubResource("Predicate_pantry_empty")]
|
||||
resolution_predicates = [SubResource("Predicate_pantry_restocked")]
|
||||
expiry_predicate_ids = Array[StringName]([&"age_reached"])
|
||||
dedupe_key_fields = Array[StringName]([&"world_id", &"source_id"])
|
||||
expiry_ticks = 200
|
||||
cooldown_ticks = 50
|
||||
dialogue_topic_ids = Array[StringName]([&"topic_pantry_shortage"])
|
||||
dialogue_intent_ids = Array[StringName]([&"accept", &"decline", &"describe_need", &"offer_help", &"report_progress"])
|
||||
alternatives = [SubResource("Alternative_restock"), SubResource("Alternative_endure")]
|
||||
Reference in New Issue
Block a user