-
Notifications
You must be signed in to change notification settings - Fork 1
/
GameInstance.py
101 lines (83 loc) · 3.68 KB
/
GameInstance.py
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
from ClientMessage import *
import json
#from Game import *
N, NE, E, SE, S, SW, W, NW = range(0, 8)
class GameInstance:
"""Takes queries about game state and returns the results"""
game = None
def __init__(self, gameId):
game = Game(gameId)
def addPlayer(self):
if self.game is not None:
return self.game.addPlayer()
def getPlayer(self, playerId):
return json.dumps(game.playerInfo(playerId))
def getInventory(self, playerId):
return json.dumps(game.inventoryInfo(playerId))
def getLevel(self, playerId):
return json.dumps(game.levelInfo(playerId))
def getVisible(self, playerId):
return json.dumps(game.visibleInfo(playerId))
def playerMove(self, playerId, dir):
if dir is N:
self.game.players[playerId]['info']['x']++
elif dir is NE:
self.game.players[playerId]['info']['x']++
self.game.players[playerId]['info']['y']++
elif dir is E:
self.game.players[playerId]['info']['y']++
elif dir is SE:
self.game.players[playerId]['info']['x']--
self.game.players[playerId]['info']['y']++
elif dir is S:
self.game.players[playerId]['info']['x']--
elif dir is NW:
self.game.players[playerId]['info']['x']++
self.game.players[playerId]['info']['y']--
elif dir is W:
self.game.players[playerId]['info']['y']--
elif dir is SW:
self.game.players[playerId]['info']['x']--
self.game.players[playerId]['info']['y']--
class Game:
"""Replace with db backed version ASAP"""
playercount = 0
players = {}
level = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0],
[0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0],
[0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
[0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
[0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
[0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
[0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
[0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
[0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
[0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
[0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
[0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
items = [(15, 10, 7),
( 8, 5, 2),
( 9, 10, 3)]
monsters = []
def playerInfo(self, playerId):
if playerId in self.players:
return players[playerId]['info']
def inventoryInfo(self, playerId):
if playerId in self.players:
return players[playerId]['inven']
def levelInfo(self, playerId):
if playerId in self.players:
return players[playerId]['explored']
def getVisible(self, playerId):
if playerId in self.players:
return (playerId, players[playerId]['info']['x'], players[playerId]['info']['y'])
def addPlayer(self):
players["player"+self.playercount]['info'] = {"name": "Player "+playercount, "level": 1, "dlvl": 0, "xp": 42, "nlvl": 42000, "x": 7, "y", 7}
players["player"+self.playercount]['inven'] = {[0, 1, 2, 3]}
players["player"+self.playercount]['explored'] = self.level
players["player"+self.playercount]['visible'] = self.level
return self.playercount++