public static bool SetPriority_Prefix(ProfessionManager __instance, ProfessionType type, int priority, HumanAI human) { priority = Mathf.Clamp(priority, 0, MaxPriority); if (!__instance.CanHaveProfession(human)) { return(false); } __instance.professions[type].SetPriorityDirectly(priority); // only one at max priority if (priority == MaxPriority && type != ProfessionType.Builder) { foreach (Profession profession in __instance.professions.Values) { if (profession.type != type && profession.type != ProfessionType.Builder && profession.priority == MaxPriority) { __instance.SetPriority(profession.type, MaxPriority - 1, human); } } } // cancel work if (priority == 0) { human.AbortInteractionsWhere(x => ProfessionManager.workInteractions[type].Contains(x.interaction)); } // tutorial WorldScripts.Instance.tutorialManager.HasAssignedProfession(); return(false); }
public void ProfessionTest() { JsonSerializerOptions options = GetOptions(); Profession f = ProfessionManager.GetInstance().GetProfessionData(typeof(Fighter)).GetNewInstance(); Profession w = ProfessionManager.GetInstance().GetProfessionData(typeof(Wizard)).GetNewInstance(); Profession t = ProfessionManager.GetInstance().GetProfessionData(typeof(Thief)).GetNewInstance(); string sf = JsonSerializer.Serialize(f, options); string sw = JsonSerializer.Serialize(w, options); string st = JsonSerializer.Serialize(t, options); Profession fo = JsonSerializer.Deserialize <Fighter>(sf, options); Profession wo = JsonSerializer.Deserialize <Wizard>(sw, options); Profession to = JsonSerializer.Deserialize <Thief>(st, options); IList <Profession> p = new List <Profession>(); p.Add(f); p.Add(w); p.Add(t); string s = JsonSerializer.Serialize(p, options); IList <Profession> r = JsonSerializer.Deserialize <IList <Profession> >(s, options); }
public MainForm(Character c = null) { InitializeComponent(); //Race foreach (Race r in RaceManager.getRaces()) { RaceComboBox.Items.Add(r.RaceName); } //Class foreach (Profession p in ProfessionManager.getProfessions()) { ClassComboBox.Items.Add(p.ProfessionName); } if (c == null) { _char = new Character(); } else { _char = c; } UpdateView(); }
public static Int32 DefenseMod(Race r, Profession prof) { Int32 result = 0; result += RaceManager.getLevelUps(r).Defense.Max; result += ProfessionManager.getLevelUps(prof).Defense.Max; return(result); }
public static Int32 SpeedMod(Race r, Profession prof) { Int32 result = 0; result += RaceManager.getLevelUps(r).Speed; result += ProfessionManager.getLevelUps(prof).Speed; return(result); }
public static Stats Default(Race r, Profession prof) { Stats result = new Stats(); result = RaceManager.getStart(r); result += ProfessionManager.getStart(prof); return(result); }
public static Int32 AttackMod(Race r, Profession prof) { Int32 result = 0; result += RaceManager.getLevelUps(r).Attack.Max; result += ProfessionManager.getLevelUps(prof).Attack.Max; return(result); }
public void CharacterTest() { Character c = new Character("Josh", 5, ProfessionManager.GetInstance().GetProfessionData(typeof(Fighter)).GetNewInstance(), RaceManager.GetInstance().GetAllRaces()[0]); JsonSerializerOptions options = GetOptions(); string s = JsonSerializer.Serialize(c, options); Character c2 = JsonSerializer.Deserialize <Character>(s, options); string s2 = JsonSerializer.Serialize(c2, options); Assert.AreEqual(true, c.Name == c2.Name && c2.Profession.Name == c.Profession.Name && s == s2); }
//回调遍历节点 private void AddTree(string ParentID, Node pNode, string table, ComboTree ct) { CityManager cm = new CityManager(); ProfessionManager pm = new ProfessionManager(); if (ParentID == "") { ParentID = "D4"; } string ParentId = "City_ParentID"; string Code = "City_Code"; string Name = "City_Name"; DataTable dt = cm.GetList("").Tables[0]; if (table == "P") { ParentId = "ST_ParentID"; Code = "ST_Code"; Name = "ST_Name"; dt = pm.GetList("").Tables[0]; } DataView dvTree = new DataView(dt); //过滤ParentID,得到当前的所有子节点 dvTree.RowFilter = string.Format("{0} = '{1}'", ParentId, ParentID); foreach (DataRowView Row in dvTree) { Node node = new Node(); if (pNode == null) { //添加根节点 node.Text = XYEEncoding.strHexDecode(Row[Name].ToString()); node.Tag = XYEEncoding.strHexDecode(Row[Code].ToString()); ct.Nodes.Add(node); AddTree(Row[Code].ToString(), node, table, ct); //展开第一级节点 node.Expand(); } else { //添加当前节点的子节点 node.Text = XYEEncoding.strHexDecode(Row[Name].ToString()); node.Tag = XYEEncoding.strHexDecode(Row[Code].ToString()); pNode.Nodes.Add(node); AddTree(Row[Code].ToString(), node, table, ct);//再次递归 } } }
public static void workInteractions_Postfix(ProfessionManager __instance) { var workInteractions = __instance.GetFieldValue <Dictionary <ProfessionType, HashSet <Interaction> > >("workInteractions"); if (!workInteractions[ProfessionType.Farmer].Contains(Specialization.TendToFieldsInteraction)) { workInteractions[ProfessionType.Farmer].Add(Specialization.TendToFieldsInteraction); } if (!workInteractions[ProfessionType.Forester].Contains(Specialization.ChopTrees)) { workInteractions[ProfessionType.Forester].Add(Specialization.ChopTrees); } if (!workInteractions[ProfessionType.Forester].Contains(Specialization.SowAndCareForTrees)) { workInteractions[ProfessionType.Forester].Add(Specialization.SowAndCareForTrees); } }
public static bool GetPrimaryProfession_Prefix(ProfessionManager __instance, ref Profession __result) { int maxPrio = __instance.professions.Values.Where(x => x.type != ProfessionType.Builder).Max(x => x.priority); if (maxPrio == 0) { if (__instance.professions[ProfessionType.Builder].priority != 0) { __result = __instance.professions[ProfessionType.Builder]; } else { __result = __instance.professions[ProfessionType.NoJob]; } } else { Profession prof = __instance.professions.Values .Where(x => x.priority == maxPrio && x.type != ProfessionType.Builder) .MaxBy(x => x.level + x.GetExperienceProgress()); __result = prof; } return(false); }
public ProfessionsController() { this.Manager = new ProfessionManager(); }
public ProfessionTabModel(ProfessionManager professionManager) { ProfessionItems = professionManager.Professions; }
public static bool SetProfession_Prefix(ProfessionManager __instance, ProfessionType type, HumanAI human) { __instance.SetPriority(type, MaxPriority, human); return(false); }
public static void GetStartSkills(int startSkillGrade, Profession profession, out int startPhysicalSkills, out int startMentalSkills, out int startCombinedSkills) { ProfessionManager.GetInstance().GetProfessionData(profession).GetStartSkills(startSkillGrade, out startPhysicalSkills, out startMentalSkills, out startCombinedSkills); }
public ProfessionTab() { InitializeComponent(); professionTabModel = new ProfessionTabModel(ProfessionManager.GetInstance()); BindingContext = professionTabModel; }
//aktualizuje finty zloděje public void UpdateThiefManeuvers(Character character) { List <ThiefManeuver> ltm = ((ThiefData)ProfessionManager.GetInstance().GetProfessionData(this)).ThiefManeuvers; _thiefManeuvers = ltm.Where(x => x.IsValid(character)).ToList(); }
public List <string> GetGuildPositions() { return(((ThiefData)ProfessionManager.GetInstance().GetProfessionData(this)).GuildPositions); }
private void ClassComboBox_SelectedIndexChanged(object sender, EventArgs e) { _char.Class = ProfessionManager.getProfessions()[ClassComboBox.SelectedIndex]; }