-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
81 lines (69 loc) · 2.03 KB
/
main.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
#!/usr/bin/env python3
from time import sleep
from combat import *
import random
import sys
__author__ = "John Petersen"
__version__ = "0.0.1"
__license__ = "GNU General Public License 3.0"
def main():
args = sys.argv
seed = -1
seeded = False
if(len(args) == 2):
seeded = True
seed = int(args[1])
random.seed(seed)
timed(f'Seeded={seeded}, seed={seed}\n')
G = Group
front = G(G(Elf("Shelf")), G(Human("Finn")))
#front = G(G(Elf("Guelf"), Elf("Shelf"), Elf("Self")),
# G(Goblin("Grog"), Goblin("Flog"), Goblin("Blog")),
# G(Human("Finn"), Human("Lynn"), Human("Flynn")),
# G(Orc("Dorc"), Orc("Morc"), Orc("Porc")))
back = G()
last = None
while(cleanup(front, back)):
init = initiator(front, back)
if(len(init) != 2):
break
i, j = init
if(i < 0 or j < 0):
break
if(i >= len(front) or j >= len(front[i])):
break
cur = front[i][j]
if(last == None):
last = cur
elif(last != cur):
last.stats.INV = last.base_stats.INV
timed(f' Reset {last}\'s INV')
pre = cur.target
if(cur == pre):
cur.target = None
pre = cur.target
if(dead(cur.target)):
if(not retarget(i, j, front, back)):
break
post = cur.target
if(evade(post)):
timed(f' {cur} swung, but {post} evaded')
else:
d = damage(cur)
if(d > 0):
timed(f' {cur} hit',
f'{post} for {int(d)} damage')
if(dead(post)):
timed(f' {post} is dead')
else:
timed(f' {post} has ' \
f'{int(post.stats.HP)} HP left')
else:
timed(f' {cur} missed {post}')
last = cur
timed("")
midsleep()
input("\nPress <enter> to quit. ")
return
if __name__ == "__main__":
main()