mirror of
https://github.com/Melledy/Nebula.git
synced 2025-12-22 09:14:35 +01:00
Refactor inventory system
This commit is contained in:
@@ -289,6 +289,51 @@ public class Character implements GameDatabaseObject {
|
||||
return changes.setSuccess(true);
|
||||
}
|
||||
|
||||
public boolean setSkin(int skinId) {
|
||||
// Sanity check
|
||||
if (this.skin == skinId) {
|
||||
return false;
|
||||
}
|
||||
|
||||
//
|
||||
var skinData = GameData.getCharacterSkinDataTable().get(skinId);
|
||||
if (skinData == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Make sure we have the skin
|
||||
if (skinData.getCharId() != this.getCharId()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
switch (skinData.getType()) {
|
||||
case 1:
|
||||
// Default skin, always allow
|
||||
break;
|
||||
case 2:
|
||||
// Ascension skin, only allow if the character has the right ascension level
|
||||
if (this.getAdvance() < this.getData().getAdvanceSkinUnlockLevel()) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
// Extra skin, only allow if we have the skin unlocked
|
||||
if (!getPlayer().getInventory().getExtraSkins().contains(skinId)) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// Set skin
|
||||
this.skin = skinId;
|
||||
|
||||
// Save
|
||||
this.save();
|
||||
|
||||
// Success
|
||||
return true;
|
||||
}
|
||||
|
||||
// Proto
|
||||
|
||||
public Char toProto() {
|
||||
|
||||
@@ -73,9 +73,9 @@ public class CharacterStorage extends PlayerManager {
|
||||
public HandbookInfo getCharacterHandbook() {
|
||||
var bitset = new Bitset();
|
||||
|
||||
for (var character : this.getCharacterCollection()) {
|
||||
// Get handbook
|
||||
var data = GameData.getHandbookDataTable().get(400000 + character.getSkin());
|
||||
for (var skinId : getPlayer().getInventory().getAllSkinIds()) {
|
||||
// Get handbook data
|
||||
var data = GameData.getHandbookDataTable().get(400000 + skinId);
|
||||
if (data == null) continue;
|
||||
|
||||
// Set flag
|
||||
|
||||
Reference in New Issue
Block a user