Exemplo n.º 1
0
        /// <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);
        }