Final CombatManager

This commit is contained in:
2024-03-23 19:22:14 -04:00
parent 6a0599a972
commit 0fa042cece
7 changed files with 32 additions and 26 deletions
@@ -19,7 +19,10 @@ import java.util.EnumSet;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ThreadLocalRandom;
public class FinalCombatManager {
public enum CombatManager {
COMBAT_MANAGER;
public static void combatCycle(AbstractCharacter attacker, AbstractWorldObject target) {
//early exit checks
+2 -2
View File
@@ -9,7 +9,7 @@
package engine.jobs;
import engine.gameManager.FinalCombatManager;
import engine.gameManager.CombatManager;
import engine.job.AbstractJob;
import engine.objects.AbstractCharacter;
@@ -28,7 +28,7 @@ public class AttackJob extends AbstractJob {
@Override
protected void doJob() {
FinalCombatManager.combatCycle(this.source,this.source.combatTarget);
CombatManager.combatCycle(this.source, this.source.combatTarget);
}
public boolean success() {
+9 -9
View File
@@ -125,7 +125,7 @@ public class MobAI {
ItemBase offHand = mob.getWeaponItemBase(false);
if (mainHand == null && offHand == null) {
FinalCombatManager.combatCycle(mob, target);
CombatManager.combatCycle(mob, target);
int delay = 3000;
if (mob.isSiege())
delay = 11000;
@@ -134,13 +134,13 @@ public class MobAI {
int delay = 3000;
if (mob.isSiege())
delay = 11000;
FinalCombatManager.combatCycle(mob, target);
CombatManager.combatCycle(mob, target);
mob.setLastAttackTime(System.currentTimeMillis() + delay);
} else if (mob.getWeaponItemBase(false) != null) {
int attackDelay = 3000;
if (mob.isSiege())
attackDelay = 11000;
FinalCombatManager.combatCycle(mob, target);
CombatManager.combatCycle(mob, target);
mob.setLastAttackTime(System.currentTimeMillis() + attackDelay);
}
}
@@ -179,7 +179,7 @@ public class MobAI {
ItemBase offHand = mob.getWeaponItemBase(false);
if (mainHand == null && offHand == null) {
FinalCombatManager.combatCycle(mob, target);
CombatManager.combatCycle(mob, target);
int delay = 3000;
if (mob.isSiege())
delay = 15000;
@@ -188,13 +188,13 @@ public class MobAI {
int attackDelay = 3000;
if (mob.isSiege())
attackDelay = 15000;
FinalCombatManager.combatCycle(mob, target);
CombatManager.combatCycle(mob, target);
mob.setLastAttackTime(System.currentTimeMillis() + attackDelay);
} else if (mob.getWeaponItemBase(false) != null) {
int attackDelay = 3000;
if (mob.isSiege())
attackDelay = 15000;
FinalCombatManager.combatCycle(mob, target);
CombatManager.combatCycle(mob, target);
mob.setLastAttackTime(System.currentTimeMillis() + attackDelay);
}
@@ -222,7 +222,7 @@ public class MobAI {
ItemBase offHand = mob.getWeaponItemBase(false);
if (mainHand == null && offHand == null) {
FinalCombatManager.combatCycle(mob, target);
CombatManager.combatCycle(mob, target);
int delay = 3000;
if (mob.isSiege())
delay = 11000;
@@ -231,13 +231,13 @@ public class MobAI {
int attackDelay = 3000;
if (mob.isSiege())
attackDelay = 11000;
FinalCombatManager.combatCycle(mob, target);
CombatManager.combatCycle(mob, target);
mob.setLastAttackTime(System.currentTimeMillis() + attackDelay);
} else if (mob.getWeaponItemBase(false) != null) {
int attackDelay = 3000;
if (mob.isSiege())
attackDelay = 11000;
FinalCombatManager.combatCycle(mob, target);
CombatManager.combatCycle(mob, target);
mob.setLastAttackTime(System.currentTimeMillis() + attackDelay);
if (target.getCombatTarget() == null) {
target.setCombatTarget(mob);
+2 -2
View File
@@ -1445,10 +1445,10 @@ public class ClientMessagePump implements NetMsgHandler {
social((SocialMsg) msg, origin);
break;
case COMBATMODE:
FinalCombatManager.toggleCombat(((ToggleCombatMsg) msg).toggleCombat(),origin);
CombatManager.toggleCombat(((ToggleCombatMsg) msg).toggleCombat(), origin);
break;
case ARCCOMBATMODEATTACKING:
FinalCombatManager.toggleCombat(((SetCombatModeMsg) msg).getToggle(),origin);
CombatManager.toggleCombat(((SetCombatModeMsg) msg).getToggle(), origin);
break;
case MODIFYGUILDSTATE:
ToggleLfgRecruitingMsg tlrm = (ToggleLfgRecruitingMsg) msg;
@@ -3,12 +3,15 @@ package engine.net.client.handlers;
import engine.Enum;
import engine.exception.MsgSendException;
import engine.gameManager.BuildingManager;
import engine.gameManager.FinalCombatManager;
import engine.gameManager.CombatManager;
import engine.net.client.ClientConnection;
import engine.net.client.msg.AttackCmdMsg;
import engine.net.client.msg.ClientNetMsg;
import engine.net.client.msg.TargetedActionMsg;
import engine.objects.*;
import engine.objects.AbstractWorldObject;
import engine.objects.Mob;
import engine.objects.NPC;
import engine.objects.PlayerCharacter;
/*
* @Author:
@@ -72,14 +75,14 @@ public class AttackCmdMsgHandler extends AbstractClientMsgHandler {
if (!playerCharacter.isCombat()) {
//CombatManager.toggleCombat(true, origin);
FinalCombatManager.toggleCombat(true,origin);
CombatManager.toggleCombat(true, origin);
}
//make character stand if sitting
if (playerCharacter.isSit())
FinalCombatManager.toggleSit(false, origin);
CombatManager.toggleSit(false, origin);
FinalCombatManager.combatCycle(playerCharacter,target);
CombatManager.combatCycle(playerCharacter, target);
return true;
}
+5 -5
View File
@@ -1328,7 +1328,7 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
//TODO why is Handle REtaliate and cancelontakedamage in modifyHealth? shouldnt this be outside this method?
if (value < 0f && !fromCost) {
this.cancelOnTakeDamage();
FinalCombatManager.handleRetaliate(this, attacker);
CombatManager.handleRetaliate(this, attacker);
}
if(this.getObjectType().equals(GameObjectType.Mob)){
@@ -1395,7 +1395,7 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
}
if (value < 0f && !fromCost) {
this.cancelOnTakeDamage();
FinalCombatManager.handleRetaliate(this, attacker);
CombatManager.handleRetaliate(this, attacker);
}
return newMana - oldMana;
}
@@ -1434,7 +1434,7 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
}
if (value < 0f && !fromCost) {
this.cancelOnTakeDamage();
FinalCombatManager.handleRetaliate(this, attacker);
CombatManager.handleRetaliate(this, attacker);
}
return newStamina - oldStamina;
}
@@ -1469,7 +1469,7 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
}
if (oldMana > newMana && !fromCost) {
this.cancelOnTakeDamage();
FinalCombatManager.handleRetaliate(this, attacker);
CombatManager.handleRetaliate(this, attacker);
}
return newMana - oldMana;
}
@@ -1504,7 +1504,7 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
}
if (oldStamina > newStamina && !fromCost) {
this.cancelOnTakeDamage();
FinalCombatManager.handleRetaliate(this, attacker);
CombatManager.handleRetaliate(this, attacker);
}
return newStamina - oldStamina;
@@ -12,7 +12,7 @@ package engine.powers.poweractions;
import engine.Enum;
import engine.Enum.ItemType;
import engine.gameManager.ChatManager;
import engine.gameManager.FinalCombatManager;
import engine.gameManager.CombatManager;
import engine.math.Vector3fImmutable;
import engine.net.Dispatch;
import engine.net.DispatchMessage;
@@ -132,7 +132,7 @@ public class StealPowerAction extends AbstractPowerAction {
ownerPC.setLastPlayerAttackTime();
//Handle target attacking back if in combat and has no other target
FinalCombatManager.handleRetaliate(ownerAC, sourcePlayer);
CombatManager.handleRetaliate(ownerAC, sourcePlayer);
} else
return;