public bool SetCharKindInfo(ref CHARKIND_INFO pkCHARKIND_INFO)
    {
        if (pkCHARKIND_INFO == null)
        {
            return(false);
        }
        int cHARKIND = pkCHARKIND_INFO.CHARKIND;

        if (cHARKIND <= 0 || cHARKIND >= 5000)
        {
            return(false);
        }
        this.m_kCharKindInfo[cHARKIND] = new NrCharKindInfo(this.m_kTempData);
        this.m_kCharKindInfo[cHARKIND].SetCharKindInfo(ref pkCHARKIND_INFO, this.m_kCharDataCodeInfo.GetCharTribe(pkCHARKIND_INFO.CharTribe));
        string text = this.m_kCharKindInfo[cHARKIND].GetCode();

        text = text.ToLower();
        if (!this.m_dicCharCodeInfo.ContainsKey(text))
        {
            this.m_dicCharCodeInfo.Add(text, cHARKIND);
        }
        string name = this.m_kCharKindInfo[cHARKIND].GetName();

        if (!this.m_dicCharNameInfo.ContainsKey(name))
        {
            this.m_dicCharNameInfo.Add(name, cHARKIND);
        }
        string bundleName = this.m_kCharKindInfo[cHARKIND].GetBundleName();

        if (!this.m_dicBundleNameInfo.ContainsKey(bundleName))
        {
            this.m_dicBundleNameInfo.Add(bundleName, cHARKIND);
        }
        string aniBundleName = this.m_kCharKindInfo[cHARKIND].GetAniBundleName();

        if (!this.m_kCharAniMapInfoList.ContainsKey(aniBundleName))
        {
            NkCharAniMapInfo nkCharAniMapInfo = new NkCharAniMapInfo();
            nkCharAniMapInfo.AddCharKind(cHARKIND);
            this.m_kCharAniMapInfoList.Add(aniBundleName, nkCharAniMapInfo);
        }
        else
        {
            NkCharAniMapInfo nkCharAniMapInfo = this.m_kCharAniMapInfoList[aniBundleName];
            nkCharAniMapInfo.AddCharKind(cHARKIND);
        }
        if (this.m_kCharKindInfo[cHARKIND].IsATB(1L))
        {
            this.AddPlayerCode(this.m_kCharKindInfo[cHARKIND].GetBundlePath());
        }
        this.m_nTotalCharKindInfoNum++;
        return(true);
    }
    public void SetAniInfo(ref CHARKIND_ANIINFO aniinfo)
    {
        int            weaponkey      = 0;
        NrCharKindInfo nrCharKindInfo = NrTSingleton <NrCharKindInfoManager> .Instance.GetCharKindInfoFromBundleName(aniinfo.BUNDLENAME);

        if (nrCharKindInfo != null && nrCharKindInfo.IsATB(1L))
        {
            int weaponType = NrTSingleton <NkWeaponTypeInfoManager> .Instance.GetWeaponType(aniinfo.WEAPONTYPE);

            if (weaponType != nrCharKindInfo.GetWeaponType())
            {
                weaponkey = 1;
            }
        }
        int           charAniTypeForEvent = (int)this.m_kCharDataCodeInfo.GetCharAniTypeForEvent(aniinfo.ANITYPE);
        int           charAniEvent        = (int)this.m_kCharDataCodeInfo.GetCharAniEvent(aniinfo.EVENTTYPE);
        NkCharAniInfo charAniInfo         = this.GetCharAniInfo(aniinfo.BUNDLENAME);

        if (charAniInfo != null)
        {
            charAniInfo.SetAniEventTime(weaponkey, charAniTypeForEvent, charAniEvent, aniinfo.EVENTTIME);
            NkCharAniMapInfo charAniMapInfo = this.GetCharAniMapInfo(aniinfo.BUNDLENAME);
            if (charAniMapInfo != null)
            {
                List <int> charKindList = charAniMapInfo.GetCharKindList();
                foreach (int current in charKindList)
                {
                    nrCharKindInfo = this.GetCharKindInfo(current);
                    if (nrCharKindInfo != null)
                    {
                        nrCharKindInfo.SetAniInfo(ref charAniInfo);
                    }
                }
            }
        }
    }