Show effect details in /printeffects
Each line now has the effects map key (effect UUID or stack type such as PetBuff), the effect id and name, rank, time left or static, and the power that applied it. Help and usage strings no longer describe /printstats. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
c8653626a2
commit
b2730794a2
1 file changed
+48
-10
@@ -10,9 +10,15 @@
|
||||
package engine.devcmd.cmds;
|
||||
|
||||
import engine.devcmd.AbstractDevCmd;
|
||||
import engine.mbEnums.GameObjectType;
|
||||
import engine.objects.AbstractCharacter;
|
||||
import engine.objects.AbstractGameObject;
|
||||
import engine.objects.Effect;
|
||||
import engine.objects.PlayerCharacter;
|
||||
import engine.powers.EffectsBase;
|
||||
import engine.powers.PowersBase;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -30,28 +36,60 @@ public class PrintEffectsCmd extends AbstractDevCmd {
|
||||
AbstractGameObject target) {
|
||||
|
||||
AbstractCharacter tar;
|
||||
StringBuilder output;
|
||||
String newline = "\r\n ";
|
||||
Effect effect;
|
||||
EffectsBase effectsBase;
|
||||
PowersBase power;
|
||||
|
||||
if (target != null && target instanceof AbstractCharacter) {
|
||||
tar = (AbstractCharacter) target;
|
||||
if (target == null)
|
||||
return;
|
||||
|
||||
String newline = "\r\n ";
|
||||
String output = "Effects For Character: " + tar.getName() + newline;
|
||||
if (target.getObjectType() != GameObjectType.PlayerCharacter && target.getObjectType() != GameObjectType.Mob
|
||||
&& target.getObjectType() != GameObjectType.NPC)
|
||||
return;
|
||||
|
||||
for (String effect : tar.effects.keySet()) {
|
||||
output += effect + newline;
|
||||
}
|
||||
throwbackInfo(pc, output);
|
||||
tar = (AbstractCharacter) target;
|
||||
output = new StringBuilder("Effects for " + tar.getName() + " (" + tar.effects.size() + "):" + newline);
|
||||
|
||||
// Keys are the effect UUID for mobbase/rune effects, or the stack type (e.g. PetBuff) for power effects
|
||||
for (Map.Entry<String, Effect> entry : tar.effects.entrySet()) {
|
||||
|
||||
effect = entry.getValue();
|
||||
effectsBase = effect.getEffectsBase();
|
||||
power = effect.getPower();
|
||||
|
||||
output.append(entry.getKey()).append(": ");
|
||||
|
||||
if (effectsBase != null)
|
||||
output.append(effectsBase.getIDString()).append(" '").append(effectsBase.getName()).append("'");
|
||||
else
|
||||
output.append("no EffectsBase");
|
||||
|
||||
output.append(" rank ").append(effect.getTrains());
|
||||
|
||||
if (effect.isStatic())
|
||||
output.append(", static");
|
||||
else
|
||||
output.append(", ").append((int) effect.getDuration()).append("s left");
|
||||
|
||||
if (power != null)
|
||||
output.append(", from ").append(power.getIDString()).append(" '").append(power.getName()).append("'");
|
||||
|
||||
output.append(newline);
|
||||
}
|
||||
|
||||
throwbackInfo(pc, output.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String _getHelpString() {
|
||||
return "Returns the player's current stats";
|
||||
return "Lists the target's effects: key, effect id and name, rank, time left and source power";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String _getUsageString() {
|
||||
return "' /printstats'";
|
||||
return "' /printeffects'";
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user