Implement character/disc selectors

This commit is contained in:
Melledy
2025-11-08 22:13:25 -08:00
parent 66ce7cf698
commit b5290f8c0a
2 changed files with 22 additions and 2 deletions

View File

@@ -618,7 +618,7 @@ public class Inventory extends PlayerManager implements GameDatabaseObject {
return change.setSuccess(true);
}
public PlayerChangeInfo useItem(int id, int count, PlayerChangeInfo change) {
public PlayerChangeInfo useItem(int id, int count, int selectId, PlayerChangeInfo change) {
// Player change info
if (change == null) {
change = new PlayerChangeInfo();
@@ -643,6 +643,21 @@ public class Inventory extends PlayerManager implements GameDatabaseObject {
case 2 -> {
// Add items
this.addItems(data.getUseParams(), change);
// Success
success = true;
}
case 3 -> {
// Selected item
int selectCount = data.getUseParams().get(selectId);
if (selectCount <= 0) {
return change;
}
// Add selected item
this.addItem(selectId, selectCount, change);
// Success
success = true;
}

View File

@@ -25,7 +25,12 @@ public class HandlerItemUseReq extends NetHandler {
// Use item
for (var param : req.getUse().getList()) {
session.getPlayer().getInventory().useItem(param.getTid(), param.getQty(), change);
session.getPlayer().getInventory().useItem(param.getTid(), param.getQty(), 0, change);
}
// Pick item
for (var param : req.getPick().getList()) {
session.getPlayer().getInventory().useItem(param.getTid(), param.getQty(), param.getSelectTid(), change);
}
// Encode and send