Exemplo n.º 1
0
        /// <summary>
        /// Save by calling for Create
        /// </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 MonsterUpdatePage(ViewModel)));

                await Navigation.PopModalAsync();
            }
            // otherwise it creates and saves the new monster
            else
            {
                ViewModel.Data.PlayerType = PlayerTypeEnum.Monster;
                ViewModel.Data.SpecificMonsterTypeEnum = SpecificMonsterTypeEnumHelper.ConvertMessageStringToEnum(MonsterTypePicker.SelectedItem.ToString());
                ViewModel.Data.MonsterTypeEnum         = SpecificMonsterTypeEnumHelper.GetMonsterTypeEnumFromSpecificMonsterTypeEnum(ViewModel.Data.SpecificMonsterTypeEnum);
                ViewModel.Data.ImageURI = SpecificMonsterTypeEnumHelper.ToImageURI(ViewModel.Data.SpecificMonsterTypeEnum);
                ViewModel.Data.Range    = SpecificMonsterTypeEnumHelper.ToRange(ViewModel.Data.SpecificMonsterTypeEnum);

                // Unique Drop item
                MessagingCenter.Send(this, "CreateItem", dropItem);

                MessagingCenter.Send(this, "Create", ViewModel.Data);
                await Navigation.PopModalAsync();
            }
        }
        public void SpecificMonsterTypeEnumHelperTests_ToRange_RegistrationAdministrator_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.ToRange(SpecificMonsterTypeEnum.RegistrationAdministrator);

            // Reset

            // Assert
            Assert.AreEqual(1, result);
        }
        public void SpecificMonsterTypeEnumHelperTests_GetMonsterTypeEnumFromSpecificMonsterTypeEnum_RegistrationAdministrator_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.GetMonsterTypeEnumFromSpecificMonsterTypeEnum(SpecificMonsterTypeEnum.RegistrationAdministrator);

            // Reset

            // Assert
            Assert.AreEqual(MonsterTypeEnum.Administrator, result);
        }
        public void SpecificMonsterTypeEnumHelperTests_GetMonsterTypeEnumFromSpecificMonsterTypeEnum_Professor_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.GetMonsterTypeEnumFromSpecificMonsterTypeEnum(SpecificMonsterTypeEnum.Professor);

            // Reset

            // Assert
            Assert.AreEqual(MonsterTypeEnum.Faculty, result);
        }
        public void SpecificMonsterTypeEnumHelperTests_ToRange_Professor_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.ToRange(SpecificMonsterTypeEnum.Professor);

            // Reset

            // Assert
            Assert.AreEqual(3, result);
        }
        public void SpecificMonsterTypeEnumHelperTests_ToRange_Unknown_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.ToRange(SpecificMonsterTypeEnum.Unknown);

            // Reset

            // Assert
            Assert.AreEqual(1, result);
        }
        public void SpecificMonsterTypeEnumHelperTests_ToTileImageURI_RegistrationAdministrator_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.ToTileImageURI(SpecificMonsterTypeEnum.RegistrationAdministrator);

            // Reset

            // Assert
            Assert.AreEqual(Constants.SpecificMonsterTypeRegistrationAdministratorTileImageURI, result);
        }
        public void SpecificMonsterTypeEnumHelperTests_ToTileImageURI_AdjunctFaculty_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.ToTileImageURI(SpecificMonsterTypeEnum.AdjunctFaculty);

            // Reset

            // Assert
            Assert.AreEqual(Constants.SpecificMonsterTypeAdjunctFacultyTileImageURI, result);
        }
        public void SpecificMonsterTypeEnumHelperTests_ConvertMessageStringToEnum_AdjunctFaculty_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.ConvertMessageStringToEnum("Adjunct Faculty");

            // Reset

            // Assert
            Assert.AreEqual(SpecificMonsterTypeEnum.AdjunctFaculty, result);
        }
        public void SpecificMonsterTypeEnumHelperTests_ConvertMessageStringToEnum_BogusString_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.ConvertMessageStringToEnum("This doesn't exist");

            // Reset

            // Assert
            Assert.AreEqual(SpecificMonsterTypeEnum.Unknown, result);
        }
        public void SpecificMonsterTypeEnumHelperTests_ConvertStringToEnum_GraduationOfficeAdministrator_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.ConvertStringToEnum("GraduationOfficeAdministrator");

            // Reset

            // Assert
            Assert.AreEqual(SpecificMonsterTypeEnum.GraduationOfficeAdministrator, result);
        }
        public void SpecificMonsterTypeEnumHelperTests_ConvertStringToEnum_Unknown_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.ConvertStringToEnum("Unknown");

            // Reset

            // Assert
            Assert.AreEqual(SpecificMonsterTypeEnum.Unknown, result);
        }
        public void SpecificMonsterTypeEnumHelperTests_ToRange_TeachingAssistant_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.ToRange(SpecificMonsterTypeEnum.TeachingAssistant);

            // Reset

            // Assert
            Assert.AreEqual(2, result);
        }
        public void SpecificMonsterTypeEnumHelperTests_ToImageURI_GraduationOfficeAdministrator_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.ToImageURI(SpecificMonsterTypeEnum.GraduationOfficeAdministrator);

            // Reset

            // Assert
            Assert.AreEqual(Constants.SpecificMonsterTypeGraduationOfficeAdministratorImageURI, result);
        }
        public void SpecificMonsterTypeEnumHelperTests_ConvertMessageStringToEnum_AssociateProfessor_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.ConvertMessageStringToEnum("Associate Professor");

            // Reset

            // Assert
            Assert.AreEqual(SpecificMonsterTypeEnum.AssociateProfessor, result);
        }
        public void SpecificMonsterTypeEnumHelperTests_ToTileImageURI_Unknown_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.ToTileImageURI(SpecificMonsterTypeEnum.Unknown);

            // Reset

            // Assert
            Assert.AreEqual(Constants.SpecificMonsterTypeDefaultTileImageURI, result);
        }
        public void SpecificMonsterTypeEnumHelperTests_ConvertMessageStringToEnum_RegistrationAdministrator_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.ConvertMessageStringToEnum("Registration Administrator");

            // Reset

            // Assert
            Assert.AreEqual(SpecificMonsterTypeEnum.RegistrationAdministrator, result);
        }
        public void SpecificMonsterTypeEnumHelperTests_ToTileImageURI_Professor_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.ToTileImageURI(SpecificMonsterTypeEnum.Professor);

            // Reset

            // Assert
            Assert.AreEqual(Constants.SpecificMonsterTypeProfessorTileImageURI, result);
        }
        public void SpecificMonsterTypeEnumHelperTests_ConvertMessageStringToEnum_TeachingAssistant_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.ConvertMessageStringToEnum("Teaching Assistant");

            // Reset

            // Assert
            Assert.AreEqual(SpecificMonsterTypeEnum.TeachingAssistant, result);
        }
        public void SpecificMonsterTypeEnumHelperTests_ToTileImageURI_TeachingAssistant_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.ToTileImageURI(SpecificMonsterTypeEnum.TeachingAssistant);

            // Reset

            // Assert
            Assert.AreEqual(Constants.SpecificMonsterTypeTeachingAssistantTileImageURI, result);
        }
        public void SpecificMonsterTypeEnumHelperTests_GetMonsterTypeEnumFromSpecificMonsterTypeEnum_Unknown_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.GetMonsterTypeEnumFromSpecificMonsterTypeEnum(SpecificMonsterTypeEnum.Unknown);

            // Reset

            // Assert
            Assert.AreEqual(MonsterTypeEnum.Unknown, result);
        }
        public void SpecificMonsterTypeEnumHelperTests_ToRange_AdjunctFaculty_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.ToRange(SpecificMonsterTypeEnum.AdjunctFaculty);

            // Reset

            // Assert
            Assert.AreEqual(2, result);
        }
        public void SpecificMonsterTypeEnumHelperTests_GetMonsterTypeEnumFromSpecificMonsterTypeEnum_TeachingAssistant_Should_Pass()
        {
            // Arrange

            // Act
            var result = SpecificMonsterTypeEnumHelper.GetMonsterTypeEnumFromSpecificMonsterTypeEnum(SpecificMonsterTypeEnum.TeachingAssistant);

            // Reset

            // Assert
            Assert.AreEqual(MonsterTypeEnum.Faculty, result);
        }
