BaseBug.py 1.0KB

123456789101112131415161718192021222324252627282930313233
  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, context):
  5. super().__init__(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. def hurted(self, points):
  11. self._life_points -= points
  12. def get_life_points(self):
  13. return self._life_points
  14. def set_carried_by(self, obj):
  15. if obj is not None:
  16. assert self._carried_by is None
  17. self._carried_by = obj
  18. self._context.metas.states.remove(self.get_id(), TRANSPORTABLE)
  19. else:
  20. assert self._carried_by is not None
  21. self._carried_by = None
  22. self._context.metas.states.add(self.get_id(), TRANSPORTABLE)
  23. def is_carried(self):
  24. if self._carried_by:
  25. return True
  26. return False