public static Job Random(Rand.RandSync randSync = Rand.RandSync.Unsynced) { var prefab = JobPrefab.Random(randSync); var variant = Rand.Range(0, prefab.Variants, randSync); return(new Job(prefab, variant)); }
public Job(XElement element) { string identifier = element.GetAttributeString("identifier", "").ToLowerInvariant(); JobPrefab p; if (!JobPrefab.Prefabs.ContainsKey(identifier)) { DebugConsole.ThrowError($"Could not find the job {identifier}. Giving the character a random job."); p = JobPrefab.Random(); } else { p = JobPrefab.Prefabs[identifier]; } prefab = p; skills = new Dictionary <string, Skill>(); foreach (XElement subElement in element.Elements()) { if (!subElement.Name.ToString().Equals("skill", System.StringComparison.OrdinalIgnoreCase)) { continue; } string skillIdentifier = subElement.GetAttributeString("identifier", ""); if (string.IsNullOrEmpty(skillIdentifier)) { continue; } var skill = new Skill(skillIdentifier, subElement.GetAttributeFloat("level", 0)); skills.Add(skillIdentifier, skill); if (skillIdentifier == prefab.PrimarySkill?.Identifier) { PrimarySkill = skill; } } }
public Job(XElement element) { string identifier = element.GetAttributeString("identifier", "").ToLowerInvariant(); if (!JobPrefab.List.TryGetValue(identifier, out JobPrefab p)) { DebugConsole.ThrowError($"Could not find the job {identifier}. Giving the character a random job."); p = JobPrefab.Random(); } prefab = p; skills = new Dictionary <string, Skill>(); foreach (XElement subElement in element.Elements()) { if (subElement.Name.ToString().ToLowerInvariant() != "skill") { continue; } string skillIdentifier = subElement.GetAttributeString("identifier", ""); if (string.IsNullOrEmpty(skillIdentifier)) { continue; } skills.Add( skillIdentifier, new Skill(skillIdentifier, subElement.GetAttributeFloat("level", 0))); } }
public static Job Random(Rand.RandSync randSync = Rand.RandSync.Unsynced) => new Job(JobPrefab.Random(randSync));