Пример #1
0
		public static string ToViewString(DnDRace race)
		{
			switch (race)
			{
				case DnDRace.HalfElf:
					return "Half Elf";
				case DnDRace.HalfOrc:
					return "Half Orc";
				default:
					return race.ToString();
			}
		}
Пример #2
0
        public override void Deserialize(JSONObject obj)
        {
            mName       = obj.GetString(NAME);
            mGender     = (CharacterGender)(int)obj.GetNumber(GENDER);
            mExperience = (int)obj.GetNumber(EXPERIENCE);
            mAvatar     = obj.GetString(AVATAR);
            mAlignment  = (DnDAlignment)(int)obj.GetNumber(ALIGNMENT);
            mRace       = (DnDRace)(int)obj.GetNumber(RACE);
            mAge        = (int)obj.GetNumber(AGE);
            if (obj.ContainsKey(DEITY))
            {
                mDeity = new DnDDeity();
                mDeity.Deserialize(obj.GetObject(DEITY));
            }
            mSize = (DnDCharacterSize)(int)obj.GetNumber(SIZE);
            // souls:
            JSONObject jSouls  = obj.GetObject(CLASS_SOULS);
            var        classes = Enum.GetValues(typeof(DnDCharClass)).Cast <DnDCharClass>();

            foreach (DnDCharClass charClass in classes)
            {
                if (jSouls.ContainsKey(charClass.ToString()))
                {
                    if (!string.IsNullOrEmpty(jSouls.GetObject(charClass.ToString()).ToString()))
                    {
                        DnDClassSoul newSoul = null;
                        switch (charClass)
                        {
                        case DnDCharClass.Wizard:
                            newSoul = new DnDWizard(this);
                            break;

                        default:
                            break;
                        }
                        if (newSoul != null)
                        {
                            newSoul.Deserialize(jSouls.GetObject(charClass.ToString()));
                            mClasses.Add(newSoul);
                        }
                    }
                }
            }
            // abilities:
            JSONArray tempArray = obj.GetArray(ABILITIES);

            foreach (var val in tempArray)
            {
                mAbilities[(DnDAbilities)((int)val.Array[0].Number)] = (int)val.Array[1].Number;
            }
        }
Пример #3
0
        public void RaceAndPolymorphism()
        {
            List <Race> some = new List <Race>();
            DnDRace     race = new DnDRace();

            race.ArmorProficiencies = "blah";
            race.RaceName           = "name";
            PathfinderRace race2 = new PathfinderRace();

            some.Add(race);
            some.Add(race2);

            Assert.AreEqual(2, some.Count);
            //using( var ctx = new ApplicationDbContext())
            //{
            //    ctx.Races.Add(race);
            //    ctx.SaveChanges();
            //}
        }
Пример #4
0
        private DnDRaceDetails DnDRaceDetailsSetup(DnDRace race)
        {
            Dictionary <string, string> languages = new Dictionary <string, string>();

            foreach (var language in race.Languages.Split('|').ToList())
            {
                var lang = language.Split('*').ToList();
                languages.Add(lang[0], lang[1]);
            }
            Dictionary <int, string> features = RaceFeaturesToDictionary(race.RaceFeatures);
            var raceDisplay = new DnDRaceDetails
            {
                RaceID              = race.RaceID,
                OwnerID             = race.OwnerID,
                GameType            = race.GameType,
                RaceName            = race.RaceName,
                RaceType            = race.RaceType,
                PhysicalDescription = race.PhysicalDescription,
                BaseSpeed           = race.BaseSpeed,
                Size                 = race.Size,
                Languages            = languages,
                StrengthModifier     = race.StrengthModifier,
                DexterityModifier    = race.DexterityModifier,
                ConstitutionModifier = race.ConstitutionModifier,
                IntelligenceModifier = race.IntelligenceModifier,
                WisdomModifier       = race.WisdomModifier,
                CharismaModifier     = race.CharismaModifier,
                DateOfCreation       = race.DateOfCreation,
                DateOfModification   = race.DateOfModification,
                WeaponProficiencies  = race.WeaponProficiencies.Split('|').ToList(),
                ArmorProficiencies   = race.ArmorProficiencies.Split('|').ToList(),
                ToolProficiencies    = race.ToolProficiencies.Split('|').ToList(),
                RaceFeatures         = features
            };

            return(raceDisplay);
        }
