Exemple #1
0
 def achieve_mission_found(self):
     if not self.group.resources or\
             self.group.position.village_set.count() >= NB_VILLAGES_PER_TILE\
             or self.group.resources <\
             Resources.dict_to_resources(VILLAGE_CREATION_NEEDED_RESOURCES):
         self.come_back()
         self.group.log_report(
                 type=11,
                 subject='Impossible de créer le village',
                 body='Tous les emplacements de la case'
                     ' sélectionnée sont occupés ou bien '
                     'vous ne disposez pas de suffisamment de ressources',
                 )
     v = Village(
             name="New village",
             inhabitants=self.group,
             resources=Resources.objects.create(),
             tribe=self.group.village.tribe,
             position=self.group.position,
             )
     v.resources.save()
     v.save()
     v.update_income()
     self.group.village = v
     self.group.save()
     update_resources = v.receive_resources(self.group.resources)
     update_resources.save()
     self.group.resources = update_resources
     self.group.resources -= v.receive_resources(self.group.ressources)
     self.group.resources.save()
Exemple #2
0
 def take_resources(self, village_or_group, resources_dict):
     """
     Substract the max resources up to resources_dict content to the
     village_or_group’s resources and set it in a new resources object
     which is returned
     """
     for key in resources_dict:
         resources_dict[key] = max(resources_dict[key], 0)
     available_resources = village_or_group.resources
     wanted_resources = Resources.dict_to_resources(resources_dict)
     if available_resources >= wanted_resources:
         available_resources -= wanted_resources
         available_resources.save()
         wanted_resources.save()
         return wanted_resources
     else:
         received_resources = Resources()
         for key in wanted_resources:
             amount = min(wanted_resources[key], available_resources[key])
             received_resources[key] = amount
             available_resources -= amount
         available_resources.save()
         received_resources.save()
         return received_resources()