Browse Source

improved live cost when trying to destroy a block that is to hard

Kolja Strohm 1 year ago
parent
commit
3bb19ec0ac
2 changed files with 26 additions and 20 deletions
  1. 11 8
      FactoryCraft/PlayerHand.cpp
  2. 15 12
      FactoryCraft/StoneTool.cpp

+ 11 - 8
FactoryCraft/PlayerHand.cpp

@@ -48,15 +48,18 @@ PlayerHandSkill::PlayerHandSkill()
 
 void PlayerHandSkill::use(Entity* zActor, Item* zUsedItem, Block* zTarget)
 {
-    if (zTarget && zTarget->getHardness() <= 1 && zActor->getStamina() > 0.01f)
+    if (zActor->getStamina() > 0.001f)
     {
-        zActor->setStamina(zActor->getStamina() - 0.001f);
-        zTarget->setHP(zTarget->getHP() - 1 / (zTarget->getHardness() + 1));
-    }
-    else
-    {
-        zActor->setStamina(zActor->getStamina() - 0.001f);
-        zActor->setHP(zActor->getCurrentHP() - 0.01f);
+        if (zTarget && zTarget->getHardness() <= 1)
+        {
+            zActor->setStamina(zActor->getStamina() - 0.001f);
+            zTarget->setHP(zTarget->getHP() - 1 / (zTarget->getHardness() + 1));
+        }
+        else
+        {
+            zActor->setStamina(zActor->getStamina() - 0.001f);
+            zActor->setHP(zActor->getCurrentHP() - 0.01f);
+        }
     }
 }
 

+ 15 - 12
FactoryCraft/StoneTool.cpp

@@ -75,19 +75,22 @@ StoneToolSkill::StoneToolSkill()
 
 void StoneToolSkill::use(Entity* zActor, Item* zUsedItem, Block* zTarget)
 {
-    if (zTarget && zTarget->getHardness() <= 2)
+    if (zActor->getStamina() > 0.0001f)
     {
-        float damage
-            = (1 + ((float)level / 10.f)) / (zTarget->getHardness() + 1);
-        zTarget->setHP(zTarget->getHP() - damage);
-        xp += damage / 20;
-        zActor->setStamina(zActor->getStamina() - 0.0001f);
-        zUsedItem->setHp(zUsedItem->getHp() - damage / 50);
-    }
-    else
-    {
-        zActor->setStamina(zActor->getStamina() - 0.0001f);
-        zUsedItem->setHp(zUsedItem->getHp() - 0.001f);
+        if (zTarget && zTarget->getHardness() <= 2)
+        {
+            float damage
+                = (1 + ((float)level / 10.f)) / (zTarget->getHardness() + 1);
+            zTarget->setHP(zTarget->getHP() - damage);
+            xp += damage / 20;
+            zActor->setStamina(zActor->getStamina() - 0.0001f);
+            zUsedItem->setHp(zUsedItem->getHp() - damage / 50);
+        }
+        else
+        {
+            zActor->setStamina(zActor->getStamina() - 0.0001f);
+            zUsedItem->setHp(zUsedItem->getHp() - 0.001f);
+        }
     }
 }