private string GetAttacker(BattleRoomModel battleModel, BattleRoomModel.BattleReportModel CurrentBattleReport) { foreach (var item in battleModel.characterList) { if (item.ID == CurrentBattleReport.Attacker) { return(item.Name); } } foreach (var item in battleModel.enemyList) { if (item.ID == CurrentBattleReport.Attacker) { return(item.Name); } } return(String.Empty); }
private List <BattleRoomModel.BattleEnemyModel> GetTeam(BattleRoomModel battleModle, List <BattleRoomModel.BattleEnemyModel> list, BattleRoomModel.BattleReportModel CurrentBattleReport) { List <BattleRoomModel.BattleEnemyModel> m_EnemyModelList = list.FindAll(p => p.ID == CurrentBattleReport.AnAttacker); if (m_EnemyModelList != null && m_EnemyModelList.Count > 0) { List <BattleRoomModel.BattleEnemyModel> modle = battleModle.enemyList; for (int i = 0; i < m_EnemyModelList.Count; i++) { modle.Remove(m_EnemyModelList[i]); } Debug.Log(modle.Count); foreach (var item in modle) { Debug.Log(item.Name); } return(modle); } return(null); }
private void InitReportInfo(BattleRoomModel battleModel, BattleRoomModel.BattleReportModel CurrentBattleReport) { switch (CurrentBattleReport.ReportType) { case BattleRoomModel.ReportType.Attack: Debug.Log("攻击战报"); if (Content_Tra != null) { GameObject m_ReportGoParent = ResourcesMgr.GetInstance().LoadResource <GameObject>("Prefab/UI/Battle/AttackReport", false); GameObject m_ReportParent = Instantiate(m_ReportGoParent); Text m_Report = UnityHelper.GetTheChildNodeComponetScripts <Text>(m_ReportParent, "AttackReport_Txt"); string m_Info; if (!CurrentBattleReport.IsAOE) { switch (CurrentBattleReport.AttackHandleType) { case BattleRoomModel.AttackHandleType.Dodge: m_Report.text = string.Format(m_NormalAttackInfoTemplete, CurrentBattleReport.ReportNum, GetAttacker(battleModel, CurrentBattleReport), GetAnAttacker(battleModel, CurrentBattleReport)) + string.Format(m_DodgeInfoTemplete, GetAnAttacker(battleModel, CurrentBattleReport)); break; case BattleRoomModel.AttackHandleType.Deathblow: m_Info = string.Format(m_NormalAttackInfoTemplete, CurrentBattleReport.ReportNum, GetAttacker(battleModel, CurrentBattleReport), GetAnAttacker(battleModel, CurrentBattleReport)) + string.Format(m_DeathblowInfoTemplete) + string.Format(m_DamageInfoTemplete, CurrentBattleReport.Damage); m_Report.text = m_Info; if (CurrentBattleReport.IsDerateDamage) { m_Report.text = m_Info + string.Format(m_DerateDamageInfoTemplete, CurrentBattleReport.DerateDamage); } break; case BattleRoomModel.AttackHandleType.Attack: m_Info = string.Format(m_NormalAttackInfoTemplete, CurrentBattleReport.ReportNum, GetAttacker(battleModel, CurrentBattleReport), GetAnAttacker(battleModel, CurrentBattleReport)) + string.Format(m_DamageInfoTemplete, CurrentBattleReport.Damage); m_Report.text = m_Info; if (CurrentBattleReport.IsDerateDamage) { m_Report.text = m_Info + string.Format(m_DerateDamageInfoTemplete, CurrentBattleReport.DerateDamage); } break; default: break; } } else { StringBuilder sb = new StringBuilder(); switch (CurrentBattleReport.AttackHandleType) { case BattleRoomModel.AttackHandleType.Dodge: m_Report.text = string.Format(m_SkillInfoTemplete, CurrentBattleReport.ReportNum, GetAttacker(battleModel, CurrentBattleReport), CurrentBattleReport.AbilityName, GetAnAttacker(battleModel, CurrentBattleReport)) + string.Format(m_DodgeInfoTemplete, GetAnAttacker(battleModel, CurrentBattleReport)); break; case BattleRoomModel.AttackHandleType.Deathblow: sb.Append(string.Format(m_SkillInfoTemplete, CurrentBattleReport.ReportNum, GetAttacker(battleModel, CurrentBattleReport), CurrentBattleReport.AbilityName, GetAnAttacker(battleModel, CurrentBattleReport)) + string.Format(m_DeathblowInfoTemplete) + string.Format(m_DamageInfoTemplete, CurrentBattleReport.Damage)); m_Report.text = sb.ToString(); if (CurrentBattleReport.IsDerateDamage) { m_Report.text = sb.Append(string.Format(m_DerateDamageInfoTemplete, CurrentBattleReport.DerateDamage)).ToString(); } if (CurrentBattleReport.IsGroupAttack) { List <BattleRoomModel.BattleCharacterModel> CharacterModelList = GetTeam(battleModel, battleModel.characterList, CurrentBattleReport); List <BattleRoomModel.BattleEnemyModel> EnemyModelList = GetTeam(battleModel, battleModel.enemyList, CurrentBattleReport); if (CharacterModelList.Count > 0 && CharacterModelList != null) { for (int i = 0; i < CharacterModelList.Count; i++) { Debug.Log(CharacterModelList[i].Name); m_Report.text = sb.Append( string.Format(m_AOEInfoTemplete, CharacterModelList[i].Name, CurrentBattleReport.Damage)).ToString(); } } else if (EnemyModelList.Count > 0 && EnemyModelList != null) { for (int i = 0; i < EnemyModelList.Count; i++) { m_Report.text = sb.Append( string.Format(m_AOEInfoTemplete, EnemyModelList[i].Name, CurrentBattleReport.Damage)).ToString(); } } } break; case BattleRoomModel.AttackHandleType.Attack: switch (CurrentBattleReport.AOEType) { case BattleRoomModel.AOEType.Attack: sb.Append(string.Format(m_SkillInfoTemplete, CurrentBattleReport.ReportNum, GetAttacker(battleModel, CurrentBattleReport), CurrentBattleReport.AbilityName, GetAnAttacker(battleModel, CurrentBattleReport)) + string.Format(m_DamageInfoTemplete, CurrentBattleReport.Damage)); m_Report.text = sb.ToString(); if (CurrentBattleReport.IsDerateDamage) { m_Report.text = sb.Append(string.Format(m_DerateDamageInfoTemplete, CurrentBattleReport.DerateDamage)).ToString();; } if (CurrentBattleReport.IsGroupAttack) { List <BattleRoomModel.BattleCharacterModel> CharacterModelList = GetTeam(battleModel, battleModel.characterList, CurrentBattleReport); List <BattleRoomModel.BattleEnemyModel> EnemyModelList = GetTeam(battleModel, battleModel.enemyList, CurrentBattleReport); if (CharacterModelList.Count > 0 && CharacterModelList != null) { for (int i = 0; i < CharacterModelList.Count; i++) { Debug.Log(CharacterModelList[i].Name); m_Report.text = sb.Append( string.Format(m_AOEInfoTemplete, CharacterModelList[i].Name, CurrentBattleReport.Damage)).ToString(); } } else if (EnemyModelList.Count > 0 && EnemyModelList != null) { for (int i = 0; i < EnemyModelList.Count; i++) { m_Report.text = sb.Append( string.Format(m_AOEInfoTemplete, EnemyModelList[i].Name, CurrentBattleReport.Damage)).ToString(); } } } break; case BattleRoomModel.AOEType.Recovery: m_Report.text = string.Format(m_RecoveryInfoTemplete, CurrentBattleReport.ReportNum, GetAttacker(battleModel, CurrentBattleReport), CurrentBattleReport.AbilityName, CurrentBattleReport.Recovery, GetAnAttacker(battleModel, CurrentBattleReport)); break; default: break; } break; default: break; } } Text Data = UnityHelper.GetTheChildNodeComponetScripts <Text>(m_ReportParent, "Data_Txt"); Data.text = DateTime.Now.ToString(); //扣血 m_ReportParent.GetComponent <RectTransform>().sizeDelta = new Vector2(m_Report.rectTransform.rect.width, m_Report.preferredHeight + Data.preferredHeight); m_ReportParent.transform.parent = Content_Tra.transform; m_ReportParent.transform.localScale = Content_Tra.transform.localScale; m_ReportParent.transform.SetAsFirstSibling(); } break; case BattleRoomModel.ReportType.Result: Debug.Log("结束战报"); if (Content_Tra != null) { GameObject m_ReportGoParent = ResourcesMgr.GetInstance().LoadResource <GameObject>("Prefab/UI/Battle/ResultReport", false); GameObject m_ReportParent = Instantiate(m_ReportGoParent); Text m_Report = UnityHelper.GetTheChildNodeComponetScripts <Text>(m_ReportParent, "ResultReport_Txt"); if (CurrentBattleReport.IsSussces) { //扣血 StringBuilder sb = new StringBuilder(); if (CurrentBattleReport.EquipmentList.Count > 0) { for (int i = 0; i < CurrentBattleReport.EquipmentList.Count; i++) { sb.Append(string.Format(m_GetEquipmentInfoTemplete, CurrentBattleReport.EquipmentList[i].name)); } } if (CurrentBattleReport.Gold > 0) { sb.Append(string.Format(m_GetGoldInfoTemplete, CurrentBattleReport.Gold)); } if (battleModel.characterList != null) { for (int i = 0; i < battleModel.characterList.Count; i++) { sb.Append(string.Format(m_GetEXPInfoTemplete, battleModel.characterList[i].Name, CurrentBattleReport.EXP)); } } sb.Append(m_SuccessResultInfoTemplete); m_Report.text = sb.ToString(); } else { m_Report.text = string.Format(m_FailureResultInfoTemplete, CurrentBattleReport.TeamName); } Debug.Log("m_Report.rectTransform.rect.height = " + m_Report.preferredHeight); Debug.Log("m_ReportParent.GetComponent<RectTransform>().rect.height) = " + m_ReportParent.GetComponent <RectTransform>().rect.height); m_ReportParent.transform.parent = Content_Tra.transform; m_ReportParent.transform.localScale = m_ReportParent.transform.parent.transform.localScale; m_ReportParent.GetComponent <RectTransform>().sizeDelta = new Vector2(m_Report.rectTransform.rect.width, m_Report.preferredHeight); m_ReportParent.transform.SetAsFirstSibling(); Debug.Log("m_Report.rectTransform.rect.height = " + m_Report.rectTransform.rect.height + m_Report.name); Debug.Log("m_ReportParent.GetComponent<RectTransform>().rect.height) = " + m_ReportParent.GetComponent <RectTransform>().rect.height + m_ReportParent.name); } break; case BattleRoomModel.ReportType.Rest: Debug.Log("休息战报"); if (Content_Tra != null) { GameObject m_ReportGoParent = ResourcesMgr.GetInstance().LoadResource <GameObject>("Prefab/UI/Battle/RestReport", false); GameObject m_ReportParent = Instantiate(m_ReportGoParent); Text m_Report = UnityHelper.GetTheChildNodeComponetScripts <Text>(m_ReportParent, "RestReport_Txt"); m_Report.text = string.Format(m_RestInfoTemplete, CurrentBattleReport.RestCountdown); //扣血 m_ReportParent.GetComponent <RectTransform>().sizeDelta = new Vector2(m_Report.rectTransform.rect.width, m_Report.rectTransform.rect.height); m_ReportParent.transform.parent = Content_Tra.transform; m_ReportParent.transform.localScale = m_ReportParent.transform.parent.transform.localScale; m_ReportParent.transform.SetAsFirstSibling(); } break; default: Debug.LogError("战报类型错误:" + CurrentBattleReport.ReportType); break; } }