/// <summary> /// Construcción de un encuentro mediante entrada por la /// terminal. /// /// Si quedan menos de dos personajes, la función retorna null. /// Si la entrada es vacía se retorna null. /// </summary> /// <returns>El encuentro creado</returns> protected virtual Encounter BuildEncounter() { if (this.LessThanTwoCharactersLeft) { return(null); } EncounterType type = this.ReadEncounterType(); if (type == default(EncounterType)) { return(null); } Character character1 = this.SelectCharacter("Select one character:"); Character character2 = this.SelectCharacter("Select another character:"); Encounter encounter = EncounterFactory.GetEncounter(type, character1, character2); if (encounter is ExchangeEncounter) { IItem item = SelectItem(character1.Items); ((ExchangeEncounter)encounter).AddItemToExchange(item); } encounter.Reporter = new ConsoleReporter(); return(encounter); }
/// <summary> /// Ejecución del escenario. /// </summary> public void Run() { EncounterFactory encounterfactory = new EncounterFactory(); Encounter encounter = EncounterFactory.GetEncounter(EncounterType.Attack, colina, santi); encounter.DoEncounter(); encounter.Reporter.ReportDead(colina); }