コード例 #1
0
        /// <summary>
        /// Save the newly created character and close this page
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public async void Save_Clicked(object sender, EventArgs e)
        {
            // if the name or description are not entered, the page remains on the create screen
            if (string.IsNullOrEmpty(ViewModel.Data.Name) || string.IsNullOrEmpty(ViewModel.Data.Description))
            {
                await Navigation.PushModalAsync(new NavigationPage(new CharacterUpdatePage(ViewModel)));

                await Navigation.PopModalAsync();
            }
            // otherwise it creates and saves the new character
            else
            {
                ViewModel.Data.PlayerType = PlayerTypeEnum.Character;
                ViewModel.Data.SpecificCharacterTypeEnum = SpecificCharacterTypeEnumHelper.ConvertMessageStringToEnum(CharacterTypePicker.SelectedItem.ToString());
                ViewModel.Data.CharacterTypeEnum         = SpecificCharacterTypeEnumHelper.GetCharacterTypeEnumFromSpecificCharacterTypeEnum(ViewModel.Data.SpecificCharacterTypeEnum);
                ViewModel.Data.ImageURI       = SpecificCharacterTypeEnumHelper.ToImageURI(ViewModel.Data.SpecificCharacterTypeEnum);
                ViewModel.Data.SpecialAbility = SpecificCharacterTypeEnumHelper.ToAbility(ViewModel.Data.SpecificCharacterTypeEnum);
                ViewModel.Data.Range          = SpecificCharacterTypeEnumHelper.ToRange(ViewModel.Data.SpecificCharacterTypeEnum);
                MessagingCenter.Send(this, "Create", ViewModel.Data);

                foreach (var item in newItems)
                {
                    MessagingCenter.Send(this, "CreateItem", item);
                }

                await Navigation.PopModalAsync();
            }
        }
コード例 #2
0
        public void SpecificCharacterTypeEnumHelperTests_ToImageURI_SmartyPants_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificCharacterTypeEnumHelper.ToImageURI(SpecificCharacterTypeEnum.SmartyPants);

            // Reset

            // Assert
            Assert.AreEqual(Constants.SpecificCharacterTypeSmartyPantsImageURI, result);
        }
コード例 #3
0
        public void SpecificCharacterTypeEnumHelperTests_ToImageURI_Procrastinator_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificCharacterTypeEnumHelper.ToImageURI(SpecificCharacterTypeEnum.Procrastinator);

            // Reset

            // Assert
            Assert.AreEqual(Constants.SpecificCharacterTypeProcrastinatorImageURI, result);
        }
コード例 #4
0
        public void SpecificCharacterTypeEnumHelperTests_ToImageURI_Overachiever_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificCharacterTypeEnumHelper.ToImageURI(SpecificCharacterTypeEnum.Overachiever);

            // Reset

            // Assert
            Assert.AreEqual(Constants.SpecificCharacterTypeOverachieverImageURI, result);
        }
コード例 #5
0
        public void SpecificCharacterTypeEnumHelperTests_ToImageURI_InternationalStudent_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificCharacterTypeEnumHelper.ToImageURI(SpecificCharacterTypeEnum.InternationalStudent);

            // Reset

            // Assert
            Assert.AreEqual(Constants.SpecificCharacterTypeInternationalStudentImageURI, result);
        }
コード例 #6
0
        public void SpecificCharacterTypeEnumHelperTests_ToImageURI_HelicopterParent_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificCharacterTypeEnumHelper.ToImageURI(SpecificCharacterTypeEnum.HelicopterParent);

            // Reset

            // Assert
            Assert.AreEqual(Constants.SpecificCharacterTypeHelicopterParentImageURI, result);
        }
コード例 #7
0
        public void SpecificCharacterTypeEnumHelperTests_ToImageURI_Unknown_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificCharacterTypeEnumHelper.ToImageURI(SpecificCharacterTypeEnum.Unknown);

            // Reset

            // Assert
            Assert.AreEqual(Constants.SpecificCharacterTypeDefaultImageURI, result);
        }
