Prepare centralized chr creation
This commit is contained in:
44
src/main/java/client/creator/CharacterCreator.java
Normal file
44
src/main/java/client/creator/CharacterCreator.java
Normal file
@@ -0,0 +1,44 @@
|
||||
package client.creator;
|
||||
|
||||
import client.inventory.Item;
|
||||
import constants.id.ItemId;
|
||||
import constants.id.MapId;
|
||||
import database.character.CharacterSaver;
|
||||
|
||||
public class CharacterCreator {
|
||||
private final CharacterSaver chrSaver;
|
||||
|
||||
public CharacterCreator(CharacterSaver chrSaver) {
|
||||
this.chrSaver = chrSaver;
|
||||
}
|
||||
|
||||
public boolean createBeginner(NewCharacterSpec spec, int accountId, int worldId) {
|
||||
int mapId = getStartingMap(spec.type());
|
||||
Item guide = getStarterGuide(spec.type());
|
||||
// TODO, save:
|
||||
// - character
|
||||
// - skills
|
||||
// - equips
|
||||
// - starter item
|
||||
// - keymap
|
||||
// - quickslots
|
||||
return false;
|
||||
}
|
||||
|
||||
private int getStartingMap(JobType type) {
|
||||
return switch (type) {
|
||||
case ADVENTURER -> MapId.MUSHROOM_TOWN;
|
||||
case KNIGHT_OF_CYGNUS -> MapId.ARAN_TUTORIAL_START;
|
||||
case ARAN -> MapId.STARTING_MAP_NOBLESSE;
|
||||
};
|
||||
}
|
||||
|
||||
private Item getStarterGuide(JobType type) {
|
||||
int itemId = switch (type) {
|
||||
case ADVENTURER -> ItemId.BEGINNERS_GUIDE;
|
||||
case KNIGHT_OF_CYGNUS -> ItemId.NOBLESSE_GUIDE;
|
||||
case ARAN -> ItemId.LEGENDS_GUIDE;
|
||||
};
|
||||
return new Item(itemId, (short) 0, (short) 1);
|
||||
}
|
||||
}
|
||||
7
src/main/java/client/creator/JobType.java
Normal file
7
src/main/java/client/creator/JobType.java
Normal file
@@ -0,0 +1,7 @@
|
||||
package client.creator;
|
||||
|
||||
public enum JobType {
|
||||
ADVENTURER,
|
||||
KNIGHT_OF_CYGNUS,
|
||||
ARAN
|
||||
}
|
||||
20
src/main/java/client/creator/NewCharacterSpec.java
Normal file
20
src/main/java/client/creator/NewCharacterSpec.java
Normal file
@@ -0,0 +1,20 @@
|
||||
package client.creator;
|
||||
|
||||
import client.SkinColor;
|
||||
import lombok.Builder;
|
||||
|
||||
@Builder
|
||||
public record NewCharacterSpec(
|
||||
String name,
|
||||
JobType type,
|
||||
int face,
|
||||
int hair,
|
||||
int hairColor,
|
||||
SkinColor skin,
|
||||
int topItemId,
|
||||
int bottomItemId,
|
||||
int shoesItemId,
|
||||
int weaponItemId,
|
||||
byte gender
|
||||
) {
|
||||
}
|
||||
Reference in New Issue
Block a user