From e569fd6c3938ca885bfca0978d143def154abd73 Mon Sep 17 00:00:00 2001
From: MrSimbax <simbaxlp@gmail.com>
Date: Sun, 16 Mar 2014 15:25:49 +0100
Subject: [PATCH] Fix for #294

---
 src/object/task/taskrecover.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/object/task/taskrecover.cpp b/src/object/task/taskrecover.cpp
index af840997..d8bbafdc 100644
--- a/src/object/task/taskrecover.cpp
+++ b/src/object/task/taskrecover.cpp
@@ -105,9 +105,11 @@ bool CTaskRecover::EventProcess(const Event &event)
         if ( power != 0 )
         {
             energy = power->GetEnergy();
-            power->SetEnergy(energy-ENERGY_RECOVER*event.rTime*m_speed);
+            energy -= event.rTime * ENERGY_RECOVER / power->GetCapacity() * m_speed;
+            power->SetEnergy(energy);
         }
 
+
         speed.x = (Math::Rand()-0.5f)*0.1f*m_progress;
         speed.y = (Math::Rand()-0.5f)*0.1f*m_progress;
         speed.z = (Math::Rand()-0.5f)*0.1f*m_progress;