コード例 #8
0
        /// <summary>
        /// Create Random Character for the battle. This method is specific to our game flavor - Escaping School.Creates a parent.
        /// </summary>
        /// <param name="MaxLevel"></param>
        /// <returns></returns>
        public static CharacterModel GetRandomCharacterParent(int MaxLevel)
        {
            var result = new CharacterModel()
            {
                Level = DiceHelper.RollDice(1, MaxLevel),

                // Randomize Name
                Name              = GetCharacterName(),
                Description       = GetCharacterDescriptionParent(),
                CharacterTypeEnum = CharacterTypeEnum.Parent,

                // Randomize the Attributes
                Attack  = GetAbilityValue(),
                Speed   = GetAbilityValue(),
                Defense = GetAbilityValue(),

                // Randomize an Item for Location. Parents don't have heads or feet.
                Necklace    = GetItem(ItemLocationEnum.Necklace),
                PrimaryHand = GetItem(ItemLocationEnum.PrimaryHand),
                OffHand     = GetItem(ItemLocationEnum.OffHand),
                RightFinger = GetItem(ItemLocationEnum.Finger),
                LeftFinger  = GetItem(ItemLocationEnum.Finger),
            };

            var specifictype = DiceHelper.RollDice(1, 2);

            if (specifictype % 2 == 0)
            {
                result.SpecificCharacterTypeEnum = SpecificCharacterTypeEnum.CoolParent;
            }
            if (specifictype % 2 != 0)
            {
                result.SpecificCharacterTypeEnum = SpecificCharacterTypeEnum.HelicopterParent;
            }

            result.ImageURI     = SpecificCharacterTypeEnumHelper.ToImageURI(result.SpecificCharacterTypeEnum);
            result.TileImageURI = SpecificCharacterTypeEnumHelper.ToTileImageURI(result.SpecificCharacterTypeEnum);


            result.MaxHealth = DiceHelper.RollDice(MaxLevel, 10);

            // Level up to the new level
            result.LevelUpToValue(result.Level);

            // Enter Battle at full health
            result.CurrentHealth = result.MaxHealth;

            return(result);
        }
コード例 #9
0
        /// <summary>
        /// Create Random Character for the battle. This method is specific to our game flavor - Escaping School.Creates a parent.
        /// </summary>
        /// <param name="MaxLevel"></param>
        /// <returns></returns>
        public static CharacterModel GetRandomCharacterStudent(int MaxLevel)
        {
            var result = new CharacterModel()
            {
                Level = DiceHelper.RollDice(1, MaxLevel),

                // Randomize Name
                Name              = GetCharacterName(),
                Description       = GetCharacterDescriptionParent(),
                CharacterTypeEnum = CharacterTypeEnum.Student,

                // Randomize the Attributes
                Attack  = GetAbilityValue(),
                Speed   = GetAbilityValue(),
                Defense = GetAbilityValue(),

                // Randomize an Item for Location. Parents don't have heads or feet.
                Necklace    = GetItem(ItemLocationEnum.Necklace),
                PrimaryHand = GetItem(ItemLocationEnum.PrimaryHand),
                OffHand     = GetItem(ItemLocationEnum.OffHand),
                RightFinger = GetItem(ItemLocationEnum.Finger),
                LeftFinger  = GetItem(ItemLocationEnum.Finger),
            };

            var specifictype = DiceHelper.RollDice(1, 7);

            switch (specifictype)
            {
            case 1:
                result.SpecificCharacterTypeEnum = SpecificCharacterTypeEnum.InternationalStudent;
                break;

            case 2:
                result.SpecificCharacterTypeEnum = SpecificCharacterTypeEnum.Overachiever;
                break;

            case 3:
                result.SpecificCharacterTypeEnum = SpecificCharacterTypeEnum.Procrastinator;
                break;

            case 4:
                result.SpecificCharacterTypeEnum = SpecificCharacterTypeEnum.Prodigy;
                break;

            case 5:
                result.SpecificCharacterTypeEnum = SpecificCharacterTypeEnum.SecondCareer;
                break;

            case 6:
                result.SpecificCharacterTypeEnum = SpecificCharacterTypeEnum.Slacker;
                break;

            case 7:
                result.SpecificCharacterTypeEnum = SpecificCharacterTypeEnum.SmartyPants;
                break;

            default:
                result.SpecificCharacterTypeEnum = SpecificCharacterTypeEnum.Unknown;
                break;
            }

            result.ImageURI     = SpecificCharacterTypeEnumHelper.ToImageURI(result.SpecificCharacterTypeEnum);
            result.TileImageURI = SpecificCharacterTypeEnumHelper.ToTileImageURI(result.SpecificCharacterTypeEnum);


            result.MaxHealth = DiceHelper.RollDice(MaxLevel, 10);

            // Level up to the new level
            result.LevelUpToValue(result.Level);

            // Enter Battle at full health
            result.CurrentHealth = result.MaxHealth;

            return(result);
        }