예제 #1
0
        async void DeleteItem(object sender, EventArgs args)
        {
            CharacterDBModel Item = viewModel.GetCharacter();

            itemview.DeleteCharacter(Item);
            await Navigation.PopToRootAsync();
        }
예제 #2
0
        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);
            }
        }
예제 #3
0
        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());
            }
        }
예제 #4
0
        // 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);
        }
예제 #5
0
 // 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);
         }
     }
 }
예제 #6
0
 async void UpdateItem(object sender, EventArgs args)
 {
     CharacterDBModel Item = viewModel.GetCharacter();
     await Navigation.PushAsync(new NewCharacterPage(Item));
 }