Exemplo n.º 24
0
 /// <summary>
 /// Constructor to create a new MonsterModel.
 /// </summary>
 public MonsterModel()
 {
     PlayerType              = PlayerTypeEnum.Monster;
     MonsterTypeEnum         = MonsterTypeEnum.Faculty;
     SpecificMonsterTypeEnum = SpecificMonsterTypeEnum.TeachingAssistant;
     Guid                = Id;
     Name                = "";
     Description         = "";
     Attack              = 1;
     Difficulty          = DifficultyEnum.Average;
     UniqueDropItem      = null;
     ImageURI            = SpecificMonsterTypeEnumHelper.ToImageURI(SpecificMonsterTypeEnum);
     ExperienceTotal     = 0;
     ExperienceRemaining = LevelTableHelper.LevelDetailsList[Level + 1].Experience - 1;
     TileImageURI        = SpecificMonsterTypeEnumHelper.ToTileImageURI(SpecificMonsterTypeEnum);
 }
Exemplo n.º 25
0
        /// <summary>
        /// Converts from Int to String
        /// </summary>
        /// <param name="value"></param>
        /// <param name="targetType"></param>
        /// <param name="parameter"></param>
        /// <param name="culture"></param>
        /// <returns></returns>
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value is int)
            {
                var myReturn = Enum.ToObject(targetType, value);
                return(((SpecificMonsterTypeEnum)myReturn).ToMessage());
            }

            if (value is string)
            {
                // Convert the Message String to the Enum
                var myReturn = SpecificMonsterTypeEnumHelper.ConvertStringToEnum((string)value);

                return(myReturn);
            }
            return(0);
        }
