public static CreatureClassBase Create(CreatureClassType creatureClassType, CreatureBase creatureBase) { switch (creatureClassType) { case CreatureClassType.Monster: return(new Monster(creatureBase)); case CreatureClassType.Warrior: return(new Warrior(creatureBase)); case CreatureClassType.Barbarian: return(new Barbarian(creatureBase)); case CreatureClassType.Monk: return(new Monk(creatureBase)); case CreatureClassType.Cleric: return(new Cleric(creatureBase)); case CreatureClassType.Thief: return(new Thief(creatureBase)); case CreatureClassType.Mage: return(new Mage(creatureBase)); default: throw new ArgumentOutOfRangeException(nameof(creatureClassType), creatureClassType, null); } }
protected CreatureBase(double agility, double charisma, double intelligence, double stamina, double strength, double wisdom, CreatureClassType creatureClassType) { CreatureClass = CreatureClassFactory.Create(creatureClassType, this); Stats = new Dictionary <StatType, Stat> { { StatType.Agility, new Stat(StatType.Agility, agility) }, { StatType.Charisma, new Stat(StatType.Charisma, charisma) }, { StatType.Intelligence, new Stat(StatType.Intelligence, intelligence) }, { StatType.Stamina, new Stat(StatType.Stamina, stamina) }, { StatType.Strength, new Stat(StatType.Strength, strength) }, { StatType.Wisdom, new Stat(StatType.Wisdom, wisdom) } }; }
protected CreatureClassBase(CreatureBase creatureBase, CreatureClassType creatureClassType) { _creatureBase = creatureBase; _creatureClassType = creatureClassType; }
public Monster(double agility, double charisma, double intelligence, double stamina, double strength, double wisdom, CreatureClassType creatureClassType) : base(agility, charisma, intelligence, stamina, strength, wisdom, creatureClassType) { }