public CombatCenter(EmbattleRole role, CombatGeneral general, EmbattleRole targerRole, TargetHandle targetHandle) { _role = role; _attrGeneral = general; _targerRole = targerRole; _targerHandle = targetHandle; _processLog = new CombatProcess(); }
/// <summary> /// 获取攻击目标阵营 /// </summary> /// <param name="targerHandle"></param> /// <param name="role"></param> /// <returns></returns> public CombatGeneral[] GetTargetRoleUnit(TargetHandle targerHandle, EmbattleRole role) { AttackTaget attackTaget; AttackUnit attackUnit = GetAttackUnit(); if (General.IsHunluanStatus) { attackTaget = AttackTaget.Friendly; } else { attackTaget = GetAttackTaget(); } ProcessLog.AttackUnit = attackUnit; ProcessLog.AttackTaget = attackTaget; EmbattleQueue attackEmbattle; switch (attackTaget) { case AttackTaget.Self: case AttackTaget.Friendly: attackEmbattle = targerHandle(role); break; case AttackTaget.Enemy: attackEmbattle = targerHandle(role == EmbattleRole.RoleA ? EmbattleRole.RoleD : EmbattleRole.RoleA); break; default: throw new Exception("未能找到攻击目标"); //break; } TagetRole = attackEmbattle.Role; if (General.IsHunluanStatus) { var rgeneral = (CombatGeneral)attackEmbattle.RandomGeneral(); return(new[] { rgeneral }); } return(GetTargetUnit(General.Position, attackUnit, attackTaget, attackEmbattle)); }
/// <summary> /// 获取攻击目标阵营 /// </summary> /// <param name="targerHandle"></param> /// <param name="role"></param> /// <returns></returns> public CombatGeneral[] GetTargetRoleUnit(TargetHandle targerHandle, EmbattleRole role) { AttackTaget attackTaget; AttackUnit attackUnit = GetAttackUnit(); if (General.IsHunluanStatus) { attackTaget = AttackTaget.Friendly; } else { attackTaget = GetAttackTaget(); } ProcessLog.AttackUnit = attackUnit; ProcessLog.AttackTaget = attackTaget; EmbattleQueue attackEmbattle; switch (attackTaget) { case AttackTaget.Self: case AttackTaget.Friendly: attackEmbattle = targerHandle(role); break; case AttackTaget.Enemy: attackEmbattle = targerHandle(role == EmbattleRole.RoleA ? EmbattleRole.RoleD : EmbattleRole.RoleA); break; default: throw new Exception("未能找到攻击目标"); //break; } TagetRole = attackEmbattle.Role; if (General.IsHunluanStatus) { var rgeneral = (CombatGeneral)attackEmbattle.RandomGeneral(); return new[] { rgeneral }; } return GetTargetUnit(General.Position, attackUnit, attackTaget, attackEmbattle); }
internal EmbattleQueue TargetEmbattle(EmbattleRole role) { return(priorityList.Find(m => m.Role == role)); }
internal EmbattleQueue TargetEmbattle(EmbattleRole role) { return priorityList.Find(m => m.Role == role); }