Пример #1
0
 static public bool RemoveProp(BaseAdditionalAttribute prop, int number)
 {
     for (int i = 0; i < Model.Prop.Length; i++)
     {
         if (Model.Prop[i].Equals(prop))
         {
             if (Model.Prop[i].number < number)
             {
                 if (RemoveProp(prop, number - Model.Prop[i].number))
                 {
                     Model.Prop[i].SetNull();
                     Write();
                 }
                 else
                 {
                     return(false);
                 }
             }
             else
             {
                 Model.Prop[i].number -= number;
                 if (Model.Prop[i].number <= 0)
                 {
                     Model.Prop[i].SetNull();
                 }
                 Write();
                 return(true);
             }
         }
     }
     return(false);
 }
        void OnUpdatePropCount()
        {
            int index = 0;
            int off   = Character.dataModel.propCount - _propStats.Count;

            if (off > 0)
            {
                GameObject prefab = Manage.Instance.Resources.GetObj <GameObject>(ResourcesEnum.UIPrefab, Config.PropStatsGame, true);
                for (index = 0; index < off; index++)
                {
                    PropStatsGame p = NetStatsGame(_PropParent);
                    p.OnInit(OnClickProp, index);
                    _propStats.Add(p);
                }
            }
            index = 0;
            for (int i = 0; i < Character.dataModel.propCount; i++, index++)
            {
                BaseAdditionalAttribute _att = Manage.Instance.Data.GetBaseProp(Character.dataModel.prop[i]);
                _propStats[i].Attribute = _att;
            }
            for (int i = index; i < _propStats.Count; i++)
            {
                _propStats[i].gameObject.SetActive(false);
            }
        }
Пример #3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="prp"></param>
 /// <param name="type"></param>
 /// <param name="character"></param>
 /// <param name="PropIndex">在角色背包里面的位置</param>
 public void Open(BaseAdditionalAttribute prp, OpenType type, CharacterAttribute character, int PropIndex)
 {
     this.character = character;
     this.openType  = type;
     this.attribute = prp;
     this.PropIndex = PropIndex;
     base.Open();
 }
 void OnClickProp(BaseAdditionalAttribute prop, int index)
 {
     if (prop == null)
     {
         return;
     }
     PanelManager.Instantiate.PropStatsPanel.Open(prop, PropStatsPanel.OpenType.characterBackpack, Character.dataModel, index);
 }
 void OnClickEquipment(BaseAdditionalAttribute eq, int type)
 {
     if (eq == null)
     {
         return;
     }
     PanelManager.Instantiate.PropStatsPanel.Open(eq, PropStatsPanel.OpenType.character, character.dataModel, -1);
 }
Пример #6
0
        void UpdateStatsGame(PropStatsGame statsGame, GameNumber prop)
        {
            BaseAdditionalAttribute attribute = Manage.Instance.Data.GetBaseProp(prop);

            if (attribute != null)
            {
                attribute.number = prop.number;
            }
            statsGame.Attribute = attribute;
        }
Пример #7
0
    static public bool RemoveIndexProp(BaseAdditionalAttribute prop, int index, int number)
    {
        if (index == -1)
        {
            return(RemoveProp(prop, number));
        }

        Model.Prop[index].number -= number;
        if (Model.Prop[index].number <= 0)
        {
            Model.Prop[index].SetNull();
        }
        Write();
        return(true);
    }
Пример #8
0
    public Sprite GetPropSprite(BaseAdditionalAttribute attribute)
    {
        AssetbundleEnum _Enum = AssetbundleEnum.EquipmentIcon;

        switch (attribute.PropType)
        {
        case AdditionalAttributeEnum.equipment:
            _Enum = AssetbundleEnum.EquipmentIcon;
            break;

        case AdditionalAttributeEnum.prop:
            _Enum = AssetbundleEnum.PropIcon;
            break;
        }
        return(GetGame <Sprite>(_Enum, attribute.icon));
    }
Пример #9
0
    public BaseAdditionalAttribute GetBaseProp(GameNumber prop)
    {
        BaseAdditionalAttribute attribute = null;

        switch ((AdditionalAttributeEnum)prop.PropType)
        {
        case AdditionalAttributeEnum.equipment:
            attribute =
                Manage.Instance.Data.GetObj <EquipmentAttribute>(prop.id);
            break;

        case AdditionalAttributeEnum.prop:
            attribute =
                Manage.Instance.Data.GetObj <PropAttribute>(prop.id);
            break;
        }
        return(attribute);
    }
Пример #10
0
        void UpdateStatsGame(PropStatsGame statsGame, GameNumber prop)
        {
            BaseAdditionalAttribute attribute = null;

            switch ((AdditionalAttributeEnum)prop.PropType)
            {
            case AdditionalAttributeEnum.equipment:
                attribute =
                    Manage.Instance.Data.GetObj <EquipmentAttribute>(prop.id);
                break;

            case AdditionalAttributeEnum.prop:
                attribute =
                    Manage.Instance.Data.GetObj <PropAttribute>(prop.id);
                break;
            }
            if (attribute != null)
            {
                attribute.number = prop.number;
            }
            statsGame.Attribute = attribute;
        }
Пример #11
0
 static public bool AddProp(BaseAdditionalAttribute prop, int number)
 {
     //加入道具数量不能大于堆叠最大数量
     for (int i = 0; i < Model.Prop.Length; i++)
     {
         if (Model.Prop[i].IsNull)
         {
             GameNumber item = new GameNumber(prop);
             Model.Prop[i] = item;
             Write();
             return(true);
         }
         if (Model.Prop[i].Equals(prop))
         {
             if (Model.Prop[i].number < prop.maxNumber)
             {
                 int count = Model.Prop[i].number + prop.number;
                 if (count > prop.maxNumber)
                 {
                     if (GetNullBackPackItem() < 1)
                     {
                         return(false);
                     }
                     Model.Prop[i].number = prop.maxNumber;
                     return(AddProp(prop, count - prop.maxNumber));
                 }
                 else
                 {
                     Model.Prop[i].number = count;
                     Write();
                     return(true);
                 }
             }
         }
     }
     return(false);
 }
Пример #12
0
 void ClickPropGame(BaseAdditionalAttribute prop, int index)
 {
     PanelManager.Instantiate.PropStatsPanel.Open(prop, PropStatsPanel.OpenType.backpack, null, index);
 }
Пример #13
0
 static public int GetValue(this BaseAdditionalAttribute attribute, DataEnum type)
 {
     return(attribute.baseAttribute.data.Find(a => a.Type == (int)type).GetValue());
 }
Пример #14
0
 public bool Equals(BaseAdditionalAttribute game)
 {
     return(game.id == this.id && game.PropType == this.PropType);
 }
Пример #15
0
 public GameNumber(BaseAdditionalAttribute attribute)
 {
     id            = attribute.id;
     number        = attribute.number;
     this.PropType = attribute.PropType;
 }