Implement Echolocation

This commit is contained in:
henriquenakashima 2020-10-13 00:42:55 -04:00
parent 5962ea9fd6
commit 939b3e2664
6 changed files with 149 additions and 16 deletions

View file

@ -8,7 +8,7 @@ public enum MCardId {
VampireFangs,
Whirlwind,
BlanketOfDarkness,
Sonar,
Echolocation,
GolemFist,
GraniteDefense,
SelfRepair,
@ -18,28 +18,35 @@ public enum MCardId {
public class MonsterCardDatabase : CardDatabase<MonsterCard>
{
public override MonsterCard CreateCard(int id, BattleParticipant owner) {
MCardId monsterCardId = (MCardId) id;
switch (monsterCardId)
private System.Type GetCardClass(MCardId id) {
switch (id)
{
case MCardId.Eagerness:
return new EagernessMCard(owner);
return typeof(EagernessMCard);
case MCardId.QuickSwiftDeath:
return new QuickSwiftDeathMCard(owner);
return typeof(QuickSwiftDeathMCard);
case MCardId.VampireFangs:
return new VampireFangsMCard(owner);
return typeof(VampireFangsMCard);
case MCardId.Whirlwind:
return new WhirlwindMCard(owner);
return typeof(WhirlwindMCard);
case MCardId.Echolocation:
return typeof(EcholocationMCard);
case MCardId.GolemFist:
return new GolemFistMCard(owner);
return typeof(GolemFistMCard);
case MCardId.GraniteDefense:
return new GraniteDefenseMCard(owner);
return typeof(GraniteDefenseMCard);
case MCardId.GolemCharge:
return new GolemChargeMCard(owner);
return typeof(GolemChargeMCard);
case MCardId.GolemBerserk:
return new GolemBerserkMCard(owner);
return typeof(GolemBerserkMCard);
default:
throw new System.ArgumentException("MCardId unknown", "id");
}
}
public override MonsterCard CreateCard(int id, BattleParticipant owner) {
MCardId monsterCardId = (MCardId) id;
System.Type cardClass = GetCardClass(monsterCardId);
return (MonsterCard) System.Activator.CreateInstance(cardClass, owner);
}
}