Fix incorrect consumable buff count

This commit is contained in:
Melledy
2023-12-15 08:51:52 -08:00
parent a5242d275f
commit 1afb594fdc
4 changed files with 10 additions and 5 deletions

View File

@@ -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;

View File

@@ -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

View File

@@ -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);

View File

@@ -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;