diff options
author | Jesusaves <cpntb1@ymail.com> | 2020-12-20 16:47:55 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2020-12-20 16:47:55 -0300 |
commit | 6aa000483850a90792a7d93b5869747259793351 (patch) | |
tree | 85cda34a06ce5704cc70a5f6284616ea03abcec0 /battle | |
parent | 0a689ce7178a258759de3e7624c9d13aeceb2820 (diff) | |
download | server-6aa000483850a90792a7d93b5869747259793351.tar.gz server-6aa000483850a90792a7d93b5869747259793351.tar.bz2 server-6aa000483850a90792a7d93b5869747259793351.tar.xz server-6aa000483850a90792a7d93b5869747259793351.zip |
Add partial support for multiple worlds.
Diffstat (limited to 'battle')
-rw-r--r-- | battle/main.py | 34 | ||||
-rw-r--r-- | battle/summons.py | 4 |
2 files changed, 21 insertions, 17 deletions
diff --git a/battle/main.py b/battle/main.py index 2ef26c9..f19dc6b 100644 --- a/battle/main.py +++ b/battle/main.py @@ -39,12 +39,12 @@ random.seed() # Structural functions ############################################# # Update enemy list with the next wave data. No checks are conducted. -def advance_wave(token, quest_id, next_wave): +def advance_wave(token, world, quest_id, next_wave): global Battle, allquests Battle[token]["enemy"]=[] stdout("advance_wave was called") - quest=dl_search(allquests, "quest_id", quest_id) + quest=dl_search(allquests[world], "quest_id", quest_id) if quest == "ERROR": print("ERROR, INVALID QUEST") # TODO: HANDLE THIS ERROR (FIXME) @@ -71,8 +71,8 @@ def advance_wave(token, quest_id, next_wave): Battle[token]["wave"]+=1 return True -# get_result(str, bool, int) -def get_result(token, victory, quest_id): +# get_result(str, bool, str, int) +def get_result(token, victory, world, quest_id): global Player, Battle, allquests result={ "result": "", @@ -91,7 +91,7 @@ def get_result(token, victory, quest_id): # Prepare data result["result"]="VICTORY" - quest=dl_search(allquests, "quest_id", quest_id) + quest=dl_search(allquests[world], "quest_id", quest_id) if quest == "ERROR": print("ERROR, INVALID QUEST") stdout("Quest %d is invalid", str(quest_id)) @@ -196,7 +196,7 @@ def get_result(token, victory, quest_id): ############################################# # Client commands ############################################# -# begin_quest( quest_id, party_id ) +# begin_quest( world, quest_id, party_id ) def begin_quest(args, token, client_side=True): global allquests, Player, Battle # Data validation @@ -209,8 +209,9 @@ def begin_quest(args, token, client_side=True): tmp=int(bq["party_id"]) if (tmp < 1 or tmp > 3): return ERR_BAD - tmp=int(Player[token]["quest"]) - for quest in allquests: + tmpw=str(bq["world"]) + tmp=int(Player[token]["quest"]) # FIXME + for quest in allquests[tmpw]: if (quest["quest_id"] == bq["quest_id"]): break if (quest["quest_id"] != bq["quest_id"]): @@ -240,6 +241,7 @@ def begin_quest(args, token, client_side=True): player.update_ap(token, -(quest["cost"])) Battle[token]={ + "world": bq["world"], "quest_id": quest["quest_id"], "difficulty": quest["difficulty"], "result": "", @@ -254,7 +256,7 @@ def begin_quest(args, token, client_side=True): stdout("Data set") # Write the current wave enemies data - advance_wave(token, quest["quest_id"], 0) + advance_wave(token, bq["world"], quest["quest_id"], 0) # Write the current party (and their HP bar) for ux in Player[token]["party_"+str(int(bq["party_id"]))]: @@ -387,7 +389,7 @@ def battle(args, token): stdout("vu: %d" % tmp) tmp=len(bt["sphere"]) stdout("vs: %d" % tmp) - tmp=int(Player[token]["quest"]) + tmp=int(Player[token]["quest"]) # FIXME stdout("ptq: %d pts: %d" % (tmp, Player[token]["status"])) if (Player[token]["status"] < ST_QUEST): return ERR_BAD @@ -466,7 +468,7 @@ def battle(args, token): stdout("You won!") if (Battle[token]["wave"] < Battle[token]["max_wave"]): stdout("Next wave detected: %s, Quest ID: %s\nWave: %s" % (token, Battle[token]["quest_id"], Battle[token]["wave"])) - advance_wave(token, Battle[token]["quest_id"], Battle[token]["wave"]) + advance_wave(token, Battle[token]["world"], Battle[token]["quest_id"], Battle[token]["wave"]) # Do not continue this loop: End the turn now return battle_endturn(token, spheres) else: @@ -474,7 +476,7 @@ def battle(args, token): stdout("Total Victory") Player[token]["status"]=ST_TOWN # TODO: enemy die = add reward - result=get_result(token, True, Battle[token]["quest_id"]) + result=get_result(token, True, Battle[token]["world"], Battle[token]["quest_id"]) del Battle[token] return compress(result) @@ -484,7 +486,7 @@ def battle(args, token): if (not check_player_alive(token)): # You lost! Player[token]["status"]=ST_TOWN - result=get_result(token, False, Battle[token]["quest_id"]) + result=get_result(token, False, Battle[token]["world"], Battle[token]["quest_id"]) del Battle[token] return compress(result) @@ -513,7 +515,7 @@ def battle(args, token): if (not check_player_alive(token)): # You lost! Player[token]["status"]=ST_TOWN - result=get_result(token, False, Battle[token]["quest_id"]) + result=get_result(token, False, Battle[token]["world"], Battle[token]["quest_id"]) del Battle[token] return compress(result) @@ -525,6 +527,7 @@ def battle(args, token): # If in a battle, otherwise it returns: ERR_BAD # TODO FIXME: Do not default to PID 1. Probably save it as a mask. # eg. PID + QID as string. So ST_QUEST becomes 11 (PID 1 QID 1) +# FIXME: Token might have changed, maybe we should save to userid instead of token def reload_battle(token): if (Player[token]["status"] < ST_QUEST): return ERR_BAD @@ -534,7 +537,8 @@ def reload_battle(token): del bq return compress(Battle[token]) except: - v1=begin_quest('{"quest_id": %d, "party_id": 1}' % Player[token]["status"], token, client_side=False) + # FIXME: Detect world + v1=begin_quest('{"world": "Main", "quest_id": %d, "party_id": 1}' % Player[token]["status"], token, client_side=False) stdout("Restarting quest...") return v1 diff --git a/battle/summons.py b/battle/summons.py index f662cb8..da393bb 100644 --- a/battle/summons.py +++ b/battle/summons.py @@ -47,7 +47,7 @@ def handle_summon(token, summon): dbgprint("You won!") if (Battle[token]["wave"] < Battle[token]["max_wave"]): dbgprint("Next wave detected: %s, Quest ID: %s\nWave: %s" % (token, Battle[token]["quest_id"], Battle[token]["wave"])) - advance_wave(token, Battle[token]["quest_id"], Battle[token]["wave"]) + advance_wave(token, Battle[token]["world"], Battle[token]["quest_id"], Battle[token]["wave"]) # Do not continue this loop: End the turn now return battle_endturn(token, Battle[token]["spheres"]) else: @@ -55,7 +55,7 @@ def handle_summon(token, summon): dbgprint("Total Victory") Player[token]["status"]=ST_TOWN # TODO: enemy die = add reward - result=get_result(token, True, Battle[token]["quest_id"]) + result=get_result(token, True, Battle[token]["world"], Battle[token]["quest_id"]) del Battle[token] return compress(result) |