using System; using System.Collections.Generic; using SharpUI.Source.Data.Model.Character; using UniRx; namespace SharpUI.Source.Client.UI.User.CharacterSelect { public class CharacterSelectModel : ICharacterSelectModel { private const string LoginSceneName = "Login"; private const string CharacterCreateScene = "CharacterCreate"; private const string GameLoadingScene = "LoadingScene"; private readonly List _characters = new List { // Mocked characters CharacterFactory.CreateWarriorCharacter("BoneCrusher", 10), CharacterFactory.CreateHunterCharacter("SlayerX", 47), CharacterFactory.CreateWarriorCharacter("Boki", 16), CharacterFactory.CreateCasterCharacter("MageCaster", 17), CharacterFactory.CreateWarriorCharacter("Simple", 80), CharacterFactory.CreateHunterCharacter("Terminator", 34), CharacterFactory.CreateWarriorCharacter("Ruller", 61), CharacterFactory.CreateCasterCharacter("Hack", 27), CharacterFactory.CreateWarriorCharacter("Tim", 100), CharacterFactory.CreateHunterCharacter("Diablo", 57), CharacterFactory.CreateWarriorCharacter("Lakii", 96), CharacterFactory.CreateCasterCharacter("Little", 39) }; public CharacterSelectModel() { } public CharacterSelectModel(List characters) => _characters = characters; public IObservable GetLoginScene() => Observable.Return(LoginSceneName); public IObservable GetCharacterCreateScene() => Observable.Return(CharacterCreateScene); public IObservable GetGameLoadingScene() => Observable.Return(GameLoadingScene); public IObservable> GetCharacters() => Observable.Return(_characters); public void DeleteCharacter(Character character) { _characters.Remove(character); } } }