Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -105,7 +105,6 @@ async def handle_action(request: Request):
|
|
| 105 |
"challengeType": 'steal',
|
| 106 |
"status": 'pending'
|
| 107 |
}
|
| 108 |
-
game["permissions"][player]["steal"] = False
|
| 109 |
return {"success": True, "message": f"Steal initiated by {player} targeting {target}. Awaiting response from {target}."}
|
| 110 |
else:
|
| 111 |
return {"success": False, "message": "You can only steal once per turn."}
|
|
@@ -120,6 +119,7 @@ async def handle_action(request: Request):
|
|
| 120 |
return {"success": False, "message": "Player not found in game."}
|
| 121 |
next_index = (current_index + 1) % len(players_list)
|
| 122 |
game["turn"] = players_list[next_index]["name"]
|
|
|
|
| 123 |
return {"success": True, "message": f"Turn ended. Next turn: {game['turn']}"}
|
| 124 |
|
| 125 |
|
|
@@ -161,8 +161,6 @@ async def handle_action(request: Request):
|
|
| 161 |
player_data = next((p for p in game["players"] if p["name"] == player), None)
|
| 162 |
if not game["permissions"].get(player, {}).get("gain", True):
|
| 163 |
return {"success": False, "message": "You can only earn money once per turn."}
|
| 164 |
-
# Set gain to false immediately.
|
| 165 |
-
game["permissions"][player]["gain"] = False
|
| 166 |
game["challenge"] = {
|
| 167 |
"action": "duke",
|
| 168 |
"challenger": player,
|
|
@@ -184,6 +182,7 @@ async def handle_action(request: Request):
|
|
| 184 |
coins_to_steal = min(target_player["coins"], 2)
|
| 185 |
target_player["coins"] -= coins_to_steal
|
| 186 |
challenger_player["coins"] += coins_to_steal
|
|
|
|
| 187 |
game["challenge"] = None
|
| 188 |
return {"success": True, "message": f"Steal accepted. {coins_to_steal} coins transferred from {target_player['name']} to {challenger_player['name']}."}
|
| 189 |
elif response == 'challenge':
|
|
@@ -191,6 +190,7 @@ async def handle_action(request: Request):
|
|
| 191 |
coins_to_steal = min(target_player["coins"], 2)
|
| 192 |
target_player["coins"] -= coins_to_steal
|
| 193 |
challenger_player["coins"] += coins_to_steal
|
|
|
|
| 194 |
game["challenge"]["status"] = 'choose'
|
| 195 |
game["challenge"]["challenger"] = target_player['name']
|
| 196 |
game["challenge"]["target"] = challenger_player['name']
|
|
@@ -310,6 +310,7 @@ async def handle_action(request: Request):
|
|
| 310 |
if len(game["challenge"]["responses"]) == total_opponents:
|
| 311 |
acting_player = next(p for p in game["players"] if p["name"] == game["challenge"]["challenger"])
|
| 312 |
acting_player["coins"] += 3
|
|
|
|
| 313 |
game["challenge"] = None
|
| 314 |
return {"success": True, "message": f"Duke action accepted. {acting_player['name']} gains 3 coins."}
|
| 315 |
else:
|
|
@@ -321,6 +322,7 @@ async def handle_action(request: Request):
|
|
| 321 |
game["challenge"]["challenger"] = player
|
| 322 |
game["challenge"]["target"] = acting_player["name"]
|
| 323 |
acting_player["coins"] += 3
|
|
|
|
| 324 |
return {"success": True, "message": f"Challenge failed. {player} must choose a card to lose.", "challenge": game["challenge"]}
|
| 325 |
else:
|
| 326 |
game["challenge"]["status"] = "choose"
|
|
|
|
| 105 |
"challengeType": 'steal',
|
| 106 |
"status": 'pending'
|
| 107 |
}
|
|
|
|
| 108 |
return {"success": True, "message": f"Steal initiated by {player} targeting {target}. Awaiting response from {target}."}
|
| 109 |
else:
|
| 110 |
return {"success": False, "message": "You can only steal once per turn."}
|
|
|
|
| 119 |
return {"success": False, "message": "Player not found in game."}
|
| 120 |
next_index = (current_index + 1) % len(players_list)
|
| 121 |
game["turn"] = players_list[next_index]["name"]
|
| 122 |
+
game["permissions"][player]["gain"] = True
|
| 123 |
return {"success": True, "message": f"Turn ended. Next turn: {game['turn']}"}
|
| 124 |
|
| 125 |
|
|
|
|
| 161 |
player_data = next((p for p in game["players"] if p["name"] == player), None)
|
| 162 |
if not game["permissions"].get(player, {}).get("gain", True):
|
| 163 |
return {"success": False, "message": "You can only earn money once per turn."}
|
|
|
|
|
|
|
| 164 |
game["challenge"] = {
|
| 165 |
"action": "duke",
|
| 166 |
"challenger": player,
|
|
|
|
| 182 |
coins_to_steal = min(target_player["coins"], 2)
|
| 183 |
target_player["coins"] -= coins_to_steal
|
| 184 |
challenger_player["coins"] += coins_to_steal
|
| 185 |
+
game["permissions"][player]["steal"] = False
|
| 186 |
game["challenge"] = None
|
| 187 |
return {"success": True, "message": f"Steal accepted. {coins_to_steal} coins transferred from {target_player['name']} to {challenger_player['name']}."}
|
| 188 |
elif response == 'challenge':
|
|
|
|
| 190 |
coins_to_steal = min(target_player["coins"], 2)
|
| 191 |
target_player["coins"] -= coins_to_steal
|
| 192 |
challenger_player["coins"] += coins_to_steal
|
| 193 |
+
game["permissions"][player]["steal"] = False
|
| 194 |
game["challenge"]["status"] = 'choose'
|
| 195 |
game["challenge"]["challenger"] = target_player['name']
|
| 196 |
game["challenge"]["target"] = challenger_player['name']
|
|
|
|
| 310 |
if len(game["challenge"]["responses"]) == total_opponents:
|
| 311 |
acting_player = next(p for p in game["players"] if p["name"] == game["challenge"]["challenger"])
|
| 312 |
acting_player["coins"] += 3
|
| 313 |
+
game["permissions"][player]["gain"] = False
|
| 314 |
game["challenge"] = None
|
| 315 |
return {"success": True, "message": f"Duke action accepted. {acting_player['name']} gains 3 coins."}
|
| 316 |
else:
|
|
|
|
| 322 |
game["challenge"]["challenger"] = player
|
| 323 |
game["challenge"]["target"] = acting_player["name"]
|
| 324 |
acting_player["coins"] += 3
|
| 325 |
+
game["permissions"][player]["gain"] = False
|
| 326 |
return {"success": True, "message": f"Challenge failed. {player} must choose a card to lose.", "challenge": game["challenge"]}
|
| 327 |
else:
|
| 328 |
game["challenge"]["status"] = "choose"
|