mirror of
https://github.com/Melledy/Nebula.git
synced 2025-12-12 12:24:35 +01:00
Give crescendo/talent material if we are adding duplicate discs/characters
This commit is contained in:
@@ -58,10 +58,15 @@ public class CharacterStorage extends PlayerManager {
|
||||
return null;
|
||||
}
|
||||
|
||||
return this.addCharacter(GameData.getCharacterDataTable().get(charId));
|
||||
// Get data
|
||||
var data = GameData.getCharacterDataTable().get(charId);
|
||||
if (data == null) return null;
|
||||
|
||||
// Add character
|
||||
return this.addCharacter(data);
|
||||
}
|
||||
|
||||
private GameCharacter addCharacter(CharacterDef data) {
|
||||
public GameCharacter addCharacter(CharacterDef data) {
|
||||
// Sanity check to make sure we dont have this character already
|
||||
if (this.hasCharacter(data.getId())) {
|
||||
return null;
|
||||
@@ -132,10 +137,15 @@ public class CharacterStorage extends PlayerManager {
|
||||
return null;
|
||||
}
|
||||
|
||||
return this.addDisc(GameData.getDiscDataTable().get(discId));
|
||||
// Get data
|
||||
var data = GameData.getDiscDataTable().get(discId);
|
||||
if (data == null) return null;
|
||||
|
||||
// Add disc
|
||||
return this.addDisc(data);
|
||||
}
|
||||
|
||||
private GameDisc addDisc(DiscDef data) {
|
||||
public GameDisc addDisc(DiscDef data) {
|
||||
// Sanity check to make sure we dont have this disc already
|
||||
if (this.hasDisc(data.getId())) {
|
||||
return null;
|
||||
|
||||
@@ -377,12 +377,23 @@ public class Inventory extends PlayerManager implements GameDatabaseObject {
|
||||
}
|
||||
}
|
||||
case Disc -> {
|
||||
if (amount <= 0) {
|
||||
// Cannot remove discs
|
||||
if (amount <= 0) break;
|
||||
|
||||
// Get disc data
|
||||
var discData = GameData.getDiscDataTable().get(id);
|
||||
if (discData == null) break;
|
||||
|
||||
// Add transform item instead if we already have this disc
|
||||
if (getPlayer().getCharacters().hasDisc(id)) {
|
||||
this.addItem(discData.getTransformItemId(), amount, change);
|
||||
break;
|
||||
}
|
||||
|
||||
var disc = getPlayer().getCharacters().addDisc(id);
|
||||
// Add disc
|
||||
var disc = getPlayer().getCharacters().addDisc(discData);
|
||||
|
||||
// Add to change info
|
||||
if (disc != null) {
|
||||
change.add(disc.toProto());
|
||||
} else {
|
||||
@@ -390,12 +401,23 @@ public class Inventory extends PlayerManager implements GameDatabaseObject {
|
||||
}
|
||||
}
|
||||
case Char -> {
|
||||
if (amount <= 0) {
|
||||
// Cannot remove characters
|
||||
if (amount <= 0) break;
|
||||
|
||||
// Get character data
|
||||
var charData = GameData.getCharacterDataTable().get(id);
|
||||
if (charData == null) break;
|
||||
|
||||
// Add transform item instead if we already have this character
|
||||
if (getPlayer().getCharacters().hasCharacter(id)) {
|
||||
this.addItem(charData.getFragmentsId(), charData.getTransformQty(), change);
|
||||
break;
|
||||
}
|
||||
|
||||
var character = getPlayer().getCharacters().addCharacter(id);
|
||||
|
||||
// Add character
|
||||
var character = getPlayer().getCharacters().addCharacter(charData);
|
||||
|
||||
// Add to change info
|
||||
if (character != null) {
|
||||
change.add(character.toProto());
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user