Beispiel #1
0
        public static Monster GetMonster(int monsterID)
        {
            switch (monsterID)
            {
            case 1:
                Monster snake =
                    new Monster("Snake", "Snake.png", 4, 4, 5, 1);

                AddLootItem(snake, 9001, 25);
                AddLootItem(snake, 9002, 75);

                return(snake);

            case 2:
                Monster rat =
                    new Models.Monster("Rat", "Rat.png", 5, 5, 5, 1);

                AddLootItem(rat, 9003, 25);
                AddLootItem(rat, 9004, 75);

                return(rat);

            case 3:
                Monster giantSpider =
                    new Monster("Giant spider", "GiantSpider.png", 10, 10, 10, 3);

                AddLootItem(giantSpider, 9005, 25);
                AddLootItem(giantSpider, 9006, 75);

                return(giantSpider);

            default:
                throw new ArgumentException(string.Format("MonsterType '{0}' does not exist", monsterID));
            }
        }
        /// <summary>
        // Stand up the Page and initiate state
        /// </summary>
        ///
        public BattleMainPage(BattleViewModel viewModel)
        {
            InitializeComponent();

            BindingContext = _viewModel = viewModel;

            //Adds consumable items for chars to use
            _viewModel.BattleEngine.AddItemsToList();

            Debug.WriteLine("Items added to list in mainpage: ");
            foreach (Item item in _viewModel.BattleEngine.ItemPool)
            {
                Debug.WriteLine(item.Name);
            }

            //initialize button controls
            //GameStartButton.IsVisible = true;
            GameNextButton.IsVisible = false;

            GameOverButton.IsVisible = false;

            SelectedMonster     = null;
            ableToSelectMonster = false;


            StartGameSetting();
            DrawGameBoardAttackerDefender();
            RefreshMonsters();
            RefreshCharacters();
        }
 // Upon selected, the monster is chose for target
 private async void OnSelectedMonsterSelected(object sender, SelectedItemChangedEventArgs args)
 {
     if (ableToSelectMonster)
     {
         Debug.WriteLine("able to select monster");
         var data = args.SelectedItem as WDown.Models.Monster;
         SelectedMonster = data;
     }
 }
Beispiel #4
0
        public ActionResult About()
        {
            MonsterDB.Models.Monster exampleMonster = new Models.Monster();
            exampleMonster.Monster_ID       = 1001;
            exampleMonster.Monster_Name     = "Popoporing";
            exampleMonster.Monster_HP       = 6969;
            exampleMonster.Monster_Race     = "Formless";
            exampleMonster.Monster_Property = "Water 2";

            ViewBag.Message = "Your application description page.";

            return(View(exampleMonster));
        }
