BaseBug.py 1.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from xyzworld.SynergyObject import SynergyObject as XyzSynergyObject
  2. from intelligine.cst import ALIVE, ATTACKABLE, TRANSPORTABLE, COL_ALIVE
  3. class BaseBug(XyzSynergyObject):
  4. def __init__(self, collection, context):
  5. super().__init__(collection, context)
  6. context.metas.states.add_list(self.get_id(), [ALIVE, ATTACKABLE])
  7. context.metas.collections.add(self.get_id(), COL_ALIVE)
  8. self._life_points = 10
  9. self._carried_by = None
  10. self._movements_count = -1
  11. def hurted(self, points):
  12. self._life_points -= points
  13. def get_life_points(self):
  14. return self._life_points
  15. def set_carried_by(self, obj):
  16. if obj is not None:
  17. assert self._carried_by is None
  18. self._carried_by = obj
  19. self._context.metas.states.remove(self.get_id(), TRANSPORTABLE)
  20. else:
  21. assert self._carried_by is not None
  22. self._carried_by = None
  23. self._context.metas.states.add(self.get_id(), TRANSPORTABLE)
  24. def is_carried(self):
  25. if self._carried_by:
  26. return True
  27. return False
  28. def set_position(self, point):
  29. super().set_position(point)
  30. self._movements_count += 1
  31. def get_movements_count(self):
  32. return self._movements_count