Esempio n. 1
0
        public void ResetInfo(RoleAttributeType type, string showInfo)
        {
            int        EffectBasePropID = GetEffectBasePropID(type);
            EffectData effectData       = ItemDataManager.Instance.EffectDatas._effects.First(P => P.BasePropView == EffectBasePropID);

            this.IconSprite.spriteName = effectData.EffectRes;
            this.NumberLabel.SetText(showInfo);
        }
Esempio n. 2
0
        /// <summary>获取单个能锻炼值</summary>
        /// <param name="type">属性类型</param>
        /// <param name="att">待锻炼点数</param>
        /// <param name="model">武将信息</param>
        public static Double GetSingleCanTrain(RoleAttributeType type, Double att, view_role model)
        {
            var c_t = GetCanTrain(att, model);          //剩余可以锻炼总点数

            if (c_t < 0)
            {
                return(0);
            }

            Double current = 0;

            switch (type)
            {
                #region
            case RoleAttributeType.ROLE_CAPTAIN:
            {
                current = model._base_captain_train;
                break;
            }

            case RoleAttributeType.ROLE_FORCE:
            {
                current = model._base_force_train;
                break;
            }

            case RoleAttributeType.ROLE_BRAINS:
            {
                current = model._base_brains_train;
                break;
            }

            case RoleAttributeType.ROLE_CHARM:
            {
                current = model._base_charm_train;
                break;
            }

            case RoleAttributeType.ROLE_GOVERN:
            {
                current = model._base_govern_train;
                break;
            }
                #endregion
            }

            var c_s = GetSingleTrainMax(type, model);   //单个属性锻炼最大值
            var s   = c_s - current;                    //剩余单个锻炼值
            if (s <= 0)
            {
                return(0);
            }

            var c = s - c_t;
            //c大于等于0表示可以锻炼否则达到单个最大值
            return(c >= 0 ? c_t : c);
        }
Esempio n. 3
0
        /// <summary>单项属性固定值</summary>
        /// <param name="type">属性类型</param>
        /// <param name="model">武将信息</param>
        /// <param name="ischeck">是否检查</param>
        public static Double GetSingleFixed(RoleAttributeType type, tg_role model, bool ischeck = true)
        {
            Double result = 0;

            switch (type)
            {
                #region
            case RoleAttributeType.ROLE_CAPTAIN:
            {
                result += model.base_captain;
                result += model.base_captain_life;
                result += model.base_captain_level;
                result += model.base_captain_train;
                break;
            }

            case RoleAttributeType.ROLE_FORCE:
            {
                result += model.base_force;
                result += model.base_force_life;
                result += model.base_force_level;
                result += model.base_force_train;
                break;
            }

            case RoleAttributeType.ROLE_BRAINS:
            {
                result += model.base_brains;
                result += model.base_brains_life;
                result += model.base_brains_level;
                result += model.base_brains_train;
                break;
            }

            case RoleAttributeType.ROLE_CHARM:
            {
                result += model.base_charm;
                result += model.base_charm_life;
                result += model.base_charm_level;
                result += model.base_charm_train;
                break;
            }

            case RoleAttributeType.ROLE_GOVERN:
            {
                result += model.base_govern;
                result += model.base_govern_life;
                result += model.base_govern_level;
                result += model.base_govern_train;
                break;
            }
                #endregion
            }
            result = CheckSingleFixed(result, ischeck);
            return(result);
        }
Esempio n. 4
0
        private static RoleAttribute addRoleAttrValue(RoleAttribute attr, RoleAttributeType type, float value)
        {
            if (attr == null)
            {
                attr = new RoleAttribute(type, 0);
            }

            attr.value = attr.value + value;
            return(attr);
        }
