static void loadPartyInfo() { try { var all_tags = Enum.GetValues(typeof(ScriptController.UnitTags)).Cast <ScriptController.UnitTags>().ToArray(); var json = File.ReadAllText(working_folder + party_info_file); List <CharacterEntry> char_entries = JsonConvert.DeserializeObject <List <CharacterEntry> >(json); foreach (var c in char_entries) { character_script_file_map[c.name] = c.script_file; string tag_string = c.tags; ScriptController.UnitTags tag = ScriptController.UnitTags.None; foreach (var chr in tag_string) { int num = Array.FindIndex(ScriptController.unit_tags_char, val => val == chr); if (num > 0 && num < all_tags.Length) { tag = tag | all_tags[num]; } } character_tags_map[c.name] = tag; } } catch (Exception e) { Main.logger.Log("Failed to load party info"); return; } }
static bool isUnitinMask(UnitEntityData caster, UnitEntityData unit, ScriptController.UnitTags unit_tags, ScriptController.TargetMask target_mask) { if (target_mask.self && unit == caster) { return(true); } if (target_mask.pet && unit == caster.Descriptor.Pet) { return(true); } if ((unit_tags & target_mask.tags) != 0) { return(true); } return(false); }