public static PropertyInt?GetHeritageAug(HeritageGroup heritage) { switch (heritage) { case HeritageGroup.Aluvian: case HeritageGroup.Gharundim: case HeritageGroup.Sho: case HeritageGroup.Viamontian: return(PropertyInt.AugmentationJackOfAllTrades); case HeritageGroup.Shadowbound: case HeritageGroup.Penumbraen: return(PropertyInt.AugmentationCriticalExpertise); case HeritageGroup.Gearknight: return(PropertyInt.AugmentationDamageReduction); case HeritageGroup.Undead: return(PropertyInt.AugmentationCriticalDefense); case HeritageGroup.Empyrean: return(PropertyInt.AugmentationInfusedLifeMagic); case HeritageGroup.Tumerok: return(PropertyInt.AugmentationCriticalPower); case HeritageGroup.Lugian: return(PropertyInt.AugmentationIncreasedCarryingCapacity); } return(null); }
/// <summary> /// Set Heritage based Melee and Ranged Masteries /// </summary> /// <param name="heritageGroup"></param> /// <param name="meleeMastery"></param> /// <param name="rangedMastery"></param> private static void GetMasteries(HeritageGroup heritageGroup, out WeaponType meleeMastery, out WeaponType rangedMastery) { switch (heritageGroup) { case HeritageGroup.Aluvian: meleeMastery = WeaponType.Dagger; rangedMastery = WeaponType.Bow; break; case HeritageGroup.Gharundim: meleeMastery = WeaponType.Staff; rangedMastery = WeaponType.Magic; break; case HeritageGroup.Sho: meleeMastery = WeaponType.Unarmed; rangedMastery = WeaponType.Bow; break; case HeritageGroup.Viamontian: meleeMastery = WeaponType.Sword; rangedMastery = WeaponType.Crossbow; break; case HeritageGroup.Penumbraen: case HeritageGroup.Shadowbound: meleeMastery = WeaponType.Unarmed; rangedMastery = WeaponType.Crossbow; break; case HeritageGroup.Gearknight: meleeMastery = WeaponType.Mace; rangedMastery = WeaponType.Crossbow; break; case HeritageGroup.Tumerok: meleeMastery = WeaponType.Spear; rangedMastery = WeaponType.Thrown; break; case HeritageGroup.Undead: case HeritageGroup.Lugian: meleeMastery = WeaponType.Axe; rangedMastery = WeaponType.Thrown; break; case HeritageGroup.Empyrean: meleeMastery = WeaponType.Sword; rangedMastery = WeaponType.Magic; break; default: meleeMastery = WeaponType.Undef; rangedMastery = WeaponType.Undef; break; } }
public static string GetTitle(HeritageGroup heritage, Gender gender, uint rank) { switch (gender) { case Gender.Male: return(GetMaleTitle(heritage, rank)); case Gender.Female: return(GetFemaleTitle(heritage, rank)); default: return(""); } }
public static string GetFemaleTitle(HeritageGroup heritage, uint rank) { switch (heritage) { case HeritageGroup.Aluvian: return(GetAluvianFemaleTitle(rank)); case HeritageGroup.Gharundim: return(GetGharundimFemaleTitle(rank)); case HeritageGroup.Sho: return(GetShoFemaleTitle(rank)); case HeritageGroup.Viamontian: return(GetViamontianFemaleTitle(rank)); case HeritageGroup.Shadowbound: case HeritageGroup.Penumbraen: return(GetShadowboundFemaleTitle(rank)); case HeritageGroup.Tumerok: return(GetTumerokTitle(rank)); case HeritageGroup.Gearknight: return(GetGearknightTitle(rank)); case HeritageGroup.Lugian: return(GetLugianTitle(rank)); case HeritageGroup.Empyrean: return(GetEmpyreanFemaleTitle(rank)); case HeritageGroup.Undead: return(GetUndeadFemaleTitle(rank)); default: return(""); } }
public void GenerateNewFace() { var cg = DatManager.PortalDat.CharGen; if (!Heritage.HasValue) { if (!String.IsNullOrEmpty(HeritageGroup)) { HeritageGroup parsed = (HeritageGroup)Enum.Parse(typeof(HeritageGroup), HeritageGroup.Replace("'", "")); if (parsed != 0) { Heritage = (int)parsed; } } } if (!Gender.HasValue) { if (!String.IsNullOrEmpty(Sex)) { Gender parsed = (Gender)Enum.Parse(typeof(Gender), Sex); if (parsed != 0) { Gender = (int)parsed; } } } if (!Heritage.HasValue || !Gender.HasValue) { return; } SexCG sex = cg.HeritageGroups[(uint)Heritage].Genders[(int)Gender]; PaletteBaseId = sex.BasePalette; Appearance appearance = new Appearance(); appearance.HairStyle = 1; appearance.HairColor = 1; appearance.HairHue = 1; appearance.EyeColor = 1; appearance.Eyes = 1; appearance.Mouth = 1; appearance.Nose = 1; appearance.SkinHue = 1; // Get the hair first, because we need to know if you're bald, and that's the name of that tune! int size = sex.HairStyleList.Count / 3; // Why divide by 3 you ask? Because AC runtime generated characters didn't have much range in hairstyles. Random rand = new Random(); appearance.HairStyle = (uint)rand.Next(size); HairStyleCG hairstyle = sex.HairStyleList[Convert.ToInt32(appearance.HairStyle)]; bool isBald = hairstyle.Bald; size = sex.HairColorList.Count; appearance.HairColor = (uint)rand.Next(size); appearance.HairHue = rand.NextDouble(); size = sex.EyeColorList.Count; appearance.EyeColor = (uint)rand.Next(size); size = sex.EyeStripList.Count; appearance.Eyes = (uint)rand.Next(size); size = sex.MouthStripList.Count; appearance.Mouth = (uint)rand.Next(size); size = sex.NoseStripList.Count; appearance.Nose = (uint)rand.Next(size); appearance.SkinHue = rand.NextDouble(); //// Certain races (Undead, Tumeroks, Others?) have multiple body styles available. This is controlled via the "hair style". ////if (hairstyle.AlternateSetup > 0) //// character.SetupTableId = hairstyle.AlternateSetup; if (!EyesTextureDID.HasValue) { EyesTextureDID = sex.GetEyeTexture(appearance.Eyes, isBald); } if (!DefaultEyesTextureDID.HasValue) { DefaultEyesTextureDID = sex.GetDefaultEyeTexture(appearance.Eyes, isBald); } if (!NoseTextureDID.HasValue) { NoseTextureDID = sex.GetNoseTexture(appearance.Nose); } if (!DefaultNoseTextureDID.HasValue) { DefaultNoseTextureDID = sex.GetDefaultNoseTexture(appearance.Nose); } if (!MouthTextureDID.HasValue) { MouthTextureDID = sex.GetMouthTexture(appearance.Mouth); } if (!DefaultMouthTextureDID.HasValue) { DefaultMouthTextureDID = sex.GetDefaultMouthTexture(appearance.Mouth); } if (!HairTextureDID.HasValue) { HairTextureDID = sex.GetHairTexture(appearance.HairStyle); } if (!DefaultHairTextureDID.HasValue) { DefaultHairTextureDID = sex.GetDefaultHairTexture(appearance.HairStyle); } if (!HeadObjectDID.HasValue) { HeadObjectDID = sex.GetHeadObject(appearance.HairStyle); } // Skin is stored as PaletteSet (list of Palettes), so we need to read in the set to get the specific palette var skinPalSet = DatManager.PortalDat.ReadFromDat <PaletteSet>(sex.SkinPalSet); if (!SkinPaletteDID.HasValue) { SkinPaletteDID = skinPalSet.GetPaletteID(appearance.SkinHue); } // Hair is stored as PaletteSet (list of Palettes), so we need to read in the set to get the specific palette var hairPalSet = DatManager.PortalDat.ReadFromDat <PaletteSet>(sex.HairColorList[Convert.ToInt32(appearance.HairColor)]); if (!HairPaletteDID.HasValue) { HairPaletteDID = hairPalSet.GetPaletteID(appearance.HairHue); } // Eye Color if (!EyesPaletteDID.HasValue) { EyesPaletteDID = sex.EyeColorList[Convert.ToInt32(appearance.EyeColor)]; } }