attack delay catching

This commit is contained in:
2024-06-03 21:35:37 -05:00
parent d9ab1032f4
commit 9a9ea99bc7
4 changed files with 43 additions and 37 deletions
@@ -2,6 +2,7 @@ package engine.net.client.handlers;
import engine.gameManager.BuildingManager;
import engine.gameManager.CombatManager;
import engine.jobs.AttackJob;
import engine.mbEnums;
import engine.net.client.ClientConnection;
import engine.net.client.msg.AttackCmdMsg;
@@ -82,7 +83,25 @@ public class AttackCmdMsgHandler extends AbstractClientMsgHandler {
if (playerCharacter.isSit())
CombatManager.toggleSit(false, origin);
CombatManager.combatCycle(playerCharacter, target);
long addedDelay = 0;
//check if we are changing targets, cancel outstanding jobs if so
if (playerCharacter.getTimers().containsKey("Attack" + mbEnums.EquipSlotType.RHELD)) {
AttackJob ajR = ((AttackJob)playerCharacter.getTimers().get("Attack" + mbEnums.EquipSlotType.RHELD).getJob());
if(!ajR.target.equals(target)){
playerCharacter.getTimers().get("Attack" + mbEnums.EquipSlotType.RHELD).cancelJob();
addedDelay = ajR.getStopTime() - System.currentTimeMillis();
}
}
if (playerCharacter.getTimers().containsKey("Attack" + mbEnums.EquipSlotType.LHELD)) {
AttackJob ajL = ((AttackJob)playerCharacter.getTimers().get("Attack" + mbEnums.EquipSlotType.LHELD).getJob());
if(!ajL.target.equals(target)){
playerCharacter.getTimers().get("Attack" + mbEnums.EquipSlotType.LHELD).cancelJob();
addedDelay = ajL.getStopTime() - System.currentTimeMillis();
}
}
CombatManager.combatCycle(playerCharacter, target, addedDelay);
return true;
}