Beispiel #1
0
        // When this button is clicked, run auto battle and return results
        private async void AutoBattleButton_Command(object sender, EventArgs e)
        {
            // Can create a new battle engine...
            var myBattleEngine = new AutoBattleEngine();

            await DisplayAlert("Starting autobattle...", null, "Continue");

            // Start AutoBattle
            myBattleEngine.RunAutoBattle();

            // Display result of AutoBattle
            await DisplayAlert(null, myBattleEngine.GetResultOutput(), null, "Next");

            // String to hold score.
            var outputString = "Score: " + myBattleEngine.GetScoreValue();

            // Show player their score, and allow option to view more details.
            var action = await DisplayActionSheet(outputString, "Cancel", null, "View Score");

            // If user wants to view more score details, take them there.
            if (action == "View Score")
            {
                await Navigation.PushAsync(new ScoreDetailPage(new ScoreDetailViewModel(myBattleEngine.GetScoreObject())));
            }
        }
Beispiel #2
0
        // Upon Auto Battle clicked, run a new Auto Battle
        // Return a score after the battle end.
        private async void AutoBattleButton_Command(object sender, EventArgs e)
        {
            // Can create a new battle engine...
            var myEngine = new AutoBattleEngine();

            var result = myEngine.RunAutoBattle();

            if (result == false)
            {
                await DisplayAlert("Error", "No Characters Available", "OK");

                return;
            }

            if (myEngine.GetRoundsValue() < 1)
            {
                await DisplayAlert("Error", "No Rounds Fought", "OK");

                return;
            }

            var myResult = myEngine.GetResultsOutput();
            var myScore  = myEngine.GetScoreValue();

            var outputString = "Battle Over! Score " + myScore.ToString();

            var action = await DisplayActionSheet(outputString, "Cancel", null, "View Score");

            if (action == "View Score")
            {
                var myScoreObject = myEngine.GetScoreObject();
                await Navigation.PushAsync(new Views.Scores.ScoreDetailPage(new ScoreDetailViewModel(myScoreObject)));
            }
        }
Beispiel #3
0
        /// <summary>
        /// Jump to the AutoBattle Page
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public async void AutobattleButton_Clicked(object sender, EventArgs e)
        {
            // Run the Autobattle simulation from here
            AutoBattleEngine engine = new AutoBattleEngine();
            await engine.RunAutoBattle();

            // Call to the Score Page
            await Navigation.PushModalAsync(new NavigationPage(new ScorePage()));
        }
        // This unit test ensures AutoBattleEngine is instantiated
        public void AutoBattleEngine_Instantiate_Should_Pass()
        {
            // Arrange

            var Actual = new AutoBattleEngine();


            // Assert
            Assert.IsNotNull(Actual, TestContext.CurrentContext.Test.Name);
        }
Beispiel #5
0
        public void AutoBattleEngine_GetResultOutput_Should_Pass()
        {
            var myEngine = new AutoBattleEngine();

            // Get number of rounds
            var Actual = myEngine.GetResultOutput();

            // Assert that it's not null.
            Assert.AreNotEqual(null, Actual, TestContext.CurrentContext.Test.Name);
        }
Beispiel #6
0
        public void AutoBattleEngine_GetScoreObject_Should_Pass()
        {
            var myEngine = new AutoBattleEngine();

            // Get score object
            var Actual = myEngine.GetScoreObject();

            // Assert that it's not null.
            Assert.AreNotEqual(null, Actual, TestContext.CurrentContext.Test.Name);
        }
