Beispiel #1
0
    public void MouseOverTarget(Targetable target, CardType targetableBy, bool isOver, bool toTrash = false)
    {
        if (!CanSummon)
        {
            return;
        }

        TrashCard  = toTrash;
        LastTarget = target;

        if (targetableBy.HasFlag(SummoningCardType))
        {
            overValidTarget = isOver;
            good.SetActive(isOver);
            bad.SetActive(!isOver);

            return;
        }
        else if (SummoningCardType != CardType.Undefined)
        {
            overValidTarget = false;
            good.SetActive(false);
            bad.SetActive(true);
        }

        overValidTarget = false;
        good.SetActive(false);
        bad.SetActive(false);
    }
    virtual public void SetActiveState(CardType incomingType)
    {
        // True if this entity is marked to respond to the incoming (being played) type of card
        active        = targetableBy.HasFlag(incomingType);
        col2D.enabled = active;

        if (targeted && !active)
        {
            targeted.enabled = false;
        }
        indicator.SetActive(active);
    }
Beispiel #3
0
        public static List <Color> GetColorsForType(CardType type)
        {
            List <Color> colors      = new List <Color>();
            CardType     typeToCheck = (CardType)(1);

            while (Enum.IsDefined(typeof(CardType), typeToCheck))
            {
                switch (typeToCheck)
                {
                case CardType.Treasure:
                case CardType.Victory:
                case CardType.Curse:
                case CardType.Action:
                case CardType.Reaction:
                case CardType.Attack:
                case CardType.Duration:
                case CardType.Prize:
                case CardType.Ruins:
                case CardType.Shelter:
                case CardType.Looter:
                case CardType.Knight:
                case CardType.Reserve:
                case CardType.Traveller:
                case CardType.Event:
                case CardType.Landmark:
                case CardType.Castle:
                case CardType.Gathering:
                    if (type.HasFlag(typeToCheck))
                    {
                        colors.Add(GetColorForType(typeToCheck));
                    }
                    break;

                default:
                    throw new ArgumentOutOfRangeException("type", $"Unsupported Card Type {type}");
                }

                typeToCheck = (CardType)((int)typeToCheck << 1);
            }
            return(colors);
        }
Beispiel #4
0
        public static string TypeToString(this CardType coreType)
        {
            List <string> types = new List <string>();

            if (coreType.HasFlag(CardType.Tribal))
            {
                types.Add("Tribal");
            }
            if (coreType.HasFlag(CardType.Land))
            {
                types.Add("Land");
            }
            if (coreType.HasFlag(CardType.Creature))
            {
                types.Add("Creature");
            }
            if (coreType.HasFlag(CardType.Artifact))
            {
                types.Add("Artifact");
            }
            if (coreType.HasFlag(CardType.Enchantment))
            {
                types.Add("Enchantment");
            }
            if (coreType.HasFlag(CardType.Planeswalker))
            {
                types.Add("Planeswalker");
            }
            if (coreType.HasFlag(CardType.Instant))
            {
                types.Add("Instant");
            }
            if (coreType.HasFlag(CardType.Sorcery))
            {
                types.Add("Sorcery");
            }
            return(string.Join(" ", types));
        }
Beispiel #5
0
        public string GetMonsterStatString()
        {
            string ToReturn = "";

            if (!Type.HasFlag(CardType.MONSTER))
            {
                return("");
            }

            if (MonsterCardType.HasFlag(MonsterCardType.XYZ))
            {
                ToReturn = "Rank ";
            }
            else if (MonsterCardType.HasFlag(MonsterCardType.LINK))
            {
                ToReturn = "Rating ";
            }
            else
            {
                ToReturn = "Level ";
            }
            ToReturn += Level.ToString();
            ToReturn += " - ATK/" + Atk.ToString();

            if (!MonsterCardType.HasFlag(MonsterCardType.LINK))
            {
                ToReturn += " DEF/" + Def.ToString();
            }

            if (Monster2ndType.HasFlag(Monster2ndType.PENDULUM))
            {
                ToReturn += " (Scale : " + PendulumScale.ToString() + ')';
            }

            return(ToReturn);
        }