//输出分析战报 private void OutputBattleReport(string path) { StringBuilder strBuilder = new StringBuilder(); if (!File.Exists(path)) { strBuilder.AppendFormat("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}\n", "BattleID", "State", "SN", "AtkTeam", "FirstAction", "Attacker", "SufferTeam", "Sufferer", "SkillName", "SkillType", "Damage/HP"); } foreach (var item in battleFieldEvents) { switch (item.actionType) { case BattleFieldEventType.BattleUnitAction: BattleUnitSkillAction skillAction = item as BattleUnitSkillAction; if (skillAction != null) { foreach (var skillResult in skillAction.skillResult) { BattleTeam firstActionTeam = ((resetTimes & 1) == 0) ? teams[1] : teams[0]; strBuilder.AppendFormat("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}\n", resetTimes, "Action", item.SN, skillAction.actionUnit.battleTeam, firstActionTeam.Equals(skillAction.actionUnit.battleTeam) ? 1 : 0, skillAction.actionUnit.battleUnitAttribute.battleUnitName, skillResult.battleUnit.battleTeam, skillResult.battleUnit.battleUnitAttribute.battleUnitName, skillAction.battleSkill.skillName, skillAction.battleSkill.damageType.ToString(), skillResult.syncAttribute.hpChanged); //统计击杀 if (skillResult.syncAttribute.currentHP <= 0) { strBuilder.AppendFormat("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}\n", resetTimes, "Kill", item.SN, skillAction.actionUnit.battleTeam, firstActionTeam.Equals(skillAction.actionUnit.battleTeam) ? 1 : 0, skillAction.actionUnit.battleUnitAttribute.battleUnitName, skillResult.battleUnit.battleTeam, skillResult.battleUnit.battleUnitAttribute.battleUnitName, skillAction.battleSkill.skillName, skillAction.battleSkill.damageType.ToString(), skillResult.syncAttribute.hpChanged); } } } break; case BattleFieldEventType.BattleStart: break; case BattleFieldEventType.BattleEnd: break; default: break; } } foreach (var team in teams) { foreach (var bu in team.battleUnits) { BattleTeam firstActionTeam = ((resetTimes & 1) == 0) ? teams[1] : teams[0]; strBuilder.AppendFormat("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}\n", resetTimes, "End", string.Empty, bu.battleTeam, firstActionTeam.Equals(bu.battleTeam) ? 1 : 0, bu.battleUnitAttribute.battleUnitName, string.Empty, string.Empty, string.Empty, string.Empty, bu.battleUnitAttribute.hp); } } File.AppendAllText(path, strBuilder.ToString()); }