def handle_get_battle_init_data(data): battle_data = data["battle"] battle_id = battle_data["battle_id"] battle_name = BATTLES.get(battle_id, "battle #" + battle_id) print "Entering {0}".format(battle_name) all_rounds_data = battle_data['rounds'] tbl = [["rnd", "enemy", "drop"]] for round_data in all_rounds_data: round = round_data.get("round", "???") for round_drop in round_data["drop_item_list"]: tbl.append([round, "<round drop>", round_drop["type"]]) for enemy in round_data["enemy"]: had_drop = False enemyname = get_display_name(enemy) for drop in get_drops(enemy): if "item_id" in drop: kind = "orb id#" if drop["type"] == 51 else "equipment id#" item = ITEMS.get(drop["item_id"], kind + drop["item_id"]) itemname = "{0}* {1}".format(drop.get("rarity", "1"), item) else: itemname = "{0} gold".format(drop.get("amount", 0)) had_drop = True tbl.append([round, enemyname, itemname]) if not had_drop: tbl.append([round, enemyname, "nothing"]) print tabulate(tbl, headers="firstrow") print ""
def handle_get_battle_init_data(data): battle_data = data["battle"] battle_id = battle_data["battle_id"] battle_name = BATTLES.get(battle_id, "battle #" + battle_id) print "Entering {0}".format(battle_name) all_rounds_data = battle_data['rounds'] tbl = [["rnd", "enemy", "drop"]] for round_data in all_rounds_data: round = round_data.get("round", "???") for round_drop in round_data["drop_item_list"]: item_type = int(round_drop.get("type", 0)) if item_type == 21: itemname = "potion" elif item_type == 22: itemname = "hi-potion" elif item_type == 23: itemname = "x-potion" elif item_type == 31: itemname = "ether" elif item_type == 32: itemname = "turbo ether" else: itemname = "unknown" tbl.append([round, "<round drop>", itemname]) for enemy in round_data["enemy"]: had_drop = False enemyname = get_display_name(enemy) for drop in get_drops(enemy): item_type = drop.get("type", 0) if item_type == 11: itemname = "{0} gil".format(drop.get("amount", 0)) elif item_type == 41 or item_type == 51: type_name = "orb id#" if item_type == 51 else "equipment id#" item = ITEMS.get(drop["item_id"], type_name + drop["item_id"]) itemname = "{0}* {1}".format(drop.get("rarity", 1), item) elif item_type == 61: itemname = "event item" else: itemname = "unknown" had_drop = True tbl.append([round, enemyname, itemname]) if not had_drop: tbl.append([round, enemyname, "nothing"]) print tabulate(tbl, headers="firstrow") print ""
def handle_get_battle_init_data(data): enemy_list = [] ability_list = [] soul_strike_list = [] enemy_ability_list = [] character_list = [] copy = data pp = pprint.PrettyPrinter(indent=4) # if path.endswith("get_battle_init_data"): # battle = data['battle'] # for buddy in battle['buddy']: # for params in buddy['params']: # params['atk'] = 9999 # params['acc'] = 9999 # params['mdef'] = 9999 # params['eva'] = 9999 # params['spd'] = 9999 # params['def'] = 9999 # for materia in buddy['materias']: # # makes Blue Moon Barrage proc 100% of the time # if materia['arg2'] == "30151111": # materia['arg1'] = "100" # # Blue Moon Barrage # # "materias": [ # # { # # "slot": 1, # # "arg1": "16", # # "arg2": "30151111", # # "arg3": "0", # # "arg4": "0", # # "arg5": "0", # # "effect_type": "13" # # } # flow.response.content = json.dumps(data) # log data debug_path = os.getcwd() + "/data/raw/handle_get_battle_init_data/handle_get_battle_init_data_" + time.strftime("%m%d%Y-%H%M%S") + ".json" test_file = open(debug_path, 'w') print >> test_file, json.dumps(data, indent=4, sort_keys=False) test_file.close() battle_data = data["battle"] battle_id = battle_data["battle_id"] battle_name = BATTLES.get(battle_id, "battle #" + battle_id) print "" print "Entering {0}".format(battle_name) all_rounds_data = battle_data['rounds'] tbl = [["rnd", "enemy", "hp", "drop"]] for round_data in all_rounds_data: round = round_data.get("round", "???") for round_drop in round_data["drop_item_list"]: item_type = int(round_drop.get("type", 0)) if item_type == 21: itemname = "potion" elif item_type == 22: itemname = "hi-potion" elif item_type == 23: itemname = "x-potion" elif item_type == 31: itemname = "ether" elif item_type == 32: itemname = "turbo ether" else: itemname = "unknown" tbl.append([round, "<round drop>","", itemname]) for enemy in round_data["enemy"]: had_drop = False enemyname = get_display_name(enemy) enemyhp = get_enemy_hp(enemy) for drop in get_drops(enemy): item_type = drop.get("type", 0) if item_type == 11: itemname = "{0} gil".format(drop.get("amount", 0)) elif item_type == 41 or item_type == 51: type_name = "orb id#" if item_type == 51 else "equipment id#" item = ITEMS.get(drop["item_id"], type_name + drop["item_id"]) itemname = "{0}* {1}".format(drop.get("rarity", 1), item) elif item_type == 61: itemname = "event item" else: itemname = "unknown" had_drop = True tbl.append([round, enemyname, enemyhp, itemname]) if not had_drop: tbl.append([round, enemyname, enemyhp, "nothing"]) # for child in enemy["children"] enemy_list.append(enemy) # print enemy_list # pp.pprint(enemy_list) # print "enemy_list: " + str(len(enemy_list)) print tabulate(tbl, headers="firstrow") print "" # print tabulate(tbl) save_enemy_stats(enemy_list, battle_id) # fire/blizzard/thunder/dark/-ara/-aga/-aja # arg1 = power multiplier # arg2 = element # arg3 = ? # arg4 = ? # arg5 = ? # elements # 100 = fire # 101 = ice # 102 = thunder # 103 = earth # 104 = wind # 105 = water # 106 = holy(cure/a/aga/aja) # 107 = dark # 108 = poison # "status_ailments_factor" = % chance to inflict status ailment # "status_ailments_id" = ID for status ailment # 200 = poison # 201 = silence # 202 = paralyze # 203 = confuse # 204 = haste # 205 = slow # 206 = stop # 207 = protect # 208 = shell # 209 = reflect # 210 = blind # 211 = sleep # 212 = stone/pretrify # 213 = ? Doom ? # 214 = instant KO (death)/gravity/cripple # 215 = ? Berserk ? # 216 = regen # ### For "attribute_id": "1XX" #### # "factor": "1" = this means that said enemy is weak to the element with that corresponding attribute_id # "factor": "6" = this means that said enemy resists the corresponding element # "factor": "11" = this means that said enemy nulls (takes zero damage from) the corresponding element # "factor": "21" = this means that said enemy absorbs the corresponding element # ### For "attribute_id": "2XX" #### # "factor": "1" = with a factor of one and the attribute_id preset to "2XX", it means said enemy is immune to that debuff # ability data buddy_data = battle_data["buddy"] for buddy in buddy_data: for ability in buddy["abilities"]: ability_list.append(ability) # only need to save abilities when new ones come out or create the ones I don't have enemy_ability_data = battle_data["enemy_abilities"] for enemy_ability in enemy_ability_data: enemy_ability_list.append(enemy_ability) # print "\nsoul_stike_list:\n" # # print soul_strike_list # for option in soul_strike_list["options"]: # print option # print "\ncharacter_list:\n" # print character_list # print enemy_ability_list save_abilities(ability_list, "/data/abilities") # save_abilities(soul_strike_list, "/data/soul_strikes") save_abilities(enemy_ability_list, "/data/enemy_abilities")