Advertisement
Guest User

Nova_Encyclopedia.rb

a guest
Oct 25th, 2022
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 79.13 KB | Source Code | 0 0
  1. #══════════════════════════════════════════════════════════════════════════
  2. #  ▼ Nova::Encyclopedia
  3. #  Autor: Alisson
  4. #  Versão: 2.1
  5. #  Data: 27/10/2016
  6. #══════════════════════════════════════════════════════════════════════════
  7.  
  8. #--------------------------------------------------------------------------
  9. #  ▼ Histórico
  10. #--------------------------------------------------------------------------
  11. # v2.1. Bug de listas longas corrigido. Resto dos bugs eliminados, mwahaha!
  12. # v2.0. Grande update. Código refeito, área configurável remodelada.
  13. # v1.3. Seleção de Categorias adicionada. Instruções atualizadas.
  14. # v1.2. Compatibilidade com resoluções maiores. Liberado.
  15. # v1.0. Limpeza de código.
  16. # v0.5. Correção de bugs.
  17. # v0.1. Criado.
  18. #--------------------------------------------------------------------------
  19. # ▼ Termos de Uso
  20. #--------------------------------------------------------------------------
  21. # Livre para uso comercial. Ficaria agradecido se entrasse em contato
  22. # comigo para avisar.
  23. # Você pode alterar este sistema para uso próprio.
  24. # Você não pode postar o sistema diretamente em outro lugar.
  25. # Caso poste, redirecione o usuário para o tópico original do sistema.
  26. # Créditos não são necessários, mas seriam apreciados.
  27. #
  28. # Para mais informações: centrorpg.com
  29. #--------------------------------------------------------------------------
  30. # ▼ Introdução
  31. #--------------------------------------------------------------------------
  32. # A Nova - Encyclopedia é um sistema de enciclopédia baseado na Nepedia,
  33. # originalmente feito para o jogo Megadimension Neptunia VII.
  34. # Ele lhe permite criar uma enciclopédia para o seu jogo.
  35. # Se quiser criar um manual do game, sinta-se livre.
  36. # Se quiser criar uma coleção de livros, sinta-se livre.
  37. # Se quiser até fazer um sistema de quests, você pode. Use a criatividade.
  38. # Faça sua enciclopédia.
  39. #--------------------------------------------------------------------------
  40. # ▼ Instruções
  41. #--------------------------------------------------------------------------
  42. # O script possui instruções detalhadas de configuração logo abaixo.
  43. # A adição de categorias e a adição de tópicos ficam nos fins das
  44. # configurações.
  45. # Para chamar o menu de enciclopédia, basta usar:
  46. # SceneManager.call(Encyclopedia)
  47. #══════════════════════════════════════════════════════════════════════════
  48.  
  49. module Nova
  50.   module Encyclopedia
  51.     #══════════════════════════════════════════════════════════════════════════
  52.     # ■ - Configuração do Sistema -
  53.     #══════════════════════════════════════════════════════════════════════════
  54.     # Aqui ficam todas as configurações do script.
  55.     #══════════════════════════════════════════════════════════════════════════
  56.  
  57.     #══════════════════════════════════════════════════════════════════════════
  58.     # - Janela de Ajuda. -
  59.     # É a janela que exibe o texto de ajuda na parte inferior.
  60.     #══════════════════════════════════════════════════════════════════════════
  61.     Help = {
  62.                     # Texto que será mostrado durante a seleção de categorias.
  63.                     :category_vocab => '     Selecione uma categoria.           Voltar',
  64.                    
  65.                     # Texto que será mostrado durante a seleção de tópicos.
  66.                     :topics_vocab => '     Selecione um tópico.               Voltar',
  67.                    
  68.                     # Windowskin da janela de ajuda.
  69.                     :windowskin => 'Window',
  70.                    
  71.                     # Deseja usar uma imagem no lugar de uma window para a janela?
  72.                     :image? => true,
  73.                    
  74.                     # Pasta em que ele irá procurar a imagem.
  75.                     :folder => 'Graphics/Encyclopedia/BG/',
  76.                    
  77.                     # Nome da imagem na pasta configurada acima.
  78.                     :name => 'Info Bar',
  79.                    
  80.                     # Se você quiser alterar a posição da imagem na tela, use isso:
  81.                     :img_ox => 0,   # Posição horizontal.
  82.                     :img_oy => -6,  # Posição vertical.
  83.                    
  84.     } # <= Não deletar.
  85.    
  86.     #══════════════════════════════════════════════════════════════════════════
  87.     # - Comando no Menu. -
  88.     # Aqui você configura se quer ou não adicionar a enciclopédia no menu.
  89.     #══════════════════════════════════════════════════════════════════════════
  90.     Command_in_Menu = {
  91.                     # Ativar?
  92.                     :enable? => true,
  93.                    
  94.                     # Switch necessário para que o jogador possa acessar a opção.
  95.                     # Deixe 0 se quiser que ele sempre possa acessar.
  96.                     :switch => 0,
  97.                    
  98.                     # Nome da opção no menu.
  99.                     :name => 'Encyclopedia',
  100.                    
  101.     } # <= Não deletar.
  102.    
  103.     #══════════════════════════════════════════════════════════════════════════
  104.     # - Janela de Categorias. -
  105.     # Aqui você configura a janela onde as categorias são mostradas.
  106.     #══════════════════════════════════════════════════════════════════════════
  107.     Category_Main = {
  108.                     # Windowskin da janela.
  109.                     :windowskin => 'Window',
  110.                    
  111.                     # Deseja usar uma imagem no lugar da janela?
  112.                     :image? => true,
  113.                    
  114.                     # Pasta onde ele irá procurar a imagem.
  115.                     :folder => 'Graphics/Encyclopedia/BG/',
  116.                    
  117.                     # Nome da imagem na pasta configurada acima.
  118.                     :name => 'Command Box',
  119.                    
  120.                     # Se você quiser alterar a posição da imagem na tela, use isso:
  121.                     :img_ox => 0, # Posição horizontal.
  122.                     :img_oy => 0, # Posição vertical.
  123.                    
  124.     } # <= Não deletar.
  125.    
  126.     #══════════════════════════════════════════════════════════════════════════
  127.     # - Janela de Tópicos. -
  128.     # Aqui você configura a janela onde os tópicos são mostrados.
  129.     #══════════════════════════════════════════════════════════════════════════
  130.     Topics_Main = {
  131.                     # Windowskin da janela.
  132.                     :windowskin => 'Window',
  133.                    
  134.                     # Deseja usar uma imagem no lugar da janela?
  135.                     :image? => true,
  136.                    
  137.                     # Pasta onde ele irá procurar a imagem.
  138.                     :folder => 'Graphics/Encyclopedia/BG/',
  139.                    
  140.                     # Nome da imagem na pasta configurada acima.
  141.                     :name => 'Command Box',
  142.                    
  143.                     # Se você quiser alterar a posição da imagem na tela, use isso:
  144.                     :img_ox => 0, # Posição horizontal.
  145.                     :img_oy => 0, # Posição vertical.
  146.                    
  147.     } # <= Não deletar.
  148.    
  149.     #══════════════════════════════════════════════════════════════════════════
  150.     # - Janela de Informação. -
  151.     # Aqui você configura a janela onde a informação dos tópicos são mostrados.
  152.     #══════════════════════════════════════════════════════════════════════════
  153.     Info_Main = {
  154.                     # Fonte da janela.
  155.                     :font_name => 'Lato',
  156.                    
  157.                     # Tamanho da fonte.
  158.                     :font_size => 18,
  159.                    
  160.                     # Ativar bordas da fonte?
  161.                     :font_outline => false,
  162.                    
  163.                     # Cor da fonte.
  164.                     :font_color => Color.new(0, 0, 0, 255),
  165.                    
  166.                     # Windowskin da janela.
  167.                     :windowskin => 'Window',
  168.                    
  169.                     # Usar uma imagem no lugar da janela?
  170.                     :image? => true,
  171.                    
  172.                     # Pasta onde ele irá procurar a imagem.
  173.                     :folder => 'Graphics/Encyclopedia/BG/',
  174.                    
  175.                     # Nome da imagem na pasta configurada acima.
  176.                     :name => 'Info Box',
  177.                    
  178.                     # Se você quiser alterar a posição da imagem na tela, use isso:
  179.                     :img_ox => 0, # Posição horizontal.
  180.                     :img_oy => 0, # Posição vertical.
  181.                    
  182.     } # <= Não deletar.
  183.    
  184.     #══════════════════════════════════════════════════════════════════════════
  185.     # - Fundo. -
  186.     # Aqui você pode configurar uma imagem para usar como fundo.
  187.     #══════════════════════════════════════════════════════════════════════════
  188.     Background = {
  189.                     # Ativar uma imagem para o fundo?
  190.                     :enable? => true,
  191.                    
  192.                     # Pasta onde deverá ficar a imagem.
  193.                     :folder => 'Graphics/Encyclopedia/BG/',
  194.                    
  195.                     # Nome da imagem na pasta configurada acima.
  196.                     :name => 'Background',
  197.                    
  198.                     # Deseja esticar o fundo para preencher a tela?
  199.                     :scale_to_fit? => true,
  200.                    
  201.     } # <= Não deletar.
  202.    
  203.     #══════════════════════════════════════════════════════════════════════════
  204.     # - Partículas. -
  205.     # Aqui você pode configurar as partículas.
  206.     #══════════════════════════════════════════════════════════════════════════
  207.     Particles = {
  208.                     # Deseja ativar as partículas?
  209.                     :enable? => true,
  210.                    
  211.                     # Pasta onde deverão ficar as partículas.
  212.                     :folder => 'Graphics/Encyclopedia/Particles/',
  213.                    
  214.                     # Nome das partículas. Pode inserir quantas quiser, mas
  215.                     # lembrando que todas elas serão mostradas juntas.
  216.                     :name => ['Light', 'Light2'],
  217.                    
  218.                     # Quantidade de partículas na tela. Cuidado com o lag.
  219.                     :amount => 60,
  220.                    
  221.                     # Se quiser configurar as animações das partículas,
  222.                     # configure aqui.
  223.                     :animation => {
  224.                                     # Movimento das partículas.
  225.                                     # Nota: Se você colocar up e down ao mesmo tempo, elas não se moverão.
  226.                                     #       O mesmo serve para o left e right. Escolha ou um ou outro.
  227.                                     :up => true,        # Mover pra cima?
  228.                                     :right => true,     # Mover pra direita?
  229.                                     :left => false,     # Mover pra esquerda?
  230.                                     :down => false,     # Mover pra baixo?
  231.                                    
  232.                                     # Velocidade das partículas.
  233.                                    
  234.                                     # Velocidade vertical.
  235.                                     :speed1_min => 1, # Velocidade mínima.
  236.                                     :speed1_max => 4, # Velocidade máxima.
  237.                                    
  238.                                     # Velocidade horizontal.
  239.                                     :speed2_min => 1, # Velocidade mínima.
  240.                                     :speed2_max => 2, # Velocidade máxima.
  241.                                    
  242.                     }, # <= Não deletar.
  243.     } # <= Muito menos isso.
  244.    
  245.     #══════════════════════════════════════════════════════════════════════════
  246.     # ■ - Adição de Categorias -
  247.     #══════════════════════════════════════════════════════════════════════════
  248.     # Aqui você pode adicionar as categorias.
  249.     # Veja os exemplos abaixo e adicione as suas da mesma forma.
  250.     #══════════════════════════════════════════════════════════════════════════
  251.     Categories = {
  252.    
  253.                   "Mundo" => { # <= Nome da categoria.
  254.                                   :symbol => :mundo, # Símbolo para identificar a categoria.
  255.                                   :switch_id => 0,   # Switch necessário para que a categoria apareça.
  256.                                                      # Deixe 0 se quiser que ela sempre apareça.
  257.                                   # Deseja usar uma imagem para a categoria?
  258.                                   :image? => true,
  259.                                  
  260.                                   # Pasta onde deverá ficar a imagem.
  261.                                   :folder => 'Graphics/Encyclopedia/Categories/',
  262.                                  
  263.                                   # Nome da imagem na pasta configurada acima.
  264.                                   :image_name => 'Mundo',
  265.                                  
  266.                                   # Deseja usar um ícone para a categoria?
  267.                                   :icon? => true,
  268.                                  
  269.                                   # Index do ícone no iconset.
  270.                                   :icon_index => 224,
  271.                                  
  272.                   }, # Não se esqueça da vírgula.
  273.                  
  274.                   "Masmorras" => {
  275.                                   :symbol => :dungeon,
  276.                                   :switch_id => 0,
  277.                                   :image? => true,
  278.                                   :folder => 'Graphics/Encyclopedia/Categories/',
  279.                                   :image_name => 'Dungeons',
  280.                                   :icon? => true,
  281.                                   :icon_index => 224,
  282.                   }, # Não se esqueça da vírgula.
  283.                  
  284.                   "Informações extras" => {
  285.                                   :symbol => :extra,
  286.                                   :switch_id => 0,
  287.                                   :image? => true,
  288.                                   :folder => 'Graphics/Encyclopedia/Categories/',
  289.                                   :image_name => 'Extra',
  290.                                   :icon? => true,
  291.                                   :icon_index => 224,
  292.                   }, # Não se esqueça da vírgula.
  293.                  
  294.                   "Mecanicas" => {
  295.                                   :symbol => :mecha,
  296.                                   :switch_id => 0,
  297.                                   :image? => true,
  298.                                   :folder => 'Graphics/Encyclopedia/Categories/',
  299.                                   :image_name => 'que',
  300.                                   :icon? => true,
  301.                                   :icon_index => 224,
  302.                   },
  303.                  
  304.     } # <= Não deletar.
  305.    
  306.     #══════════════════════════════════════════════════════════════════════════
  307.     # ■ - Adição de Tópicos -
  308.     #══════════════════════════════════════════════════════════════════════════
  309.     # Aqui você pode adicionar os tópicos.
  310.     # Veja os exemplos abaixo e adicione os seus da mesma forma.
  311.     #══════════════════════════════════════════════════════════════════════════
  312.     Topics = {
  313.    
  314.                 "Runearth" => { # <= Nome do tópico.
  315.                                   :switch_id => 0, # Switch necessário para que o tópico apareça.
  316.                                                    # Deixe 0 se quiser que ele sempre apareça.
  317.                                   # A categoria do tópico.
  318.                                   # Sabe o símbolo usado para identificar a categoria?
  319.                                   # Pois é, é aqui que você usa ele.
  320.                                   :category => :mundo,
  321.                                  
  322.                                   # Texto de informação da categoria.
  323.                                   # Use \n se quiser quebrar uma linha.
  324.                                   # Caso deseje usar aspas dentro do texto,
  325.                                   # use essas: “texto”
  326.                                   :info => "Nome dado ao mundo quando ele foi\nrecriado pelos Grandes Lordes dos\nElementos a alguns milenios atrás.\nReinos surgiram e sucumbiram, mas\nsua religião principal continua a\nmesma desde a criação.",
  327.                                  
  328.                                   # Deseja mostrar uma imagem ao selecionar a categoria?
  329.                                   :image? => true,
  330.                                  
  331.                                   # Pasta onde deverá ficar a imagem.
  332.                                   :folder => 'Graphics/Encyclopedia/Topics/',
  333.                                  
  334.                                   # O nome da imagem na pasta acima.
  335.                                   :image_name => 'Pandora',
  336.                                  
  337.                                   # Deseja usar um ícone para o tópico?
  338.                                   :icon? => true,
  339.                                  
  340.                                   # Index do ícone no iconset.
  341.                                   :icon_index => 230,
  342.                                  
  343.                 }, # Não se esqueça da vírgula.
  344.                
  345.                 "Guerra Mahou Terceira" => {
  346.                                   :switch_id => 0,
  347.                                   :category => :mundo,
  348.                                   :info => "Uma grande guerra travada entre os\ncinco grandes reinos que existiam\nna epóca. Foi uma batalha que\nquase resultou na destruição do\nmundo e levou a prática de usar\nMahou ser proibida e extinta.",
  349.                                   :image? => true,
  350.                                   :folder => 'Graphics/Encyclopedia/Topics/',
  351.                                   :image_name => '3Guerra',
  352.                                   :icon? => true,
  353.                                   :icon_index => 230,
  354.                 },
  355.                 "Reino Frederyck" => {
  356.                                   :switch_id => 0,
  357.                                   :category => :mundo,
  358.                                   :info => "Um dos quatro grandes reinos da\natualidade. Um diferente tipo de\ngoverno que gera ele. Quando alguém é\neleito governante, ele apenas sairá do\npoder quando vier a falecer.\nQuando um governante morre, acontece\numa grande disputa entre jovens de\nfamilias qualificadas pelo trono.",
  359.                                   :image? => true,
  360.                                   :folder => 'Graphics/Encyclopedia/Topics/',
  361.                                   :image_name => 'Frederyck',
  362.                                   :icon? => true,
  363.                                   :icon_index => 230,
  364.                 },
  365.                 "Edelgard" => {
  366.                                   :switch_id => 0,
  367.                                   :category => :mundo,
  368.                                   :info => "Uma pequena vila escondida nos\ndominios do reino de Frederyck.\nUnico local no mundo aonde ainda\nexistem praticantes de Mahou\nlivres. Já que a prática da mesma\nfora proibida no passado.",
  369.                                   :image? => true,
  370.                                   :folder => 'Graphics/Encyclopedia/Topics/',
  371.                                   :image_name => 'Edelgard',
  372.                                   :icon? => true,
  373.                                   :icon_index => 230,
  374.                 },
  375.                 "Casters" => {
  376.                                   :switch_id => 0,
  377.                                   :category => :extra,
  378.                                   :info => "Caster são como são chamados os\nhabitantes de Edelgard, uma vila\nsecreta que fica nos dominios do\nreino de Frederyck.\nPraticantes natos de Mahou em sua\nforma mais pura.",
  379.                                   :image? => true,
  380.                                   :folder => 'Graphics/Encyclopedia/Topics/',
  381.                                   :image_name => 'Casters',
  382.                                   :icon? => true,
  383.                                   :icon_index => 230,
  384.                 },
  385.                 "Avatares dos LE" => {
  386.                                   :switch_id => 0,
  387.                                   :category => :extra,
  388.                                   :info => "Forma física que alguns Lordes\nElementais tomam para se manifestarem\nno mundo material.\nEmbora não se saiba se existe algum\nLorde Elemental da Luz e das Sombras\nexpecula-se que talvez existam e\napenas nunca se manifestaram no mundo\nmaterial.",
  389.                                   :image? => true,
  390.                                   :folder => 'Graphics/Encyclopedia/Topics/',
  391.                                   :image_name => 'Elementals',
  392.                                   :icon? => true,
  393.                                   :icon_index => 230,
  394.                 },
  395.                 "Seirei" => {
  396.                                   :switch_id => 0,
  397.                                   :category => :extra,
  398.                                   :info => "Espiritos elementais que habitam\nesse mundo. Ajudam humanos em\ntarefas simples e as vezes até\nmais complexas. Como a arte de\nMahou pura foi perdida, muitos\nusam Seireis como meio para tal.",
  399.                                   :image? => true,
  400.                                   :folder => 'Graphics/Encyclopedia/Topics/',
  401.                                   :image_name => 'Seirei',
  402.                                   :icon? => true,
  403.                                   :icon_index => 230,
  404.                 },
  405.                 "Mahou" => {
  406.                                   :switch_id => 0,
  407.                                   :category => :extra,
  408.                                   :info => "Mahou é a forma de energia primaria\ndos Seireis e das criaturas mágicas em\ngeral. \nMahou pode ser usado, como o nome\nsugere, para usar Mahou em usa forma\nmais pura.\nNo entanto pessoas comuns apenas\npodem usar Mahou via algum artefato.",
  409.                                   :image? => true,
  410.                                   :folder => 'Graphics/Encyclopedia/Topics/',
  411.                                   :image_name => 'Mahou',
  412.                                   :icon? => true,
  413.                                   :icon_index => 230,
  414.                 },
  415.                 "Floresta da cachoeira" => {
  416.                                   :switch_id => 0,
  417.                                   :category => :dungeon,
  418.                                   :info => "Uma floresta habitada por criaturas\nnão muito hostis.\nPossui uma bela cachoeira que pode\nesconder muitos segredos, ou não.",
  419.                                   :image? => true,
  420.                                   :folder => 'Graphics/Encyclopedia/Topics/',
  421.                                   :image_name => 'Waterfall',
  422.                                   :icon? => true,
  423.                                   :icon_index => 230,
  424.                 },
  425.                 "Ruinas de Mahou" => {
  426.                                   :switch_id => 28,
  427.                                   :category => :dungeon,
  428.                                   :info => "Caverna que esconde muitos segredos\ndo passado.\nÚnico conexão viavel de Edelgard com\no resto do mundo inteiro.",
  429.                                   :image? => true,
  430.                                   :folder => 'Graphics/Encyclopedia/Topics/',
  431.                                   :image_name => 'MahouCave',
  432.                                   :icon? => true,
  433.                                   :icon_index => 230,
  434.                 },
  435.                 "Atacar" => {
  436.                                   :switch_id => 0,
  437.                                   :category => :mecha,
  438.                                   :info => "Forma comum de causar dano em algum\noponente.\nUtiliza uma simples formula comum\nbaseada no ataque.\n(Algumas armas especiais podem ter uma\nformula diferente, mas os casos são\nraros e o jogador é informado.)",
  439.                                   :image? => true,
  440.                                   :folder => 'Graphics/Encyclopedia/Mechanics/',
  441.                                   :image_name => 'Attack',
  442.                                   :icon? => true,
  443.                                   :icon_index => 230,
  444.                 },
  445.                 "Defender" => {
  446.                                   :switch_id => 0,
  447.                                   :category => :mecha,
  448.                                   :info => "Comando simples que faz o usuario\nreceber qualquer dano pela metade e\nainda regenerar um pouco de MP e TP.",
  449.                                   :image? => true,
  450.                                   :folder => 'Graphics/Encyclopedia/Mechanics/',
  451.                                   :image_name => 'Escudo',
  452.                                   :icon? => true,
  453.                                   :icon_index => 230,
  454.                 },
  455.                 "Artes" => {
  456.                                   :switch_id => 0,
  457.                                   :category => :mecha,
  458.                                   :info => "Habilidades especias que os\npersonagens podem ter.\nSeus efeitos são variados, vindo de\ngolpes que causam dano fisico, até\ngolpes que podem remover status\nnegativos de algum aliado.",
  459.                                   :image? => true,
  460.                                   :folder => 'Graphics/Encyclopedia/Mechanics/',
  461.                                   :image_name => 'Artes',
  462.                                   :icon? => true,
  463.                                   :icon_index => 230,
  464.                 },
  465.                 "Mahous" => {
  466.                                   :switch_id => 0,
  467.                                   :category => :mecha,
  468.                                   :info => "Feitiços e encantamentos que podem ser\nde origem elemental ou não.\nApenas Casters tem acesso a Mahou e\nsuas lista de Mahous muda de Caster\npara Caster. Podendo ser influenciada\npor equipamentos, Seireis ou até\nmesmo aprendida por meio de algum\nterceiro muito habilidoso.",
  469.                                   :image? => true,
  470.                                   :folder => 'Graphics/Encyclopedia/Mechanics/',
  471.                                   :image_name => 'Magic',
  472.                                   :icon? => true,
  473.                                   :icon_index => 230,
  474.                 },
  475.                 "Passivas" => {
  476.                                   :switch_id => 0,
  477.                                   :category => :mecha,
  478.                                   :info => "Habilidades que estão sempre ativas em\nalgum personagem.\nVariam de habilidades uteis para\nexploração, aumento de stats, a até\nmesmo regeneração de HP.",
  479.                                   :image? => true,
  480.                                   :folder => 'Graphics/Encyclopedia/Mechanics/',
  481.                                   :image_name => 'Passivas',
  482.                                   :icon? => true,
  483.                                   :icon_index => 230,
  484.                 },
  485.                 "Formula Comum de dano" => {
  486.                                   :switch_id => 0,
  487.                                   :category => :mecha,
  488.                                   :info => "Formula padrão para golpes físicos\nque é usada na maioria dos casos é:\n(Ataque do Usuario x 2) - Defesa do\noponente.\nFormula padrão de Mahous é:\n(Ataque Magico do Usuario x 2) -\n(Defesa Magica do Oponente x 2)\nAlgumas podem variar, mas ai o padrão.",
  489.                                   :image? => true,
  490.                                   :folder => 'Graphics/Encyclopedia/Mechanics/',
  491.                                   :image_name => 'Formula',
  492.                                   :icon? => true,
  493.                                   :icon_index => 230,
  494.                 },
  495.                 "Armas" => {
  496.                                   :switch_id => 0,
  497.                                   :category => :mecha,
  498.                                   :info => "Equipamento que fica responsavel por\naumentar o stat de ATK ou MAG\nprimariamente.\nCertas armas tem efeitos especiais\nque estarão na descrição da mesma.",
  499.                                   :image? => true,
  500.                                   :folder => 'Graphics/Encyclopedia/Mechanics/',
  501.                                   :image_name => 'Armas',
  502.                                   :icon? => true,
  503.                                   :icon_index => 230,
  504.                 },
  505.                 "Equipamento" => {
  506.                                   :switch_id => 0,
  507.                                   :category => :mecha,
  508.                                   :info => "Composto por Elmo e Vestimento, são\nseparados em 3 tipos diferentes:\nRoupas Comuns(em geral roupas leves\nque a maioria dos personagens usam),\nArmaduras(Armaduras pesadas que\ngeralmente tem uma otima defesa) e\nTúnicas(Em geral focam na defesa\nmágica do usuário e menos na física.",
  509.                                   :image? => true,
  510.                                   :folder => 'Graphics/Encyclopedia/Mechanics/',
  511.                                   :image_name => 'Armadura',
  512.                                   :icon? => true,
  513.                                   :icon_index => 230,
  514.                 },
  515.                 "Acessorios e ORBs" => {
  516.                                   :switch_id => 0,
  517.                                   :category => :mecha,
  518.                                   :info => "Acessorios em geral concedem diversos\ntipos de efeitos especiais.\nO mesmo vale para ORBs, mas por seus\nefeitos serem bem mais possiveis de\nquebrar o jogo, decidi separar em\nduas categorias diferentes.",
  519.                                   :image? => true,
  520.                                   :folder => 'Graphics/Encyclopedia/Mechanics/',
  521.                                   :image_name => 'ORBs',
  522.                                   :icon? => true,
  523.                                   :icon_index => 230,
  524.                 },
  525.                 "Seireis" => {
  526.                                   :switch_id => 0,
  527.                                   :category => :mecha,
  528.                                   :info => "Seireis podem ser equipados no Aster\npara lhe permitir acesso a Mahous\nnovas, bonus de status.\nComo sempre, estará na descrição de\ncada um sua útilidade.",
  529.                                   :image? => true,
  530.                                   :folder => 'Graphics/Encyclopedia/Mechanics/',
  531.                                   :image_name => 'Seireis',
  532.                                   :icon? => true,
  533.                                   :icon_index => 230,
  534.                 },
  535.                 "Crystais de Salve" => {
  536.                                   :switch_id => 0,
  537.                                   :category => :mecha,
  538.                                   :info => "Crystais que permitem ao jogador se\ncurar uma vez(gratuitamente) e salvar\no seu progresso.",
  539.                                   :image? => true,
  540.                                   :folder => 'Graphics/Encyclopedia/Mechanics/',
  541.                                   :image_name => 'Cristais',
  542.                                   :icon? => true,
  543.                                   :icon_index => 230,
  544.                 },
  545.                 "Armadilhas" => {
  546.                                   :switch_id => 29,
  547.                                   :category => :mecha,
  548.                                   :info => "Armadilhas que prejudicam o progresso.\nPodem ser desativadas caso Rain ou\nalgum aliado possua Detectar Armdilha.",
  549.                                   :image? => true,
  550.                                   :folder => 'Graphics/Encyclopedia/Mechanics/',
  551.                                   :image_name => 'Traps',
  552.                                   :icon? => true,
  553.                                   :icon_index => 230,
  554.                 },
  555.                
  556.     } # <= Não deletar.
  557.    
  558.   end # Encyclopedia
  559. end # Nova
  560. #==============================================================================
  561. # ▼ - Fim das Configurações -
  562. # Alterar algo após aqui pode causar falhas no funcionamento do sistema.
  563. #==============================================================================
  564.  
  565. #═══════════════════════════════════════════════════════════════════════════════
  566. # ■ Encyclopedia
  567. #═══════════════════════════════════════════════════════════════════════════════
  568. class Encyclopedia < Scene_Base
  569.   include Nova::Encyclopedia
  570.  
  571.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  572.  # ● Start
  573.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  574.   def start
  575.     super
  576.     exec_instance_variables
  577.     exec_background
  578.     exec_particles
  579.     exec_all_windows
  580.   end
  581.  
  582.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  583.  # ● Exec Instance Variables
  584.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  585.   def exec_instance_variables
  586.     @particles = []
  587.     @global_mode = nil
  588.     @category = nil
  589.     @category_bitmap = nil
  590.     @topics_bitmap = nil
  591.     @text_index = nil
  592.   end
  593.  
  594.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  595.  # ● Exec All Windows
  596.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  597.   def exec_all_windows
  598.    
  599.     #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  600.     # ● Help Window
  601.     #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  602.     hw = Graphics.width;    hh = 48
  603.     hx = 0;                 hy = Graphics.height - hh
  604.     @pedia_help = Pedia_Help.new(hx, hy, hw, hh)
  605.     @pedia_help.category_text; @pedia_help.help_bar
  606.    
  607.     #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  608.     # ● Category Window
  609.     #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  610.     cx = 0;                     cy = 0
  611.     cw = Graphics.width * 0.4;  ch = Graphics.height - @pedia_help.height
  612.     @pedia_category = Pedia_Category.new(cx, cy, cw, ch)
  613.     exec_category_sprites; @pedia_category.back_sprite
  614.    
  615.     #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  616.     # ● Topics Window
  617.     #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  618.     tx = 0;                     ty = 0
  619.     tw = Graphics.width * 0.4;  th = Graphics.height - @pedia_help.height
  620.     @pedia_topics = Pedia_Topics.new(tx, ty, tw, th)
  621.     exec_topics_sprites; @pedia_topics.back_sprite
  622.     if Topics_Main[:image?]
  623.       @pedia_topics.back_box.visible = false
  624.     end
  625.    
  626.     #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  627.     # ● Info Window
  628.     #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  629.     px = @pedia_topics.width;   py = Graphics.height * 0.3
  630.     pw = Graphics.width - px;   ph = (Graphics.height - py) - @pedia_help.height
  631.     @pedia_info = Pedia_Information.new(px, py, pw, ph)
  632.     @pedia_info.visible = false; @pedia_info.back_sprite
  633.   end
  634.  
  635.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  636.  # ● Exec Background
  637.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  638.   def exec_background
  639.     @background = Sprite.new
  640.     if Background[:enable?]
  641.       @background.bitmap = Bitmap.new(Background[:folder] + Background[:name])
  642.       if Background[:scale_to_fit?]
  643.         @background.zoom_x = Graphics.width.to_f / @background.bitmap.width
  644.         @background.zoom_y = Graphics.height.to_f / @background.bitmap.height
  645.       end
  646.     else
  647.       @background.bitmap = SceneManager.background_bitmap
  648.       @background.color.set(16, 16, 16, 128)
  649.     end
  650.   end
  651.  
  652.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  653.  # ● Exec Particles
  654.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  655.   def exec_particles
  656.     if Particles[:enable?]
  657.       for num in 0..Particles[:amount]
  658.         @particles.push(Pedia_Particles.new)
  659.       end
  660.     end
  661.   end
  662.  
  663.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  664.  # ● Exec Category Sprites
  665.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  666.   def exec_category_sprites
  667.     @category_sprite = Sprite.new
  668.     @category_sprite.z = 100
  669.     @category_sprite.x = 300
  670.     @category_sprite.y = 29
  671.   end
  672.  
  673.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  674.  # ● Exec Topics Sprites
  675.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  676.   def exec_topics_sprites
  677.     @topics_sprite = Sprite.new
  678.     @topics_sprite.z = 100
  679.     @topics_sprite.x = 300
  680.     @topics_sprite.y = 29
  681.   end
  682.  
  683.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  684.  # ● Update
  685.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  686.   def update
  687.     super
  688.     method_return if Input.trigger?(:B)
  689.     flip_global_mode
  690.     flip_mode
  691.     method_particles
  692.     method_category_sprites
  693.     method_topics_sprites
  694.     method_information
  695.   end
  696.  
  697.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  698.  # ● Method Return
  699.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  700.   def method_return
  701.     return if @pedia_category.nil? || !@pedia_category.active
  702.     if Input.trigger?(:B)
  703.       Sound.play_cancel
  704.       return_scene
  705.     end
  706.   end
  707.  
  708.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  709.  # ● Flip Global Mode
  710.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  711.   def flip_global_mode
  712.     if @pedia_category.active
  713.       @global_mode = :category
  714.     else
  715.       @global_mode = :topics
  716.     end
  717.   end
  718.  
  719.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  720.  # ● Flip Mode
  721.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  722.   def flip_mode
  723.     if @global_mode == :category
  724.       if Input.trigger?(:C)
  725.         Sound.play_ok
  726.         flip_topics
  727.       end
  728.     elsif @global_mode == :topics
  729.       if Input.trigger?(:B)
  730.         Sound.play_cancel
  731.         method_topics_hide
  732.       end
  733.     end
  734.   end
  735.  
  736.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  737.  # ● Flip Topics
  738.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  739.   def flip_topics
  740.     data = @pedia_category.data[@pedia_category.index]
  741.     @category = data[:symbol]
  742.     method_category_hide
  743.   end
  744.  
  745.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  746.  # ● Method Category Hide
  747.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  748.   def method_category_hide
  749.     @pedia_category.deactivate
  750.     @pedia_category.visible = false
  751.     if Category_Main[:image?]
  752.       @pedia_category.back_box.visible = false
  753.     end
  754.     @category_sprite.visible = false
  755.     @pedia_help.topic_text
  756.     @pedia_topics.exec_commands(@category)
  757.     @pedia_topics.visible = true
  758.     if Topics_Main[:image?]
  759.       @pedia_topics.back_box.visible = true
  760.     end
  761.     @pedia_info.visible = true
  762.     if Info_Main[:image?]
  763.       @pedia_info.back_box.visible = true
  764.     end
  765.     if @pedia_topics.data == []
  766.       @topics_sprite.visible = false
  767.     else
  768.       @topics_sprite.visible = true
  769.     end
  770.     @pedia_topics.activate
  771.   end
  772.  
  773.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  774.  # ● Method Topics Hide
  775.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  776.   def method_topics_hide
  777.     @pedia_topics.deactivate
  778.     @pedia_topics.visible = false
  779.     if Topics_Main[:image?]
  780.       @pedia_topics.back_box.visible = false
  781.     end
  782.     @pedia_info.visible = false
  783.     if Info_Main[:image?]
  784.       @pedia_info.back_box.visible = false
  785.     end
  786.     @topics_sprite.visible = false
  787.     @pedia_help.category_text
  788.     @pedia_category.visible = true
  789.     if Category_Main[:image?]
  790.       @pedia_category.back_box.visible = true
  791.     end
  792.     @category_sprite.visible = true
  793.     @pedia_category.activate
  794.   end
  795.  
  796.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  797.  # ● Method Information
  798.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  799.   def method_information
  800.     data = @pedia_topics.data[@pedia_topics.index]
  801.     return if data.nil?
  802.     text = data[:info]
  803.     if @text_index != text
  804.       @text_index = text
  805.       @pedia_info.display_info(text)
  806.     end
  807.   end
  808.  
  809.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  810.  # ● Method Particles
  811.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  812.   def method_particles
  813.     if Particles[:enable?]
  814.       @particles.each do |particle|
  815.         particle.animate
  816.       end
  817.     end
  818.   end
  819.  
  820.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  821.  # ● Method Category Sprites
  822.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  823.   def method_category_sprites
  824.     data = @pedia_category.data[@pedia_category.index]
  825.     path = data[:folder]
  826.     name = data[:image_name]
  827.     if @category_bitmap != path + name
  828.       @category_bitmap = path + name
  829.       if data[:image?]
  830.         @category_sprite.bitmap = Bitmap.new(path + name)
  831.       else
  832.         @category_sprite.bitmap = Bitmap.new(1, 1)
  833.       end
  834.     end
  835.   end
  836.  
  837.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  838.  # ● Method Topics Sprites
  839.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  840.   def method_topics_sprites
  841.     data = @pedia_topics.data[@pedia_topics.index]
  842.     return if data.nil?
  843.     path = data[:folder]
  844.     name = data[:image_name]
  845.    
  846.     if @topics_bitmap != path + name
  847.       @topics_bitmap = path + name
  848.       if data[:image?]
  849.         @topics_sprite.bitmap = Bitmap.new(path + name)
  850.       else
  851.         @topics_sprite.bitmap = Bitmap.new(1, 1)
  852.       end
  853.     end
  854.   end
  855.  
  856.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  857.  # ● Terminate
  858.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  859.   def terminate
  860.     super
  861.     @particles.each do |particle|
  862.       particle.bitmap.dispose
  863.       particle.dispose
  864.     end
  865.     instance_variables.each do |iv|
  866.       ig = instance_variable_get(iv)
  867.       ig.bitmap.dispose if ig.is_a?(Sprite) && !ig.bitmap.nil?
  868.       ig.dispose if ig.is_a?(Sprite)
  869.     end
  870.   end
  871.  
  872. end # Encyclopedia
  873.  
  874. #═══════════════════════════════════════════════════════════════════════════════
  875. # ■ Pedia_Particles
  876. #═══════════════════════════════════════════════════════════════════════════════
  877. class Pedia_Particles < Sprite
  878.   include Nova::Encyclopedia
  879.  
  880.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  881.  # ● Initialize
  882.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  883.   def initialize(viewport = nil)
  884.     super
  885.     setup
  886.     @anim_type = nil
  887.   end
  888.  
  889.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  890.  # ● Setup
  891.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  892.   def setup
  893.     @speed = Particles[:animation][:speed1_min] + rand(Particles[:animation][:speed1_max] - 1)
  894.     @speed2 = Particles[:animation][:speed2_min] + rand(Particles[:animation][:speed2_max] - 1)
  895.     @angletype = rand(2)
  896.     ind = rand(Particles[:name].size)
  897.     self.bitmap = Bitmap.new(Particles[:folder] + Particles[:name][ind])
  898.     self.blend_type = rand(2)
  899.     self.x = rand(Graphics.width)
  900.     self.y = rand(Graphics.height) if !anim_up && !anim_down
  901.     self.y = Graphics.height + rand(Graphics.height) if anim_up
  902.     self.y = -rand(Graphics.height) if anim_down
  903.     self.ox = self.bitmap.width / 2
  904.     self.oy = self.bitmap.height / 2
  905.     self.zoom_x = rand(2)
  906.     self.zoom_y = self.zoom_x
  907.     self.opacity = 0
  908.   end
  909.  
  910.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  911.  # ● Animate
  912.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  913.   def animate
  914.     if anim_up && !anim_down
  915.       setup if self.y <= -50
  916.       self.y -= @speed
  917.     end
  918.     if anim_down && !anim_up
  919.       setup if self.y >= Graphics.height + 50
  920.       self.y += @speed
  921.     end
  922.     if anim_right && !anim_left
  923.       setup if self.x >= Graphics.width + 50
  924.       self.x += @speed2
  925.     end
  926.     if anim_left && !anim_right
  927.       setup if self.x <= -50
  928.       self.x -= @speed2
  929.     end
  930.     if @angletype == 1
  931.       self.angle += rand(4)
  932.     else
  933.       self.angle -= rand(4)
  934.     end
  935.     self.opacity += 2 unless self.opacity >= 255
  936.   end
  937.  
  938.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  939.  # ● Directions
  940.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  941.   def anim_up;      return Particles[:animation][:up];    end
  942.   def anim_down;    return Particles[:animation][:down];  end
  943.   def anim_right;   return Particles[:animation][:right]; end
  944.   def anim_left;    return Particles[:animation][:left];  end
  945.  
  946. end # Pedia_Particles
  947.  
  948. #═══════════════════════════════════════════════════════════════════════════════
  949. # ■ Pedia_Category
  950. #═══════════════════════════════════════════════════════════════════════════════
  951. class Pedia_Category < Window_Selectable
  952.   include Nova::Encyclopedia
  953.  
  954.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  955.  # ● Public Variables
  956.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  957.   attr_reader :data
  958.   attr_accessor :back_box
  959.  
  960.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  961.  # ● Initialize
  962.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  963.   def initialize(x, y, w, h)
  964.     super
  965.     self.windowskin = Cache.system(Category_Main[:windowskin])
  966.     select(0)
  967.     activate
  968.     @data = []
  969.     @commands = []
  970.     Categories.each_key do |category|
  971.       switch_id = Categories[category][:switch_id]
  972.       next unless $game_switches[switch_id] || switch_id == 0
  973.       @data.push(Categories[category])
  974.       @commands.push(category)
  975.     end
  976.     exec_commands
  977.   end
  978.  
  979.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  980.  # ● Exec Commands
  981.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  982.   def exec_commands
  983.     for c in 0..@commands.size - 1
  984.       if @data[c][:icon?] == true
  985.         draw_icon(@data[c][:icon_index], 4, line_height * c)
  986.       end
  987.       draw_command(@commands[c], c, @data[c][:icon?])
  988.     end
  989.   end
  990.  
  991.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  992.  # ● Draw Command
  993.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  994.   def draw_command(com, ind, icon)
  995.     x = icon ? 32 : 4
  996.     self.contents.draw_text(x, line_height * ind, self.width, line_height, com)
  997.   end
  998.  
  999.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1000.  # ● Item Max
  1001.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1002.   def item_max
  1003.     @data.nil? ? 0 : @data.size
  1004.   end
  1005.  
  1006.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1007.  # ● Back Sprite
  1008.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1009.   def back_sprite
  1010.     if Category_Main[:image?]
  1011.       self.opacity = 0
  1012.       @back_box = Sprite.new
  1013.       @back_box.z = self.z - 1
  1014.       path = Category_Main[:folder]
  1015.       name = Category_Main[:name]
  1016.       @back_box.bitmap = Bitmap.new(path + name)
  1017.       @back_box.ox = Category_Main[:img_ox]
  1018.       @back_box.oy = Category_Main[:img_oy]
  1019.       @back_box.x = self.x
  1020.       @back_box.y = self.y
  1021.     end
  1022.   end
  1023.  
  1024.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1025.  # ● Dispose
  1026.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1027.   def dispose
  1028.     super
  1029.     @back_box.bitmap.dispose; @back_box.dispose
  1030.   end
  1031.  
  1032. end # Pedia_Category
  1033.  
  1034. #═══════════════════════════════════════════════════════════════════════════════
  1035. # ■ Pedia_Help
  1036. #═══════════════════════════════════════════════════════════════════════════════
  1037. class Pedia_Help < Window_Base
  1038.   include Nova::Encyclopedia
  1039.  
  1040.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1041.  # ● Initialize
  1042.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1043.   def initialize(x, y, w, h)
  1044.     super
  1045.     self.windowskin = Cache.system(Help[:windowskin])
  1046.   end
  1047.  
  1048.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1049.  # ● Category Text
  1050.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1051.   def category_text
  1052.     contents.clear
  1053.     draw_text_ex(0, 0, Help[:category_vocab])
  1054.   end
  1055.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1056.  # ● Topic Text
  1057.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1058.   def topic_text
  1059.     contents.clear
  1060.     draw_text_ex(0, 0, Help[:topics_vocab])
  1061.   end
  1062.  
  1063.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1064.  # ● Help Bar
  1065.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1066.   def help_bar
  1067.     if Help[:image?]
  1068.       self.opacity = 0
  1069.       @help_bar = Sprite.new
  1070.       @help_bar.z = self.z - 1
  1071.       path = Help[:folder]
  1072.       name = Help[:name]
  1073.       @help_bar.bitmap = Bitmap.new(path + name)
  1074.       @help_bar.ox = Help[:img_ox]
  1075.       @help_bar.oy = Help[:img_oy]
  1076.       @help_bar.x = self.x
  1077.       @help_bar.y = self.y
  1078.     end
  1079.   end
  1080.  
  1081.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1082.  # ● Dispose
  1083.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1084.   def dispose
  1085.     super
  1086.     @help_bar.bitmap.dispose; @help_bar.dispose
  1087.   end
  1088.  
  1089. end # Pedia_Help
  1090.  
  1091. #═══════════════════════════════════════════════════════════════════════════════
  1092. # ■ Pedia_Topics
  1093. #═══════════════════════════════════════════════════════════════════════════════
  1094. class Pedia_Topics < Window_Selectable
  1095.   include Nova::Encyclopedia
  1096.  
  1097.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1098.  # ● Public Variables
  1099.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1100.   attr_reader :data
  1101.   attr_accessor :back_box
  1102.  
  1103.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1104.  # ● Initialize
  1105.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1106.   def initialize(x, y, w, h)
  1107.     super
  1108.     self.windowskin = Cache.system(Topics_Main[:windowskin])
  1109.     self.visible = false
  1110.     select(0)
  1111.     @data = []
  1112.     @commands = []
  1113.   end
  1114.  
  1115.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1116.  # ● Exec Commands
  1117.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1118.   def exec_commands(cat)
  1119.     @data.clear
  1120.     @commands.clear
  1121.     self.contents.clear
  1122.     Topics.each_key do |category|
  1123.       switch_id = Topics[category][:switch_id]
  1124.       next unless $game_switches[switch_id] || switch_id == 0
  1125.       next if Topics[category][:category] != cat
  1126.       @data.push(Topics[category])
  1127.       @commands.push(category)
  1128.     end
  1129.     refresh    
  1130.     for c in 0..@commands.size - 1
  1131.       if @data[c][:icon?] == true
  1132.         draw_icon(@data[c][:icon_index], 4, line_height * c)
  1133.       end
  1134.       draw_command(@commands[c], c, @data[c][:icon?])
  1135.     end
  1136.     while index >= @data.size
  1137.       unselect
  1138.     end
  1139.     if index < 0
  1140.       select(0)
  1141.     end
  1142.   end
  1143.  
  1144.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1145.  # ● Refresh
  1146.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1147.   def refresh
  1148.     create_contents
  1149.     super
  1150.   end
  1151.  
  1152.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1153.  # ● Draw Command
  1154.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1155.   def draw_command(com, ind, icon)
  1156.     x = icon ? 32 : 4
  1157.     self.contents.draw_text(x, line_height * ind, self.width, line_height, com)
  1158.   end
  1159.  
  1160.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1161.  # ● Item Max
  1162.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1163.   def item_max
  1164.     @data.nil? ? 0 : @data.size
  1165.   end
  1166.  
  1167.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1168.  # ● Back Sprite
  1169.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1170.   def back_sprite
  1171.     if Topics_Main[:image?]
  1172.       self.opacity = 0
  1173.       @back_box = Sprite.new
  1174.       @back_box.z = self.z - 1
  1175.       path = Topics_Main[:folder]
  1176.       name = Topics_Main[:name]
  1177.       @back_box.bitmap = Bitmap.new(path + name)
  1178.       @back_box.ox = Topics_Main[:img_ox]
  1179.       @back_box.oy = Topics_Main[:img_oy]
  1180.       @back_box.x = self.x
  1181.       @back_box.y = self.y
  1182.     end
  1183.   end
  1184.  
  1185.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1186.  # ● Dispose
  1187.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1188.   def dispose
  1189.     super
  1190.     @back_box.bitmap.dispose; @back_box.dispose
  1191.   end
  1192.  
  1193. end # Pedia_Topics
  1194.  
  1195. #═══════════════════════════════════════════════════════════════════════════════
  1196. # ■ Pedia_Information
  1197. #═══════════════════════════════════════════════════════════════════════════════
  1198. class Pedia_Information < Window_Base
  1199.   include Nova::Encyclopedia
  1200.  
  1201.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1202.  # ● Public Variables
  1203.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1204.   attr_accessor :back_box
  1205.  
  1206.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1207.  # ● Initialize
  1208.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1209.   def initialize(x, y, w, h)
  1210.     super
  1211.     self.contents.font.name = Info_Main[:font_name]
  1212.     self.contents.font.size = Info_Main[:font_size]
  1213.     self.contents.font.color = Info_Main[:font_color]
  1214.     self.contents.font.outline = Info_Main[:font_outline]
  1215.     self.windowskin = Cache.system(Info_Main[:windowskin])
  1216.   end
  1217.  
  1218.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1219.  # ● Display Info
  1220.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1221.   def display_info(text)
  1222.     self.contents.clear
  1223.     draw_text_ex(0, 0, text)
  1224.   end
  1225.  
  1226.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1227.  # ● Reset Font Settings
  1228.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1229.   def reset_font_settings; end
  1230.  
  1231.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1232.  # ● Back Sprite
  1233.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1234.   def back_sprite
  1235.     if Info_Main[:image?]
  1236.       self.opacity = 0
  1237.       @back_box = Sprite.new
  1238.       @back_box.visible = false
  1239.       @back_box.z = self.z - 1
  1240.       path = Info_Main[:folder]
  1241.       name = Info_Main[:name]
  1242.       @back_box.bitmap = Bitmap.new(path + name)
  1243.       @back_box.ox = Info_Main[:img_ox]
  1244.       @back_box.oy = Info_Main[:img_oy]
  1245.       @back_box.x = self.x
  1246.       @back_box.y = self.y
  1247.     end
  1248.   end
  1249.  
  1250.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1251.  # ● Dispose
  1252.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1253.   def dispose
  1254.     super
  1255.     @back_box.bitmap.dispose; @back_box.dispose
  1256.   end
  1257.  
  1258. end # Pedia_Information
  1259.  
  1260. #═══════════════════════════════════════════════════════════════════════════════
  1261. # ■ Window_MenuCommand
  1262. #═══════════════════════════════════════════════════════════════════════════════
  1263. class Window_MenuCommand < Window_Command
  1264.  
  1265.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1266.  # ● Add Save Command
  1267.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1268.   alias :nv_e_asc add_save_command
  1269.   def add_save_command
  1270.     pedia = Nova::Encyclopedia::Command_in_Menu
  1271.     flag = pedia[:switch]
  1272.     on = flag == 0 ? true : $game_switches[pedia[:switch]]
  1273.     if pedia[:enable?]
  1274.       add_command(pedia[:name], :pedia, on)
  1275.     end
  1276.     nv_e_asc
  1277.   end
  1278.  
  1279. end # Window_MenuCommand
  1280.  
  1281. #═══════════════════════════════════════════════════════════════════════════════
  1282. # ■ Scene_Menu
  1283. #═══════════════════════════════════════════════════════════════════════════════
  1284. class Scene_Menu < Scene_MenuBase
  1285.  
  1286.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1287.  # ● Create Command Window
  1288.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1289.   alias :nv_pedia_ccw create_command_window
  1290.   def create_command_window
  1291.     nv_pedia_ccw
  1292.     @command_window.set_handler(:pedia, method(:nova_pedia))
  1293.   end
  1294.  
  1295.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1296.  # ● Nova Pedia
  1297.  #▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  1298.   def nova_pedia
  1299.     SceneManager.call(Encyclopedia)
  1300.   end
  1301.  
  1302. end # Scene_Menu
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement