def destroy_p(player, asset, pla, building, num): if building not in pla.constructions: player.add_msg('Impossible de détruire %d %s sur la planète %d de %s%s' % (num, building.name, pla.position + 1, asset.name, ': pas de construction de ce type')) return False num = pla.destroy(building, num) asset.add_ore(building.caracs[I('cost_ore')] * num / 2) player.set_budget(I('budget_destr'), building.caracs[I('cost_prod')]*num/3) player.add_msg('Destruction de %d %s sur la planète %d de %s' % (num, building.name, pla.position + 1, asset.name)) return True
def destroy(player, asset, building, num): already = 0 for p in asset.planets: if building in p.constructions: already += p.destroy(building, num - already) assert(already > num) if already == num: break if already == 0: player.add_msg('Impossible de détruire %d %s sur %s: pas de const%s' % (num, building.name, asset.name, 'ruction de ce type')) return False else: asset.add_ore(building.caracs[I('cost_ore')] * already / 2) player.set_budget(I('budget_destr'), building.caracs[I('cost_prod')] * already / 3) player.add_msg('Destruction de %d %s sur %s' % (num, building.name, asset.name)) return True