-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathgame.py
129 lines (112 loc) · 3.91 KB
/
game.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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
import json
from player import playersData,setPlayerData
# import asyncio
import datetime
import pytz
import random
# settings json
def getSettings():
with open("settings.json",'r',encoding='utf-8') as f:
return json.load(f)
# set rousours (coins, woods, fishs) to player by id
def setResour(id,coins,wood,fish):
data = playersData()
data[id]['resourses']["coins"] = coins
data[id]['resourses']["wood"] = wood
data[id]['resourses']["fish"] = fish
setPlayerData(data)
# sell wood and fish for coins
## number wood = 1gold
## number fish = 1gold
## number = sttings['item']
async def sellItems(id):
data = playersData()
settings = getSettings()
coins = data[id]['resourses']["coins"]
wood = data[id]['resourses']["wood"]
fish = data[id]['resourses']["fish"]
c_add = wood//settings['wood'] + fish//settings['fish']
coins += c_add
wood = wood % settings['wood']
fish = fish % settings['fish']
setResour(id,coins,wood,fish)
return c_add
# buy item axe[1-4] or fishing-rod[5-8]
## return True when the baught complete
## return false if user does't have enough coins
async def buyItem(id,num):
data = playersData()
settings = getSettings()
player = data[id]
coins = player["resourses"]["coins"]
if num >=1 and num<=4:
num -= 1
tool = "axe"
tooln = "Axe"
if num >=5 and num <= 8:
num -= 5
tool = "rod"
tooln = "Fishing Rod"
tType = list(settings["toolsPrix"][tool])[num]
prix = settings["toolsPrix"][tool][tType]
if prix <= coins:
coins -= prix
player["resourses"]["coins"] = coins
player["tools"][tool] = tType
data[id] = player
setPlayerData(data)
# return f"\nYou have get {tType} {tooln} by {prix}\nYou still have {coins}Gala"
return [tType,tooln,prix,coins]
# return f"You need {-(coins-prix)} Gala to get this tool"
need = prix - coins
return [False, need ]
async def chop(id):
data = playersData()
settings = getSettings()
player = data[id]
lastChop = datetime.datetime.strptime(player["lastChop"], "%Y-%m-%d %H:%M:%S")
now = datetime.datetime.now(pytz.utc).strftime("%Y-%m-%d %H:%M:%S")
now = datetime.datetime.strptime(now, "%Y-%m-%d %H:%M:%S")
diff = now - lastChop
tseconds =int(diff.total_seconds())
minutes = tseconds // 60
seconds = tseconds % 60
if minutes >= settings["chopToolSleep"]:
tool_type = player["tools"]["axe"]
range = settings["toolRange"]["axe"][tool_type]
getWood = random.randint(range[0],range[1])
player["resourses"]["wood"] += getWood
player["lastChop"] = now.strftime("%Y-%m-%d %H:%M:%S")
data[id] = player
setPlayerData(data)
return getWood
# format time
wait_m = settings["chopToolSleep"] - minutes
wait_s = 60 - seconds
time_str = "{:02d}:{:02d}".format(wait_m, wait_s)
return time_str
async def fish(id):
data = playersData()
settings = getSettings()
player = data[id]
lastChop = datetime.datetime.strptime(player["lastFish"], "%Y-%m-%d %H:%M:%S")
now = datetime.datetime.now(pytz.utc).strftime("%Y-%m-%d %H:%M:%S")
now = datetime.datetime.strptime(now, "%Y-%m-%d %H:%M:%S")
diff = now - lastChop
tseconds =int(diff.total_seconds())
minutes = tseconds // 60
seconds = tseconds % 60
if minutes >= settings["fishToolSleep"]:
tool_type = player["tools"]["rod"]
range = settings["toolRange"]["rod"][tool_type]
getWood = random.randint(range[0],range[1])
player["resourses"]["fish"] += getWood
player["lastFish"] = now.strftime("%Y-%m-%d %H:%M:%S")
data[id] = player
setPlayerData(data)
return getWood
# format time
wait_m = settings["fishToolSleep"] - minutes
wait_s = 60 - seconds
time_str = "{:02d}:{:02d}".format(wait_m, wait_s)
return time_str