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
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))