public static string ToViewString(DnDRace race) { switch (race) { case DnDRace.HalfElf: return "Half Elf"; case DnDRace.HalfOrc: return "Half Orc"; default: return race.ToString(); } }
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; } }
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(); //} }
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); }
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; } }
//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); } } }