示例#1
0
        //输出分析战报
        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());
        }