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); }
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); }