Example #1
0
    public override CardInfo_Base Clone()
    {
        CardInfo_Spell cs = new CardInfo_Spell(
            cardID: CardID,
            baseInfo: BaseInfo,
            upgradeInfo: UpgradeInfo,
            sideEffectBundle: SideEffectBundle.Clone(),
            sideEffectBundle_BattleGroundAura: SideEffectBundle_BattleGroundAura.Clone());

        return(cs);
    }
Example #2
0
    public static CardInfo_Base ConvertCardInfo(CardInfo_Base src, CardTypes cardType)
    {
        switch (src)
        {
        case CardInfo_Mech ci:
        {
            switch (cardType)
            {
            case CardTypes.Mech:
            {
                return((CardInfo_Mech)ci.Clone());
            }

            case CardTypes.Equip:
            {
                CardInfo_Base res = new CardInfo_Equip(
                    ci.CardID, ci.BaseInfo, ci.UpgradeInfo,
                    new EquipInfo(SlotTypes.Weapon),
                    new WeaponInfo(1, 1, 1, WeaponTypes.Sword, false, false),
                    new ShieldInfo(),
                    new PackInfo(),
                    new MAInfo(),
                    ci.SideEffectBundle.Clone(),
                    ci.SideEffectBundle_BattleGroundAura.Clone());
                res.BaseInfo.CardType = CardTypes.Equip;
                return((CardInfo_Equip)res);
            }

            case CardTypes.Spell:
            {
                CardInfo_Base res = new CardInfo_Spell(
                    ci.CardID, ci.BaseInfo, ci.UpgradeInfo,
                    ci.SideEffectBundle.Clone(),
                    ci.SideEffectBundle_BattleGroundAura.Clone());
                res.BaseInfo.CardType = CardTypes.Spell;
                return((CardInfo_Spell)res);
            }

            case CardTypes.Energy:
            {
                CardInfo_Base res = new CardInfo_Spell(
                    ci.CardID, ci.BaseInfo, ci.UpgradeInfo,
                    ci.SideEffectBundle.Clone(),
                    ci.SideEffectBundle_BattleGroundAura.Clone());
                res.BaseInfo.CardType = CardTypes.Energy;
                return((CardInfo_Spell)res);
            }
            }

            break;
        }

        case CardInfo_Equip ci:
        {
            switch (cardType)
            {
            case CardTypes.Mech:
            {
                CardInfo_Base res = new CardInfo_Mech(
                    ci.CardID, ci.BaseInfo, ci.UpgradeInfo,
                    new LifeInfo(1, 1),
                    new BattleInfo(0, 0, 0),
                    new MechInfo(false, false, false, false, false, false, SlotTypes.None, SlotTypes.None, SlotTypes.None, SlotTypes.None),
                    ci.SideEffectBundle.Clone(),
                    ci.SideEffectBundle_BattleGroundAura.Clone());
                res.BaseInfo.CardType = CardTypes.Mech;
                return((CardInfo_Mech)res);
            }

            case CardTypes.Equip:
            {
                return((CardInfo_Equip)ci.Clone());
            }

            case CardTypes.Spell:
            {
                CardInfo_Base res = new CardInfo_Spell(
                    ci.CardID, ci.BaseInfo, ci.UpgradeInfo,
                    ci.SideEffectBundle.Clone(),
                    ci.SideEffectBundle_BattleGroundAura.Clone());
                res.BaseInfo.CardType = CardTypes.Spell;
                return((CardInfo_Spell)res);
            }

            case CardTypes.Energy:
            {
                CardInfo_Base res = new CardInfo_Spell(
                    ci.CardID, ci.BaseInfo, ci.UpgradeInfo,
                    ci.SideEffectBundle.Clone(),
                    ci.SideEffectBundle_BattleGroundAura.Clone());
                res.BaseInfo.CardType = CardTypes.Energy;
                return((CardInfo_Spell)res);
            }
            }

            break;
        }

        case CardInfo_Spell ci:
        {
            switch (cardType)
            {
            case CardTypes.Mech:
            {
                CardInfo_Base res = new CardInfo_Mech(
                    ci.CardID, ci.BaseInfo, ci.UpgradeInfo,
                    new LifeInfo(1, 1),
                    new BattleInfo(0, 0, 0),
                    new MechInfo(false, false, false, false, false, false, SlotTypes.None, SlotTypes.None, SlotTypes.None, SlotTypes.None),
                    ci.SideEffectBundle.Clone(),
                    ci.SideEffectBundle_BattleGroundAura.Clone());
                res.BaseInfo.CardType = CardTypes.Mech;
                return((CardInfo_Mech)res);
            }

            case CardTypes.Equip:
            {
                CardInfo_Base res = new CardInfo_Equip(
                    ci.CardID, ci.BaseInfo, ci.UpgradeInfo,
                    new EquipInfo(SlotTypes.Weapon),
                    new WeaponInfo(1, 1, 1, WeaponTypes.Sword, false, false),
                    new ShieldInfo(),
                    new PackInfo(),
                    new MAInfo(),
                    ci.SideEffectBundle.Clone(),
                    ci.SideEffectBundle_BattleGroundAura.Clone());
                res.BaseInfo.CardType = CardTypes.Equip;
                return((CardInfo_Equip)res);
            }

            case CardTypes.Spell:
            {
                CardInfo_Spell cis = (CardInfo_Spell)ci.Clone();
                cis.BaseInfo.CardType = CardTypes.Spell;
                return(cis);
            }

            case CardTypes.Energy:
            {
                CardInfo_Spell cis = (CardInfo_Spell)ci.Clone();
                cis.BaseInfo.CardType = CardTypes.Energy;
                return(cis);
            }
            }

            break;
        }
        }

        return(null);
    }