def refine_attr(self): attr = CommonItem() if self.refine != 0: _refine_attr = game_configs.seal_config.get(self.refine) #item = CommonItem(dict(hp=0, atk=0, physicalDef=0, magicDef=0)) for pulse in range(1, _refine_attr.pulse + 1): lst = game_configs.seal_config.get(pulse) for item in lst: if item.id > _refine_attr.id or item.allInt < 0: continue add_item = CommonItem( dict(hp=item.hp, atk=item.atk, physicalDef=item.physicalDef, magicDef=item.magicDef)) attr += add_item last_lst = game_configs.seal_config.get(pulse - 1) if last_lst: first_item = last_lst[0] attr += CommonItem( dict(hp=first_item.hp, atk=first_item.atk, physicalDef=first_item.physicalDef, magicDef=first_item.magicDef)) if _refine_attr.id == lst[-1].id: first_item = lst[0] attr += CommonItem( dict(hp=first_item.hp, atk=first_item.atk, physicalDef=first_item.physicalDef, magicDef=first_item.magicDef)) return attr
def parser(self, config_value): for row in config_value: item = CommonItem(row) if item.get('group') == 1: self._items[item.id] = item return self._items
def parser(self, config_value): for row in config_value: item = CommonItem(row) item['formula'] = compile(item.get('formula'), '', 'eval') self._items[item.get('key')] = item return self._items
def hero_attr(self): """ 英雄属性:包括突破和羁绊 """ attr = CommonItem() # 英雄 hero_obj = self.hero_slot.hero_obj if not hero_obj: return None, attr, hero_obj # hero_no, quality, hp, atk, physical_def, magic_def, hit # dodge, cri, cri_coeff, cri_ded_coeff, block, normal_skill # rage_skill, break_skills hero_base_attr = hero_obj.calculate_attr() # 英雄基础属性,等级成长 # hp, hp_rate, atk, atk_rate,physical_def,physical_def_rate, # magic_def, magic_def_rate, hit, dodge, cri, cri_coeff, cri_ded_coeff, block attr = CommonItem() hero_break_attr = hero_obj.break_attr() # 英雄突破技能属性 attr += hero_break_attr hero_link_attr = self.hero_slot.link_attr # 英雄羁绊技能属性 attr += hero_link_attr if hero_obj.refine != 0: _refine_attr = game_configs.seal_config.get(hero_obj.refine) if _refine_attr: attr += _refine_attr else: logger.error('cant find refine config:%s', hero_obj.refine) return hero_base_attr, attr, hero_obj
def parser(self, config_value): for row in config_value: item = CommonItem(row) item['formula'] = compile(item.get('formula'), '', 'eval') item['precondition'] = compile(item.get('precondition'), '', 'eval') self._items[item.get('key')] = item return self._items
def parser(self, config_value): for row in config_value: item = CommonItem(row) data = item.get('choose') if data: data = compile(data, '', 'eval') item['choose'] = data self._items[item.id] = item return self._items
def parser(self, config_value): for row in config_value: row["setting"] = parse(row.get("setting")) row["fristGift"] = parse(row.get("fristGift")) item = CommonItem(row) if item.get('platform') not in self._items: self._items[item.get('platform')] = {} self._items[item.get('platform')].update({item.goodsid: item}) self._items[item.id] = item return self._items
def parser(self, config_value): for row in config_value: row["reward"] = parse(row.get("reward")) convert_keystr2num(row.get("condition")) item = CommonItem(row) self._items[item.id] = item if item.unlock: self._unlock[item.unlock] = item.id else: self._first_task.append(item.id) if item.sort == 2 or item.sort == 3: self._sort[2].append(item.id) elif item.sort == 1: self._sort[1].append(item.id) elif item.sort == 4: self._sort[3].append(item.id) for _, condition in item.condition.items(): if self._conditions.get(condition[0]): if item.id in self._conditions[condition[0]]: continue self._conditions[condition[0]].append(item.id) else: self._conditions[condition[0]] = [item.id] return { 'tasks': self._items, 'sort': self._sort, 'unlock': self._unlock, 'conditions': self._conditions, 'first_task': self._first_task }
def parser(self, config_value): for row in config_value: item = CommonItem(row) if item.type == 6: self._elite_stages[item.id] = item if item.condition != 0: # 开启条件不是0 self._condition_mapping.setdefault(item.condition, []).append(item.id) else: self._first_stage_id.append(item.id) elif item.type == 5: self._act_stages[item.id] = item if item.condition != 0: # 开启条件不是0 self._condition_mapping.setdefault(item.condition, []).append(item.id) else: self._first_stage_id.append(item.id) elif item.type == 7: self._boss_stages[item.id] = item return { 'elite_stages': self._elite_stages, 'act_stages': self._act_stages, 'boss_stages': self._boss_stages, 'first_stage_id': self._first_stage_id, 'condition_mapping': self._condition_mapping }
def parser(self, config_value): for row in config_value: row["expend"] = parse(row.get("expend")) item = CommonItem(row) self._items[item.id] = item if item.pulse not in self._items: self._items[item.pulse] = [] self._items[item.pulse].append(item) #start_id = min(self._items.keys()) #def accumulate_next(cur_id): #cur_item = self._items.get(cur_id) #if not cur_item: #return #next_id = cur_item.get('next') #next_item = self._items.get(next_id) #if next_id and next_item: #for k, v in next_item.items(): #if isinstance(v, float): #next_item[k] += cur_item[k] #accumulate_next(next_id) #accumulate_next(start_id) return self._items
def reset_rob_treasure(self): # types = [30001, 30002, 30003] character_info = tb_character_info.getObj(self.owner.base_info.id) types = game_configs.base_config.get('indianaMatch') num = 0 for _id in types: item1 = game_configs.arena_fight_config.get(_id) item = CommonItem(item1) if not item: logger.error('arena_fight_config:%d', _id) for x in item.play_rank: if x > num: num = x power = character_info.hget('attackPoint') if not power: power = 100 ids = get_player_ids(self.owner.base_info.id, power, types, num+1) if [0, 0] in ids: ids.remove([0, 0]) self._rob_treasure = ids print ids, '============================reset rob treasure'
def parser(self, config_value): for row in config_value: item = CommonItem(row) if item.sort == 1: if item.type == 4: # 活动 self._activity_stages[item.id] = item continue self._chapter_ids.add(item.chapter) self._stages[item.id] = item if not item.chaptersTab: # 不是章节标签 self._condition_mapping.setdefault(item.condition, []).append(item.id) if item.sort == 10: self._stages[item.id] = item if item.sort == 9: self._travel_stages.append(item.id) self._stages[item.id] = item for stage_id, stage in self._stages.items(): if stage.chapter == 1 and stage.section == 1 and stage.type == 1: # 第一章第一节难度普通 self._first_stage_id = stage_id return { 'stages': self._stages, 'first_stage_id': self._first_stage_id, 'chapter_ids': list(self._chapter_ids), 'condition_mapping': self._condition_mapping, 'activity_stages': self._activity_stages, 'travel_stages': self._travel_stages }
def parser(self, config_value): for row in config_value: item = CommonItem(row) #item.reward = data_helper.parse(item.reward) if item.sort == TaskType.LIVELY or item.sort == TaskType.LIVELY_REWARD: self._items[item.id] = item return self._items
def parser(self, config_value): for row in config_value: convert_keystr2num(row.get("weightGroup")) convert_keystr2num(row.get("limitVIPeveryday")) convert_keystr2num(row.get("limitVIP")) convert_keystr2num(row.get("dutyFree")) convert_keystr2num(row.get("contribution")) convert_keystr2num(row.get("attr")) row["consume"] = parse(row.get("consume")) row["alternativeConsume"] = parse(row.get("alternativeConsume")) row["gain"] = parse(row.get("gain")) row["Integral"] = parse(row.get("Integral")) row["extraGain"] = parse(row.get("extraGain")) row["discountPrice"] = parse(row.get("discountPrice")) row["ExchangeValue"] = parse(row.get("ExchangeValue")) item = CommonItem(row) self._items[item.id] = item if item.type not in self._items: self._items[item.type] = [] type_shop = self._items[item.type] type_shop.append(item) return self._items
def parser(self, config_value): for row in config_value: item = CommonItem(row) # if not item.is_open: # 乱入开放 # continue self._open_break_stage[item.id] = item return self._open_break_stage
def parser(self, config_value): def convert_keystr2num(d): for k in d.keys(): nk = None v = d[k] try: nk = eval(k) except: pass if nk is not None: del d[k] d[nk] = v if isinstance(v, dict): convert_keystr2num(v) for item in config_value: for k, v in item.items(): if isinstance(v, dict): convert_keystr2num(v) weights = 0 for row in config_value: item = CommonItem(row) self._weight.append([item.id, weights + item.weight]) self._events[item.id] = item weights += item.weight return {'events': self._events, 'weight': self._weight}
def calculate_attr(self): """根据属性和强化等级计算装备属性 """ equipment_no = self._base_info.equipment_no equ_config_obj = game_configs.equipment_config.get(equipment_no) atk = equ_config_obj.baseAtk + equ_config_obj.growAtk * self._attribute.strengthen_lv # 攻击 hp = equ_config_obj.baseHp + equ_config_obj.growHp * self._attribute.strengthen_lv # 血量 physical_def = equ_config_obj.basePdef + equ_config_obj.growPdef * self._attribute.strengthen_lv # 物理防御 magic_def = equ_config_obj.baseMdef + equ_config_obj.growMdef * self._attribute.strengthen_lv # 魔法防御 hit = equ_config_obj.hit # 命中率 dodge = equ_config_obj.dodge # 闪避率 cri = equ_config_obj.cri # 暴击率 cri_coeff = equ_config_obj.criCoeff # 暴击伤害系数 cri_ded_coeff = equ_config_obj.criDedCoeff # 暴击减免系数 block = equ_config_obj.block # 格挡率 return CommonItem(dict(atk=atk, hp=hp, physical_def=physical_def, magic_def=magic_def, hit=hit, dodge=dodge, cri=cri, cri_coeff=cri_coeff, cri_ded_coeff=cri_ded_coeff, block=block))
def parser(self, config_value): for row in config_value: row["consume"] = parse(row.get("consume")) row["gain"] = parse(row.get("gain")) item = CommonItem(row) self._items[item.id] = item return self._items
def parser(self, config_value): """解析 """ for row in config_value: if row.get('gain'): row['gain'] = data_helper.parse(row.get("gain")) self._equipments[row.get('id')] = CommonItem(row) return self._equipments
def parser(self, config_value): for row in config_value: row["reward"] = parse(row.get("reward")) item = CommonItem(row) # if not item.is_open: # 乱入开放 # continue self._open_break_stage[item.id] = item return self._open_break_stage
def parser(self, config_value): """解析 """ for row in config_value: data_helper.convert_keystr2num(row.get('mainAttr')) data_helper.convert_keystr2num(row.get('minorAttr')) self._data[row.get('id')] = CommonItem(row) return self._data
def parser(self, config_value): for row in config_value: convert_keystr2num(row.get("Probability")) self._items[row.get('id')] = CommonItem(row) return self._items
def parser(self, config_value): for row in config_value: convert_keystr2num(row.get("gain")) item = CommonItem(row) item["gain"] = row.get("gain") self._items[item.id] = item return self._items
def parser(self, config_value): for row in config_value: # if isinstance(row.get("effectPos"), dict): # convert_keystr2num(row.get("effectPos")) item = CommonItem(row) self._items[item.id] = item return self._items
def parser(self, config_value): for row in config_value: convert_keystr2num(row.get("shopOpen")) convert_keystr2num(row.get("shopRefreshTime")) self._items[row.get('id')] = CommonItem(row) return self._items
def parser(self, config_value): for row in config_value: row["dragonGift"] = parse(row.get("dragonGift")) row["stageBox"] = parse(row.get("stageBox")) item = CommonItem(row) if item.sort == 1: if item.type == 14: # 隐藏关卡 self._chapter_hide_stage[item.chapter] = item self._chapter_ids.add(item.chapter) self._stages[item.id] = item if item.chaptersTab: # 是章节标签 pass ''' for (id, info) in item.dragonGift.items(): if self._gift_weight.get(item.chapter): self._gift_weight[item.chapter][id] = info[3] else: self._gift_weight[item.chapter] = {id: info[3]} del info[-1] if self._gift_info.get(item.chapter): self._gift_info[item.chapter][id] = info else: self._gift_info[item.chapter] = {id: info} ''' else: self._condition_mapping.setdefault(item.condition, []). \ append(item.id) if item.sort == 10: self._travel_fight_stages[item.id] = item if item.sort == 9: self._travel_stages.append(item.id) self._stages[item.id] = item if item.sort == 8: self._mine_stages[item.id] = item if item.sort == 12: self._hjqy_stages[item.id] = item for stage_id, stage in self._stages.items(): if stage.chapter == 1 and stage.section == 1 and stage.type == 1: # 第一章第一节难度普通 self._first_stage_id = stage_id return {'stages': self._stages, 'first_stage_id': self._first_stage_id, 'chapter_ids': list(self._chapter_ids), 'condition_mapping': self._condition_mapping, 'chapter_hide_stage': self._chapter_hide_stage, 'travel_stages': self._travel_stages, 'travel_fight_stages': self._travel_fight_stages, 'mine_stages': self._mine_stages, 'hjqy_stages': self._hjqy_stages}
def parser(self, config_value): for row in config_value: row["reward"] = parse(row.get("reward")) item = CommonItem(row) if not self._items.get(item.type): self._items[item.type] = [] self._items[item.type].append(item) return self._items
def parser(self, config_value): for row in config_value: item = CommonItem(row) self._items[item.id] = item if self._group.get(item.group): self._group[item.group].append(item.id) else: self._group[item.group] = [item.id] return {'items': self._items, 'groups': self._group}
def parser(self, config_value): for row in config_value: if row.get("luckyValue"): convert_keystr2num(row.get("luckyValue")) row["refreshItem"] = parse(row.get("refreshItem")) row["refreshPrice"] = parse(row.get("refreshPrice")) item = CommonItem(row) self._items[item.id] = item return self._items
def set_equ_attr(self): """ 套装属性 """ suit_attr = CommonItem() equ_suit = self.equ_suit # 装备套装技能属性 for temp in equ_suit.values(): suit_attr += temp return suit_attr
def parser(self, config_value): for row in config_value: # row["consume"] = parse(row.get("consume")) item = CommonItem(row) index = item.difficulty * 100 + item.quality * 10 + item.type self._indiana[item.id] = item self._indexes[index] = item.id return {'indiana': self._indiana, 'indexes': self._indexes}
def parser(self, config_value): self._items['pre1'] = [] self._items['pre2'] = [] self._items['str'] = [] for row in config_value: item = CommonItem(row) if item.get('prefix_1'): self._items['pre1'].append(item.get('prefix_1')) if item.get('prefix_2'): self._items['pre2'].append(item.get('prefix_2')) if item.get('office'): self._items['str'].append(item.get('office')) return self._items
def parser(self, config_value): for row in config_value: item = CommonItem(row) item["rewards"] = parse(item.get('rewards')) self._link[item.id] = item return self._link