public void Attack() { Debug.Log("Fire elemental attacks: " + _fireElemental.GetAttack()); Debug.Log("Water elemental attacks: " + _waterElemental.GetAttack()); Debug.Log("Lava elemental attacks: " + _lavaElemental.GetAttack()); Debug.Log("Troll attacks: " + _troll.GetAttack()); Debug.Log("Troll Archer attacks: " + _trollArcher.GetAttack()); Debug.Log("Troll Wizard attacks: " + _trollWizard.GetAttack()); }
static void Main(string[] args) { ///////////////////////////////////////////////////////////////////// // two ways of creating & initializing monsters // create monster directly using breed - allocation and initialization happens automatically inside constructor Breed troll = new Breed(null, 10, "Troll attack"); Monster monsterTrollOne = new Monster(troll, "Troll1"); // using breed to create monster - separates object allocation and initialization Monster monsterTrollTwo = troll.CreateMonster("Troll2"); Console.WriteLine(string.Format("Troll 1 HP: {0}; Troll 1 attack: {1}", monsterTrollOne.GetHealth(), monsterTrollOne.GetAttack())); ///////////////////////////////////////////////////////////////////// Console.WriteLine(); ///////////////////////////////////////////////////////////////////// // using inheritance to create base monster breed Breed wizardBreed = new Breed(null, 5, "Generic magic attack"); Breed fireWizardBreed = new Breed(wizardBreed, 0, "Fire magic attack"); // passing in 0: inherits from parent Breed spellCasterWizardBreed = new Breed(wizardBreed, 8, null); Monster m1 = wizardBreed.CreateMonster("M1"); Monster m2 = fireWizardBreed.CreateMonster("M2"); Monster m3 = spellCasterWizardBreed.CreateMonster("M3"); Console.WriteLine(m1.ToString()); Console.WriteLine(m2.ToString()); Console.WriteLine(m3.ToString()); ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// // created dynamically via json file Console.WriteLine("\nCreated via JSON file:"); ReadJsonData("BreedJson.json"); foreach (var m in MonstersCreatedViaJSON) { Console.WriteLine(m.ToString()); } ///////////////////////////////////////////////////////////////////// Console.ReadLine(); }
static void Main(string[] args) { ///////////////////////////////////////////////////////////////////// // two ways of creating & initializing monsters // create monster directly using breed - allocation and initialization happens automatically inside constructor Breed troll = new Breed(null, 10, "Troll attack"); Monster monsterTrollOne = new Monster(troll, "Troll1"); // using breed to create monster - separates object allocation and initialization Monster monsterTrollTwo = troll.CreateMonster("Troll2"); Console.WriteLine(string.Format("Troll 1 HP: {0}; Troll 1 attack: {1}", monsterTrollOne.GetHealth(), monsterTrollOne.GetAttack())); ///////////////////////////////////////////////////////////////////// Console.WriteLine(); ///////////////////////////////////////////////////////////////////// // using inheritance to create base monster breed Breed wizardBreed = new Breed(null, 5, "Generic magic attack"); Breed fireWizardBreed = new Breed(wizardBreed, 0, "Fire magic attack"); // passing in 0: inherits from parent Breed spellCasterWizardBreed = new Breed(wizardBreed, 8, null); Monster m1 = wizardBreed.CreateMonster("M1"); Monster m2 = fireWizardBreed.CreateMonster("M2"); Monster m3 = spellCasterWizardBreed.CreateMonster("M3"); Console.WriteLine(m1.ToString()); Console.WriteLine(m2.ToString()); Console.WriteLine(m3.ToString()); ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// // created dynamically via json file Console.WriteLine("\nCreated via JSON file:"); ReadJsonData("BreedJson.json"); foreach (var m in MonstersCreatedViaJSON) Console.WriteLine(m.ToString()); ///////////////////////////////////////////////////////////////////// Console.ReadLine(); }