Esempio n. 5
0
        /// <summary>单项属性范围值</summary>
        /// <param name="type">属性类型</param>
        /// <param name="model">武将信息</param>
        /// <param name="ischeck">是否检查</param>
        public static Double GetSingleRange(RoleAttributeType type, tg_role model, bool ischeck = true)
        {
            Double result = 0;

            switch (type)
            {
                #region
            case RoleAttributeType.ROLE_CAPTAIN:
            {
                result += model.base_captain_equip;
                result += model.base_captain_spirit;
                result += model.base_captain_title;
                break;
            }

            case RoleAttributeType.ROLE_FORCE:
            {
                result += model.base_force_equip;
                result += model.base_force_spirit;
                result += model.base_force_title;
                break;
            }

            case RoleAttributeType.ROLE_BRAINS:
            {
                result += model.base_brains_equip;
                result += model.base_brains_spirit;
                result += model.base_brains_title;
                break;
            }

            case RoleAttributeType.ROLE_CHARM:
            {
                result += model.base_charm_equip;
                result += model.base_charm_spirit;
                result += model.base_charm_title;
                break;
            }

            case RoleAttributeType.ROLE_GOVERN:
            {
                result += model.base_govern_equip;
                result += model.base_govern_spirit;
                result += model.base_govern_title;
                break;
            }
                #endregion
            }
            result = CheckSingleRange(result, ischeck);
            return(result);
        }
Esempio n. 6
0
        /// <summary>单项属性固定值-生活技能55点</summary>
        /// <param name="type">属性类型</param>
        /// <param name="model">武将信息</param>
        private Double Total(RoleAttributeType type, tg_role model)
        {
            Double result = 0;

            switch (type)
            {
            case RoleAttributeType.ROLE_CAPTAIN:
            {
                result += model.base_captain;
                result += model.base_captain_level;
                result += model.base_captain_train;
                break;
            }

            case RoleAttributeType.ROLE_FORCE:
            {
                result += model.base_force;
                result += model.base_force_level;
                result += model.base_force_train;
                break;
            }

            case RoleAttributeType.ROLE_BRAINS:
            {
                result += model.base_brains;
                result += model.base_brains_level;
                result += model.base_brains_train;
                break;
            }

            case RoleAttributeType.ROLE_CHARM:
            {
                result += model.base_charm;
                result += model.base_charm_level;
                result += model.base_charm_train;
                break;
            }

            case RoleAttributeType.ROLE_GOVERN:
            {
                result += model.base_govern;
                result += model.base_govern_level;
                result += model.base_govern_train;
                break;
            }
            }
            return(result);
        }
Esempio n. 7
0
        /// <summary>单个锻炼最大值</summary>
        /// <param name="type">属性类型</param>
        /// <param name="model">武将信息</param>
        public static Double GetSingleTrainMax(RoleAttributeType type, view_role model)
        {
            Double _base = 0, _life = 55, _level = 0;
            var    single_max = GetRuleRole("7025");    //单项属性加点总数

            switch (type)
            {
                #region
            case RoleAttributeType.ROLE_CAPTAIN:
            {
                _base  = model._base_captain;
                _level = model._base_captain_level;
                break;
            }

            case RoleAttributeType.ROLE_FORCE:
            {
                _base  = model._base_force;
                _level = model._base_force_level;
                break;
            }

            case RoleAttributeType.ROLE_BRAINS:
            {
                _base  = model._base_brains;
                _level = model._base_brains_level;
                break;
            }

            case RoleAttributeType.ROLE_CHARM:
            {
                _base  = model._base_charm;
                _level = model._base_charm_level;
                break;
            }

            case RoleAttributeType.ROLE_GOVERN:
            {
                _base  = model._base_govern;
                _level = model._base_govern_level;
                break;
            }
                #endregion
            }
            var max = single_max - _life - _base - _level;
            return(max);
        }
Esempio n. 8
0
        /// <summary> 根据公式转换对应战斗属性值 </summary>
        /// <param name="type">武将基础属性类型</param>
        /// <param name="values">要修改的该类型的值  增加为正数 减少为负数</param>
        public static double GetConvertAttribute(RoleAttributeType type, double values)
        {
            switch (type)
            {
            case RoleAttributeType.ROLE_FORCE: { return(GetValues("7006", "force", values)); }          //武力换算攻击力

            case RoleAttributeType.ROLE_GOVERN: { return(GetValues("7008", "govern", values)); }        //政务换算会心效果  (百分比)

            case RoleAttributeType.ROLE_CHARM: { return(GetValues("7007", "charm", values)); }          //魅力换算会心几率 (百分比)

            case RoleAttributeType.ROLE_BRAINS: { return(GetValues("7009", "brains", values)); }        //智谋换算闪避几率  (百分比)

            case RoleAttributeType.ROLE_CAPTAIN: { return(GetValues("7010", "captain", values)); }      //统帅换算奥义触发几率  (百分比)

            default: { return(0); }
            }
        }