Beispiel #7
0
        public async Task AutoBattleEngine_Hack13_First_Round_Boss_Fight_Game_Over_At_Round_One()
        {
            AutoBattleEngine MyEngine = new AutoBattleEngine();

            MyEngine.testBossHack = true;
            await MyEngine.RunAutoBattle();

            var result = MyEngine.BattleScore.RoundCount;

            Assert.AreEqual(result, 1);
        }
        public void Setup()
        {
            AutoBattleEngine = new AutoBattleEngine();

            AutoBattleEngine.Battle.EngineSettings.CharacterList.Clear();
            AutoBattleEngine.Battle.EngineSettings.MonsterList.Clear();
            AutoBattleEngine.Battle.EngineSettings.CurrentDefender = null;
            AutoBattleEngine.Battle.EngineSettings.CurrentAttacker = null;

            AutoBattleEngine.Battle.StartBattle(true);   // Clear the Engine
        }
        // This ensures the GetScoreObject doesn't return a null object
        public void AutoBattleEngine_GetScoreObject_Should_Pass()
        {
            MockForms.Init();
            // New AutoBattleEngine object
            AutoBattleEngine test1 = new AutoBattleEngine();

            // Call GetResultsOutput
            var Actual = test1.GetScoreObject();

            // Assert
            Assert.IsNotNull(Actual, TestContext.CurrentContext.Test.Name);
        }
Beispiel #10
0
        public void AutoBattleEngine_GetScoreValue_Should_Pass()
        {
            var myEngine = new AutoBattleEngine();
            // No score is expected
            var Expected = 0;

            // Get score
            var Actual = myEngine.GetScoreValue();

            // Assert
            Assert.AreEqual(Expected, Actual, TestContext.CurrentContext.Test.Name);
        }
        public void AutoBattleEngine_Instantiate_Should_Pass()
        {
            // Arrange

            // Act
            var Actual = new AutoBattleEngine();

            // Reset

            // Assert
            Assert.AreNotEqual(null, Actual, TestContext.CurrentContext.Test.Name);
        }
Beispiel #12
0
        public void AutoBattleEngine_GetNumRounds_Should_Pass()
        {
            var myEngine = new AutoBattleEngine();
            // No Rounds
            var Expected = 0;

            // Get number of rounds
            var Actual = myEngine.GetNumRounds();

            // Assert
            Assert.AreEqual(Expected, Actual, TestContext.CurrentContext.Test.Name);
        }
        public void AutoBattleEngine_InitiateBattle_Should_Pass()
        {
            // Arrange (No need to set a variable first)

            // Act (The actual return should be that the battle engine started)
            var Actual = new AutoBattleEngine();

            // Reset

            // Assert (Make sure that a game is initiated)
            Assert.AreNotEqual(null, Actual, TestContext.CurrentContext.Test.Name);
        }
        /// <summary>
        /// Jump to the Dungeon
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        async void AutobattleButton_Clicked(object sender, EventArgs e)
        {
            // Run the Autobattle simulation from here
            AutoBattleEngine AutoEngine = new AutoBattleEngine();

            var catchResult = await AutoEngine.RunAutoBattle();

            ScoreModel endScore = AutoEngine.GetScoreObject();

            // Call to the Score Page

            await Navigation.PushModalAsync(new NavigationPage(new ScorePage(new GenericViewModel <ScoreModel>(endScore))));
        }
        public void AutoBattleEngine_GetResultsOutput_Should_Pass()
        {
            // Arrange
            var myEngine = new AutoBattleEngine();

            // Act
            var Actual = myEngine.GetResultsOutput();

            // Reset

            // Assert
            Assert.NotNull(Actual, TestContext.CurrentContext.Test.Name);
        }
        public void AutoBattleEngine_ExecuteAutoBattle_Should_Pass()
        {
            // Arrange
            MockForms.Init();

            var  myEngine = new AutoBattleEngine();
            bool Expect   = true;

            // Act
            var Actual = myEngine.ExecuteAutoBattle();

            // Assert
            Assert.AreEqual(Expect, Actual, TestContext.CurrentContext.Test.Name);
        }
