aboutsummaryrefslogtreecommitdiff
path: root/internal/action
diff options
context:
space:
mode:
Diffstat (limited to 'internal/action')
-rw-r--r--internal/action/action.go138
1 files changed, 135 insertions, 3 deletions
diff --git a/internal/action/action.go b/internal/action/action.go
index 5e66708..a72f6ca 100644
--- a/internal/action/action.go
+++ b/internal/action/action.go
@@ -23,13 +23,40 @@ func WordPrefixMatch(input, name string) bool {
return true
}
+type ActionType string
+
+const (
+ TypeGather ActionType = "gather"
+ TypeSteal ActionType = "steal"
+ TypeTalk ActionType = "talk"
+ TypeUse ActionType = "use"
+ TypeBurn ActionType = "burn"
+ TypeStoke ActionType = "stoke"
+ TypeSearch ActionType = "search"
+ TypeIdentify ActionType = "identify"
+ TypePlant ActionType = "plant"
+ TypeHarvest ActionType = "harvest"
+ TypeRake ActionType = "rake"
+ TypeWater ActionType = "water"
+ TypeCure ActionType = "cure"
+ TypeObstacle ActionType = "obstacle"
+ TypeFletch ActionType = "fletch"
+ TypeClean ActionType = "clean"
+ TypeCook ActionType = "cook"
+ TypeSmelt ActionType = "smelt"
+ TypeSmith ActionType = "smith"
+ TypeCraft ActionType = "craft"
+ TypeCombine ActionType = "combine"
+ TypeMix ActionType = "mix"
+ TypeConstruct ActionType = "construct"
+)
+
type Action struct {
- Type string
+ Type ActionType
TargetID string
TargetName string
- Step int
WaitLeft int
- Data map[string]any
+ Data any
}
func (a *Action) Advance() bool {
@@ -40,6 +67,111 @@ func (a *Action) Advance() bool {
return true
}
+type GatherData struct {
+ ObjDefID string
+ InstanceKey string
+ InstanceIdx int
+ EffectiveWait float64
+ DepleteTimer bool
+ Step int
+ Verb string
+ ToolName string
+}
+
+type ProductionData struct {
+ ItemID string
+ Phase int
+ Wait float64
+ StartMsg string
+ EndMsg string
+ Remaining int
+ NextStepIndex int
+ StepsAccumulatedTicks float64
+}
+
+type StealData struct {
+ TargetType string
+ StealTable string
+ StealLevel int
+ StealXP int
+ StealSpeed float64
+ TargetName string
+ MobInstanceID string
+ ObjDefID string
+ GuardMob string
+ GuardWatching bool
+}
+
+type TalkData struct {
+ Node string
+ Cfg *TalkConfig
+ EstateDirectory bool
+ StealGuard bool
+}
+
+type UseData struct {
+ Cfg *UseConfig
+ Step int
+}
+
+type BurnData struct {
+ ItemID string
+ ToolSpeed float64
+ Level int
+ XP int
+ BurnTicks float64
+ Phase int
+}
+
+type IdentifyData struct {
+ JunkID string
+ XPPer int
+}
+
+type ObstacleData struct {
+ CourseID string
+ Phase int
+ ObstacleIndex int
+ TotalObstacles int
+ NextRoom int
+ StartRoom int
+ ObstacleXP int
+ CompletionXP int
+ FailChance float64
+ FailDamageMin int
+ FailDamageMax int
+ Messages []any
+ TicksPerPhase float64
+ RequiredLevel int
+}
+
+type FarmData struct {
+ Prefix string
+ SeedID string
+ XP float64
+ Product string
+ MinYield float64
+ MaxYield float64
+}
+
+type SearchData struct {
+ ItemID string
+ SlotIdx int
+ Started bool
+}
+
+type FletchData struct {
+ ItemID string
+ Phase int
+ Wait float64
+ Remaining int
+}
+
+type CleanData struct {
+ Phase int
+ Filter string
+}
+
type DropEntry struct {
ItemID string `yaml:"item_id"`
Table string `yaml:"table"`