Add optional level param to /spawn

Doesnt work for all battle stages yet
This commit is contained in:
Melledy
2023-12-01 04:59:56 -08:00
parent 36595c01db
commit c68fcc96c6
3 changed files with 17 additions and 4 deletions

View File

@@ -16,7 +16,7 @@ import emu.lunarcore.game.scene.entity.EntityProp;
import emu.lunarcore.util.Position;
import emu.lunarcore.util.Utils;
@Command(label = "spawn", permission = "player.spawn", requireTarget = true, desc = "/spawn [monster/prop id] x[amount] s[stage id]. Spawns a monster or prop near the targeted player.")
@Command(label = "spawn", permission = "player.spawn", requireTarget = true, desc = "/spawn [monster/prop id] [stage id] x[amount] lv[level] r[radius]. Spawns a monster or prop near the targeted player.")
public class SpawnCommand implements CommandHandler {
@Override
@@ -68,6 +68,10 @@ public class SpawnCommand implements CommandHandler {
monster.setEventId(monsterInfo.getEventID());
monster.setOverrideStageId(stage);
if (args.getLevel() > 0) {
monster.setOverrideLevel(Math.min(args.getLevel(), 100));
}
target.getScene().addEntity(monster, true);
}

View File

@@ -106,7 +106,15 @@ public class BattleService extends BaseGameService {
// Create battle and add npc monsters to it
Battle battle = new Battle(player, player.getLineupManager().getCurrentLineup(), stages);
battle.getNpcMonsters().addAll(monsters);
// Add npc monsters
for (var npcMonster : monsters) {
battle.getNpcMonsters().add(npcMonster);
if (npcMonster.getOverrideLevel() > 0) {
battle.setLevelOverride(npcMonster.getOverrideLevel());
}
}
// Add buffs to battle
if (isPlayerCaster) {

View File

@@ -14,19 +14,20 @@ import lombok.Setter;
@Getter
public class EntityMonster implements GameEntity {
@Setter private NpcMonsterExcel excel;
@Setter private int entityId;
@Setter private int worldLevel;
@Setter private int groupId;
@Setter private int instId;
@Setter private int eventId;
@Setter private int overrideStageId;
@Setter private NpcMonsterExcel excel;
private final Scene scene;
private final Position pos;
private final Position rot;
private int farmElementId;
@Setter private int overrideStageId;
@Setter private int overrideLevel;
public EntityMonster(Scene scene, NpcMonsterExcel excel, GroupInfo group, MonsterInfo monsterInfo) {
this.scene = scene;