Beispiel #1
0
        private bool IsPlayableFromHand()
        {
            bool meetsPlayRequirements = PlayRequirements.Count == 0 ||
                                         PlayRequirements.All(req => req.MeetsRequirement());

            return(Player.IsLocalPlayer &&
                   State == State.InHand &&
                   Player.CanUseActions(ActionCost) &&
                   meetsPlayRequirements &&
                   IsUnique() &&
                   MeetsAdditionalPlayRequirements());
        }
Beispiel #2
0
        private void LoadPlayRequirements()
        {
            PlayRequirements = GetComponents <MonoBehaviour>().OfType <ICardPlayRequirement>().ToList();

            var inputRequirement = PlayRequirements.OfType <InputRequirement>().SingleOrDefault();

            if (inputRequirement != null)
            {
                _inputGatherer = GetComponent <InputGatherer>();
                _fromHandActionInputRequired = inputRequirement.FromHandActionInputRequired;
                _inPlayActionInputRequired   = inputRequirement.InPlayActionInputRequired;
            }
        }
Beispiel #3
0
        /// <summary>
        /// Returns a string containing all information about this instance.
        /// </summary>
        /// <param name="gameTag"></param>
        /// <param name="playReq"></param>
        /// <returns></returns>
        public string FullPrint(bool gameTag = false, bool playReq = false)
        {
            var builder = new StringBuilder();

            builder.Append($"[CARD: {Name} - {Id} (Col={Collectible},Set={Set})]");
            if (gameTag)
            {
                builder.Append("\n   GameTags:");
                Tags.ToList().ForEach(pair => builder.Append($"\n   - {pair.Key} -> {pair.Value}"));
            }
            if (playReq)
            {
                builder.Append("\n   PlayReq:");
                PlayRequirements.ToList().ForEach(pair => builder.Append($"\n   - {pair.Key} -> {pair.Value}"));
            }
            return(builder.ToString());
        }