mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-07-15 00:07:39 -04:00
Added expertise, added AoE/Cone combat, added some commando expertise boxes as an example for expertise scripts
This commit is contained in:
@@ -24,7 +24,6 @@ package services.command;
|
||||
import java.nio.ByteOrder;
|
||||
import java.util.Map;
|
||||
import java.util.Vector;
|
||||
|
||||
import main.NGECore;
|
||||
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
@@ -89,13 +88,15 @@ public class CommandService implements INetworkDispatch {
|
||||
System.out.println("NULL Object");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
CreatureObject actor = (CreatureObject) client.getParent();
|
||||
|
||||
SWGObject target = core.objectService.getObject(commandEnqueue.getTargetID());
|
||||
|
||||
if(command instanceof CombatCommand) {
|
||||
processCombatCommand(actor, target, (CombatCommand) command, commandEnqueue.getActionCounter());
|
||||
CombatCommand command2 = (CombatCommand) command.clone();
|
||||
core.scriptService.callScript("scripts/commands/combat", command.getCommandName(), "setup", core, actor, target, command2);
|
||||
processCombatCommand(actor, target, command2, commandEnqueue.getActionCounter(), commandEnqueue.getCommandArguments());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -122,7 +123,6 @@ public class CommandService implements INetworkDispatch {
|
||||
|
||||
CombatCommand command = new CombatCommand(name);
|
||||
commandLookup.add(command);
|
||||
|
||||
return command;
|
||||
|
||||
}
|
||||
@@ -139,12 +139,19 @@ public class CommandService implements INetworkDispatch {
|
||||
|
||||
}
|
||||
|
||||
private void processCombatCommand(CreatureObject attacker, SWGObject target, CombatCommand command, int actionCounter) {
|
||||
private void processCombatCommand(CreatureObject attacker, SWGObject target, CombatCommand command, int actionCounter, String commandArgs) {
|
||||
|
||||
boolean success = true;
|
||||
|
||||
if(target == null || !(target instanceof TangibleObject) || target == attacker)
|
||||
success = false;
|
||||
if(!(command.getAttackType() == 0) && !(command.getAttackType() == 2) && !(command.getAttackType() == 3)) {
|
||||
if(target == null || !(target instanceof TangibleObject) || target == attacker)
|
||||
success = false;
|
||||
} else {
|
||||
if(target == null)
|
||||
target = attacker;
|
||||
else if(!(target instanceof TangibleObject))
|
||||
return;
|
||||
}
|
||||
|
||||
if(attacker.getPosture() == 13 || attacker.getPosture() == 14)
|
||||
success = false;
|
||||
@@ -167,7 +174,7 @@ public class CommandService implements INetworkDispatch {
|
||||
maxRange = weapon.getMaxRange();
|
||||
else
|
||||
maxRange = command.getMaxRange();
|
||||
|
||||
|
||||
Point3D attackerPos = attacker.getWorldPosition();
|
||||
Point3D defenderPos = attacker.getWorldPosition();
|
||||
|
||||
@@ -179,7 +186,8 @@ public class CommandService implements INetworkDispatch {
|
||||
success = false;
|
||||
}
|
||||
|
||||
if(!core.simulationService.checkLineOfSight(attacker, target)) {
|
||||
|
||||
if(target != attacker && success && !core.simulationService.checkLineOfSight(attacker, target)) {
|
||||
|
||||
ShowFlyText los = new ShowFlyText(attacker.getObjectID(), attacker.getObjectID(), "combat_effects", "cant_see", (float) 1.5, (float) 429664.031250);
|
||||
ObjControllerMessage objController = new ObjControllerMessage(0x1B, los);
|
||||
|
||||
Reference in New Issue
Block a user