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
|
import isrock
import isportal
from math import floor
from curses import KEY_LEFT as left, KEY_RIGHT as right, KEY_DOWN as down, KEY_UP as up
import inv
def splitlist(liststr, strsplit):
newlist = []
sublist = []
for item in liststr:
if item == strsplit:
newlist.append(sublist)
sublist = []
else:
sublist.append(item)
newlist.append(sublist)
return newlist
class Explore:
def __init__(self, density, x=0, y=0):
self.density = density
self.x = x
self.y = y
def get_area(self, dim):
out = ''
for y in range(dim[0]):
y += self.y
for x in range(floor(dim[1]/2)):
x += self.x
pos = isrock.isrock(self.density, (x,y), typereq=True)
if not pos[0]:
out += ' '
elif pos[1] == 'n':
out += '*'
else:
out += '\\'
out += ' '
out = out[:-1]
out += '\n'
return out[:-1]
def displace(self, dim, dis):
self.move((self.x + dim[0], self.y + dim[1]), dis)
def move(self, dim, dis):
self.x, self.y = dim[0], dim[1]
dim = (dim[0]+dis[1], dim[1]+dis[0])
if isportal.isportal(dim):
dim = isportal.link(dim)
self.x, self.y = dim[0]-dis[1], dim[1]-dis[0]
def interpretkey(self, key):
return {up:(0,-1), left:(-1,0), down:(0,1), right:(1,0)}[key]
def rockmod(self, dim, state):
dim = (self.x + dim[1], self.y + dim[0])
if state != isrock.isrock(self.density, dim):
if state and inv.quantity <= 0:
return
isrock.modrock(dim, state)
inv.quantity += -1 if state else 1
def getinv(self):
return inv.quantity
def load(self, file):
try:
f = open('./worlds/'+str(file)[2:-1],'r')
data = [line[:-1] for line in f.readlines()] #removes newlines
f.close()
except:
return "File Doesn't Exist"
loc = [int(num) for num in data[0].split(' ')]
self.x, self.y, inv.quantity = loc[0], loc[1], loc[2]
data = splitlist(data[1:], '______')
isrock.load(data[0])
isportal.load(data[1])
def save(self, file):
f = open('./worlds/'+str(file)[2:-1],'w')
data = str(self.x) + ' ' + str(self.y) + ' ' + str(inv.quantity) + '\n'
data += isrock.save()
data += '______\n' + isportal.save()
f.write(data)
f.close()
def setportal(self, dim):
dim = (dim[1]+self.x, dim[0]+self.y)
if not isrock.isrock(self.density, dim) and inv.quantity >= 10:
inv.quantity -= 10
isrock.modrock(dim, True, 'p')
isportal.modportal(dim)
elif isrock.isrock(self.density, dim, typereq=True)[1] == 'p':
inv.quantity += 10
isrock.modrock(dim, False)
isportal.modportal(dim)
|