Core/Spells: Fix wrong cooldown being saved to DB
This commit is contained in:
@@ -103,7 +103,6 @@ namespace Game.Spells
|
|||||||
stmt.AddValue(index++, pair.Value.CategoryId);
|
stmt.AddValue(index++, pair.Value.CategoryId);
|
||||||
stmt.AddValue(index++, (uint)Time.DateTimeToUnixTime(pair.Value.CategoryEnd));
|
stmt.AddValue(index++, (uint)Time.DateTimeToUnixTime(pair.Value.CategoryEnd));
|
||||||
trans.Append(stmt);
|
trans.Append(stmt);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,7 +141,6 @@ namespace Game.Spells
|
|||||||
stmt.AddValue(index++, pair.Value.CategoryId);
|
stmt.AddValue(index++, pair.Value.CategoryId);
|
||||||
stmt.AddValue(index++, (uint)Time.DateTimeToUnixTime(pair.Value.CategoryEnd));
|
stmt.AddValue(index++, (uint)Time.DateTimeToUnixTime(pair.Value.CategoryEnd));
|
||||||
trans.Append(stmt);
|
trans.Append(stmt);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -177,11 +175,10 @@ namespace Game.Spells
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var key in _categoryCharges.Keys)
|
foreach (var pair in _categoryCharges.KeyValueList)
|
||||||
{
|
{
|
||||||
var chargeRefreshTimes = _categoryCharges[key];
|
if (pair.Value.RechargeEnd <= now)
|
||||||
while (!chargeRefreshTimes.Empty() && chargeRefreshTimes.FirstOrDefault().RechargeEnd <= now)
|
_categoryCharges.Remove(pair);
|
||||||
chargeRefreshTimes.RemoveAt(0);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -266,17 +263,17 @@ namespace Game.Spells
|
|||||||
DateTime now = DateTime.Now;
|
DateTime now = DateTime.Now;
|
||||||
foreach (var key in _categoryCharges.Keys)
|
foreach (var key in _categoryCharges.Keys)
|
||||||
{
|
{
|
||||||
var p = _categoryCharges[key];
|
var list = _categoryCharges[key];
|
||||||
if (!p.Empty())
|
if (!list.Empty())
|
||||||
{
|
{
|
||||||
TimeSpan cooldownDuration = p.FirstOrDefault().RechargeEnd - now;
|
TimeSpan cooldownDuration = list.FirstOrDefault().RechargeEnd - now;
|
||||||
if (cooldownDuration.TotalMilliseconds <= 0)
|
if (cooldownDuration.TotalMilliseconds <= 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
SpellChargeEntry chargeEntry = new SpellChargeEntry();
|
SpellChargeEntry chargeEntry = new SpellChargeEntry();
|
||||||
chargeEntry.Category = key;
|
chargeEntry.Category = key;
|
||||||
chargeEntry.NextRecoveryTime = (uint)cooldownDuration.TotalMilliseconds;
|
chargeEntry.NextRecoveryTime = (uint)cooldownDuration.TotalMilliseconds;
|
||||||
chargeEntry.ConsumedCharges = (byte)p.Count;
|
chargeEntry.ConsumedCharges = (byte)list.Count;
|
||||||
sendSpellCharges.Entries.Add(chargeEntry);
|
sendSpellCharges.Entries.Add(chargeEntry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -707,7 +704,7 @@ namespace Game.Spells
|
|||||||
if (charges.Empty())
|
if (charges.Empty())
|
||||||
recoveryStart = DateTime.Now;
|
recoveryStart = DateTime.Now;
|
||||||
else
|
else
|
||||||
recoveryStart = charges.LastOrDefault().RechargeEnd;
|
recoveryStart = charges.Last().RechargeEnd;
|
||||||
|
|
||||||
_categoryCharges.Add(chargeCategoryId, new ChargeEntry(recoveryStart, TimeSpan.FromMilliseconds(chargeRecovery)));
|
_categoryCharges.Add(chargeCategoryId, new ChargeEntry(recoveryStart, TimeSpan.FromMilliseconds(chargeRecovery)));
|
||||||
return true;
|
return true;
|
||||||
@@ -721,7 +718,7 @@ namespace Game.Spells
|
|||||||
var chargeList = _categoryCharges.LookupByKey(chargeCategoryId);
|
var chargeList = _categoryCharges.LookupByKey(chargeCategoryId);
|
||||||
if (!chargeList.Empty())
|
if (!chargeList.Empty())
|
||||||
{
|
{
|
||||||
chargeList.RemoveAt(0);
|
chargeList.RemoveAt(chargeList.Count - 1);
|
||||||
|
|
||||||
Player player = GetPlayerOwner();
|
Player player = GetPlayerOwner();
|
||||||
if (player)
|
if (player)
|
||||||
|
|||||||
Reference in New Issue
Block a user