Exemplo n.º 1
0
    public static List <BattlePlayer> GetShipsPlayerByTargetRange(TargetRange targetRange, BattlePlayer player)
    {
        List <BattlePlayer> res = new List <BattlePlayer>();

        if ((targetRange & TargetRange.SelfDeck) != 0)
        {
            res.Add(player);
        }

        if ((targetRange & TargetRange.SelfShip) != 0)
        {
            res.Add(player);
        }

        if ((targetRange & TargetRange.EnemyDeck) != 0)
        {
            res.Add(player.MyEnemyPlayer);
        }

        if ((targetRange & TargetRange.EnemyShip) != 0)
        {
            res.Add(player.MyEnemyPlayer);
        }

        return(res);
    }
Exemplo n.º 2
0
    bool FindTarget(SideEffectExecute see)
    {
        foreach (SideEffectBase se in see.SideEffectBases)
        {
            if (se is TargetSideEffect tse && tse.IsNeedChoice)
            {
                if (tse is TargetSideEffectEquip && ((TargetSideEffectEquip)tse).IsNeedChoice)
                {
                    HasTargetEquip   = true;
                    targetEquipRange = ((TargetSideEffectEquip)tse).TargetRange;
                }
                else
                {
                    TargetRange temp = tse.TargetRange;
                    if ((temp & TargetRange.Ships) != TargetRange.None || (temp & TargetRange.Decks) != TargetRange.None)
                    {
                        HasTargetShip   = true;
                        targetShipRange = temp;
                    }

                    if ((temp & TargetRange.Mechs) != TargetRange.None)
                    {
                        HasTargetMech   = true;
                        targetMechRange = temp;
                    }
                }
            }
        }

        return(HasTarget);
    }
        /// <summary>
        /// Gets a string representation of the HealthGoal.
        /// </summary>
        ///
        /// <returns>
        /// A string representation of the HealthGoal.
        /// </returns>
        ///
        public override string ToString()
        {
            if (TargetRange != null && Recurrence != null)
            {
                return(string.Format(
                           CultureInfo.CurrentUICulture,
                           Resources.HealthGoalWithTargetRangeAndRecurrenceFormat,
                           Name.Text,
                           TargetRange.ToString(),
                           Recurrence.ToString()));
            }

            if (TargetRange != null)
            {
                return(string.Format(
                           CultureInfo.CurrentUICulture,
                           Resources.HealthGoalFormat,
                           Name.Text,
                           TargetRange.ToString()));
            }

            if (Recurrence != null)
            {
                return(string.Format(
                           CultureInfo.CurrentUICulture,
                           Resources.HealthGoalFormat,
                           Name.Text,
                           Recurrence.ToString()));
            }

            return(Name.Text);
        }
Exemplo n.º 4
0
    public static int GetValidTargetCountByTargetRange(TargetRange targetRange, BattlePlayer callerPlayer)
    {
        int count = 0;

        if ((targetRange & TargetRange.SelfHeroes) != 0)
        {
            count += callerPlayer.BattleGroundManager.HeroCount;
        }

        if ((targetRange & TargetRange.SelfSoldiers) != 0)
        {
            count += callerPlayer.BattleGroundManager.SoldierCount;
        }

        if ((targetRange & TargetRange.EnemyHeroes) != 0)
        {
            count += callerPlayer.MyEnemyPlayer.BattleGroundManager.HeroCount;
        }

        if ((targetRange & TargetRange.EnemySoldiers) != 0)
        {
            count += callerPlayer.MyEnemyPlayer.BattleGroundManager.SoldierCount;
        }

        return(count);
    }
Exemplo n.º 5
0
    public override TargetType GetTargetType()
    {
        TargetUnit  targetUnit  = spellData.targetUnit;
        TargetRange targetRange = spellData.targetRange;

        return(new TargetType(targetUnit, targetRange));
    }
Exemplo n.º 6
0
    public void SummonMechPreview(CardMech mechCard, int mechPlaceIndex, TargetRange targetRange) //用于具有指定目标的副作用的机甲的召唤预览、显示指定箭头
    {
        currentSummonPreviewMechCard = mechCard;
        ModuleMech mech = AddMech_PrePass((CardInfo_Mech)mechCard.CardInfo, (int)Const.SpecialMechID.Empty, (int)Const.SpecialMechID.ClientTempMechIDNormal);

        CurrentSummonPreviewMech = mech;
        AddMech(mechPlaceIndex);
        DragManager.Instance.StartSummonMechTargetArrowAiming(mech, targetRange);
    }
