예제 #1
0
    def unlockPartner(self,player,partner_id,order_num):
        partner = player.getPartner(partner_id)
        costType = 3
        costValue = 0
        heroInfo = heroTable.GetHeroInfoByid(partner_id)
        if partner.hadBeenUnlocked == 1:
            costType = ResourceType.cash

            costValue = heroUnlockTable.getHeroUnlockInfoByOrder(order_num).cost

        else:

            costType = heroInfo.costType
            costValue = heroInfo.costValue

            if costType == ResourceType.cash:
                costValue = heroUnlockTable.getHeroUnlockInfoByOrder(order_num).cost

        if player.costResource(costType, costValue):
            partner.hadBeenUnlocked = 1
            partner.partner_level = max(1,partner.partner_level)
            partner.order = order_num
            partner.sleep = 0
            partner.hp = heroInfo.max_hp
        else:
            return ErrorCode.resourceNotEnough
예제 #2
0
    def partnerUpgrade(self,partner_id,to_level):
        the_partner =None

        for partner in self.partners:
            if partner.partner_id == partner_id:
                heroConstInfo = heroTable.GetHeroInfoByid(partner.partner_id)
                if partner.partner_level == 0:

                    return ErrorCode.notunlocknow
                if partner.partner_level >= to_level:
                    return None
                else:
                    costSum = 0
                    order = partner.order
                    fromLevel = max(2,partner.partner_level + 1)
                    for level in range(fromLevel, to_level + 1):
                        cost = partnerUpgradeTable.GetPartnerUpgradeInfo(level).cost
                        cost *= heroConstInfo.upgradeCostModify

                        if heroConstInfo.costType == ResourceType.cash:
                            modifyValue = heroUnlockTable.getHeroUnlockInfoByOrder(order).modify
                            cost *= modifyValue

                        cost = int(cost)
                        costSum += cost

                    if self.cash >= costSum:
                        self.cash -= costSum
                        partner.partner_level = to_level

                        return None
                    else:
                        return (300,"resource not enough.nowLevel:%s toLevel:%s own:%s need:%s"%(partner.partner_level,to_level,self.cash,costSum))