예제 #1
0
 public Card initFromInvocation(Invocation InvTemp)
 {
     this.name = InvTemp.name;
     this.manaCost = InvTemp.manaCost;
     this.type = InvTemp.type[0];
     this.subtype = InvTemp.subType[0];
     this.powers = InvTemp.powers;
     this.castLimit = InvTemp.castLimit;
     this.card = InvTemp.getCard();
     if (this.type == Enums.Type.Elemental)
     {
         Elemental ElemTemp = new Elemental(this.name);
         ElemTemp = (Elemental)this;
         ElemTemp.strength = InvTemp.strength;
         ElemTemp.constitution = InvTemp.constitution;
         ElemTemp.hp = ElemTemp.constitution;
         ElemTemp.rank = InvTemp.rank;
         if (ElemTemp.rank > 0)
             ElemTemp.from = InvTemp.from;
         ElemTemp.role = InvTemp.role;
         ElemTemp.properties = InvTemp.properties;
         ElemTemp.onAppear = InvTemp.onAppear;
         ElemTemp.onDeath = InvTemp.onDeath;
         return ElemTemp;
     }
     if (this.type == Enums.Type.Spirit)
     {
         Spirit SpiritTemp = new Spirit(this.name);
         SpiritTemp = (Spirit)this;
         SpiritTemp.essence = InvTemp.essence;
         SpiritTemp.onAppear = InvTemp.onAppear;
         SpiritTemp.onDeath = InvTemp.onDeath;
         return SpiritTemp;
     }
     return this;
 }     
        public Card initFromInvocation(Invocation InvTemp)
        {
            if (InvTemp.type[0] == Enums.Type.Elemental)
            {
                Elemental card = new Elemental(InvTemp.name);
                card.name = (string)InvTemp.name.Clone();
                card.manaCost = new Dictionary<Enums.Mana, int>(InvTemp.manaCost);
                card.type = InvTemp.type[0];
                card.subtype = InvTemp.subType[0];
                card.powers = new List<Power>(InvTemp.powers);
                card.castLimit = InvTemp.castLimit;
                card.card = (string)InvTemp.getCard().Clone();

                card.strength = InvTemp.strength;
                card.constitution = InvTemp.constitution;
                card.hp = card.constitution;
                card.rank = InvTemp.rank;
                if (card.rank > 0)
                    card.from = (string)InvTemp.from.Clone();
                card.role = InvTemp.role;
                card.properties = new List<Enums.Properties>(InvTemp.properties);
                card.onAppear = new List<string>(InvTemp.onAppear);
                card.onDeath = new List<string>(InvTemp.onDeath);
                return card;
            }

            if (InvTemp.type[0] == Enums.Type.Ritual)
            {
                Ritual card = new Ritual(InvTemp.name);
                card.name = (string)InvTemp.name.Clone();
                card.manaCost = new Dictionary<Enums.Mana, int>(InvTemp.manaCost);
                card.type = InvTemp.type[0];
                card.subtype = InvTemp.subType[0];
                card.powers = new List<Power>(InvTemp.powers);
                card.castLimit = InvTemp.castLimit;
                card.card = (string)InvTemp.getCard().Clone();

                return card;
            }

            if (InvTemp.type[0] == Enums.Type.Spirit)
            {
                Spirit card = new Spirit(InvTemp.name);
                card.name = (string)InvTemp.name.Clone();
                card.manaCost = new Dictionary<Enums.Mana, int>(InvTemp.manaCost);
                card.type = InvTemp.type[0];
                card.subtype = InvTemp.subType[0];
                card.powers = new List<Power>(InvTemp.powers);
                card.castLimit = InvTemp.castLimit;
                card.card = (string)InvTemp.getCard().Clone();
                Spirit SpiritTemp = new Spirit(this.name);
                SpiritTemp.name = (string)InvTemp.name.Clone();
                SpiritTemp.manaCost = new Dictionary<Enums.Mana, int>(InvTemp.manaCost);
                SpiritTemp.type = InvTemp.type[0];
                SpiritTemp.subtype = InvTemp.subType[0];
                SpiritTemp.powers = new List<Power>(InvTemp.powers);
                SpiritTemp.castLimit = InvTemp.castLimit;
                SpiritTemp.card = InvTemp.getCard();
                SpiritTemp.essence = InvTemp.essence;
                SpiritTemp.onAppear = new List<string>(InvTemp.onAppear);
                SpiritTemp.onDeath = new List<string>(InvTemp.onDeath);
                return card;
            }

            return null;
        }