Exemplo n.º 7
0
    public List <BattleCharacter> EnemyToFilter(BattleCommand battleCommand)
    {
        BattleCharacter owner       = battleCommand.owner;
        TargetType      targetType  = battleCommand.GetTargetType();
        TargetUnit      targetUnit  = targetType.targetUnit;
        TargetRange     targetRange = targetType.targetRange;

        return(EnemyToFilter(owner, targetUnit, targetRange));
    }
Exemplo n.º 8
0
    public void KillMechs(int count, List <int> mechIds, BattlePlayer callerPlayer, TargetRange targetRange, TargetSelect targetSelect, int exceptMechId = -1)
    {
        List <BattlePlayer> battlePlayers = GetMechsPlayerByTargetRange(targetRange, callerPlayer);
        MechTypes           mechType      = GetMechTypeByTargetRange(targetRange);

        switch (targetSelect)
        {
        case TargetSelect.All:
        {
            KillMechs(GetMechsByType(battlePlayers, mechType));
            break;
        }

        case TargetSelect.Multiple:
        {
            List <ModuleMech> mechs = new List <ModuleMech>();
            foreach (int mechId in mechIds)
            {
                mechs.Add(GetMech(mechId));
            }

            KillMechs(mechs);

            break;
        }

        case TargetSelect.MultipleRandom:
        {
            List <ModuleMech> mechs = new List <ModuleMech>();
            foreach (ModuleMech mech in Utils.GetRandomFromList(GetMechsByType(battlePlayers, mechType), count))
            {
                mechs.Add(mech);
            }

            KillMechs(mechs);

            break;
        }

        case TargetSelect.Single:
        {
            KillMechs(new List <ModuleMech> {
                    GetMech(mechIds[0])
                });
            break;
        }

        case TargetSelect.SingleRandom:
        {
            KillMechs(new List <ModuleMech> {
                    GetRandomMech(battlePlayers, mechType, exceptMechId)
                });
            break;
        }
        }
    }
 public void Validate()
 {
     Name.ValidateRequired("Name");
     StartDate.ValidateOptional("StartDate");
     EndDate.ValidateOptional("EndDate");
     AssociatedTypeInfo.ValidateOptional("AssociatedTypeInfo");
     TargetRange.ValidateOptional("TargetRange");
     GoalAdditionalRanges.ValidateOptional("GoalAdditionalRanges");
     Recurrence.ValidateOptional("Recurrence");
 }
Exemplo n.º 10
0
    public static void AddAllSideEffects()
    {
        Reset();
        SortedDictionary <string, string> descKeyDict = new SortedDictionary <string, string>();

        foreach (int v in Enum.GetValues(typeof(LanguageShorts)))
        {
            string strName = Enum.GetName(typeof(LanguageShorts), v);
            descKeyDict[strName] = "desc_" + strName;
        }

        string text;

        using (StreamReader sr = new StreamReader(SideEffectsXMLFile))
        {
            text = sr.ReadToEnd();
        }

        XmlDocument doc = new XmlDocument();

        doc.LoadXml(text);
        XmlElement node_AllSideEffects = doc.DocumentElement;

        for (int i = 0; i < node_AllSideEffects.ChildNodes.Count; i++)
        {
            XmlNode node_SideEffect = node_AllSideEffects.ChildNodes.Item(i);

            string         name = node_SideEffect.Attributes["name"].Value;
            SideEffectBase se   = (SideEffectBase)CurrentAssembly.CreateInstance("SideEffects." + name);

            if (se == null)
            {
                Utils.DebugLog("SideEffects: " + name + " does not exist");
                continue;
            }

            se.Name     = node_SideEffect.Attributes["name"].Value;
            se.DescRaws = new SortedDictionary <string, string>();
            foreach (KeyValuePair <string, string> kv in descKeyDict)
            {
                se.DescRaws[kv.Key] = node_SideEffect.Attributes[kv.Value].Value;
            }

            if (se is TargetSideEffect t_se)
            {
                t_se.M_SideEffectParam.GetParam("TargetSelect").SetValue(t_se.ValidTargetSelects[0].ToString());
                Dictionary <TargetSelect, List <TargetRange> > validTargetRangeDict = TargetSelector.TargetSelectorPresets[t_se.TargetSelectorType];
                TargetRange validTargetRange = validTargetRangeDict[t_se.ValidTargetSelects[0]][0];
                t_se.M_SideEffectParam.GetParam("TargetRange").SetValue(validTargetRange.ToString());
            }

            addSideEffect(se);
        }
    }
