def _update_activity_shop(basic_data, data, activity, now): """更新神秘商店活动的完成度 """ if not utils.is_same_day(activity.forward_time, now): basic_activity = basic_data.activity_list.get(activity.basic_id) basic_steps = get_basic_activity_steps(basic_data, basic_activity) activity.reset(basic_activity, basic_steps)
def _update_activity_login(basic_data, data, activity, now): """更新七日签到活动的完成度 """ basic_activity = basic_data.activity_list.get(activity.basic_id) if not utils.is_same_day(activity.forward_time, now): next_step_id = activity.get_next_step_id_unaccepted(basic_activity) if next_step_id != 0: activity.forward(basic_activity, next_step_id, 1, now)
def _update_activity_pay_daily(basic_data, data, activity, now): if not utils.is_same_day(activity.forward_time, now): basic_activity = basic_data.activity_list.get(activity.basic_id) basic_steps = get_basic_activity_steps(basic_data, basic_activity) activity.reset(basic_activity, basic_steps) trainer = data.trainer.get(True) progress = trainer.buy_daily_discount basic_activity = basic_data.activity_list.get(activity.basic_id) activity.forward_all(basic_activity, progress, now)
def _update_activity_search(basic_data, data, activity, now): """搜索次数 """ if not utils.is_same_day(activity.forward_time, now): basic_activity = basic_data.activity_list.get(activity.basic_id) basic_steps = get_basic_activity_steps(basic_data, basic_activity) activity.reset(basic_activity, basic_steps) draw = data.draw.get(True) basic_activity = basic_data.activity_list.get(activity.basic_id) activity.forward_all(basic_activity, draw.daily_money_draw_num + draw.daily_gold_draw_num, now)
def _update_activity_choose_card(basic_data, data, activity, now): """祈福翻牌子次数 """ if not utils.is_same_day(activity.forward_time, now): basic_activity = basic_data.activity_list.get(activity.basic_id) basic_steps = get_basic_activity_steps(basic_data, basic_activity) activity.reset(basic_activity, basic_steps) trainer = data.trainer.get(True) basic_activity = basic_data.activity_list.get(activity.basic_id) activity.forward_all(basic_activity, trainer.daily_choose_card_num, now)
def _update_activity_key_node(basic_data, data, activity, now): """掠夺或占领战斗次数 """ if not utils.is_same_day(activity.forward_time, now): basic_activity = basic_data.activity_list.get(activity.basic_id) basic_steps = get_basic_activity_steps(basic_data, basic_activity) activity.reset(basic_activity, basic_steps) trainer = data.trainer.get(True) basic_activity = basic_data.activity_list.get(activity.basic_id) activity.forward_all(basic_activity, trainer.knode_daily_win, now)
def _update_activity_cost_energy(basic_data, data, activity, now): """更新限时消耗政令活动完成度 """ if not utils.is_same_day(activity.forward_time, now): basic_activity = basic_data.activity_list.get(activity.basic_id) basic_steps = get_basic_activity_steps(basic_data, basic_activity) activity.reset(basic_activity, basic_steps) energy = data.energy.get(True) basic_activity = basic_data.activity_list.get(activity.basic_id) activity.forward_all(basic_activity, energy.daily_use_energy, now)
def _update_activity_buy_goods(basic_data, data, activity, now): """各种商店购买次数 """ if not utils.is_same_day(activity.forward_time, now): basic_activity = basic_data.activity_list.get(activity.basic_id) basic_steps = get_basic_activity_steps(basic_data, basic_activity) activity.reset(basic_activity, basic_steps) trainer = data.trainer.get(True) progress = trainer.daily_buy_goods_in_wineshop + trainer.daily_buy_goods_in_achievement_shop + \ trainer.daily_buy_goods_in_legendcity_shop + trainer.daily_buy_goods_in_union_shop basic_activity = basic_data.activity_list.get(activity.basic_id) activity.forward_all(basic_activity, progress, now)
def _update_activity_exploit(basic_data, data, activity, now): """开采次数 """ if not utils.is_same_day(activity.forward_time, now): basic_activity = basic_data.activity_list.get(activity.basic_id) basic_steps = get_basic_activity_steps(basic_data, basic_activity) activity.reset(basic_activity, basic_steps) trainer = data.trainer.get(True) progress = trainer.daily_finish_tax_num + trainer.daily_finish_farm_num +\ trainer.daily_finish_mining_num + trainer.daily_finish_gold_num basic_activity = basic_data.activity_list.get(activity.basic_id) activity.forward_all(basic_activity, progress, now)
def update_across_day_info(data, now, force = False): """更新所有离线数据 """ #判断是否是隔天登录 user = data.user.get() is_same_day = utils.is_same_day(now, user.last_login_time) logger.debug("Is same day:%r" % is_same_day) if not force and is_same_day: return True days_diff = utils.count_days_diff(user.last_login_time, now) #更新用户登录信息 user.login(now) trainer = data.trainer.get() trainer.add_login_num(1) #更新资源 resource = data.resource.get() resource.update_current_resource(now) if not is_same_day: resource.reset_daily_statistics(days_diff) #更新兵力 for conscript_data in data.conscript_list: conscript = conscript_data.get() if not is_same_day: conscript.reset_daily_statistics() if not conscript_business.update_current_soldier(conscript, now): return False #更新英雄驻守经验 for building_data in data.building_list: building = building_data.get(True) if (building.is_able_to_garrison() and not building.is_upgrade and building.has_working_hero()): heroes_id = building.get_working_hero() heroes = [] for id in heroes_id: heroes.append(data.hero_list.get(id)) if not building_business.calc_garrison_exp(data, building, heroes, now): return False #更新签到信息 sign = data.sign.get() sign.try_reset(now) #更新地图信息 if not is_same_day: map = data.map.get() map.reset_daily_statistics(now) #更新抽奖信息 if not is_same_day: draw = data.draw.get() draw.try_reset_draw(now) draw.reset_daily_statistics() #更新充值信息(月卡) pay = data.pay.get() pay.refresh_card(now) #更新一些统计信息 trainer = data.trainer.get() if not is_same_day: trainer.reset_daily_statistics() #重置日常任务 if not is_same_day: pattern = 1 if data_loader.OtherBasicInfo_dict.has_key("init_id"): pattern = int(float(data_loader.OtherBasicInfo_dict['init_id'].value)) mission_business.reset_daily_missions(data, pattern) #更新任务状态 mission_business.update_all_missions(data, now) #更新政令 if not is_same_day: energy = data.energy.get() energy.reset_daily_use_energy() #更新史实城信息 if not is_same_day: for legendcity in data.legendcity_list.get_all(): legendcity.reset_attack_count_daily_auto() #更新试炼场信息 if not is_same_day: anneal = data.anneal.get() anneal.try_forward_floor() anneal_business.refresh_attack_num(anneal, now) #更新换位演武场 if not is_same_day: transfer = data.transfer.get() transfer.reset() if not is_same_day: plunder = data.plunder.get() plunder.reset() plunder_business.decay_all_plunder_enemy_daily(data) return True