Refactor HeroCardDatabase

This commit is contained in:
henriquenakashima 2020-10-13 00:45:03 -04:00
parent 939b3e2664
commit 679fc526cc

View file

@ -29,42 +29,47 @@ public enum HCardId {
public class HeroCardDatabase : CardDatabase<HeroCard>
{
public override HeroCard CreateCard(int id, BattleParticipant owner) {
HCardId heroCardId = (HCardId) id;
switch (heroCardId)
private System.Type GetCardClass(HCardId id) {
switch (id)
{
case HCardId.CrashingPunch:
return new CrashingPunchHCard(owner);
return typeof(CrashingPunchHCard);
case HCardId.Cover:
return new CoverHCard(owner);
return typeof(CoverHCard);
case HCardId.LightningStrike:
return new LightningStrikeHCard(owner);
return typeof(LightningStrikeHCard);
case HCardId.Scarring:
return new ScarringHCard(owner);
return typeof(ScarringHCard);
case HCardId.Thunderstorm:
return new ThunderstormHCard(owner);
return typeof(ThunderstormHCard);
case HCardId.BlindFury:
return new BlindFuryHCard(owner);
return typeof(BlindFuryHCard);
case HCardId.Meditate:
return new MeditateHCard(owner);
return typeof(MeditateHCard);
case HCardId.LightningHatchet:
return new LightningHatchetHCard(owner);
return typeof(LightningHatchetHCard);
case HCardId.IronskinDraught:
return new IronskinDraughtHCard(owner);
return typeof(IronskinDraughtHCard);
case HCardId.SwordSlash:
return new SwordSlashHCard(owner);
return typeof(SwordSlashHCard);
case HCardId.ShieldBlock:
return new ShieldBlockHCard(owner);
return typeof(ShieldBlockHCard);
case HCardId.LeadShot:
return new LeadShotHCard(owner);
return typeof(LeadShotHCard);
case HCardId.SmokeBomb:
return new SmokeBombHCard(owner);
return typeof(SmokeBombHCard);
case HCardId.Eagerness:
return new EagernessHCard(owner);
return typeof(EagernessHCard);
case HCardId.OilOfSharpness:
return new OilOfSharpnessHCard(owner);
return typeof(OilOfSharpnessHCard);
default:
throw new System.ArgumentException("HCardId unknown", "id");
}
}
public override HeroCard CreateCard(int id, BattleParticipant owner) {
HCardId heroCardId = (HCardId) id;
System.Type cardClass = GetCardClass(heroCardId);
return (HeroCard) System.Activator.CreateInstance(cardClass, owner);
}
}