/// <summary> /// 状态造成的属性影响计算 /// </summary> /// <param name="source"></param> /// <param name="target"></param> /// <returns></returns> public override RoleAttributeList ralCaused(BattleRoleData source, BattleRoleData target) { RoleAttributeList ral = new RoleAttributeList(); //RoleAttributeList sourceRal = source.ThisBasicRoleProperty()._role.ThisRoleAttributes.Clone; RoleAttributeList targetRal = source.ThisBasicRoleProperty()._role.ThisRoleAttributes.Clone; for (int i = 0; i < AllChangesInRAL.Count; i++) { ChangeInRAL c = AllChangesInRAL[i]; int d = c.ChangeData.DATA; if (!c.IsForRD) { if (c.UseDataType == ChangeInRAL.DataOrigin.normal) { if (c.ChangeData.dataTag == NumberData.DataType.percent) { d = (int)(targetRal.read(c.ADTag) * c.ChangeData.DECIMAL); } } else if (c.UseDataType == ChangeInRAL.DataOrigin.otherAtb) { int ori = targetRal.read(c.OtherAtb); d = (int)(ori * AllRandomSetClass.SimplePercentToDecimal(c.UsePercent)); } else if (c.UseDataType == ChangeInRAL.DataOrigin.armor) { RoleAttributeList _ral = getRALFromEquip(c.UsePos, source, target).Clone; d = _ral.read(c.ADTag); } ral.Add(d, c.ADTag); } else { if (c.UseDataType == ChangeInRAL.DataOrigin.normal) { if (c.ChangeData.dataTag == NumberData.DataType.percent) { d = (int)(targetRal.read(c.STag) * c.ChangeData.DECIMAL); } } else if (c.UseDataType == ChangeInRAL.DataOrigin.otherAtb) { int ori = targetRal.read(c.OtherAtb); d = (int)(ori * AllRandomSetClass.SimplePercentToDecimal(c.UsePercent)); } else if (c.UseDataType == ChangeInRAL.DataOrigin.armor) { RoleAttributeList _ral = getRALFromEquip(c.UsePos, source, target).Clone; d = _ral.read(c.STag); } ral.Add(d, c.STag); } } return(ral); }
public int ReadCurrentRoleRA(int Tag, bool IsAttributeData = true) { if (IsAttributeData) { AttributeData t = (AttributeData)Mathf.Clamp(Tag, 0, (int)AttributeData.End); return(ThisRoleAttributes.read(t) + AllARevision.read(t) + extraRALChangeData.read(t)); } else { StateTag t = (StateTag)Mathf.Clamp(Tag, 0, (int)StateTag.End); return(ThisRoleAttributes.read(t) + AllARevision.read(t) + extraRALChangeData.read(t)); } }
/// <summary> /// 全战斗属性百分比增减+-()% /// </summary> /// <param name="ForwardRA">原属性</param> /// <param name="Percent">增加或减少的百分比</param> /// <returns></returns> public static RoleAttributeList RAChangeInPercent(RoleAttributeList ForwardRA, int Percent) { float Decimal = AllRandomSetClass.SimplePercentToDecimal(Percent); RoleAttributeList RA = ForwardRA; for (int i = 0; i < (int)AttributeData.End; i++) { AttributeData Tag = (AttributeData)i; RA.Add((int)(RA.read(Tag) * Decimal), Tag); } for (int i = 0; i < (int)StateTag.End; i++) { StateTag Tag = (StateTag)i; RA.Add((int)(RA.read(Tag) * Decimal), Tag); } return(RA); }
public void Refresh(RoleAttributeList ral) { AttiFigure.text = "" + ral.read(TAG); }