aboutsummaryrefslogtreecommitdiff
path: root/internal/action
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-06-10 04:44:31 -0400
committerhistoria <[not public]>2026-06-10 04:44:31 -0400
commit69d8757ad983697cdc9182fdcc1cdb612a77fb41 (patch)
tree348c26d1f6defe3aef64f5aa9e7cefed0e764214 /internal/action
parenta226d72e51eecb768b13600303f73483118d9104 (diff)
downloadthehouseoficarus-69d8757ad983697cdc9182fdcc1cdb612a77fb41.tar.gz
feat: yaml architecture for complex object interaction
Diffstat (limited to 'internal/action')
-rw-r--r--internal/action/behavior.go20
1 files changed, 13 insertions, 7 deletions
diff --git a/internal/action/behavior.go b/internal/action/behavior.go
index d7f683a..d8eb909 100644
--- a/internal/action/behavior.go
+++ b/internal/action/behavior.go
@@ -38,16 +38,22 @@ type TalkOption struct {
}
type NodeAction struct {
- SetFlags map[string]any `yaml:"set_flags"`
- GiveItem string `yaml:"give_item"`
- TakeItem string `yaml:"take_item"`
+ SetFlags map[string]any `yaml:"set_flags"`
+ SetPlayerFlags map[string]any `yaml:"set_player_flags"`
+ GiveItem string `yaml:"give_item"`
+ TakeItem string `yaml:"take_item"`
+ Teleport int `yaml:"teleport"`
+ Heal int `yaml:"heal"`
}
type Condition struct {
- Flag string `yaml:"flag"`
- Value any `yaml:"value"`
- Not bool `yaml:"not"`
- HasItem string `yaml:"has_item"`
+ Flag string `yaml:"flag"`
+ Value any `yaml:"value"`
+ Not bool `yaml:"not"`
+ PlayerFlag string `yaml:"player_flag"`
+ HasItem string `yaml:"has_item"`
+ AllOf []Condition `yaml:"all_of"`
+ AnyOf []Condition `yaml:"any_of"`
}
type UseConfig struct {