Exemplo n.º 26
0
        /// <summary>
        /// Converts String to Int
        /// </summary>
        /// <param name="value"></param>
        /// <param name="targetType"></param>
        /// <param name="parameter"></param>
        /// <param name="culture"></param>
        /// <returns></returns>
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value is Enum)
            {
                //return (int)value;
                return(((SpecificMonsterTypeEnum)value).ToMessage());
            }

            if (value is string)
            {
                // Convert String Enum and then Enum to Message
                var myEnum   = SpecificMonsterTypeEnumHelper.ConvertMessageStringToEnum((string)value);
                var myReturn = myEnum.ToMessage();

                return(myReturn);
            }

            return(0);
        }
Exemplo n.º 27
0
        /// <summary>
        /// Any time picker changes, items reset based on player type
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void OnPickerSelectedIndexChanged(object sender, EventArgs e)
        {
            var picker = (Picker)sender;
            SpecificMonsterTypeEnum SpecificMonsterTypeEnum = SpecificMonsterTypeEnumHelper.ConvertMessageStringToEnum((string)picker.SelectedItem);

            //get the items based on monster
            dropItem = ViewModel.Data.DropItemBasedOnCharacterType(SpecificMonsterTypeEnum);

            //remove items from page
            var FlexList = ItemBox.Children.ToList();

            foreach (var data in FlexList)
            {
                ItemBox.Children.Remove(data);
            }
            if (dropItem != null)
            {
                ItemBox.Children.Add(LoadItem(dropItem));
            }
        }
