コード例 #1
0
ファイル: CombatCenter.cs プロジェクト: jinfei426/Scut
 public CombatCenter(EmbattleRole role, CombatGeneral general, EmbattleRole targerRole, TargetHandle targetHandle)
 {
     _role = role;
     _attrGeneral = general;
     _targerRole = targerRole;
     _targerHandle = targetHandle;
     _processLog = new CombatProcess();
 }
コード例 #2
0
ファイル: CombatCenter.cs プロジェクト: dongliang/Scut
 public CombatCenter(EmbattleRole role, CombatGeneral general, EmbattleRole targerRole, TargetHandle targetHandle)
 {
     _role         = role;
     _attrGeneral  = general;
     _targerRole   = targerRole;
     _targerHandle = targetHandle;
     _processLog   = new CombatProcess();
 }
コード例 #3
0
        /// <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));
        }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
 internal EmbattleQueue TargetEmbattle(EmbattleRole role)
 {
     return(priorityList.Find(m => m.Role == role));
 }
コード例 #6
0
ファイル: PlotCombat.cs プロジェクト: rongxiong/Scut
 internal EmbattleQueue TargetEmbattle(EmbattleRole role)
 {
     return priorityList.Find(m => m.Role == role);
 }