RuntimeActor actor; // 关联的玩家 /// <summary> /// 应用 /// </summary> /// <param name="battler">对战者</param> /// <param name="result">结果</param> public static void apply(RuntimeBattler battler, RuntimeActionResult result) { var calc = new ResultApplyCalc(battler, result); calc.processHP(); calc.processHitFreeze(); calc.processAddBuffs(); }
/// <summary> /// 构造函数 /// </summary> /// <param name="battler">对战者</param> /// <param name="result">结果</param> ResultApplyCalc(RuntimeBattler battler, RuntimeActionResult result) { this.battler = battler; this.result = result; subject = result.action?.subject; actor = (battler as RuntimeActor) ?? (subject as RuntimeActor); }
/// <summary> /// 与玩家碰撞回调 /// </summary> /// <param name="player"></param> public void onPlayerColl(MapPlayer player) { if (damage == 0 || !player.runtimeBattler.isTargetEnable()) { return; } var result = new RuntimeActionResult(); result.hpDamage = damage; result.hitting = hitting; result.freezing = freezing; player.runtimeBattler.applyResult(result); }
/// <summary> /// 构造函数 /// </summary> /// <param name="action">行动</param> ActionResultGenerator(RuntimeActionResult result) { this.result = result; }
/// <summary> /// 生成 /// </summary> /// <param name="action">行动</param> /// <returns>返回结果</returns> public static void generate(RuntimeActionResult result) { var generator = new ActionResultGenerator(result); generator.processEffect(); }