Esempio n. 9
0
        /// <summary>获取能转换为战斗属性值</summary>
        /// <param name="type">属性</param>
        /// <param name="att">属性值</param>
        /// <param name="model">武将实体</param>
        public static Double GetCanToFight(RoleAttributeType type, Double att, view_role model)
        {
            var _total_false = GetSingleTotal(type, model, false);
            var _total_true  = GetSingleTotal(type, model);
            var poor         = _total_false - _total_true;

            //大于0 说明超过限制值
            if (!(poor > 0))
            {
                return(att);
            }
            //待转换值
            var use = att - poor;

            //小于0说明属性无法在转换
            return(use < 0 ? 0 : use);
        }
Esempio n. 10
0
        private int GetEffectBasePropID(RoleAttributeType attributeType)
        {
            int EffectBasePropID = 0;

            switch (attributeType)
            {
            case RoleAttributeType.MaxHP:
                EffectBasePropID = 10;
                break;

            case RoleAttributeType.MaxMP:
                EffectBasePropID = 20;
                break;

            case RoleAttributeType.ATK:
                EffectBasePropID = 40;
                break;

            case RoleAttributeType.DEF:
                EffectBasePropID = 50;
                break;

            case RoleAttributeType.HIT:
                EffectBasePropID = 30;
                break;

            case RoleAttributeType.EVA:
                EffectBasePropID = 60;
                break;

            case RoleAttributeType.Crit:
                EffectBasePropID = 100;
                break;

            case RoleAttributeType.ResCrit:
                EffectBasePropID = 110;
                break;

            case RoleAttributeType.Force:
                EffectBasePropID = 130;
                break;
            }
            return(EffectBasePropID);
        }
Esempio n. 11
0
    public static bool IsUsingIntValue(RoleAttributeType type)
    {
        switch (type)
        {
        case RoleAttributeType.HP:
        case RoleAttributeType.MP:
        case RoleAttributeType.SP:
        case RoleAttributeType.CutATK:
        case RoleAttributeType.PunATK:
        case RoleAttributeType.BluATK:
        case RoleAttributeType.DEF:
            return(true);

        case RoleAttributeType.Hit:
        case RoleAttributeType.Crit:
        case RoleAttributeType.ATKSpeed:
        case RoleAttributeType.MoveSpeed:
        case RoleAttributeType.TestBool:
        default:
            return(false);
        }
    }
Esempio n. 12
0
    public static Type AttributeType2ValueType(RoleAttributeType type)
    {
        switch (type)
        {
        case RoleAttributeType.HP:
        case RoleAttributeType.MP:
        case RoleAttributeType.SP:
        case RoleAttributeType.CutATK:
        case RoleAttributeType.PunATK:
        case RoleAttributeType.BluATK:
        case RoleAttributeType.DEF:
            return(typeof(int));

        case RoleAttributeType.Hit:
        case RoleAttributeType.Crit:
        case RoleAttributeType.ATKSpeed:
        case RoleAttributeType.MoveSpeed:
            return(typeof(float));

        default:
            return(typeof(int));
        }
    }
