Ant.py 1.2KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from intelligine.synergy.object.Bug import Bug
  2. from synergine.metas import metas
  3. from intelligine.synergy.Simulation import Simulation
  4. from intelligine.cst import CARRYING, TRANSPORTER, ATTACKER
  5. class Ant(Bug):
  6. def __init__(self):
  7. super().__init__()
  8. metas.list.add(Simulation.STATE, self.get_id(), TRANSPORTER)
  9. metas.list.add(Simulation.STATE, self.get_id(), ATTACKER)
  10. self._carried = []
  11. def put_carry(self, obj):
  12. self._carried.remove(obj)
  13. obj.set_position(self.get_position())
  14. metas.list.remove(Simulation.STATE, self.get_id(), CARRYING)
  15. def get_carried(self):
  16. # TODO: cas ou plusieurs ?
  17. return self._carried[0]
  18. def carry(self, obj):
  19. self._carried.append(obj)
  20. metas.list.add(Simulation.STATE, self.get_id(), CARRYING)
  21. def is_carrying(self):
  22. if len(self._carried):
  23. return True
  24. return False
  25. # TODO: Est-ce ici que doit etre ce code ?
  26. def set_position(self, position):
  27. super().set_position(position)
  28. if self.is_carrying():
  29. for obj_carried in self._carried:
  30. obj_carried.set_position(position)