Beispiel #5
0
        public AboutPage()
        {
            InitializeComponent();

            BindingContext = _viewModel;

            // Set the flag for Mock on or off...
            UseMockDataSource.IsToggled = (MasterDataStore.GetDataStoreMockFlag() == DataStoreEnum.Mock);
            SetDataSource(UseMockDataSource.IsToggled);

            // Example of how to add an view to an existing set of XAML.
            // Give the Xaml layout you want to add the data to a good x:Name, so you can access it.  Here "DateRoot" is what I am using.
            var dateLabel = new Label
            {
                Text = DateTime.Now.ToShortDateString(),
                HorizontalOptions = LayoutOptions.Center,
                VerticalOptions   = LayoutOptions.Center,
                FontFamily        = "Helvetica Neue",
                FontAttributes    = FontAttributes.Bold,
                FontSize          = 12,
                TextColor         = Color.Black,
            };

            DateRoot.Children.Add(dateLabel);

            // Set debug settings
            EnableCriticalMissProblems.IsToggled = GameGlobals.EnableCriticalMissProblems;
            EnableCriticalHitDamage.IsToggled    = GameGlobals.EnableCriticalHitDamage;

            // Turn off the Debug Frame
            DebugSettingsFrame.IsVisible = false;

            // Turn off Forced Random Numbers Frame
            ForcedRandomValuesSettingsFrame.IsVisible = false;

            // Turn off Database Settings Frame
            DatabaseSettingsFrame.IsVisible = false;

            var myTestItem      = new Item();
            var myTestCharacter = new Models.Character();
            var myTestMonster   = new Models.Monster();

            var myOutputItem      = myTestItem.FormatOutput();
            var myOutputCharacter = myTestCharacter.FormatOutput();
            var myOutputMonster   = myTestMonster.FormatOutput();
        }
        // Handle when the character chooses to rest
        public async void RestClicked(object sender, EventArgs args)
        {
            Debug.WriteLine("current player's HP before heal: " + _viewModel.BattleEngine.PlayerCurrent.RemainingHP);
            // This part of code is to populate the sound to play
            // when user clicks button
            //var player1 = CrossSimpleAudioPlayer.CreateSimpleAudioPlayer();
            //string filename1 = "rest.mp3";
            //player1.Load(filename1);
            //player1.Play();

            //after the rest button is clicked, we want to disable all other actions other than submit
            RestButton.IsEnabled    = false;
            UseItemButton.IsEnabled = false;
            ableToSelectMonster     = false;

            AttackButton.IsEnabled   = false;
            GameNextButton.IsEnabled = true;
            ItemPool.IsEnabled       = false;


            _viewModel.BattleEngine.ManualTarget = null;
            SelectedMonster = null;
            SelectedMonstersView.SelectedItem = null;

            //change turn type to be rest
            _viewModel.BattleEngine.TurnType = MoveEnum.Rest;


            _viewModel.BattleEngine.PlayerCurrent.RemainingHP = _viewModel.BattleEngine.PlayerCurrent.TotalHP;

            Models.Character character = _viewModel.BattleEngine.CharacterList.FirstOrDefault(x => x.Name == _viewModel.BattleEngine.PlayerCurrent.Name);

            foreach (Models.Character c in _viewModel.BattleEngine.CharacterList)
            {
                if (c == character)
                {
                    c.CharacterAttribute.CurrentHealth = c.CharacterAttribute.MaxHealth;
                }
            }
            Debug.WriteLine("current player's HP: " + _viewModel.BattleEngine.PlayerCurrent.RemainingHP);
            DrawGameBoardAttackerDefender();
            localMessages = "Character Rested and regained full HP!";
        }
        public ActionResult MyPage()
        {
            var monster = new Models.Monster();

            monster.Name     = "poring";
            monster.HP       = 21;
            monster.Race     = "Formless";
            monster.Property = "Water1";

            ViewBag.a    = 1;
            ViewBag.b    = 2;
            ViewBag.List = new List <int>()
            {
                1, 2, 3
            };


            ViewBag.DynamicVariable = "wow such viewbag";

            ViewBag.Message = "My new page thing";

            return(View(monster));
        }
        // Handles when user chooses an option and hits submit
        public async void SubmitClicked(object sender, EventArgs args)
        {
            //send the selected monster info into target
            if (_viewModel.BattleEngine.PlayerCurrent.PlayerType == PlayerTypeEnum.Character)
            {
                _viewModel.BattleEngine.ManualTarget = SelectedMonster;
            }

            //update xaml front end local message section
            if (_viewModel.BattleEngine.TurnType == MoveEnum.Rest)
            {
                LocalMessageText.Text = localMessages;
            }

            else if (_viewModel.BattleEngine.TurnType == MoveEnum.UseItem)
            {
                LocalMessageText.Text = localMessages;
            }

            else
            {
                LocalMessageText.Text = null;
            }
            //do the turn
            _viewModel.RoundNextTurn();


            //update front end options after turn taken


            if (_viewModel.BattleEngine.PlayerCurrent.PlayerType == PlayerTypeEnum.Character)
            {
                ItemPool.IsEnabled       = true;
                GameNextButton.IsEnabled = false;
                AttackButton.IsEnabled   = true;
                RestButton.IsEnabled     = true;
                UseItemButton.IsEnabled  = true;
            }
            else
            {
                ItemPool.IsEnabled       = false;
                GameNextButton.IsEnabled = true;
                AttackButton.IsEnabled   = false;
                RestButton.IsEnabled     = false;
                UseItemButton.IsEnabled  = false;
            }
            // Hold the current state
            var CurrentRoundState = _viewModel.BattleEngine.RoundStateEnum;

            Debug.WriteLine("Current round state after this turn: " + CurrentRoundState.ToString());

            // Draw the Game Board
            DrawGameBoardAttackerDefender();
            RefreshMonsters();
            RefreshCharacters();

            //used if im using an observable collection
            //_viewModel.SyncMonsterAndCharacterLists();


            //updates current player up in frontend
            OnPropertyChanged();

            //reset all these for next turn
            ableToSelectMonster = false;

            SelectedMonster = null;


            // If the round is over start a new one...
            if (CurrentRoundState == RoundEnum.NewRound)
            {
                Debug.WriteLine("NEW ROUND TRIGGERED");
                _viewModel.NewRound();

                // Show new round and Round count
                Debug.WriteLine("New Round :" + _viewModel.BattleEngine.BattleScore.RoundCount);

                //push up modal monster list page to show new monsters youre fighting
                ShowModalPageMonsterList();
                //StartGameSetting();

                // Show name of current player

                Debug.WriteLine("current player: " + _viewModel.BattleEngine.PlayerCurrent.Name);



                if (_viewModel.BattleEngine.PlayerCurrent.PlayerType == PlayerTypeEnum.Character)
                {
                    GameNextButton.IsEnabled = false;
                    AttackButton.IsEnabled   = true;
                    RestButton.IsEnabled     = true;
                    UseItemButton.IsEnabled  = true;
                    ItemPool.IsEnabled       = true;
                }
                else
                {
                    GameNextButton.IsEnabled = true;
                    AttackButton.IsEnabled   = false;
                    RestButton.IsEnabled     = false;
                    UseItemButton.IsEnabled  = false;
                    ItemPool.IsEnabled       = false;
                }
                OnPropertyChanged();
            }


            // Check for Game Over
            if (CurrentRoundState == RoundEnum.GameOver)
            {
                //MessagingCenter.Send(this, "EndBattle");
                _viewModel.EndBattle();
                Debug.WriteLine("End Battle");

                // Output Formatted Results
                var myResult = _viewModel.BattleEngine.GetResultsOutput();
                Debug.Write(myResult);
                OnPropertyChanged();

                // Let the user know the game is over
                GameMessage("Game Over\n");

                // Change to the Game Over Button
                GameNextButton.IsVisible = false;
                GameOverButton.IsVisible = true;

                return;
            }

            // Output The Message that happened.
            GameMessage(_viewModel.BattleEngine.BattleMessages.TurnMessage);


            Debug.WriteLine("List of characters and HP remaining: ");
            foreach (Models.Character character in _viewModel.BattleEngine.CharacterList)
            {
                Debug.WriteLine("Name : " + character.Name);
                Debug.WriteLine("HP : " + character.CharacterAttribute.getCurrentHealth() + "/" + character.CharacterAttribute.getMaxHealth());
            }
            Debug.WriteLine("\n");
            Debug.WriteLine("List of monsters and HP remaining: ");
            foreach (Models.Monster monster in _viewModel.BattleEngine.MonsterList)
            {
                Debug.WriteLine("Name : " + monster.Name);
                Debug.WriteLine("HP : " + monster.MonsterAttribute.getCurrentHealth() + "/" + monster.MonsterAttribute.getMaxHealth());
            }
        }
Beispiel #9
0
 public void Delete(Models.Monster monster)
 {
     _monster.Remove(monster);
 }
Beispiel #10
0
 public void Update(Models.Monster monster)
 {
     _context.Update(monster);
 }
Beispiel #11
0
 public void Add(Models.Monster monster)
 {
     _monster.Add(monster);
 }
Beispiel #12
0
 public bool TryGetMonster(int id, out Models.Monster monster)
 {
     monster = _context.Monster.Include(t => t.Moves).FirstOrDefault(t => t.Id == id);
     return(monster != null);
 }