From 1afb594fdc62d05428a1ae3191bc9d9c910eec0a Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Fri, 15 Dec 2023 08:51:52 -0800 Subject: [PATCH] Fix incorrect consumable buff count --- src/main/java/emu/lunarcore/data/excel/ItemUseExcel.java | 1 + .../java/emu/lunarcore/game/inventory/ItemUseHandler.java | 2 +- src/main/java/emu/lunarcore/game/player/Player.java | 8 +++++--- src/main/java/emu/lunarcore/game/scene/SceneBuff.java | 4 +++- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/java/emu/lunarcore/data/excel/ItemUseExcel.java b/src/main/java/emu/lunarcore/data/excel/ItemUseExcel.java index 5ecac12..9809b63 100644 --- a/src/main/java/emu/lunarcore/data/excel/ItemUseExcel.java +++ b/src/main/java/emu/lunarcore/data/excel/ItemUseExcel.java @@ -12,6 +12,7 @@ public class ItemUseExcel extends GameResource { private int UseDataID; private int ConsumeType; private int MazeBuffID; + private int ActivityCount; private double PreviewHPRecoveryPercent; private int PreviewHPRecoveryValue; diff --git a/src/main/java/emu/lunarcore/game/inventory/ItemUseHandler.java b/src/main/java/emu/lunarcore/game/inventory/ItemUseHandler.java index 1700be3..fabfb02 100644 --- a/src/main/java/emu/lunarcore/game/inventory/ItemUseHandler.java +++ b/src/main/java/emu/lunarcore/game/inventory/ItemUseHandler.java @@ -77,7 +77,7 @@ public class ItemUseHandler { // Add food buff to player if (excel.getConsumeType() == 1 || excel.getConsumeType() == 2) { - player.addFoodBuff(excel.getConsumeType(), excel.getMazeBuffID()); + player.addFoodBuff(excel.getConsumeType(), excel); } // TODO send buff refresh packet diff --git a/src/main/java/emu/lunarcore/game/player/Player.java b/src/main/java/emu/lunarcore/game/player/Player.java index d2653e4..b42e4ba 100644 --- a/src/main/java/emu/lunarcore/game/player/Player.java +++ b/src/main/java/emu/lunarcore/game/player/Player.java @@ -18,6 +18,7 @@ import emu.lunarcore.data.GameData; import emu.lunarcore.data.config.AnchorInfo; import emu.lunarcore.data.config.FloorInfo; import emu.lunarcore.data.config.PropInfo; +import emu.lunarcore.data.excel.ItemUseExcel; import emu.lunarcore.data.excel.MapEntranceExcel; import emu.lunarcore.data.excel.MazePlaneExcel; import emu.lunarcore.game.account.Account; @@ -551,13 +552,14 @@ public class Player implements Tickable { } } - public synchronized boolean addFoodBuff(int type, int mazeBuffId) { + public synchronized boolean addFoodBuff(int type, ItemUseExcel itemUseExcel) { // Get maze excel - var excel = GameData.getMazeBuffExcel(mazeBuffId, 1); + var excel = GameData.getMazeBuffExcel(itemUseExcel.getMazeBuffID(), 1); if (excel == null) return false; // Create new buff - var buff = new SceneBuff(mazeBuffId); + var buff = new SceneBuff(itemUseExcel.getMazeBuffID()); + buff.setCount(Math.max(itemUseExcel.getActivityCount(), 1)); int avatarEntityId = getCurrentLeaderAvatar().getEntityId(); var oldBuff = this.getFoodBuffs().put(type, buff); diff --git a/src/main/java/emu/lunarcore/game/scene/SceneBuff.java b/src/main/java/emu/lunarcore/game/scene/SceneBuff.java index 6be86c0..da44976 100644 --- a/src/main/java/emu/lunarcore/game/scene/SceneBuff.java +++ b/src/main/java/emu/lunarcore/game/scene/SceneBuff.java @@ -2,13 +2,15 @@ package emu.lunarcore.game.scene; import emu.lunarcore.proto.BuffInfoOuterClass.BuffInfo; import lombok.Getter; +import lombok.Setter; @Getter public class SceneBuff { private int casterAvatarId; // Owner avatar id private int buffId; private int buffLevel; - private int count; + @Setter private int count; + private float duration; private long createTime; private long expiry;