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); }
/// <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); }
/// <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); }
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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); } } }
/// <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); }
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); }
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); } }
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)); } }
/// <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); }
public void Set(RoleAttributeType type, int cur, int add) { RoleAttribute attri = new RoleAttribute(type, cur); Set(attri, add, false); }
/// <summary> 修改该武将对应基础属性值 </summary> /// <param name="type">武将基础属性类型</param> /// <param name="values">要修改的该类型的值 增加为正数 减少为负数</param> public static double AttributeConvert(RoleAttributeType type, int values) { return(GetConvertAttribute(type, values)); }
public ValueType this[RoleAttributeType type] { get => GetValueByType(type);
public RoleAttribute(RoleAttributeType type, ValueType value) { this.type = type; Value = value; }
public RoleAttribute(RoleAttributeType type) { this.type = type; }
public RoleAttribute() { type = RoleAttributeType.HP; }
/// <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)); }
public RoleAttribute(RoleAttributeType type, float value) { this.type = type; this.value = value; }
public void Set(RoleAttributeType type, int cur) { RoleAttribute attri = new RoleAttribute(type, cur); Set(attri, 0, true); }