コード例 #1
0
ファイル: UI.cs プロジェクト: Holic75/KingmakerAi
        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;
            }
        }
コード例 #2
0
ファイル: Scripts.cs プロジェクト: Holic75/KingmakerAi
        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);
        }