Methods moved to better class.
This commit is contained in:
@@ -26,9 +26,13 @@ import engine.math.AtomicFloat;
|
||||
import engine.math.Bounds;
|
||||
import engine.math.Vector3fImmutable;
|
||||
import engine.net.ByteBufferWriter;
|
||||
import engine.net.Dispatch;
|
||||
import engine.net.DispatchMessage;
|
||||
import engine.net.client.ClientConnection;
|
||||
import engine.net.client.msg.ApplyRuneMsg;
|
||||
import engine.net.client.msg.UpdateStateMsg;
|
||||
import engine.powers.EffectsBase;
|
||||
import engine.powers.PowersBase;
|
||||
import engine.server.MBServerStatics;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
@@ -535,6 +539,54 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
|
||||
}
|
||||
}
|
||||
|
||||
public static void removeRune(PlayerCharacter pc, ClientConnection origin, int runeID) {
|
||||
|
||||
if (pc == null || origin == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
//remove only if rune is discipline
|
||||
if (runeID < 3001 || runeID > 3048) {
|
||||
return;
|
||||
}
|
||||
|
||||
//see if pc has rune
|
||||
ArrayList<CharacterRune> runes = pc.getRunes();
|
||||
|
||||
if (runes == null)
|
||||
return;
|
||||
|
||||
CharacterRune found = pc.getRune(runeID);
|
||||
|
||||
if (found == null)
|
||||
return;
|
||||
|
||||
//TODO see if player needs to refine skills or powers first
|
||||
//attempt remove rune from player
|
||||
|
||||
if (!CharacterRune.removeRune(pc, runeID))
|
||||
return;
|
||||
|
||||
//update client with removed rune.
|
||||
ApplyRuneMsg arm = new ApplyRuneMsg(pc.getObjectType().ordinal(), pc.getObjectUUID(), runeID);
|
||||
Dispatch dispatch = Dispatch.borrow(pc, arm);
|
||||
DispatchMessage.dispatchMsgDispatch(dispatch, DispatchChannel.SECONDARY);
|
||||
}
|
||||
|
||||
public static void removeAllBlessings(PlayerCharacter player) {
|
||||
|
||||
PowersBase[] powers = new PowersBase[3];
|
||||
|
||||
powers[0] = PowersManager.getPowerByIDString("BLS-POWER");
|
||||
powers[1] = PowersManager.getPowerByIDString("BLS-FORTUNE");
|
||||
powers[2] = PowersManager.getPowerByIDString("BLS-WISDOM");
|
||||
|
||||
for (PowersBase power : powers) {
|
||||
PowersManager.removeEffect(player, power.getActions().get(0), true, false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void initializeCharacter() {
|
||||
this.timers = new ConcurrentHashMap<>(MBServerStatics.CHM_INIT_CAP, MBServerStatics.CHM_LOAD, MBServerStatics.CHM_THREAD_LOW);
|
||||
this.timestamps = new ConcurrentHashMap<>(MBServerStatics.CHM_INIT_CAP, MBServerStatics.CHM_LOAD, MBServerStatics.CHM_THREAD_LOW);
|
||||
|
||||
Reference in New Issue
Block a user