Beispiel #17
0
        public void AutoBattleEngine_GetResultsOutput_Should_Pass()
        {
            // Arrange
            var    myEngine = new AutoBattleEngine();
            string Expected = null;   // because it is not defined yet

            // Act
            var Actual = myEngine.GetResultsOutput();

            // Reset

            // Assert
            Assert.AreEqual(Expected, Actual, TestContext.CurrentContext.Test.Name);
        }
        public void AutoBattleEngine_GetScoreObject_Should_Pass()
        {
            // Arrange
            var myEngine = new AutoBattleEngine();
            var Expected = 0;   // 1 because it is not defined yet

            // Act
            var Actual = myEngine.GetScoreValue();

            // Reset

            // Assert
            Assert.AreEqual(Expected, Actual, TestContext.CurrentContext.Test.Name);
        }
        public async Task AutoBattleEngine_Hack48_Character_To_Hit_Roll_Equal_To_Hack_48_Condition_Attacker_Dies_Game_Ends_At_Round_One()
        {
            AutoBattleEngine MyEngine = new AutoBattleEngine();

            MyEngine.testHack48 = true;
            //FIRST CHARACTER
            await MyEngine.RunAutoBattle();

            var result = MyEngine.BattleScore.RoundCount;


            MyEngine = null;
            Assert.AreEqual(result, 1);
        }
        // This unit test ensures round value of -1 should return default value
        // Which is 1
        // All battle has at least 1 round
        public void AutoBattleEngine_GetRoundsValue_0_Should_Default()
        {
            MockForms.Init();
            //arrange
            AutoBattleEngine test = new AutoBattleEngine();

            test.BattleEngine.BattleScore.RoundCount = 0;
            var Expected = 1; //default value

            var Actual = test.GetRoundsValue();

            //assert
            Assert.AreEqual(Expected, Actual, TestContext.CurrentContext.Test.Name);
        }
        public void AutoBattleEngine_GetRoundsValueAtStart_Should_Pass()
        {
            // Arrange
            var startBattle = new AutoBattleEngine();
            var Expected    = 0; // 0 because it is not defined yet

            // Act
            var Actual = startBattle.GetRoundsValue();

            // Reset

            // Assert
            Assert.AreEqual(Expected, Actual, TestContext.CurrentContext.Test.Name);
        }
        public void AutoBattleEngine_GetScoreValueAtStart_Should_Pass()
        {
            // Arrange (Initiate a new Auto Battle)
            var startBattle = new AutoBattleEngine();
            var Expected    = 0; // 0 is the Expected score, because game just started)

            // Act (Actual score of the battle)
            var Actual = startBattle.GetScoreValue();

            // Reset

            // Assert (Should return 0)
            Assert.AreEqual(Expected, Actual, TestContext.CurrentContext.Test.Name);
        }
        public void Setup()
        {
            AutoBattleEngine = new AutoBattleEngine();

            AutoBattleEngine.Battle.EngineSettings.CharacterList.Clear();
            AutoBattleEngine.Battle.EngineSettings.MonsterList.Clear();
            AutoBattleEngine.Battle.EngineSettings.CurrentDefender = null;
            AutoBattleEngine.Battle.EngineSettings.CurrentAttacker = null;

            AutoBattleEngine.Battle.Round      = new RoundEngine();
            AutoBattleEngine.Battle.Round.Turn = new TurnEngine();

            // Remove this comment when the Battle engine is ready to go...
            AutoBattleEngine.Battle.StartBattle(true);   // Clear the Engine
        }
        // This ensures the GetScoreValue returns a valid int
        // Any value equal or larger than 0 is acceptable
        public void AutoBattleEngine_GetScoreValue_0_Should_Pass()
        {
            MockForms.Init();
            //arrange
            AutoBattleEngine test = new AutoBattleEngine();

            test.BattleEngine.BattleScore.ScoreTotal = 0;

            var Expected = 0;

            var Actual = test.GetScoreValue();

            //assert
            Assert.AreEqual(Expected, Actual, TestContext.CurrentContext.Test.Name);
        }
