public bool CritHappen;//暴击-判定成功 public void CheckThisSkillCauseCrit(SkillFunction _skill) { int baseC = ThisBasicRoleProperty().ReadRA(AttributeData.Crit); int realC = (int)(baseC * AllRandomSetClass.SimplePercentToDecimal(_skill.CritR + 100)); float Rate = AdolescentSet.CritFunction(realC); bool _IsCrit = UnityEngine.Random.Range(0, 1f) < Rate; CritHappen = _IsCrit; }
public void initData_supplement_H_Caster(RoleAttributeList ra, int grade) { RoleAttributeList gradeEffect = AdolescentSet.AttritubeShowByLevel_basic(grade , 0.6f //生命 , 0.75f //法力 , 0.6f //怒气 , 0.2f, 0.2f //物攻防 , 1.1f, 0.6f //法攻防 ); RoleBasicRA = ra.Clone; RoleBasicRA.Add(gradeEffect);//等级加成 AddTempleMultiplier(Job.Priest); //额外效果 CRIDmg += 25; }
public void initData_supplement_H_Fighter(RoleAttributeList ra, int grade) { RoleAttributeList gradeEffect = AdolescentSet.AttritubeShowByLevel_basic(grade , 1.2f //生命 , 0.1f //法力 , 1f //怒气 , 0.2f, 1f //物攻防 , 0.1f, 0.1f //法攻防 ); RoleBasicRA = ra.Clone; RoleBasicRA.Add(gradeEffect);//等级加成 AddTempleMultiplier(Job.Fighter); //额外效果 DmgReduction += 10; }
public bool AccurHappen;//精准·闪避-判定成功 public void CheckThisSkillCauseAccur(SkillFunction _skill, BattleRoleData _targetUnit) { if (_targetUnit.IsEnemy == IsEnemy) { AccurHappen = true; } else { BasicRoleProperty _target = _targetUnit.ThisBasicRoleProperty(); int baseA = ThisBasicRoleProperty().ReadRA(AttributeData.Accur); int realA = (int)(baseA * AllRandomSetClass.SimplePercentToDecimal(_skill.AccuracyR + 100)); int Evo = _target.ReadRA(AttributeData.Evo); float Rate = AdolescentSet.AccurFunction(realA, Evo); float t = UnityEngine.Random.Range(0, 1f); bool _IsAccur = t < Rate; AccurHappen = _IsAccur; Debug.Log("精准度计算:" + _IsAccur + " || " + t + " " + Rate + "--evo:" + Evo + "--accur:" + realA + "--baseAccur:" + baseA + "--skillAccuracyR:" + _skill.AccuracyR); } }