def townUpdate(self, town): town.getUser().getTransfer().forceSend( '/delivery/townUpdate', { 'done': True, 'town': Service_Town().getDecorateClass( Service_Town.JSONPACK).pack(town) })
def resourceDown(self): serviceTown = Service_Town() serviceMapResources = Service_MapResources() serviceMapResourcesJsonPack = Service_MapResources().getDecorateClass(Service_MapResources.JSONPACK) deliveryController = DeliveryController() townCollection = serviceTown.getAllTownsCollection() for town in townCollection: resources = serviceMapResources.getResourceByTown(town) townBonus = town.getBonus() sendResources = [] for resource in resources: serviceMapResources.resourceDown(resource) sendResources.append( serviceMapResourcesJsonPack.packDomainToJson(resource) ) deliveryController.resourcesUpdate(town, sendResources)
def split(self, armyDomain, size, user=None): if armyDomain.getUnit().getType() == Common.TYPE_GENERAL: raise exceptions.army.CommanderNotPermission( "Недопустимая операция для командира") if armyDomain.getCommander() is not None: raise exceptions.army.UnitHasCommander( "Юнит имеет командира и не может провести операцию") if armyDomain.getInBuild() is not True: raise exceptions.army.UnitNotInBuild( "Юнит обязан находится в городе") if armyDomain.getCount() <= size or size <= 0: raise exceptions.army.Split("Неверный размер для разделения") self._create( armyDomain.getUnit(), Service_Town().loadByPosition(armyDomain.getMap().getPosition()), size) armyDomain.setCount(armyDomain.getCount() - size) armyDomain.getMapper().save(armyDomain)
def _getParamsTown(self): return Service_Town().decorate(Service_Town.PARAMS)
def _getTownService(self): return Service_Town()
def _getParamsAclJsonPackTown(self): return Service_Town().decorate(Service_Town.JSONPACK_ACL)
def _getAclParamsJsonPackTown(self): return Service_Town().decorate(Service_Town.PARAMS_JSONPACK_ACL)
def getTown(self): from service.Town import Service_Town return Service_Town().getById(self.get('town'))
def create(self, unit, town, count, user=None): town = Service_Town().getById(town) unit = Service_Equipment_Units().getForce(unit) count = int(count) return super().create(unit, town, count, user)
def saveTown(self, user, townData): return Service_Town().decorate( Service_Town.PARAMS_JSONPACK).save(townData)
def getTownByPosition(self, x, y): return Service_Town().decorate( Service_Map.PARAMS_JSONPACK).loadByPosition(x, y)
def addTownBuild(self, town, name, level): builds = town.getBuilds() builds.set(name, level) builds.getMapper().save(builds) Service_Town().updateBonusAndResources(town)