From a19e7c6db6967cf4384dc13c83dbf3761a290cd9 Mon Sep 17 00:00:00 2001 From: Paimon2022 Date: Fri, 3 Jun 2022 08:38:22 +0800 Subject: [PATCH] Spawn default monsters with different levels according to data/Spawns.json when worldLevelOverride is not zero. For example, in world with worldlevel 8, base monster level is 90 according to resources/ExcelBinOutput/WorldLevelExcelConfigData.json, monster level bias in data/Spawns.json belongs to [1,32], so the monster level would belong to [69, 100]. --- src/main/java/emu/grasscutter/game/world/Scene.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/emu/grasscutter/game/world/Scene.java b/src/main/java/emu/grasscutter/game/world/Scene.java index 5e2e0c1ea..cb724d778 100644 --- a/src/main/java/emu/grasscutter/game/world/Scene.java +++ b/src/main/java/emu/grasscutter/game/world/Scene.java @@ -465,7 +465,11 @@ public class Scene { continue; } - EntityMonster entity = new EntityMonster(this, data, entry.getPos(), worldLevelOverride > 0 ? worldLevelOverride : entry.getLevel()); + int level = worldLevelOverride > 0 ? worldLevelOverride + entry.getLevel() - 22 : entry.getLevel(); + level = level >= 100 ? 100 : level; + level = level <= 0 ? 1 : level; + + EntityMonster entity = new EntityMonster(this, data, entry.getPos(), level); entity.getRotation().set(entry.getRot()); entity.setGroupId(entry.getGroup().getGroupId()); entity.setPoseId(entry.getPoseId());