Exemplo n.º 11
0
    public List <BattleCharacter> PlayerToFilter(BattleCommand battleCommand)
    {
        List <PlayerCharacter> playerCharacters = BattleController.instance.AlivePlayerCharacters;
        List <EnemyCharacter>  enemyCharacters  = BattleController.instance.AliveEnemyCharacters;
        BattleCharacter        owner            = battleCommand.owner;

        TargetType  targetType  = battleCommand.GetTargetType();
        TargetUnit  targetUnit  = targetType.targetUnit;
        TargetRange targetRange = targetType.targetRange;

        IReadOnlyCollection <BattleCharacter> target = new List <BattleCharacter>();

        switch (targetUnit)
        {
        case TargetUnit.自分:
            return(new List <BattleCharacter>()
            {
                owner
            });

        case TargetUnit.味方:
            target = playerCharacters;
            break;

        case TargetUnit.相手:
            target = enemyCharacters;
            break;

        case TargetUnit.死亡者:
            var allPlayer = BattleController.instance.playerCharacters;
            target = allPlayer.Where(x => x.IsDead()).ToList();
            break;

        default:
            break;
        }

        switch (targetRange)
        {
        case TargetRange.単体:
            return(Randam(target));

        case TargetRange.全体:
            return(target.Cast <BattleCharacter>().ToList());

        default:
            break;
        }
        return(null);
    }
Exemplo n.º 12
0
 public bool Equals(LinesRangeDiffResult other)
 {
     if (ReferenceEquals(null, other))
     {
         return(false);
     }
     if (ReferenceEquals(this, other))
     {
         return(true);
     }
     //Trying to short circuit with simple comparisons first.
     return(SourceRange.Equals(other.SourceRange) && TargetRange.Equals(other.TargetRange) &&
            DiffStatus == other.DiffStatus && AffectedLines.Count == other.AffectedLines.Count &&
            AffectedLines.SequenceEqual(other.AffectedLines));
 }
Exemplo n.º 13
0
    public static List <BattlePlayer> GetMechsPlayerByTargetRange(TargetRange targetRange, BattlePlayer player)
    {
        List <BattlePlayer> res = new List <BattlePlayer>();

        if ((targetRange & TargetRange.SelfMechs) != 0)
        {
            res.Add(player);
        }

        if ((targetRange & TargetRange.EnemyMechs) != 0)
        {
            res.Add(player.MyEnemyPlayer);
        }

        return(res);
    }
Exemplo n.º 14
0
        private void GetValidTargets(IEnumerable <Pawn> targets)
        {
            targetList.Clear();
            foreach (var target in targets)
            {
                if (!TargetRange.Contains(target.Position.DistanceTo(User.Position)) ||
                    Ability.SuccessChanceOnTarget(target) < MinSuccessChance ||
                    !TargetMatchesTargetType(target) ||
                    AdditionalFilters.Any(filter => !filter.TargetMeetsFilter(target)))
                {
                    continue;
                }

                targetList.Add(target);
            }
        }
Exemplo n.º 15
0
    public static string GetDescOfTargetSelector(TargetRange targetRange, TargetSelect targetSelect, int choiceCount)
    {
        string textKey = "TargetRange_" + targetSelect + "_" + targetRange;
        string rawDesc = "";

        rawDesc = LanguageManager_Common.GetText(textKey);
        if (rawDesc != null && rawDesc.Contains("{0}"))
        {
            if (targetSelect == TargetSelect.Multiple || targetSelect == TargetSelect.MultipleRandom)
            {
                rawDesc = string.Format(rawDesc, choiceCount);
            }
        }

        return(rawDesc);
    }