Beispiel #25
0
        // Auto Battle Starts here when this button is clicked
        private async void AutoBattleButton_Command(object sender, EventArgs e)
        {
            // Can create a new battle engine...
            var myBattleEngine = new AutoBattleEngine();

            // run auto battle
            var result = myBattleEngine.RunAutoBattle();

            if (result == false)
            {
                await DisplayAlert("Error", "No Characters Available", "OK");

                return;
            }

            if (myBattleEngine.GetRoundsValue() < 1)
            {
                await DisplayAlert("Error", "No Rounds Fought", "OK");

                return;
            }

            // output results of the game after battle is over
            var myResult = myBattleEngine.GetResultsOutput();
            var myScore  = myBattleEngine.GetScoreValue();



            var outputString = "Mellow Fox Battle Over!";

            // the pop up for either cancel or see the score details
            var action = await DisplayActionSheet(outputString,
                                                  "Cancel",
                                                  null,
                                                  "View Score Results");

            // Show the results
            if (action == "View Score Results")
            {
                var myScoreObject = myBattleEngine.GetScoreObject();
                await Navigation.PushAsync(new GameOver(new ScoreDetailViewModel(myScoreObject)));
            }
        }
Beispiel #26
0
        public async Task AutoBattleEngine_Character_With_Prime_Attribute_Value_Hits_Real_Hard_should_win_LOTS()
        {
            AutoBattleEngine MyEngine = new AutoBattleEngine();

            MyEngine.testingHack47 = true;

            for (int i = 0; i < MyEngine.MaxNumberPartyCharacters; i++)
            {
                var PrimeGod = new PlayerInfoModel(
                    new BaseCharacter
                {
                    Speed     = 16,
                    Level     = 7,
                    Attack    = 12,
                    Defense   = 10,
                    MaxHealth = 50,


                    CurrHealth          = 11,
                    Experience          = 1,
                    ExperienceRemaining = 1,
                    Name      = "God Like Mike",
                    ListOrder = 1,
                });

                MyEngine.CharacterList.Add(PrimeGod);
            }
            MyEngine.MaxNumberPartyMonsters = 1;
            await MyEngine.RunAutoBattle();

            bool result = false;

            if (MyEngine.BattleScore.RoundCount > 3)
            {
                result = true;
            }

            //Reset
            MyEngine = null;
            //Assert
            Assert.AreEqual(true, result);
        }
        public void AutoBattleEngine_ExecuteAutoBattle_No_Characters_Should_Fail()
        {
            // Arrange
            MockForms.Init();

            var  myEngine = new AutoBattleEngine();
            bool Expect   = false;

            // Delete all Characters from the View Model
            CharactersViewModel.Instance.Dataset.Clear();

            // Act
            var Actual = myEngine.ExecuteAutoBattle();

            // Reset
            CharactersViewModel.Instance.ForceDataRefresh();

            // Assert
            Assert.AreEqual(Expect, Actual, TestContext.CurrentContext.Test.Name);
        }
Beispiel #28
0
        // Button Logic for AutoBattle page.
        private async void AutoBattleButton_Command(object sender, EventArgs e)
        {
            // Hold the score property to give to the score navigation later
            Score myScoreObject = new Score();

            // Can create a new battle engine...
            var myEngine = new AutoBattleEngine();


            //await Task.Run(async () =>
            //{
            var result = myEngine.ExecuteAutoBattle();

            if (result == false)
            {
                await DisplayAlert("Error", "No Characters Avaialbe", "OK");

                return;
            }

            if (myEngine.GetRoundCount() < 1)
            {
                await DisplayAlert("Error", "No Rounds Fought", "OK");

                return;
            }

            var myResult = myEngine.GetResultsOutput();
            var myScore  = myEngine.GetScoreValue();

            var outputString = "Battle Over! Score " + myScore.ToString();

            myScoreObject = myEngine.GetScoreObject();
            // });

            await Navigation.PushAsync(new ScoreDetailPage(new ScoreDetailViewModel(myScoreObject)));
        }
Beispiel #29
0
 public void Setup()
 {
     Engine = new AutoBattleEngine();
 }
Beispiel #30
0
 public void Setup()
 {
     //AutoBattleEngine = EngineViewModel.AutoBattleEngine;
     BattleEngine     = EngineViewModel.Engine;
     AutoBattleEngine = EngineViewModel.AutoBattleEngine;
 }