forked from MagicBane/Server
stances for guards
This commit is contained in:
@@ -5,14 +5,17 @@ import engine.InterestManagement.WorldGrid;
|
||||
import engine.math.Quaternion;
|
||||
import engine.math.Vector3f;
|
||||
import engine.math.Vector3fImmutable;
|
||||
import engine.mobileAI.MobAI;
|
||||
import engine.net.Dispatch;
|
||||
import engine.net.DispatchMessage;
|
||||
import engine.net.client.msg.PetMsg;
|
||||
import engine.objects.*;
|
||||
import engine.powers.EffectsBase;
|
||||
import engine.powers.PowersBase;
|
||||
import engine.powers.RuneSkillAdjustEntry;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
import javax.smartcardio.ATR;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
@@ -274,6 +277,91 @@ public enum NPCManager {
|
||||
}
|
||||
}
|
||||
|
||||
public static void setDamageAndSpeedForGuard(Mob guard){
|
||||
|
||||
//handle stance for guard mob
|
||||
String stancePowerName = "";
|
||||
if(guard.agentType.equals(Enum.AIAgentType.GUARDWALLARCHER)){
|
||||
//apply rogue offensive stance
|
||||
stancePowerName = "STC-R-O";
|
||||
}else {
|
||||
Integer contractID;
|
||||
if (guard.agentType.equals(Enum.AIAgentType.GUARDMINION)) {
|
||||
contractID = guard.guardCaptain.contract.getContractID();
|
||||
} else{
|
||||
contractID = guard.contract.getContractID();
|
||||
}
|
||||
if (Enum.MinionType.ContractToMinionMap.get(contractID) != null && Enum.MinionType.ContractToMinionMap.get(contractID).isMage()){
|
||||
//apply mage offensive Stance
|
||||
stancePowerName = "STC-M-O";
|
||||
} else{
|
||||
//apply fighter offensive stance
|
||||
stancePowerName = "STC-F-O";
|
||||
}
|
||||
}
|
||||
|
||||
int stancePowerRank = MobAI.getGuardPowerRank(guard);
|
||||
PowersBase stancePower = PowersManager.getPowerByIDString(stancePowerName);
|
||||
PowersManager.useMobPower(guard,guard,stancePower,stancePowerRank);
|
||||
|
||||
if(guard.equip == null) {
|
||||
guard.minDamageHandOne = (int)(guard.mobBase.getDamageMin());
|
||||
guard.maxDamageHandOne = (int)(guard.mobBase.getDamageMax());
|
||||
guard.speedHandOne = 30.0f;
|
||||
}else{
|
||||
if(guard.equip.containsKey(1)){
|
||||
//has main hand weapon
|
||||
ItemBase weapon = guard.equip.get(1).getItemBase();
|
||||
guard.minDamageHandOne = (int)(guard.mobBase.getDamageMin() + weapon.getMinDamage());
|
||||
guard.maxDamageHandOne = (int)(guard.mobBase.getDamageMax() + weapon.getMaxDamage());
|
||||
guard.speedHandOne = weapon.getSpeed();
|
||||
} else if(guard.equip.containsKey(2) && !guard.equip.get(2).getItemBase().isShield()){
|
||||
//has off hand weapon
|
||||
ItemBase weapon = guard.equip.get(2).getItemBase();
|
||||
guard.minDamageHandTwo = (int)(guard.mobBase.getDamageMin() + weapon.getMinDamage());
|
||||
guard.maxDamageHandTwo = (int)(guard.mobBase.getDamageMax() + weapon.getMaxDamage());
|
||||
guard.speedHandTwo = weapon.getSpeed();
|
||||
} else {
|
||||
guard.minDamageHandOne = (int)(guard.mobBase.getDamageMin());
|
||||
guard.maxDamageHandOne = (int)(guard.mobBase.getDamageMax());
|
||||
guard.speedHandOne = 30.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
public static void setDefenseForGuard(Mob guard){
|
||||
|
||||
}
|
||||
|
||||
public static void setAttackRatingForGuard(Mob guard){
|
||||
|
||||
}
|
||||
|
||||
public static void setMaxHealthForGuard(Mob guard){
|
||||
//values derived fom reading memory address for health on client when selecting player guards
|
||||
switch(guard.getRank()){
|
||||
default:
|
||||
guard.healthMax = 750; //rank 1
|
||||
break;
|
||||
case 2:
|
||||
guard.healthMax = 2082;
|
||||
break;
|
||||
case 3:
|
||||
guard.healthMax = 2740;
|
||||
break;
|
||||
case 4:
|
||||
guard.healthMax = 3414;
|
||||
break;
|
||||
case 5:
|
||||
guard.healthMax = 4080;
|
||||
break;
|
||||
case 6:
|
||||
guard.healthMax = 4746;
|
||||
break;
|
||||
case 7:
|
||||
guard.healthMax = 5412;
|
||||
break;
|
||||
}
|
||||
}
|
||||
public static void applyMobbaseEffects(Mob mob) {
|
||||
EffectsBase effectsBase;
|
||||
for (MobBaseEffects mbe : mob.mobBase.effectsList) {
|
||||
|
||||
Reference in New Issue
Block a user