Example #1
0
    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
Example #2
0
    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
Example #3
0
    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
Example #4
0
    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
Example #5
0
    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
Example #6
0
    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
Example #7
0
    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
Example #8
0
    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
        }
Example #9
0
    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
        }
Example #10
0
    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
Example #11
0
    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'
Example #12
0
    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
        }
Example #13
0
 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
Example #14
0
    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
Example #15
0
 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
Example #16
0
    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}
Example #17
0
    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))
Example #18
0
    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
Example #19
0
 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
Example #20
0
 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
Example #21
0
 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
Example #22
0
    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
Example #23
0
    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
Example #24
0
    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
Example #25
0
    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
Example #26
0
    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}
Example #27
0
    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
Example #28
0
    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}
Example #29
0
    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
Example #30
0
    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
Example #31
0
    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}
Example #32
0
    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
Example #33
0
 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