Exemplo n.º 16
0
    public static ILifeCompositionTypes GetILifeCompositionTypesByTargetRange(TargetRange targetRange)
    {
        if ((targetRange & TargetRange.Mechs) != 0 && (targetRange & TargetRange.Ships) != 0)
        {
            return(ILifeCompositionTypes.Mixed);
        }
        else if ((targetRange & TargetRange.Mechs) != 0 && (targetRange & TargetRange.Ships) == 0)
        {
            return(ILifeCompositionTypes.OnlyMechs);
        }
        else if ((targetRange & TargetRange.Mechs) == 0 && (targetRange & TargetRange.Ships) != 0)
        {
            return(ILifeCompositionTypes.OnlyShips);
        }

        return(ILifeCompositionTypes.None);
    }
Exemplo n.º 17
0
    public List <BattleCharacter> GetBattleCharacters(BattleCommand battleCommand, IReadOnlyCollection <BattleCharacter> Friend, IReadOnlyCollection <BattleCharacter> Opponent)
    {
        BattleCharacter owner       = battleCommand.owner;
        TargetType      targetType  = battleCommand.GetTargetType();
        TargetUnit      targetUnit  = targetType.targetUnit;
        TargetRange     targetRange = targetType.targetRange;
        IReadOnlyCollection <BattleCharacter> target = new List <BattleCharacter>();

        switch (targetUnit)
        {
        case TargetUnit.自分:
            return(new List <BattleCharacter>()
            {
                owner
            });

        case TargetUnit.味方:
            target = Friend;
            break;

        case TargetUnit.相手:
            target = Opponent;
            break;

        case TargetUnit.死亡者:
            target = Friend.Where(x => x.IsDead()).ToList();
            break;

        default:
            break;
        }

        switch (targetRange)
        {
        case TargetRange.単体:
            return(Randam(target));

        case TargetRange.全体:
            return(target.Cast <BattleCharacter>().ToList());

        default:
            break;
        }
        return(null);
    }
Exemplo n.º 18
0
    public int CountMechsByTargetRange(TargetRange targetRange, BattlePlayer callerPlayer)
    {
        int count = 0;

        switch (targetRange)
        {
        case TargetRange.Mechs:
            count = callerPlayer.BattleGroundManager.MechCount + callerPlayer.MyEnemyPlayer.BattleGroundManager.MechCount;
            break;

        case TargetRange.Heroes:
            count = callerPlayer.BattleGroundManager.HeroCount + callerPlayer.MyEnemyPlayer.BattleGroundManager.HeroCount;
            break;

        case TargetRange.Soldiers:
            count = callerPlayer.BattleGroundManager.SoldierCount + callerPlayer.MyEnemyPlayer.BattleGroundManager.SoldierCount;
            break;

        case TargetRange.SelfMechs:
            count = callerPlayer.BattleGroundManager.MechCount;
            break;

        case TargetRange.SelfHeroes:
            count = callerPlayer.BattleGroundManager.HeroCount;
            break;

        case TargetRange.SelfSoldiers:
            count = callerPlayer.BattleGroundManager.SoldierCount;
            break;

        case TargetRange.EnemyMechs:
            count = callerPlayer.MyEnemyPlayer.BattleGroundManager.MechCount;
            break;

        case TargetRange.EnemyHeroes:
            count = callerPlayer.MyEnemyPlayer.BattleGroundManager.HeroCount;
            break;

        case TargetRange.EnemySoldiers:
            count = callerPlayer.MyEnemyPlayer.BattleGroundManager.SoldierCount;
            break;
        }

        return(count);
    }
Exemplo n.º 19
0
    public static MechTypes GetMechTypeByTargetRange(TargetRange targetRange)
    {
        MechTypes mechType = MechTypes.None;

        if ((targetRange & TargetRange.Heroes) == targetRange) // 若是Heroes子集
        {
            mechType = MechTypes.Hero;
        }

        if ((targetRange & TargetRange.Soldiers) == targetRange) // 若是Soldiers子集
        {
            mechType = MechTypes.Soldier;
        }
        else
        {
            mechType = MechTypes.All;
        }

        return(mechType);
    }
Exemplo n.º 20
0
 public void DrawEditor()
 {
     targetType   = (TargetType)EditorGUILayout.EnumPopup("Target Type", targetType);
     targetFilter = (TargetFilter)EditorGUILayout.EnumPopup("Target Filter", targetFilter);
     targetRange  = (TargetRange)EditorGUILayout.EnumPopup("Target Range", targetRange);
     if (targetRange == TargetRange.Range)
     {
         range = EditorGUILayout.IntField("Range", range);
     }
     else
     {
         range = 1;
         EditorGUILayout.LabelField("Range value is 1 for melee spells");
     }
     targetAOE = (TargetAOE)EditorGUILayout.EnumPopup("Target AOE", targetAOE);
     for (int i = 0; i < protoEvents.Count; i++)
     {
         protoEvents[i].DrawEditor();
     }
 }
Exemplo n.º 21
0
 public override void MouseHoverComponent_OnHover1Begin(Vector3 mousePosition)
 {
     base.MouseHoverComponent_OnHover1Begin(mousePosition);
     if (DragManager.Instance.IsSummonPreview)
     {
         TargetRange targetRange = DragManager.Instance.SummonMechTargetRange;
         if ((ClientPlayer == RoundManager.Instance.EnemyClientPlayer &&
              (targetRange == TargetRange.EnemyMechs ||
               (targetRange == TargetRange.EnemySoldiers && CardInfo.MechInfo.IsSoldier) ||
               targetRange == TargetRange.EnemyHeroes && !CardInfo.MechInfo.IsSoldier))
             ||
             ClientPlayer == RoundManager.Instance.SelfClientPlayer && ClientPlayer.BattlePlayer.BattleGroundManager.CurrentSummonPreviewMech != this &&
             (targetRange == TargetRange.SelfMechs || (targetRange == TargetRange.SelfSoldiers && CardInfo.MechInfo.IsSoldier)))
         {
             IsBeHover = true;
             if (DragManager.Instance.CurrentArrow && DragManager.Instance.CurrentArrow is ArrowAiming)
             {
                 ((ArrowAiming)DragManager.Instance.CurrentArrow).IsOnHover = true;  //箭头动画
             }
         }
     }
 }
Exemplo n.º 22
0
        static void Main(string[] args)
        {
            Console.WriteLine("Question 1");
            int[] l1     = new int[] { 5, 6, 6, 9, 9, 12 };
            int   target = 9;

            int[] r = TargetRange.TargetRangeSoln(l1, target);
            // Write your code to print range r here
            Console.WriteLine("[" + r[0] + "," + r[1] + "]");

            Console.WriteLine("Question 2");
            String s  = "University of South Florida";
            String rs = StringReverse.StringReverseSoln(s);

            Console.WriteLine(rs);

            Console.WriteLine("Question 3");
            int[] l2  = new int[] { 2, 2, 3, 5, 6 };
            int   sum = MinimumSum.MinimumSumSoln(l2);

            Console.WriteLine(sum);

            Console.WriteLine("Question 4");
            string s2           = "Dell";
            string sortedString = FreqSort.FreqSortSoln(s2);

            Console.WriteLine(sortedString);

            Console.WriteLine("Question 5-Part 1");
            int[] nums1 = { 1, 1, 2, 2, 2 };
            int[] nums2 = { 2, 2 };
            //int[] nums1 = { 3, 6, 6, 3};
            //int[] nums2 = { 6, 3, 6, 7, 3 };
            int[] intersect1 = Intersect.Intersect1(nums1, nums2);
            Console.WriteLine("Part 1- Intersection of two arrays is: ");
            Intersect.DisplayArray(intersect1); Console.WriteLine("\n");
            Console.WriteLine("Question 5-Part 2");
            int[] intersect2 = Intersect.Intersect2(nums1, nums2);
            Console.WriteLine("Part 2- Intersection of two arrays is: ");
            Intersect.DisplayArray(intersect2);
            Console.WriteLine("\n");

            Console.WriteLine("Question 6");
            char[] arr = new char[] { 'a', 'g', 'h', 'a' };
            int    k   = 3; Console.WriteLine(ContainsDuplicate.ContainsDuplicateSoln(arr, k));

            Console.WriteLine("Question 7");
            int rodLength    = 4;
            int priceProduct = GoldRod.GoldRodSoln(rodLength);

            Console.WriteLine(priceProduct);

            Console.WriteLine("Question 8");
            string[] userDict = new string[] { "rocky", "usf", "hello", "apple" };
            string   keyword  = "hhllo";

            Console.WriteLine(DictSearch.DictSearchSoln(userDict, keyword));

            Console.WriteLine("Question 9");
            SolvePuzzle.SolvePuzzleSoln();
        }
Exemplo n.º 23
0
    public void SideEffect_ILifeAction(Action <ILife> action, BattlePlayer callerPlayer, int count, TargetRange targetRange, TargetSelect targetSelect, List <int> targetClientIds, List <int> targetMechIds)
    {
        List <BattlePlayer> mech_players = GetMechsPlayerByTargetRange(targetRange, callerPlayer);
        List <BattlePlayer> ship_players = GetShipsPlayerByTargetRange(targetRange, callerPlayer);

        switch (targetSelect)
        {
        case TargetSelect.All:
        {
            foreach (BattlePlayer player in mech_players)
            {
                List <ModuleMech> remove = new List <ModuleMech>();
                foreach (ModuleMech mech in player.BattleGroundManager.Mechs)
                {
                    remove.Add(mech);
                }

                foreach (ModuleMech mech in remove)
                {
                    action(mech);
                }
            }

            foreach (BattlePlayer player in ship_players)
            {
                action(player);
            }

            break;
        }

        case TargetSelect.Multiple:
        {
            foreach (int clientId in targetClientIds)
            {
                action(GetPlayerByClientId(clientId));
            }

            foreach (int mechId in targetMechIds)
            {
                action(GetMechOnBattleGround(mechId));
            }

            break;
        }

        case TargetSelect.MultipleRandom:
        {
            List <ILife> lives         = GetAllLifeInBattleGround(mech_players, ship_players);
            List <ILife> selectedLives = Utils.GetRandomFromList(lives, count);
            foreach (ILife life in selectedLives)
            {
                action(life);
            }

            break;
        }

        case TargetSelect.Single:
        {
            if (targetRange == TargetRange.SelfShip || targetRange == TargetRange.EnemyShip)
            {
                if (ship_players.Count > 0)
                {
                    action(ship_players[0]);
                }
            }
            else
            {
                foreach (int targetClientId in targetClientIds)
                {
                    action(GetPlayerByClientId(targetClientId));
                    break;
                }

                foreach (int targetMechId in targetMechIds)
                {
                    if (targetMechId != Const.TARGET_MECH_SELECT_NONE)
                    {
                        action(GetMechOnBattleGround(targetMechId));
                        break;
                    }
                }
            }

            break;
        }

        case TargetSelect.SingleRandom:
        {
            List <ILife> lives         = GetAllLifeInBattleGround(mech_players, ship_players);
            List <ILife> selectedLives = Utils.GetRandomFromList(lives, 1);
            foreach (ILife life in selectedLives)
            {
                action(life);
                break;
            }

            break;
        }
        }
    }
Exemplo n.º 24
0
    public List <BattleCharacter> EnemyToFilter(BattleCharacter owner, TargetUnit targetUnit, TargetRange targetRange)
    {
        List <PlayerCharacter> playerCharacters = BattleController.instance.AlivePlayerCharacters;
        List <EnemyCharacter>  enemyCharacters  = BattleController.instance.AliveEnemyCharacters;

        IReadOnlyCollection <BattleCharacter> target = new List <BattleCharacter>();

        switch (targetUnit)
        {
        case TargetUnit.自分:
            return(new List <BattleCharacter>()
            {
                owner
            });

        case TargetUnit.味方:
            target = enemyCharacters;
            break;

        case TargetUnit.相手:
            target = playerCharacters;
            break;

        case TargetUnit.死亡者:
            target = enemyCharacters.Where(x => x.IsDead()).ToList();
            break;

        default:
            break;
        }

        switch (targetRange)
        {
        case TargetRange.単体:
            return(Randam(target));

        case TargetRange.全体:
            return(target.Cast <BattleCharacter>().ToList());

        default:
            break;
        }
        return(null);
    }
Exemplo n.º 25
0
    public void SideEffect_MechAction(Action <ModuleMech> action, BattlePlayer callerPlayer, int count, List <int> mechIds, TargetRange targetRange, TargetSelect targetSelect, int exceptMechId = -1)
    {
        List <BattlePlayer> battlePlayers = GetMechsPlayerByTargetRange(targetRange, callerPlayer);
        MechTypes           mechType      = GetMechTypeByTargetRange(targetRange);

        switch (targetSelect)
        {
        case TargetSelect.All:
        {
            foreach (ModuleMech mech in GetMechsByType(battlePlayers, mechType).ToArray())
            {
                action(mech);
            }

            break;
        }

        case TargetSelect.Multiple:
        {
            foreach (int mechId in mechIds)
            {
                action(GetMech(mechId));
            }

            break;
        }

        case TargetSelect.MultipleRandom:
        {
            foreach (ModuleMech mech in Utils.GetRandomFromList(GetMechsByType(battlePlayers, mechType), count))
            {
                action(mech);
            }

            break;
        }

        case TargetSelect.Single:
        {
            if (mechIds.Count > 0)
            {
                action(GetMech(mechIds[0]));
            }

            break;
        }

        case TargetSelect.SingleRandom:
        {
            action(GetRandomMech(battlePlayers, mechType, exceptMechId));
            break;
        }
        }
    }
