blob: 280dd5674603c93497acefe2f40404ed6f52786c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
package game
import "fmt"
type ActionType string
const (
ActionIdle ActionType = ""
ActionGathering ActionType = "gathering"
ActionCombating ActionType = "combating"
ActionMoving ActionType = "moving"
ActionUsing ActionType = "using"
ActionTalking ActionType = "talking"
ActionToggling ActionType = "toggling"
ActionBurning ActionType = "burning"
ActionStoking ActionType = "stoking"
ActionPickingUp ActionType = "picking_up"
ActionDropping ActionType = "dropping"
ActionSearching ActionType = "searching"
ActionResting ActionType = "resting"
ActionWalking ActionType = "walking"
)
type ActionState struct {
Type ActionType
TargetName string
ToolName string
Direction string
Verb string
}
func (a *ActionState) Description() string {
if a == nil || a.Type == ActionIdle {
return ""
}
switch a.Type {
case ActionGathering:
desc := a.Verb + " a " + a.TargetName
if a.ToolName != "" {
desc += " with a " + a.ToolName
}
return desc
case ActionCombating:
return "fighting a " + a.TargetName
case ActionMoving:
return "walking in from the " + a.Direction
case ActionUsing:
return "using a " + a.TargetName
case ActionTalking:
return "talking to " + a.TargetName
case ActionToggling:
return fmt.Sprintf("pulling a %s", a.TargetName)
case ActionBurning:
return "trying to start a fire"
case ActionStoking:
return "tending to a fire"
case ActionPickingUp:
return "picking up " + a.TargetName
case ActionDropping:
return "dropping " + a.TargetName
case ActionSearching:
return "digging through a " + a.TargetName
case ActionResting:
return "resting"
case ActionWalking:
return "walking somewhere with a purpose!"
}
return ""
}
|