-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcaress_cat_subgame.go
73 lines (54 loc) · 1.43 KB
/
caress_cat_subgame.go
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
70
71
72
73
package main
import (
"github.com/seletskiy/go-android-rpc/android"
"github.com/seletskiy/go-android-rpc/android/sdk"
)
type CaressCatSubgame struct {
Subgame
OriginLocation Location
}
func (subgame CaressCatSubgame) GetButtonTitle() string {
return "Play with cat"
}
func (subgame CaressCatSubgame) GetLayoutName() string {
return "main_layout"
}
func (subgame CaressCatSubgame) Enter(state *State) {
subgame.Subgame.Enter(state)
defer android.PanicHandler()
main := &CaressCatLocation{game: &subgame}
main.Link(subgame.OriginLocation)
subgame.SetLocation(main)
subgame.Start()
}
type CaressCatOnClickHandler struct {
button sdk.Button
state *State
}
func (handler CaressCatOnClickHandler) OnClick() {
handler.button.PerformHapticFeedback(0)
handler.state.Progress++
handler.state.Cat++
handler.state.MoveCounter++
}
type CaressCatLocation struct {
BaseLocation
game *CaressCatSubgame
}
func (location CaressCatLocation) GetDescription() string {
return "<p>" + Cat + " is looking at you.</p>"
}
func (location CaressCatLocation) GetHeader() string {
return "<p>You sit down near the cat.</p>"
}
func (location CaressCatLocation) Enter(state *State) {
caressButton := location.game.CreateView(
"android.widget.Button",
).(sdk.Button)
android.SetTextFromHtml(caressButton, "Caress "+Cat)
android.OnClick(caressButton, CaressCatOnClickHandler{
caressButton,
state,
})
location.game.AttachView(caressButton.View)
}