예제 #1
0
        static IList <int> GetPlayCardTargets(bool friendlyTurn, NetSkill ns, NetCard nc, NetBattlefield bf)
        {
            Subskill ss = ns.GetSubSkill();

            if (ss.trigger.triggerGroup == ETriggerGroupType.DoAttack ||
                ss.trigger.triggerGroup == ETriggerGroupType.DoAlternateAttack)
            {
                if (ss.trigger.requiredToBeInFrontline)
                {
                    if (friendlyTurn)
                    {
                        return(bf.GetFreeFriendlyMeleeSlots(false));
                    }
                    else
                    {
                        return(bf.GetFreeEnemyMeleeSlots(false));
                    }
                }
                else if (ss.trigger.requiredToBeInBackline)
                {
                    if (friendlyTurn)
                    {
                        return(bf.GetFreeFriendlyRangedSlots(false));
                    }
                    else
                    {
                        return(bf.GetFreeEnemyRangedSlots(false));
                    }
                }
                else
                {
                    List <int> both;
                    if (friendlyTurn)
                    {
                        IList <int> a = bf.GetFreeFriendlyMeleeSlots(false);
                        IList <int> b = bf.GetFreeFriendlyRangedSlots(false);
                        both = new List <int>(a.Count + b.Count);
                        both.AddRange(a);
                        both.AddRange(b);
                        return(both);
                    }
                    else
                    {
                        IList <int> a = bf.GetFreeEnemyMeleeSlots(false);
                        IList <int> b = bf.GetFreeEnemyRangedSlots(false);
                        both = new List <int>(a.Count + b.Count);
                        both.AddRange(a);
                        both.AddRange(b);
                        return(both);
                    }
                }
            }
            else
            {
                return(ns.FindValidTargets(bf, -1));
            }
        }