Esempio n. 13
0
        /// <summary>检查总属性值</summary>
        /// <param name="type"></param>
        /// <param name="surplus"></param>
        /// <param name="model"></param>
        /// <returns></returns>
        private static Double CheckTotal(RoleAttributeType att_type, RoleCheckType type, Double surplus, view_role model)
        {
            var list = new List <AttributeItem>();

            switch (type)
            {
                #region
            case RoleCheckType.Spirit:
            {
                list.Add(new AttributeItem {
                        type = RoleAttributeType.ROLE_CAPTAIN, value = model.base_captain_spirit
                    });
                list.Add(new AttributeItem {
                        type = RoleAttributeType.ROLE_FORCE, value = model.base_force_spirit
                    });
                list.Add(new AttributeItem {
                        type = RoleAttributeType.ROLE_GOVERN, value = model.base_govern_spirit
                    });
                list.Add(new AttributeItem {
                        type = RoleAttributeType.ROLE_BRAINS, value = model.base_brains_spirit
                    });
                list.Add(new AttributeItem {
                        type = RoleAttributeType.ROLE_CHARM, value = model.base_charm_spirit
                    });
                break;
            }

            case RoleCheckType.Equip:
            {
                list.Add(new AttributeItem {
                        type = RoleAttributeType.ROLE_CAPTAIN, value = model.base_captain_equip
                    });
                list.Add(new AttributeItem {
                        type = RoleAttributeType.ROLE_FORCE, value = model.base_force_equip
                    });
                list.Add(new AttributeItem {
                        type = RoleAttributeType.ROLE_GOVERN, value = model.base_govern_equip
                    });
                list.Add(new AttributeItem {
                        type = RoleAttributeType.ROLE_BRAINS, value = model.base_brains_equip
                    });
                list.Add(new AttributeItem {
                        type = RoleAttributeType.ROLE_CHARM, value = model.base_charm_equip
                    });
                break;
            }

            case RoleCheckType.Title:
            {
                list.Add(new AttributeItem {
                        type = RoleAttributeType.ROLE_CAPTAIN, value = model.base_captain_title
                    });
                list.Add(new AttributeItem {
                        type = RoleAttributeType.ROLE_FORCE, value = model.base_force_title
                    });
                list.Add(new AttributeItem {
                        type = RoleAttributeType.ROLE_GOVERN, value = model.base_govern_title
                    });
                list.Add(new AttributeItem {
                        type = RoleAttributeType.ROLE_BRAINS, value = model.base_brains_title
                    });
                list.Add(new AttributeItem {
                        type = RoleAttributeType.ROLE_CHARM, value = model.base_charm_title
                    });
                break;
            }
                #endregion
            }

            var sur = list.Where(m => m.value < surplus).OrderBy(m => m.value);
            if (sur.Any())
            {
                var _s = surplus;
                foreach (var item in sur)
                {
                    var i = _s - item.value;
                    if (i < 0)
                    {
                        return(item.type == att_type ? i : 0);
                    }
                    _s = i;
                }
            }


            return(0);
        }
Esempio n. 14
0
    public void Set(RoleAttributeType type, int cur, int add)
    {
        RoleAttribute attri = new RoleAttribute(type, cur);

        Set(attri, add, false);
    }
Esempio n. 15
0
 /// <summary> 修改该武将对应基础属性值 </summary>
 /// <param name="type">武将基础属性类型</param>
 /// <param name="values">要修改的该类型的值  增加为正数 减少为负数</param>
 public static double AttributeConvert(RoleAttributeType type, int values)
 {
     return(GetConvertAttribute(type, values));
 }
Esempio n. 16
0
 public ValueType this[RoleAttributeType type]
 {
     get => GetValueByType(type);
Esempio n. 17
0
 public RoleAttribute(RoleAttributeType type, ValueType value)
 {
     this.type = type;
     Value     = value;
 }
Esempio n. 18
0
 public RoleAttribute(RoleAttributeType type)
 {
     this.type = type;
 }
Esempio n. 19
0
 public RoleAttribute()
 {
     type = RoleAttributeType.HP;
 }
Esempio n. 20
0
 /// <summary>单项属性点总数</summary>
 /// <param name="type">属性类型</param>
 /// <param name="model">武将信息</param>
 /// <param name="ischeck">是否检查</param>
 public static Double GetSingleTotal(RoleAttributeType type, tg_role model, bool ischeck = true)
 {
     return(GetSingleFixed(type, model, ischeck) + GetSingleRange(type, model, ischeck));
 }
Esempio n. 21
0
 public RoleAttribute(RoleAttributeType type, float value)
 {
     this.type  = type;
     this.value = value;
 }
Esempio n. 22
0
    public void Set(RoleAttributeType type, int cur)
    {
        RoleAttribute attri = new RoleAttribute(type, cur);

        Set(attri, 0, true);
    }