PlayerHand.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #include "PlayerHand.h"
  2. #include "Block.h"
  3. #include "Entity.h"
  4. PlayerHandItemType::PlayerHandItemType()
  5. : ItemType()
  6. {
  7. setName("PlayerHand");
  8. setMaxStackSize(0);
  9. }
  10. Item* PlayerHandItemType::createItem() const
  11. {
  12. return 0; // there is no player hand item
  13. }
  14. ItemSkill* PlayerHandItemType::createDefaultItemSkill() const
  15. {
  16. return new PlayerHandSkill();
  17. }
  18. void PlayerHandItemType::levelUpItemSkill(ItemSkill* zSkill) const {}
  19. PlayerHandSkill::PlayerHandSkill()
  20. : ItemSkill()
  21. {
  22. setXp(0.f);
  23. setMaxXp(1.f);
  24. setLevel(1.f);
  25. }
  26. bool PlayerHandSkill::use(Entity* zActor, Item* zUsedItem, Block* zTarget)
  27. {
  28. if (zActor->getStamina() > 0.001f)
  29. {
  30. if (zTarget && zTarget->getHardness() <= 1)
  31. {
  32. zActor->setStamina(zActor->getStamina() - 0.001f);
  33. zTarget->setHP(zActor,
  34. zUsedItem,
  35. this,
  36. zTarget->getHP() - 1 / (zTarget->getHardness() + 1));
  37. }
  38. else
  39. {
  40. zActor->setStamina(zActor->getStamina() - 0.001f);
  41. zActor->setHP(
  42. zActor, zUsedItem, this, zActor->getCurrentHP() - 0.01f);
  43. }
  44. }
  45. return false; // item was not changed
  46. }
  47. bool PlayerHandSkill::use(Entity* zActor, Item* zUsedItem, Entity* zTarget)
  48. {
  49. // TODO: make damage on the entity
  50. return false; // item was not changed
  51. }