async void DeleteItem(object sender, EventArgs args) { CharacterDBModel Item = viewModel.GetCharacter(); itemview.DeleteCharacter(Item); await Navigation.PopToRootAsync(); }
public DBCharacterController() { database = DependencyService.Get <IDatabaseConnection>(). DbConnection(); //database.CreateTable<Character>(); this.Characters = new ObservableCollection <CharacterDBModel>(database.Table <CharacterDBModel>()); // initialize db with initial characters // If the table is empty, initialize the collection if (!database.Table <CharacterDBModel>().Any()) { CharacterDBModel c1 = new CharacterDBModel { Name = "Thief", Def = 5, Dex = 20, Health = 25, Str = 10 }; CharacterDBModel c2 = new CharacterDBModel { Name = "Knight", Def = 20, Dex = 10, Health = 40, Str = 10 }; CharacterDBModel c3 = new CharacterDBModel { Name = "Archer", Def = 10, Dex = 15, Health = 25, Str = 15 }; CharacterDBModel c4 = new CharacterDBModel { Name = "Mage", Def = 5, Dex = 5, Health = 15, Str = 20 }; SaveCharacter(c1); SaveCharacter(c2); SaveCharacter(c3); SaveCharacter(c4); } }
async void OnButtonClicked(object sender, EventArgs args) { Button button = (Button)sender; if (button.Text == "Score") { await Navigation.PushAsync(new ScorePage()); } if (button.Text == "Battle") { DBCharacterController db = new DBCharacterController(); List <CharacterDBModel> dbChars = db.getAllCharacters(); Random rand = new Random(); int charIndex = rand.Next(0, dbChars.Count); CharacterDBModel c1 = dbChars[charIndex]; dbChars.RemoveAt(charIndex); charIndex = rand.Next(0, dbChars.Count); CharacterDBModel c2 = dbChars[charIndex]; dbChars.RemoveAt(charIndex); charIndex = rand.Next(0, dbChars.Count); CharacterDBModel c3 = dbChars[charIndex]; dbChars.RemoveAt(charIndex); charIndex = rand.Next(0, dbChars.Count); CharacterDBModel c4 = dbChars[charIndex]; dbChars.RemoveAt(charIndex); Character ch1 = new Character(c1.Name, c1.Image, c1.Str, c1.Def, c1.Dex, c1.Health); Character ch2 = new Character(c2.Name, c2.Image, c2.Str, c2.Def, c2.Dex, c2.Health); Character ch3 = new Character(c3.Name, c3.Image, c3.Str, c3.Def, c3.Dex, c3.Health); Character ch4 = new Character(c4.Name, c4.Image, c4.Str, c4.Def, c4.Dex, c4.Health); await Navigation.PushAsync(new BattlePage(new BattleViewModel(ch1, ch2, ch3, ch4))); } if (button.Text == "Inventory") { await Navigation.PushAsync(new InventoryPage()); } if (button.Text == "Monsters") { await Navigation.PushAsync(new MonstersPage()); } if (button.Text == "Items") { await Navigation.PushAsync(new ItemsPage()); } if (button.Text == "Character") { await Navigation.PushAsync(new CharacterPage()); } }
// Delete a character public int DeleteCharacter(CharacterDBModel Character) { var id = Character.Id; if (id != 0) { lock (collisionLock) { database.Delete <CharacterDBModel>(id); } } this.Characters.Remove(Character); return(id); }
// Update/Insert character // if ID is null it is a new character // if ID is not null then it is a character that needs to be updated public int SaveCharacter(CharacterDBModel Character) { lock (collisionLock) { if (Character.Id != 0) { database.Update(Character); return(Character.Id); } else { database.Insert(Character); return(Character.Id); } } }
async void UpdateItem(object sender, EventArgs args) { CharacterDBModel Item = viewModel.GetCharacter(); await Navigation.PushAsync(new NewCharacterPage(Item)); }