def guild_attack(uid): res = dict() r_action = RecordAction(uid) r_data = r_action.get_model_info() fight_data = r_data.get(r_action.fight_group_str, []) if fight_data is None: fight_data = [] if 'VIP' in fight_data: res['isCD'] = True return res user_action = UserAction(uid) # 体力的扣除 cur_vit = user_action.get_vit() cost_vit = 1 if cur_vit < cost_vit: return False if user_action.reduce_vit(cost_vit) is False: return False award = dict() item_action = ItemAction(uid) result = True award_item = 20010 award_item_ct = 1 if item_action.add_model(award_item, award_item_ct): award[award_item] = award_item_ct res['award'] = award res['result'] = result fight_data.append('VIP') update_data = { r_action.fight_group_str: fight_data, r_action.fight_str: r_data.get(r_action.fight_str, 0) + 1 } record_logic.add_fight_record(uid, update_data) return res
def start_grab(uid, key_id): mach_action = MachineAction(uid) egg = mach_action.get_egg_info(key_id) if egg is False: print("egg is not exits") return False item_id = egg.get('id', False) if item_id is False: return False user_action = UserAction(uid) vit = user_action.get_vit() vit_cost = 1 if vit < vit_cost or user_action.reduce_vit(vit_cost) is False: return False config = ConfigModel('egg').get_config_by_id(item_id) probability = int(config['lv']) / 100 rand = random.random() res = dict() res['res'] = True if rand <= probability else False note_model = NoteModel(uid) note_model.set_value(key_id, res['res']) return res
def refresh_vit(uid): u = UserAction(uid) if u.get_vit() < u.max_vit_value: u.reset_vit()
def fight_against(uid, opponent): if opponent == 'VIP': return guild_attack(uid) res = dict() r_action = RecordAction(uid) r_data = r_action.get_model_info() fight_data = r_data.get(r_action.fight_group_str, []) if fight_data is None: fight_data = [] if opponent in fight_data: res['isCD'] = True return res my_formation = FormationAction(uid) my_formation_info = my_formation.get_model_info() opponent_formation = FormationAction(opponent) opponent_info = opponent_formation.get_model_info() my_atk = my_formation_info.get(opponent_formation.fight_atk_str, 0) opponent_atk = opponent_info.get(opponent_formation.fight_atk_str, 10000) my_art_info = artifact_logic.get_artifact_akt(uid) opponent_art_info = artifact_logic.get_artifact_akt(opponent) res['my_atk'] = my_atk + my_art_info.get('atk', 0) res['opponent_atk'] = opponent_atk + opponent_art_info.get('atk', 0) my_fight_heroes = my_formation_info.get(my_formation.fight_formation_str) my_fight_heroes_group = [i for i in my_fight_heroes if i != ''] eat_hero_update = eat_atk(uid, my_fight_heroes_group, res['opponent_atk']) if eat_hero_update is False: # 我受伤了已经 res['error'] = True res['update'] = my_formation_info else: user_action = UserAction(uid) # 体力的扣除 cur_vit = user_action.get_vit() cost_vit = 1 if cur_vit < cost_vit: return False if user_action.reduce_vit(cost_vit) is False: return False award_success_gold = 10 award_fail_gold = 2 award = dict() award_success_items = [ 20010, 20011, 20012, 20013, 20014, 20015, 20016, 20017, 20018, 20019 ] item_action = ItemAction(uid) if my_atk > opponent_atk: result = True opponent_formation.set_injured() award_item = random.choice(award_success_items) award_item_ct = 1 if item_action.add_model(award_item, award_item_ct): award[award_item] = award_item_ct if user_action.add_gold(award_success_gold): award['gold'] = award_success_gold else: result = False my_formation.set_injured() if user_action.add_gold(award_fail_gold): award['gold'] = award_fail_gold res['award'] = award res['result'] = result res['update'] = eat_hero_update update_data = { r_action.fight_group_str: fight_data, r_action.fight_str: r_data.get(r_action.fight_str, 0) + 1 } record_logic.add_fight_record(uid, update_data) return res