示例#1
0
        public Card(CardParameters p)
        {
            Name = p.Name;
            ManaCost = p.ManaCost;
            OverrideScore = p.OverrideScore;
            Text = p.Text;
            FlavorText = p.FlavorText;
            Illustration = p.Illustration;
            MayChooseNotToUntap = p.MayChooseToUntap;
            MinimalBlockerCount = p.MinimalBlockerCount;
            ProducableManaColors = p.ManaColorsThisCardCanProduce;

            Position = p.Position;
            Source = p.Source;
            Color = p.Color;
            Rotation = p.Rotation;
            Scale = p.Scale;
            ImageTexture = p.ImageTexture;
            borderPreview = p.BorderTextures;

            _strenght = new Strenght(p.Power, p.Toughness);
            _level = new Level(p.IsLeveler ? 0 : (int?)null);
            //_counters = new Counters(_strenght);
            _type = new CardTypeCharacteristic(p.Type);
            _colors = new CardColors(p.Colors);

            //_protections = new Protections(p.ProtectionsFromColors, p.ProtectionsFromTypes);

            //_simpleAbilities = new SimpleAbilities(p.SimpleAbilities);
            //_triggeredAbilities = new TriggeredAbilities(p.TriggeredAbilities);
            //_activatedAbilities = new ActivatedAbilities(p.ActivatedAbilities);
            //_staticAbilities = new StaticAbilities(p.StaticAbilities);
            //_castRules = new CastRules(p.CastInstructions);
            //_combatRules = new CombatRules(p.CombatRules);
            //_continuousEffects = new ContiniousEffects(p.ContinuousEffects);

            JoinedBattlefield = new TrackableEvent(this);
            LeftBattlefield = new TrackableEvent(this);
        }
示例#2
0
        public Card CreateCard()
        {
            var p = new CardParameters();

            foreach (var action in _init)
            {
                action(p);
            }

            //if (p.Colors.Count == 0)
            //{
            //    p.Colors.AddRange(GetCardColorsFromManaCost(p.ManaCost));
            //}

            //if (p.CastInstructions.Count == 0)
            //{
            //    var castParams = GetDefaultCastInstructionParameters(p);
            //    SetDefaultTimingRules(p, castParams);
            //    p.CastInstructions.Add(new CastRule(castParams));
            //}

            return new Card(p);
        }