public override int GetHashCode()
        {
            var result = FragmentName.GetHashCode() ^ TypeCondition.GetHashCode();

            if (Directives != null)
            {
                result = Directives.Aggregate(result, (x, y) => x ^ y.GetHashCode());
            }

            return(SelectionSet.Aggregate(result, (x, y) => x ^ y.GetHashCode()));
        }
Exemple #2
0
        public override int GetHashCode()
        {
            var result = FragmentName.GetHashCode();

            if (Directives != null)
            {
                result = Directives.Aggregate(result, (x, y) => x ^ y.GetHashCode());
            }

            return(result);
        }
Exemple #3
0
 public void AddFragmentItem(FragmentName _name, GameObject ItemPrefab, Sprite _sprite)
 {
     if (ItemChild == null)
     {
         ItemChild = Instantiate(ItemPrefab, transform).transform;
     }
     ItemChild.GetComponent <Image>().sprite = _sprite;
     ItemChild.GetComponent <FragmentItem>().ItemFragment = FragmentFactory.GetFragment(_name);
     isEmpty = false;
     ItemChild.localPosition = Vector3.zero;
 }
Exemple #4
0
        public override bool Equals(object obj)
        {
            if (obj is FragmentSpread fragmentSpread)
            {
                return
                    (FragmentName.Equals(fragmentSpread.FragmentName) &&
                     (
                         Directives == null &&
                         fragmentSpread.Directives == null ||
                         Directives != null &&
                         fragmentSpread.Directives != null &&
                         Directives.SequenceEqual(fragmentSpread.Directives)
                     ));
            }

            return(base.Equals(obj));
        }
        public override bool Equals(object obj)
        {
            if (obj is FragmentDefinition fragmentDefinition)
            {
                return
                    (FragmentName.Equals(fragmentDefinition.FragmentName) &&
                     TypeCondition.Equals(fragmentDefinition.TypeCondition) &&
                     (
                         Directives == null &&
                         fragmentDefinition.Directives == null ||
                         Directives != null &&
                         fragmentDefinition.Directives != null &&
                         Directives.SequenceEqual(fragmentDefinition.Directives)
                     ) &&
                     SelectionSet.SequenceEqual(fragmentDefinition.SelectionSet));
            }

            return(base.Equals(obj));
        }
Exemple #6
0
    // 添加碎片
    public void AddFragmentItem(FragmentName _name, Sprite _sprite)
    {
        bool hasEmpty = false;

        foreach (FragmentSlot mSlot in EquipSlot)
        {
            if (mSlot.isEmpty)
            {
                mSlot.AddFragmentItem(_name, ItemPrefab, _sprite);
                hasEmpty = true;
                FlushSkill();
                break;
            }
        }
        if (!hasEmpty)
        {
            ExtraSlot.AddFragmentItem(_name, ItemPrefab, _sprite);
        }
    }
Exemple #7
0
    public static IFragment GetFragment(FragmentName _name)
    {
        switch (_name)
        {
        case FragmentName.CriterionFrag: return(new CriterionFrag());

        case FragmentName.ShockFrag: return(new ShockFrag());

        case FragmentName.TrialFrag: return(new TrialFrag());

        case FragmentName.Arrogant: return(new ArrogantFrag());

        case FragmentName.Disorder: return(new DisorderFrag());

        case FragmentName.Riot: return(new RiotFrag());

        case FragmentName.WindFrag: return(new WindFrag());

        case FragmentName.FireFrag: return(new FireFrag());
        }
        throw new System.Exception("no but try get it");
    }
Exemple #8
0
 /// <summary>
 /// 添加碎片
 /// </summary>
 /// <param name="type"></param>
 /// <param name="id"></param>
 public void AddFragment(FragmentName _name, Sprite _sprite = null)
 {
     // UI上显示
     FragmenMgr.Instance.AddFragmentItem(_name, _sprite);
     //OnFragAdd.Invoke(_name, _sprite);
 }
Exemple #9
0
 public bool Equals(ShaderSetCacheKey other)
 {
     return(VertexName.Equals(other.VertexName) &&
            FragmentName.Equals(other.FragmentName) &&
            Specializations.Span.SequenceEqual(other.Specializations.Span));
 }