示例#1
0
        public static string GetPouchBuffCaption(BdatStringValue value)
        {
            if (value == null)
            {
                return(null);
            }

            BdatStringItem       item   = value.Parent;
            BdatFieldInfo        field  = value.Member.Metadata;
            BdatStringCollection tables = item.Table.Collection;

            int             captionId    = int.Parse(value.ValueString);
            BdatStringValue captionValue = tables["BTL_PouchBuff"][captionId]?["Name"];

            if (captionValue == null)
            {
                return(null);
            }

            if (!captionValue.Resolved)
            {
                ResolveItemRef(captionValue);
            }

            string caption = captionValue.DisplayString;

            if (caption == null)
            {
                return(null);
            }

            var sb = new StringBuilder(caption);

            List <BdatTag> tags = BdatStringTools.ParseTags(caption);

            foreach (BdatTag tag in tags.OrderByDescending(x => x.Start))
            {
                if (tag.SubType != "PouchParam")
                {
                    continue;
                }

                float buffValue = float.Parse(item[field.RefField].ValueString);

                sb.Remove(tag.Start, tag.Length);
                sb.Insert(tag.Start, buffValue);
            }

            return(sb.ToString());
        }