コード例 #1
0
 public bool HasMatchingTag(FAbilityTag abilityTag)
 {
     if (abilityTagCountMap is null)
     {
         return(false);
     }
     return(abilityTagCountMap.ContainsKey(abilityTag) && abilityTagCountMap[abilityTag] > 0);
 }
コード例 #2
0
    public bool HasTag(FAbilityTag inAbilityTag)
    {
        if (abilityTags is null)
        {
            return(false);
        }

        return(abilityTags.Contains(inAbilityTag));
    }
コード例 #3
0
    public void AddAbilityTag(FAbilityTag inAbilityTag)
    {
        if (abilityTags == null)
        {
            abilityTags = new List <FAbilityTag>();
        }

        abilityTags.Add(inAbilityTag);
    }
コード例 #4
0
 public bool GetTag(string inTagName, out FAbilityTag abilityTag)
 {
     if (TagsMap != null && TagsMap.TryGetValue(CRC32.GetCRC32(inTagName), out FAbilityTag tempTag))
     {
         abilityTag = tempTag;
         return(true);
     }
     abilityTag = new FAbilityTag();
     return(false);
 }
コード例 #5
0
 public void ResgiterAbilityEvent(FAbilityTag inAbilityTag, UnityAction <FAbilityTag, int> inEvent)
 {
     if (!abilityTagEventMap.ContainsKey(inAbilityTag))
     {
         abilityTagEventMap.Add(inAbilityTag, inEvent);
     }
     else
     {
         abilityTagEventMap[inAbilityTag] += inEvent;
     }
 }
コード例 #6
0
 public void UpdateTagRef(FAbilityTag inAbilityTag, int inCountDelta)
 {
     if (abilityTagCountMap.ContainsKey(inAbilityTag))
     {
         abilityTagCountMap[inAbilityTag] += inCountDelta;
     }
     else
     {
         AddTag(inAbilityTag, inCountDelta);
     }
 }
コード例 #7
0
    public void AddTag(FAbilityTag inAbilityTag, int inNum = 1)
    {
        if (abilityTagCountMap == null)
        {
            abilityTagCountMap = new Dictionary <FAbilityTag, int>();
        }

        if (abilityTagCountMap.ContainsKey(inAbilityTag))
        {
            abilityTagCountMap[inAbilityTag] += inNum;
        }
        else
        {
            abilityTagCountMap.Add(inAbilityTag, inNum);
        }
    }
コード例 #8
0
    void AddTag(string inStr)
    {
        if (string.IsNullOrEmpty(inStr) || string.IsNullOrWhiteSpace(inStr))
        {
            return;
        }

        string[] strs = inStr.Split('.');

        FAbilityTagContainer[] containers = new FAbilityTagContainer[strs.Length];

        FAbilityTag rootTag = new FAbilityTag(strs[0]);

        if (!TagsMap.ContainsKey(rootTag.TagId))
        {
            TagsMap.Add(rootTag.TagId, rootTag);
        }

        for (int i = 0; i < containers.Length; i++)
        {
            containers[i].AddAbilityTag(rootTag);
        }
        if (!TagContainersMap.ContainsKey(rootTag.TagName))
        {
            TagContainersMap.Add(rootTag.TagName, containers[0]);
        }

        FAbilityTag parentTag = rootTag;

        for (int i = 1; i < strs.Length; i++)
        {
            parentTag = new FAbilityTag(strs[i], parentTag);
            if (!TagsMap.ContainsKey(parentTag.TagId))
            {
                TagsMap.Add(parentTag.TagId, parentTag);
            }

            for (int j = i; j < containers.Length; j++)
            {
                containers[j].AddAbilityTag(parentTag);
            }
            if (!TagContainersMap.ContainsKey(parentTag.TagName))
            {
                TagContainersMap.Add(parentTag.TagName, containers[i]);
            }
        }
    }