Exemplo n.º 26
0
        static void Main(string[] args)
        {
            Console.WriteLine("Question 1");
            int[] l1     = new int[] { 5, 6, 6, 9, 9, 12 };
            int   target = 9;

            int[] r = TargetRange.TargetRangeSoln(l1, target);
            // Write your code to print range r here
            Console.WriteLine("[" + r[0] + "," + r[1] + "]");

            Console.WriteLine("Question 2");
            String s  = "University of South Florida";
            String rs = StringReverse.StringReverseSoln(s);

            Console.WriteLine(rs);

            Console.WriteLine("Question 3");
            int[] l2  = new int[] { 2, 2, 2, 4, 5, 7 };
            int   sum = MinimumSum.MinimumSumSoln(l2);

            Console.WriteLine("The Sum is:  " + sum);

            Console.WriteLine("Question 4");
            string s2           = "Dell";
            string sortedString = FreqSort.FreqSortSoln(s2);

            Console.WriteLine(sortedString);

            Console.WriteLine("Question 5-Part 1");
            int[] nums1 = { 1, 1, 2, 2, 2 };
            int[] nums2 = { 2, 2 };
            try
            {
                int[] intersect1 = Intersect.Intersect1(nums1, nums2);
                Console.WriteLine("Part 1- Intersection of two arrays is: ");
                Intersect.DisplayArray(intersect1); Console.WriteLine("\n");
                Console.WriteLine("Question 5-Part 2");
                int[] intersect2 = Intersect.Intersect2(nums1, nums2);
                Console.WriteLine("Part 2- Intersection of two arrays is: ");
                Intersect.DisplayArray(intersect2);
                Console.WriteLine("\n");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            Console.WriteLine("Question 6");
            char[] arr = new char[] { 'a', 'g', 'h', 'a' };
            int    k   = 3; Console.WriteLine(ContainsDuplicate.ContainsDuplicateSoln(arr, k));

            Console.WriteLine("Question 7");
            int rodLength    = 15;
            int priceProduct = GoldRod.GoldRodSoln(rodLength);

            Console.WriteLine(priceProduct);

            Console.WriteLine("Question 8");
            string[] userDict = new string[] { "rocky", "usf", "hello", "apple" };
            string   keyword  = "hhllo";

            try
            {
                if (userDict.Length > 0)
                {
                    Console.WriteLine(DictSearch.DictSearchSoln(userDict, keyword));
                }
                else
                {
                    Console.WriteLine("Enter an array with at least one element.");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            Console.WriteLine("Question 9");
            Console.WriteLine(" ");
            try
            {
                SolvePuzzle.SolvePuzzleSoln();
            }catch (Exception e)
            {
                Debug.WriteLine(e.StackTrace);
                Console.WriteLine("Error computing the solution.");
            }
        }
Exemplo n.º 27
0
 public TargetType(TargetUnit unit, TargetRange range)
 {
     this.targetUnit  = unit;
     this.targetRange = range;
 }
Exemplo n.º 28
0
    public void ShowTargetPreviewArrow(TargetRange targetRange) //当某咒术被拖出进攻时,显示可选目标标记箭头
    {
        switch (targetRange)
        {
        case TargetRange.AllLife:
            foreach (ModuleMech mech in SelfClientPlayer.BattlePlayer.BattleGroundManager.Mechs)
            {
                mech.ShowTargetPreviewArrow();
            }
            foreach (ModuleMech mech in EnemyClientPlayer.BattlePlayer.BattleGroundManager.Mechs)
            {
                mech.ShowTargetPreviewArrow();
            }
            break;

        case TargetRange.Mechs:
            foreach (ModuleMech mech in SelfClientPlayer.BattlePlayer.BattleGroundManager.Mechs)
            {
                mech.ShowTargetPreviewArrow();
            }
            foreach (ModuleMech mech in EnemyClientPlayer.BattlePlayer.BattleGroundManager.Mechs)
            {
                mech.ShowTargetPreviewArrow();
            }
            break;

        case TargetRange.SelfMechs:
            foreach (ModuleMech mech in SelfClientPlayer.BattlePlayer.BattleGroundManager.Mechs)
            {
                mech.ShowTargetPreviewArrow();
            }
            break;

        case TargetRange.EnemyMechs:
            foreach (ModuleMech mech in EnemyClientPlayer.BattlePlayer.BattleGroundManager.Mechs)
            {
                mech.ShowTargetPreviewArrow();
            }
            break;

        case TargetRange.Heroes:
            foreach (ModuleMech mech in SelfClientPlayer.BattlePlayer.BattleGroundManager.Heros)
            {
                mech.ShowTargetPreviewArrow();
            }
            foreach (ModuleMech mech in EnemyClientPlayer.BattlePlayer.BattleGroundManager.Heros)
            {
                mech.ShowTargetPreviewArrow();
            }
            break;

        case TargetRange.SelfHeroes:
            foreach (ModuleMech mech in SelfClientPlayer.BattlePlayer.BattleGroundManager.Heros)
            {
                mech.ShowTargetPreviewArrow();
            }
            break;

        case TargetRange.EnemyHeroes:
            foreach (ModuleMech mech in EnemyClientPlayer.BattlePlayer.BattleGroundManager.Heros)
            {
                mech.ShowTargetPreviewArrow();
            }
            break;

        case TargetRange.Soldiers:
            foreach (ModuleMech mech in SelfClientPlayer.BattlePlayer.BattleGroundManager.Soldiers)
            {
                mech.ShowTargetPreviewArrow();
            }
            foreach (ModuleMech mech in EnemyClientPlayer.BattlePlayer.BattleGroundManager.Soldiers)
            {
                mech.ShowTargetPreviewArrow();
            }
            break;

        case TargetRange.SelfSoldiers:
            foreach (ModuleMech mech in SelfClientPlayer.BattlePlayer.BattleGroundManager.Soldiers)
            {
                mech.ShowTargetPreviewArrow();
            }
            break;

        case TargetRange.EnemySoldiers:
            foreach (ModuleMech mech in EnemyClientPlayer.BattlePlayer.BattleGroundManager.Soldiers)
            {
                mech.ShowTargetPreviewArrow();
            }
            break;
        }
    }
Exemplo n.º 29
0
    /// <summary>
    /// Checks if current angle is within supplied range
    /// </summary>
    /// <param name="TargetHit"></param>
    /// <param name="priorAnge"></param>
    /// <param name="currentAngle"></param>
    /// <param name="range"></param>
    private void CheckTargetHit(Action <float> TargetHit, float priorAnge, float currentAngle, TargetRange range)
    {
        float delta = Mathf.Abs(priorAnge - currentAngle);

        if (delta >= ChangeThreshold)
        {
            if (range.WithinRange(currentAngle) && TargetHit != null)
            {
                TargetHit(currentAngle);
            }
        }
    }
Exemplo n.º 30
0
 private int GetValidTargetsCount(IEnumerable <Pawn> targets)
 {
     return(targets.Count(target =>
                          TargetRange.Contains(target.Position.DistanceTo(User.Position)) && TargetMatchesTargetType(target) &&
                          AdditionalFilters.All(filter => filter.TargetMeetsFilter(target))));
 }
Exemplo n.º 31
0
 public void DrawEditor()
 {
     targetType = (TargetType)EditorGUILayout.EnumPopup("Target Type", targetType);
     targetFilter = (TargetFilter)EditorGUILayout.EnumPopup("Target Filter", targetFilter);
     targetRange = (TargetRange)EditorGUILayout.EnumPopup("Target Range", targetRange);
     if (targetRange == TargetRange.Range)
     {
         range = EditorGUILayout.IntField("Range", range);
     }
     else
     {
         range = 1;
         EditorGUILayout.LabelField("Range value is 1 for melee spells");
     }
     targetAOE = (TargetAOE)EditorGUILayout.EnumPopup("Target AOE", targetAOE);
     for (int i = 0; i < protoEvents.Count; i++)
     {
         protoEvents[i].DrawEditor();
     }
 }