SmellEvent.py 867B

123456789101112131415161718192021222324252627
  1. from intelligine.cst import COL_SMELL
  2. from intelligine.mechanism.TraversableDistanceFromMechanism import TraversableDistanceFromMechanism
  3. from intelligine.synergy.event.Event import Event
  4. from intelligine.cst import SMELL_FOOD, SMELL_EGG
  5. from intelligine.synergy.object.StockedFood import StockedFood
  6. from intelligine.synergy.object.ant.Egg import Egg
  7. from synergine.core.exceptions import NotConcernedEvent
  8. class SmellEvent(Event):
  9. _mechanism = TraversableDistanceFromMechanism
  10. _concern = COL_SMELL
  11. _each_cycle = 100
  12. _first_cycle_force = True
  13. _smell = {
  14. StockedFood: SMELL_FOOD,
  15. Egg: SMELL_EGG
  16. }
  17. """ Match between synergy class and smell type """
  18. def _prepare(self, object_id, context, parameters={}):
  19. if not parameters['points_distances']:
  20. raise NotConcernedEvent()
  21. return parameters