Exemplo n.º 28
0
        /// <summary>
        /// Update
        /// </summary>
        /// <param name="newData"></param>
        /// <returns></returns>
        public override bool Update(MonsterModel newData)
        {
            if (newData == null)
            {
                return(false);
            }

            PlayerType              = newData.PlayerType;
            MonsterTypeEnum         = newData.MonsterTypeEnum;
            SpecificMonsterTypeEnum = newData.SpecificMonsterTypeEnum;
            SpecificMonsterTypeEnum = newData.SpecificMonsterTypeEnum;

            ImageURI    = SpecificMonsterTypeEnumHelper.ToImageURI(SpecificMonsterTypeEnum);
            Guid        = newData.Guid;
            Name        = newData.Name;
            Description = newData.Description;

            Difficulty = newData.Difficulty;

            //Speed = newData.Speed;
            //Defense = newData.Defense;
            Attack = newData.Attack;

            ExperienceTotal     = newData.ExperienceTotal;
            ExperienceRemaining = newData.ExperienceRemaining;
            //CurrentHealth = newData.CurrentHealth;
            //MaxHealth = newData.MaxHealth;

            Head           = newData.Head;
            Necklace       = newData.Necklace;
            PrimaryHand    = newData.PrimaryHand;
            OffHand        = newData.OffHand;
            RightFinger    = newData.RightFinger;
            LeftFinger     = newData.LeftFinger;
            Feet           = newData.Feet;
            UniqueDropItem = newData.UniqueDropItem;

            //Job = newData.Job;

            return(true);
        }
        /// <summary>
        /// Create Random monster faculty for the battle
        /// </summary>
        /// <param name="MaxLevel"></param>
        /// <returns></returns>
        public static MonsterModel GetRandomMonsterAdministrator(int MaxLevel)
        {
            var result = new MonsterModel()
            {
                Level = DiceHelper.RollDice(1, MaxLevel),

                // Randomize Name
                Name            = GetMonsterName(),
                Description     = GetMonsterDescriptionFaculty(),
                MonsterTypeEnum = MonsterTypeEnum.Administrator,

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

                Difficulty = GetMonsterDifficultyValue()
            };

            // Adjust values based on Difficulty
            result.Attack  = result.Difficulty.ToModifier(result.Attack);
            result.Defense = result.Difficulty.ToModifier(result.Defense);
            result.Speed   = result.Difficulty.ToModifier(result.Speed);
            result.Level   = result.Difficulty.ToModifier(result.Level);

            // Get the new Max Health
            result.MaxHealth = DiceHelper.RollDice(result.Level, 10);

            // Adjust the health, If the new Max Health is above the rule for the level, use the original
            var MaxHealthAdjusted = result.Difficulty.ToModifier(result.MaxHealth);

            if (MaxHealthAdjusted < result.Level * 10)
            {
                result.MaxHealth = MaxHealthAdjusted;
            }

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

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

            result.SpecificMonsterTypeEnum = SpecificMonsterTypeEnum.Unknown;

            switch (specifictype)
            {
            case 1:
                result.SpecificMonsterTypeEnum = SpecificMonsterTypeEnum.HRAdministrator;
                break;

            case 2:
                result.SpecificMonsterTypeEnum = SpecificMonsterTypeEnum.RegistrationAdministrator;
                break;

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

            result.ImageURI     = SpecificMonsterTypeEnumHelper.ToImageURI(result.SpecificMonsterTypeEnum);
            result.TileImageURI = SpecificMonsterTypeEnumHelper.ToTileImageURI(result.SpecificMonsterTypeEnum);

            // Set ExperienceRemaining so Monsters can both use this method
            var LevelData = LevelTableHelper.LevelDetailsList.ElementAtOrDefault(result.Level + 1) ?? LevelTableHelper.LevelDetailsList.Last();

            result.ExperienceRemaining = LevelData.Experience;

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

            var uniqueDrop = result.DropItemBasedOnCharacterType(result.SpecificMonsterTypeEnum);

            if (uniqueDrop != null)
            {
                result.UniqueDropItem = uniqueDrop.Id;
            }

            return(result);
        }