123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- /*
- *
- * This file is part of Luces de 1984 (L1).
- * Copyright (C) <2017> <alkeon> [alkeon@autistici.org]
-
- * L1 is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L1 is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with l1. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- #include <iostream>
- #include <string>
- #include "metodos.h"
- #include "gp.h"
- #include <curses.h>
- #include <ncurses.h>
- using namespace std;
- int main (){
- //Iniciar pantalla (NCURSES)
- initscr();
- //Deshabilita el buffer de líneas
- nocbreak();
- //Visibilidad del ratón
- curs_set(FALSE);
- //Incia el fondo y los colores (no se usan)
- start_color();
- // Crea el objeto juego de la clase juego :D
- juego juego;
- //Método de la clase juego conocido como inicio
- juego.inicio();
- //Fin del juego y con ello, la ventana
- endwin();
- }
- void juego::inicio(){
- printw("Bienvenido a Luces de 1984\n");//0
- printw("un juego creado por Alkeon.\n");
- printw("Guarde su ira para juegos con largos procesos de desarrollo\n");
- printw(" y un equipo enorme de desarrollo, aquí estamos para disfrutar.\n");
- //Iniciando personajes
- Personaje molde(0,30,0,0,1);
- Personaje Winston(0,20,0,0,0);
- //Final 1
- Winston.psicosis=1;
- //Final 2
- Winston.soledad=1;
- //Final 3
- Winston.esperpento=1;
- //Final 4
- Winston.hola_dave=1;
- Winston.vida=200;
- Winston.ataque=20;
- molde.vida=80;
- molde.ataque=4;
- //Menú
- this->menu(Winston,molde);
- }
- void juego::printa(std::string linea){
- for(int i=15;i>0;i--){
- this->texto[i]=this->texto[i-1];
- }
- this->texto[0]=linea;
- clear();
- for(int e=15;e>=0;e--){
- printw(this->texto[e].c_str());
- }
- }
- void juego::pausa(){
- printw("Pulsa cualquier tecla.\n");
- getch();
- }
- void juego::menu(Personaje& v, Personaje& h){
- printw("En este menú puedes escoger distintos puntos:\n");
- printw("1.- Guía sencilla y recomendaciones\n");
- printw("2.- Comenzar el juego\n");
- printw("3.- Cargar juego\n");
- printw("4.- Créditos\n");
- printw("5.- Salir\n");
- char str[2];
- getstr(str);
- if(str[0] == '1'){
- this->tutorial(); menu(v,h);
- }
- if(str[0] == '2'){
- this->escoger_opciones(v,h);
- }
- if(str[0] == '3'){
- vista_previa_partida("save.dat");
- }
- if(str[0] == '4'){
- this->creditos(v); menu(v,h);
- }
- }
- void juego::tutorial(){
- clear();
- printw("Narrador:Buenas soy el narrador de esta historia.\n");
- printw("Alkeon me tiene (y no me paga) para explicar todo el juego.\n");
- printw("Como veis al intervenir un personaje ocurre como en el teatro escrito.\n");
- printw("Si sigo hablando no se repite. Solo se espera a que cambie de personaje.\n");
- printw("Como consejos, no escribas letras si te piden números y este juego es dinámico.\n");
- printw("Cada vez que se puede, es modificado de ahí las actualizaciones.\n");
- printw("Si tuvieras alguna queja, se las mandas a Alkeon.\n");
- printw("¿No sabes cómo? Recuerda su página es https://autistici.org/alkeon/\n\n");
- }
- void juego::escoger_opciones(Personaje& v, Personaje& h){
- clear();
- printw("Antes de empezar la partida puedes escoger ciertas opciones que te hacen la experiencia de juego más personalizable y compatible con tu modo de juego.\n");
- if(this->guardados_automaticos!=2){
- this->opcion_guardado(v,h);
- }
- this->opcion_nombre(v,h);
- this->preguntas_principales(v,h);
- }
- void juego::opcion_guardado(Personaje& v, Personaje& h){
-
- printw("¿Prefieres guardados automáticos?\n");
- printw("1.- Sí\n");
- printw("2.- No\n");
- char str[2];
- getstr(str);
- if(str[0] == '1'){
- this->guardados_automaticos=1;
- }
- if(str[0] == '2'){
- this->guardados_automaticos=2;
- }
- }
- void juego::opcion_nombre(Personaje& v, Personaje& h){
- clear();
- printw("Antes de empezar puedes escoger otro nombre distinto del predeterminado\n");
- printw("Te recomendamos por la historia y el tema principal que mantengas Winston\n");
- printw("Como referencia a uno de los finales puedes usar el nombre de Dave\n");
- printw("1.- Dejar el nombre de Winston\n");
- printw("2.- Quiero llamarme Dave\n");
- printw("3.- Cambiar el nombre\n");
- char str[2];
- getstr(str);
- if(str[0] == '1'){
- v.nombre="Winston";
- }
- if(str[0] == '2'){
- v.nombre="Dave";
- }
- if(str[0] == '3'){
- printw("Elige tu nombre:\n");
- char nombre2[20];
- getstr(nombre2);
- string nombre_str(nombre2);
- v.nombre=nombre_str;
- }
- }
- void juego::creditos(Personaje& v){
- clear();
- printw("La licencia de este juego es GNU GPL versión 3.\n");
- printw("Puedes saber más sobre este juego en https://autistici.org/alkeon/");
- printw("Dedicatoria:\n");
- printw("Por los que se van, por los que se quedan.\n");
- printw("A todos ellos, gracias.\n\n");
- }
|