package behavior type GatherConfig struct { Skill string `yaml:"skill"` Level int `yaml:"level"` XP int `yaml:"xp"` BaseWait float64 `yaml:"base_wait"` Tools []string `yaml:"tools"` Bait string `yaml:"bait"` Success SuccessFormula `yaml:"success"` GatherMsg string `yaml:"gather_message"` DepletedMessage string `yaml:"depleted_message"` ExhaustedMessage string `yaml:"exhausted_message"` FailMsg string `yaml:"fail_message"` Drops []DropEntry `yaml:"drops"` RespawnTimer float64 `yaml:"respawn_timer"` RespawnBroadcast string `yaml:"respawn_broadcast"` DepleteTimer float64 `yaml:"deplete_timer"` NestChance int `yaml:"nest_chance"` } type SuccessFormula struct { Base float64 `yaml:"base"` PerLevel float64 `yaml:"per_level"` Cap float64 `yaml:"cap"` } type TalkConfig struct { Nodes map[string]TalkNode `yaml:"nodes"` } type TalkNode struct { Message MessageList `yaml:"message"` Options []TalkOption `yaml:"options"` Action *NodeAction `yaml:"action"` Next string `yaml:"next,omitempty"` } type TalkOption struct { Text string `yaml:"text"` Goto string `yaml:"goto"` Condition *Condition `yaml:"condition"` Action *NodeAction `yaml:"action,omitempty"` } type NodeAction struct { 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"` Cost int `yaml:"cost"` Shop *ShopConfig `yaml:"shop"` AssignTask bool `yaml:"assign_task"` SkipTask bool `yaml:"skip_task"` ExtendTask bool `yaml:"extend_task"` ReputationCost int `yaml:"reputation_cost"` Sawmill bool `yaml:"sawmill"` ApsNode bool `yaml:"aps_node"` } type ShopConfig struct { Message string `yaml:"message"` Items []ShopItem `yaml:"items"` } type ShopItem struct { ItemID string `yaml:"item_id"` BuyPrice int `yaml:"buy_price"` SellPrice int `yaml:"sell_price"` } type Condition struct { Flag string `yaml:"flag"` Value any `yaml:"value"` Not bool `yaml:"not"` PlayerFlag string `yaml:"player_flag"` HasItem string `yaml:"has_item"` MinCredits int `yaml:"min_credits"` AllOf []Condition `yaml:"all_of"` AnyOf []Condition `yaml:"any_of"` } type UseConfig struct { Message string `yaml:"message"` Wait float64 `yaml:"wait"` Consume map[string]int `yaml:"consume"` Reward DropEntry `yaml:"reward"` FailMsg string `yaml:"fail_message"` Success *SuccessFormula `yaml:"success"` Skill string `yaml:"skill"` Level int `yaml:"level"` XP int `yaml:"xp"` }