PlayerHand.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #include "PlayerHand.h"
  2. #include "Block.h"
  3. #include "Entity.h"
  4. PlayerHandItemType::PlayerHandItemType()
  5. : ItemType(ItemTypeEnum::PLAYER_HAND,
  6. "PlayerHand",
  7. new PlayerHandLevelUpRule(),
  8. 0,
  9. ModelInfo("", "", 0))
  10. {}
  11. void PlayerHandItemType::loadSuperItemSkill(
  12. ItemSkill* zSkill, Framework::StreamReader* zReader) const
  13. {
  14. // TODO: load skill data
  15. }
  16. void PlayerHandItemType::saveSuperItemSkill(
  17. const ItemSkill* zSkill, Framework::StreamWriter* zWriter) const
  18. {
  19. // TODO: store skill data
  20. }
  21. Item* PlayerHandItemType::createItem() const
  22. {
  23. return 0; // there is no player hand item
  24. }
  25. ItemSkill* PlayerHandItemType::createDefaultItemSkill() const
  26. {
  27. return new PlayerHandSkill();
  28. }
  29. PlayerHandLevelUpRule::PlayerHandLevelUpRule()
  30. : ItemSkillLevelUpRule()
  31. {}
  32. void PlayerHandLevelUpRule::applyOn(ItemSkill* zSkill)
  33. {
  34. // TODO: level up the skill
  35. }
  36. PlayerHandSkill::PlayerHandSkill()
  37. : ItemSkill(ItemTypeEnum::PLAYER_HAND)
  38. {}
  39. void PlayerHandSkill::use(Entity* zActor, Item* zUsedItem, Block* zTarget)
  40. {
  41. if (zTarget && zTarget->getHardness() <= 1 && zActor->getStamina() > 0.01f)
  42. {
  43. zActor->setStamina(zActor->getStamina() - 0.001f);
  44. zTarget->setHP(zTarget->getHP() - 1 / (zTarget->getHardness() + 1));
  45. }
  46. else
  47. {
  48. zActor->setStamina(zActor->getStamina() - 0.001f);
  49. zActor->setHP(zActor->getCurrentHP() - 0.01f);
  50. }
  51. }
  52. void PlayerHandSkill::use(Entity* zActor, Item* zUsedItem, Entity* zTarget)
  53. {
  54. // TODO: make damage on the entity
  55. }