Пример #5
0
		public override void Deserialize(JSONObject obj)
		{
			mName = obj.GetString(NAME);
			mGender = (CharacterGender)(int)obj.GetNumber(GENDER);
			mExperience = (int)obj.GetNumber(EXPERIENCE);
			mAvatar = obj.GetString(AVATAR);
			mAlignment = (DnDAlignment)(int)obj.GetNumber(ALIGNMENT);
			mRace = (DnDRace)(int)obj.GetNumber(RACE);
			mAge = (int)obj.GetNumber(AGE);
			if (obj.ContainsKey(DEITY))
			{
				mDeity = new DnDDeity();
				mDeity.Deserialize(obj.GetObject(DEITY));
			}
			mSize = (DnDCharacterSize)(int)obj.GetNumber(SIZE);
			// souls:
			JSONObject jSouls = obj.GetObject(CLASS_SOULS);
			var classes = Enum.GetValues(typeof(DnDCharClass)).Cast<DnDCharClass>();
			foreach (DnDCharClass charClass in classes)
			{
				if (jSouls.ContainsKey(charClass.ToString()))
				{
					if (!string.IsNullOrEmpty(jSouls.GetObject(charClass.ToString()).ToString()))
					{
						DnDClassSoul newSoul = null;
						switch (charClass)
						{
							case DnDCharClass.Wizard:
								newSoul = new DnDWizard(this);
								break;
							default:
								break;
						}
						if (newSoul != null)
						{
							newSoul.Deserialize(jSouls.GetObject(charClass.ToString()));
							mClasses.Add(newSoul);
						}
					}
				}
			}
			// abilities:
			JSONArray tempArray = obj.GetArray(ABILITIES);
			foreach (var val in tempArray)
			{
				mAbilities[(DnDAbilities)((int)val.Array[0].Number)] = (int)val.Array[1].Number;
			}
		}
Пример #6
0
 //create DND race
 public bool CreateRace(RaceCreate raceCreate)
 {
     using (var ctx = new ApplicationDbContext())
     {
         if (raceCreate.GetType().Name == "DnDRaceCreate")
         {
             var race    = (DnDRaceCreate)raceCreate;
             var newRace = new DnDRace
             {
                 OwnerID             = _userId,
                 RaceName            = race.RaceName,
                 GameType            = race.GameType,
                 RaceType            = race.RaceType,
                 PhysicalDescription = race.PhysicalDescription,
                 BaseSpeed           = race.BaseSpeed,
                 Size                 = race.Size,
                 Languages            = String.Join("|", race.Languages.Select(l => l.Key + "*" + l.Value).ToArray()),
                 StrengthModifier     = race.StrengthModifier,
                 DexterityModifier    = race.DexterityModifier,
                 ConstitutionModifier = race.ConstitutionModifier,
                 IntelligenceModifier = race.IntelligenceModifier,
                 WisdomModifier       = race.WisdomModifier,
                 CharismaModifier     = race.CharismaModifier,
                 WeaponProficiencies  = String.Join("|", race.WeaponProficiencies),
                 ArmorProficiencies   = String.Join("|", race.ArmorProficiencies),
                 ToolProficiencies    = String.Join("|", race.ToolProficiencies),
                 IsDeactivated        = false,
                 DateOfCreation       = DateTimeOffset.UtcNow
             };
             ctx.Races.Add(newRace);
             return(ctx.SaveChanges() == 1);
         }
         else if (raceCreate.GetType().Name == "PathfinderRaceCreate")
         {
             var race    = (PathfinderRaceCreate)raceCreate;
             var newRace = new PathfinderRace
             {
                 OwnerID             = _userId,
                 RaceName            = race.RaceName,
                 GameType            = race.GameType,
                 RaceType            = race.RaceType,
                 PhysicalDescription = race.PhysicalDescription,
                 BaseSpeed           = race.BaseSpeed,
                 Size                 = race.Size,
                 Languages            = String.Join("|", race.Languages.Select(l => l.Key + "*" + l.Value).ToArray()),
                 StrengthModifier     = race.StrengthModifier,
                 DexterityModifier    = race.DexterityModifier,
                 ConstitutionModifier = race.ConstitutionModifier,
                 IntelligenceModifier = race.IntelligenceModifier,
                 WisdomModifier       = race.WisdomModifier,
                 CharismaModifier     = race.CharismaModifier,
                 IsDeactivated        = false,
                 RacePoints           = race.RacePoints,
                 PowerLevel           = race.PowerLevel,
                 DateOfCreation       = DateTimeOffset.UtcNow
             };
             ctx.Races.Add(newRace);
             foreach (var item in race.RacialTraits)
             {
                 newRace.RacialTraits.Add(new RaceFeatures
                 {
                     FeatureID = item.Key,
                     TraitType = item.Value
                 });
             }
             var something = ctx.SaveChanges() == 1;
             return(something);
         }
         else
         {
             return(false);
         }
     }
 }