-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdef.go
149 lines (119 loc) · 2.6 KB
/
def.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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
package main
import "github.com/hajimehoshi/ebiten/v2"
var netProtoVersion uint16 = 19
const FrameSpeedNS = 133333333
const (
gameVersion = "0.0.21"
// Files and directories
dataDir = "data/"
gfxDir = dataDir + "gfx/"
txtDir = dataDir + "txt/"
playerSpriteSize = 52
loadEmbedSprites = true
chunkDiv = 128
)
type JustType uint8
const (
JUST_LEFT JustType = iota
JUST_CENTER
JUST_RIGHT
JUST_DOWN
JUST_UP
)
// Game modes
type MODE uint8
const (
MODE_Start MODE = iota
MODE_Boot
MODE_Connect
MODE_Reconnect
MODE_Connected
MODE_Login
MODE_Playing
MODE_Logoff
MODE_Error
)
var playerMode PMode
// Used for debug messages, this could be better
var modeNames map[PMode]*playerModeData
func loadPlayerModes() {
modeNames = make(map[PMode]*playerModeData)
modeNames[PMODE_PASSIVE] = &playerModeData{printName: "Passive", name: "PMODE_PASSIVE", imgName: "passive"}
modeNames[PMODE_ATTACK] = &playerModeData{printName: "Attack", name: "PMODE_ATTACK", imgName: "attack"}
modeNames[PMODE_HEAL] = &playerModeData{printName: "Heal", name: "PMODE_HEAL", imgName: "heal"}
//Load images
for m, mode := range modeNames {
modeNames[m].image = findItemImage("player-modes", "modes", mode.imgName)
}
}
type playerModeData struct {
printName string
name string
imgName string
image *ebiten.Image
}
type PMode uint8
// Directions
type DIR uint8
const (
// Directions
DIR_N DIR = iota
DIR_NE
DIR_E
DIR_SE
DIR_S
DIR_SW
DIR_W
DIR_NW
DIR_NONE
)
const (
// Directions
PMODE_PASSIVE PMode = iota
PMODE_ATTACK
PMODE_HEAL
)
type EFF uint8
const (
EFFECT_NONE EFF = 1 << iota
EFFECT_HEAL
EFFECT_HEALER
EFFECT_ATTACK
EFFECT_INJURED
)
// Network commands
type CMD uint8
const (
CMD_Init CMD = iota
CMD_Login
CMD_Play
CMD_Move
CMD_WorldUpdate
CMD_Chat
CMD_Command
CMD_PlayerMode
CMD_WorldData
CMD_PlayerNamesComp
CMD_EditPlaceItem
CMD_EditDeleteItem
)
// Used for debug messages, this could be better
var cmdNames map[CMD]string
func init() {
cmdNames = make(map[CMD]string)
cmdNames[CMD_Init] = "CMD_Init"
cmdNames[CMD_Login] = "CMD_Login"
cmdNames[CMD_Play] = "CMD_Play"
cmdNames[CMD_Move] = "CMD_Move"
cmdNames[CMD_WorldUpdate] = "CMD_WorldUpdate"
cmdNames[CMD_Chat] = "CMD_Chat"
cmdNames[CMD_Command] = "CMD_Command"
cmdNames[CMD_PlayerMode] = "CMD_PlayerMode"
cmdNames[CMD_WorldData] = "CMD_WorldData"
cmdNames[CMD_PlayerNamesComp] = "CMD_PlayerNamesComp"
cmdNames[CMD_EditPlaceItem] = "CMD_EditPlaceItem"
cmdNames[CMD_EditDeleteItem] = "CMD_EditDeleteItem"
}
const xyCenter = 2147483648
const xyMax = xyCenter * 2
var worldCenter XY = XY{X: xyCenter, Y: xyCenter}