コード例 #1
0
 /// <summary>
 /// Is RockObject is enemy.
 /// </summary>
 /// <param name="rockSceneContext">The RockSceneContext.</param>
 /// <param name="id">The RockId</param>
 /// <returns>True if it is a is enemy.</returns>
 public static bool IsEnemy(this RockSceneContext rockSceneContext, int id)
 {
     return(rockSceneContext.IsObjectType(id, RockObjectType.EnemyCard) ||
            rockSceneContext.IsObjectType(id, RockObjectType.EnemyMinion) ||
            rockSceneContext.IsObjectType(id, RockObjectType.EnemyHero) ||
            rockSceneContext.IsObjectType(id, RockObjectType.EnemyHeroPower) ||
            rockSceneContext.IsObjectType(id, RockObjectType.EnemyHeroWeapon));
 }
コード例 #2
0
 /// <summary>
 /// Is RockObject is EnemyMinion.
 /// </summary>
 /// <param name="rockSceneContext">The RockSceneContext.</param>
 /// <param name="id">The RockId</param>
 /// <returns>True if it is a IsFriendlyCard</returns>
 public static bool IsEnemyMinion(this RockSceneContext rockSceneContext, int id)
 {
     return(rockSceneContext.IsObjectType(id, RockObjectType.EnemyMinion));
 }
コード例 #3
0
 /// <summary>
 /// Is RockObject IsFriendlyCard.
 /// </summary>
 /// <param name="rockSceneContext">The RockSceneContext.</param>
 /// <param name="id">The RockId</param>
 /// <returns>True if it is a IsFriendlyCard</returns>
 public static bool IsFriendlyCard(this RockSceneContext rockSceneContext, int id)
 {
     return(rockSceneContext.IsObjectType(id, RockObjectType.FriendlyCard));
 }
コード例 #4
0
        /// <summary>
        /// Compute score for one of the PlayAction.
        /// </summary>
        /// <param name="sceneContext">The RockSceneContext.</param>
        /// <param name="playAction">The PlayAction.</param>
        /// <returns>The score in double.</returns>
        public static double ComputeScore(RockSceneContext sceneContext, List <int> playAction)
        {
            switch (playAction.Count)
            {
            // Use Card (Spell/Enchantment/Minion/Weapon)
            // Use HeroPower
            case 1:
                if (sceneContext.IsFriendlyCard(playAction[0]))
                {
                    // Use Card
                    return(ScoreForUseCard(sceneContext, playAction[0]));
                }
                else if (sceneContext.IsFriendlyHeroPower(playAction[0]))
                {
                    // Use HeroPower
                    return(ScoreForUseHeroPower(sceneContext, playAction[0]));
                }
                else
                {
                    return(0);
                }

            case 2:
                if (sceneContext.IsFriendlyCard(playAction[0]))
                {
                    // Use Spell/Enchantment on target
                    // Use Card with option
                    return(0);
                }
                else if (sceneContext.IsFriendlyHeroPower(playAction[0]))
                {
                    // Use HeroPower on target
                    switch (sceneContext.GetFriendlyRockPlayer().Hero.Class)
                    {
                    case RockHeroClass.Mage:
                        return(ScoreForUseMageHeroPower(sceneContext, playAction[0], playAction[1]));

                    case RockHeroClass.Priest:
                        return(ScoreForUsePriestHeroPower(sceneContext, playAction[0], playAction[1]));

                    default:
                        return(0d);
                    }
                }
                else if (sceneContext.IsFriendlyMinion(playAction[0]))
                {
                    if (sceneContext.IsEnemyMinion(playAction[1]))
                    {
                        // Use Minion Attack
                        return(ScoreForMinionAttack(sceneContext, playAction[0], playAction[1]));
                    }

                    return(ScoreForMinionAttackHero(sceneContext, playAction[0], playAction[1]));
                }
                else if (sceneContext.IsObjectType(playAction[0], RockObjectType.FriendlyHeroWeapon))
                {
                    // HeroWeapon Attack
                    return(ScoreForWeaponAttack(sceneContext, playAction[0], playAction[1]));
                }
                else
                {
                    return(0);
                }

            case 3:
            {
                // Use Card with option and on target
            }

            break;
            }

            return(0);
        }