Project1

标题: MOG BOSS破限【已经解决】 [打印本页]

作者: j296196585    时间: 2017-7-28 12:34
标题: MOG BOSS破限【已经解决】
本帖最后由 j296196585 于 2017-7-29 13:11 编辑

高额悬赏  找人修改插件

因为是葡萄牙语 看不懂坐标在哪里。。

他的最大显示数只有6位数 有没有 朋友给多填几个0 的  因为全是

微信 j296196585
QQ 296196585   
会的弟兄姐妹帮帮忙。。。



JAVASCRIPT 代码复制
  1. //=============================================================================
  2. // MOG_Theatrhythm.js
  3. //=============================================================================
  4.  
  5. /*:
  6.  * @plugindesc (v1.4) 小游戏《最终幻想》的游戏节奏剧场。
  7.  * @author 你大爷
  8.  *
  9.  * @param >> MAIN ===================
  10.  * @desc
  11.  * @default
  12.  *
  13.  * @param Points Variable ID
  14.  * @desc Definição da variável que ficara guardada a quantidade de Pontos.
  15.  * @default 5
  16.  *
  17.  * @param Result Switch ID
  18.  * @desc Definição da switch que corresponde a vitória ou derrota do minigame.
  19.  * @default 10
  20.  *
  21.  * @param Score Base
  22.  * @desc Definição do valor basico dos pontos.
  23.  * @default 10
  24.  *
  25.  * @param Chain Bonus
  26.  * @desc Definição do valor dos pontos ganhos fazer combos.
  27.  * @default 5
  28.  *
  29.  * @param Critical Bonus Percentage
  30.  * @desc Definição da porcentagem ao fazer danos críticos.
  31.  * @default 1.5  
  32.  *
  33.  * @param Max Chain Bonus Percentage
  34.  * @desc Definição da porcentagem ganho no resultado final.
  35.  * @default 0.01
  36.  *
  37.  * @param Miss Dmg Percentage
  38.  * @desc Definição da porcentagem de dano ao errar ou deixar o botão passar.
  39.  * @default 0
  40.  *
  41.  * @param BP Base Value
  42.  * @desc Definição do valor base do Battle Power.
  43.  * @default 50
  44.  *
  45.  * @param Enemy Atk Animation
  46.  * @desc Definição da animação padrão do ataque inimigo.
  47.  * @default 1
  48.  *
  49.  * @param >> POSITION ===================
  50.  * @desc
  51.  * @default
  52.  *
  53.  * @param Actor X-Axis
  54.  * @desc Definição X-Axis personagem.
  55.  * @default 700  
  56.  *
  57.  * @param Actor Y-Axis
  58.  * @desc Definição Y-Axis personagem.
  59.  * @default 320
  60.  *
  61.  * @param Actor Space Y
  62.  * @desc Definição espaço entre os personagens.
  63.  * @default 80
  64.  *
  65.  * @param Enemy X-Axis
  66.  * @desc Definição da posição X-axis do inimigo.
  67.  * @default 180  
  68.  *
  69.  * @param Enemy Y-Axis
  70.  * @desc Definição da posição Y-axis do inimigo.
  71.  * @default 340
  72.  *
  73.  * @param Button Layout X
  74.  * @desc Definição X-Axis do layout dos botões.
  75.  * @default -62
  76.  *
  77.  * @param Button Layout Y
  78.  * @desc Definição Y-Axis do layout dos botões.
  79.  * @default 5
  80.  *
  81.  * @param Button Flash X
  82.  * @desc Definição X-Axis do flash.
  83.  * @default -140
  84.  *
  85.  * @param Button Flash Y
  86.  * @desc Definição Y-Axis do flash.
  87.  * @default -1
  88.  *
  89.  * @param String X
  90.  * @desc Definição X-Axis das palavras dos botões.
  91.  * @default 130
  92.  *
  93.  * @param String Y
  94.  * @desc Definição Y-Axis das palavras dos botões.
  95.  * @default 0
  96.  *
  97.  * @param Face X
  98.  * @desc Definição X-Axis da face do personagem.
  99.  * @default 420
  100.  *
  101.  * @param Face Y
  102.  * @desc Definição Y-Axis da face do personagem.
  103.  * @default 5     
  104.  *
  105.  * @param Enemy HP Gauge X
  106.  * @desc Definição X-Axis do HP inimigo.
  107.  * @default 17           
  108.  *
  109.  * @param Enemy HP Gauge Y
  110.  * @desc Definição Y-Axis do HP inimigo.
  111.  * @default 600
  112.  *
  113.  * @param Enemy HP Number X
  114.  * @desc Definição Y-Axis do HP inimigo.
  115.  * @default 280
  116.  *
  117.  * @param Enemy HP Number Y
  118.  * @desc Definição Y-Axis do HP inimigo.
  119.  * @default 575
  120.  *
  121.  * @param Party HP Gauge X
  122.  * @desc Definição X-Axis do HP do grupo.
  123.  * @default 573
  124.  *
  125.  * @param Party HP Gauge Y
  126.  * @desc Definição Y-Axis do HP do grupo.
  127.  * @default 30
  128.  *
  129.  * @param Party HP Number X
  130.  * @desc Definição X-Axis do HP do grupo.
  131.  * @default 790
  132.  *
  133.  * @param Party HP Number Y
  134.  * @desc Definição Y-Axis do HP do grupo.
  135.  * @default 32
  136.  *
  137.  * @param Score X
  138.  * @desc Definição X-Axis dos pontos.
  139.  * @default 300
  140.  *
  141.  * @param Score Y
  142.  * @desc Definição Y-Axis dos pontos.
  143.  * @default 10
  144.  *
  145.  * @param Chain X
  146.  * @desc Definição X-Axis do Combo.
  147.  * @default 430
  148.  *
  149.  * @param Chain Y
  150.  * @desc Definição Y-Axis do Combo.
  151.  * @default 130
  152.  *
  153.  * @param Chain Number X
  154.  * @desc Definição X-Axis do numero do Combo.
  155.  * @default 0
  156.  *
  157.  * @param Chain Number Y
  158.  * @desc Definição Y-Axis do numero do Combo.
  159.  * @default 20  
  160.  *
  161.  * @param BP Party X
  162.  * @desc Definição X-axis do BP.
  163.  * @default 615
  164.  *
  165.  * @param BP Party Y
  166.  * @desc Definição Y-axis do BP.
  167.  * @default 95
  168.  *
  169.  * @param BP Enemy X
  170.  * @desc Definição X-axis do BP.
  171.  * @default -70
  172.  *
  173.  * @param BP Enemy Y
  174.  * @desc Definição Y-axis do BP.
  175.  * @default 515
  176.  *
  177.  * @param Phase X
  178.  * @desc Definição X-axis da fase.
  179.  * @default 0
  180.  *
  181.  * @param Phase Y
  182.  * @desc Definição Y-axis da fase.
  183.  * @default 192
  184.  *
  185.  * @param Result X
  186.  * @desc Definição X-axis do resultado.
  187.  * @default 520
  188.  *
  189.  * @param Result Y
  190.  * @desc Definição Y-axis do resultado.
  191.  * @default 240
  192.  *
  193.  * @param Result Font Size
  194.  * @desc Definição do tamanho da fonte.
  195.  * @default 28
  196.  *
  197.  * @param Total X
  198.  * @desc Definição X-axis do total.
  199.  * @default 200  
  200.  *
  201.  * @param Total Y
  202.  * @desc Definição Y-axis do total.
  203.  * @default 330
  204.  *
  205.  * @param Total Font Size
  206.  * @desc Definição do tamanho da fonte.
  207.  * @default 32
  208.  *
  209.  * @param E Name X
  210.  * @desc Definição X-axis do nome do inimigo.
  211.  * @default 300
  212.  *
  213.  * @param E Name Y
  214.  * @desc Definição X-axis do nome do inimigo.
  215.  * @default 575
  216.  *
  217.  * @param E Name Font Size
  218.  * @desc Definição do tamanho da fonte.
  219.  * @default 24
  220.  *
  221.  * @help  
  222.  * =============================================================================
  223.  * +++ MOG - Theatrhythm (v1.4) +++
  224.  * By Moghunter
  225.  * [url]https://atelierrgss.wordpress.com/[/url]
  226.  * =============================================================================
  227.  * Minigame baseado no jogo Final Fantasy Theatrhythm.
  228.  * Os pontos ganhos ao final do mini game serão gravados em uma variável onde
  229.  * poderão posteriormente ser usados durante o jogo.
  230.  * =============================================================================
  231.  * É necessário ter as imagens básicas do sistema gravas na pasta:
  232.  *
  233.  * /img/theatrhythm/
  234.  *
  235.  * =============================================================================
  236.  * Para chamar a cena use o comando abaixo.
  237.  *
  238.  * theatrhythm : EnemyID : Speed
  239.  *
  240.  * Exemplo
  241.  *
  242.  * theatrhythm : 1 : 5
  243.  *
  244.  * =============================================================================
  245.  * Para definir uma animação específica de ataque do inimigo use o comentário
  246.  * abaixo na caixa de notas do inimigo.
  247.  *
  248.  * Theatrhythm Action Animation: X
  249.  *
  250.  * =============================================================================
  251.  * HITSTÓRICO
  252.  * =============================================================================
  253.  * (v1.4) - Compatibilidade com Rpg Maker 1.3.3  
  254.  * (v1.3) - Compatibilidade com o MOG Flash Damage.
  255.  * (v1.2) - Correção do Crash relativo as Tags.
  256.  * (v1.1) - Correção de prosseguir os comandos de eventos antes da cena do
  257.  *          Theatrhythm terminar.
  258.  *        - Adicionado a switch de resultado do minigame.
  259.  *
  260.  */
  261.  
  262. //=============================================================================
  263. // ** PLUGIN PARAMETERS
  264. //=============================================================================
  265.   var Imported = Imported || {};
  266.   Imported.MOG_Theatrhythm = true;
  267.   var Moghunter = Moghunter || {};
  268.  
  269.    Moghunter.parameters = PluginManager.parameters('MOG_Theatrhythm');  
  270.         Moghunter.theatrhythm_variable_id = Number(Moghunter.parameters['Points Variable ID'] || 5);
  271.         Moghunter.theatrhythm_base_score = Number(Moghunter.parameters['Score Base'] || 10);
  272.         Moghunter.theatrhythm_chain_bonus = Number(Moghunter.parameters['Chain Bonus'] || 5);       
  273.         Moghunter.theatrhythm_critical_bonus = Number(Moghunter.parameters['Critical Bonus Percentage'] || 1.5);
  274.         Moghunter.theatrhythm_result_chain_bonus = Number(Moghunter.parameters['Max Chain Bonus Percentage'] || 0.01);                   
  275.         Moghunter.theatrhythm_miss_dmg_per = Number(Moghunter.parameters['Miss Dmg Percentage'] || 0);
  276.         Moghunter.theatrhythm_bp_base_value = Number(Moghunter.parameters['BP Base Value'] || 50);
  277.         Moghunter.theatrhythm_enemy_atk_ani = Number(Moghunter.parameters['Enemy Atk Animation'] || 1);  
  278.     Moghunter.theatrhythm_actor_x = Number(Moghunter.parameters['Actor X-Axis'] || 700);
  279.         Moghunter.theatrhythm_actor_y = Number(Moghunter.parameters['Actor Y-Axis'] || 320);
  280.         Moghunter.theatrhythm_actor_spc_y = Number(Moghunter.parameters['Actor Space Y'] || 80);                       
  281.         Moghunter.theatrhythm_enemy_x = Number(Moghunter.parameters['Enemy X-Axis'] || 180);
  282.         Moghunter.theatrhythm_enemy_y = Number(Moghunter.parameters['Enemy Y-Axis'] || 340);                               
  283.         Moghunter.theatrhythm_button_layout_x = Number(Moghunter.parameters['Button Layout X'] || -62);
  284.         Moghunter.theatrhythm_button_layout_y = Number(Moghunter.parameters['Button Layout Y'] || 5);       
  285.     Moghunter.theatrhythm_button_flash_x = Number(Moghunter.parameters['Button Flash X'] || -140);
  286.     Moghunter.theatrhythm_button_flash_y = Number(Moghunter.parameters['Button Flash Y'] || -1);
  287.     Moghunter.theatrhythm_string_x = Number(Moghunter.parameters['String X'] || 130);
  288.         Moghunter.theatrhythm_string_y = Number(Moghunter.parameters['String Y'] || 0);
  289.     Moghunter.theatrhythm_face_x = Number(Moghunter.parameters['Face X'] || 420);
  290.         Moghunter.theatrhythm_face_y = Number(Moghunter.parameters['Face Y'] || 5);               
  291.         Moghunter.theatrhythm_time_meter_x = Number(Moghunter.parameters['Enemy HP Gauge X'] || 17);
  292.         Moghunter.theatrhythm_time_meter_y = Number(Moghunter.parameters['Enemy HP Gauge Y'] || 600);       
  293.         Moghunter.theatrhythm_enemy_hp_number_x = Number(Moghunter.parameters['Enemy HP Number X'] || 280);
  294.         Moghunter.theatrhythm_enemy_hp_number_y = Number(Moghunter.parameters['Enemy HP Number Y'] || 575);       
  295.         Moghunter.theatrhythm_hp_meter_x = Number(Moghunter.parameters['Party HP Gauge X'] || 573);
  296.         Moghunter.theatrhythm_hp_meter_y = Number(Moghunter.parameters['Party HP Gauge Y'] || 30);               
  297.         Moghunter.theatrhythm_actor_hp_number_x = Number(Moghunter.parameters['Party HP Number X'] || 790);
  298.         Moghunter.theatrhythm_actor_hp_number_y = Number(Moghunter.parameters['Party HP Number Y'] || 32);               
  299.         Moghunter.theatrhythm_score_x = Number(Moghunter.parameters['Score X'] || 300);
  300.         Moghunter.theatrhythm_score_y = Number(Moghunter.parameters['Score Y'] || 10);               
  301.         Moghunter.theatrhythm_chain_x = Number(Moghunter.parameters['Chain X'] || 430);
  302.         Moghunter.theatrhythm_chain_y = Number(Moghunter.parameters['Chain Y'] || 130);                       
  303.         Moghunter.theatrhythm_chain_number_x = Number(Moghunter.parameters['Chain Number X'] || 0);
  304.         Moghunter.theatrhythm_chain_number_y = Number(Moghunter.parameters['Chain Number Y'] || 20);       
  305.         Moghunter.theatrhythm_bp_visible = String(Moghunter.parameters['BP Visible'] || true);       
  306.         Moghunter.theatrhythm_bp_party_x = Number(Moghunter.parameters['BP Party X'] || 615);
  307.     Moghunter.theatrhythm_bp_party_y = Number(Moghunter.parameters['BP Party Y'] || 95);
  308.         Moghunter.theatrhythm_bp_enemy_x = Number(Moghunter.parameters['BP Enemy X'] || -70);
  309.     Moghunter.theatrhythm_bp_enemy_y = Number(Moghunter.parameters['BP Enemy Y'] || 515);               
  310.         Moghunter.theatrhythm_phase_x = Number(Moghunter.parameters['Phase X'] || 0);
  311.         Moghunter.theatrhythm_phase_y = Number(Moghunter.parameters['Phase Y'] || 192);               
  312.         Moghunter.theatrhythm_result_x = Number(Moghunter.parameters['Result X'] || 520);
  313.         Moghunter.theatrhythm_result_y = Number(Moghunter.parameters['Result Y'] || 240);
  314.         Moghunter.theatrhythm_result_font_size = Number(Moghunter.parameters['Result Font Size'] || 28);       
  315.         Moghunter.theatrhythm_result_total_x = Number(Moghunter.parameters['Total X'] || 200);
  316.         Moghunter.theatrhythm_result_total_y = Number(Moghunter.parameters['Total Y'] || 330);
  317.         Moghunter.theatrhythm_result_total_font_size = Number(Moghunter.parameters['Total Font Size'] || 32);
  318.         Moghunter.theatrhythm_name_x = Number(Moghunter.parameters['E Name X'] || 300);
  319.         Moghunter.theatrhythm_name_y = Number(Moghunter.parameters['E Name Y'] || 575);
  320.         Moghunter.theatrhythm_name_font_size = Number(Moghunter.parameters['E Name Font Size'] || 24);
  321.         Moghunter.theatrhythm_result_switch_id = Number(Moghunter.parameters['Result Switch ID'] || 10);
  322.  
  323. //=============================================================================
  324. // ** Load Theatrhythm
  325. //=============================================================================       
  326. ImageManager.loadTheatrhythm = function(filename) {
  327.     return this.loadBitmap('img/theatrhythm/', filename, 0, true);
  328. };
  329.  
  330. //=============================================================================
  331. // ** Game_Interpreter
  332. //=============================================================================       
  333.  
  334. //==============================
  335. // * PluginCommand
  336. //==============================
  337. var _alias_mog_Theatrhythm_pluginCommand = Game_Interpreter.prototype.pluginCommand
  338. Game_Interpreter.prototype.pluginCommand = function(command, args) {
  339.         _alias_mog_Theatrhythm_pluginCommand.call(this,command, args)
  340.         if (command === "theatrhythm")  {
  341.                  if (args.length >= 4) {               
  342.                  var enemy_id = Math.min(Math.max(args[1],1),$dataEnemies.length - 1);                 
  343.                      var speed = Math.min(Math.max(args[3],1),20);
  344.                      $gameSystem._theatrhythm_data = [enemy_id,speed];
  345.                          $gameSystem._theatrhythm_start = true;
  346.                          this.wait(10);
  347.             };
  348.     };       
  349.         return true;
  350. };
  351.  
  352. //=============================================================================
  353. // ** Scene Map
  354. //=============================================================================       
  355.  
  356. //==============================
  357. // * update
  358. //==============================
  359. var _alias_mog_theatrhythm_scmap_update = Scene_Map.prototype.update
  360. Scene_Map.prototype.update = function() {
  361.         _alias_mog_theatrhythm_scmap_update.call(this);
  362.         if ($gameSystem._theatrhythm_start) {this.execute_theatrhythm()};
  363. };
  364.  
  365. //==============================
  366. // * execute theatrhythm
  367. //==============================
  368. Scene_Map.prototype.execute_theatrhythm = function() {
  369.                 $gameSystem._theatrhythm_start = false;
  370.                 this.startFadeOut(this.fadeSpeed());
  371.                 $gameSystem.theatrhythm();
  372. };
  373.  
  374. //=============================================================================
  375. // ** Scene_System
  376. //=============================================================================       
  377.  
  378. //==============================
  379. // * Theatrhythm
  380. //==============================
  381. var _alias_mog_theatrhythm_gsy_initialize = Game_System.prototype.initialize
  382. Game_System.prototype.initialize = function() {
  383.     _alias_mog_theatrhythm_gsy_initialize.call(this);       
  384.         this._theatrhythm = false;
  385.         this._theatrhythm_start = false;
  386.         this._theatrhythm_data = [1,1];
  387.         this._theatrhythm_phase = 0;
  388.         this._theatrhythm_miss_dmg = false;
  389.         this._theatrhythm_key_data = [null,0,0,0];
  390.         this._theatrhythm_chain_data = [0,0];
  391.         this._theatrhythm_score_data = [0,0];               
  392.         Input.keyMapper[65] = 'a';
  393.     Input.keyMapper[83] = 's';
  394. };
  395.  
  396. //==============================
  397. // * Theatrhythm
  398. //==============================
  399. Game_System.prototype.theatrhythm = function() {
  400.         if ($gameParty.battleMembers().length === 0) {return};
  401.     SceneManager.push(Scene_Theatrhythm);
  402. };
  403.  
  404. //=============================================================================
  405. // ** Game Battler
  406. //=============================================================================       
  407.  
  408. //==============================
  409. // * Notetags
  410. //==============================
  411. Game_Battler.prototype.notetags = function() {
  412.         if (this.isEnemy()) {return this.enemy().note.split(/[\r\n]+/)};
  413.         if (this.isActor()) {return this.actor().note.split(/[\r\n]+/)};
  414. };
  415.  
  416. //==============================
  417. // ** iniMembers
  418. //==============================
  419. var _alias_mog_theatrhythm_gbattler_initMembers = Game_Battler.prototype.initMembers;
  420. Game_Battler.prototype.initMembers = function() {
  421.         _alias_mog_theatrhythm_gbattler_initMembers.call(this);
  422.         this._motion_damage_duration = 0;
  423.         this._motion_damage_xy = [0,0];
  424.         this._theatrhythm_ani_id = Math.max(Moghunter.theatrhythm_enemy_atk_ani,1);
  425.         this.clear_action_data();
  426. };
  427.  
  428. //==============================
  429. // ** Clear Action Data
  430. //==============================
  431. Game_Battler.prototype.clear_action_data = function() {
  432.         this._motion_action_data = [0,0,0,0];
  433.         this._motion_action_xy = [0,0];
  434.         this._motion_action_scale = [0,0];
  435.         this._motion_action_rotation = 0;
  436. };
  437. //==============================
  438. // ** Motion Shake
  439. //==============================
  440. Game_Battler.prototype.motion_shake = function() {
  441.         this._motion_damage_duration = 30;
  442. };
  443.  
  444. //=============================================================================
  445. // ** Game Actor
  446. //=============================================================================       
  447.  
  448. //==============================
  449. // * isSpriteVisible
  450. //==============================
  451. Game_Actor.prototype.isSpriteVisible = function() {
  452.         if ($gameSystem._theatrhythm) {return true};
  453.    return $gameSystem.isSideView();
  454. };
  455.  
  456. //=============================================================================
  457. // ** Game Enemy
  458. //=============================================================================       
  459.  
  460. //==============================
  461. // * Setup
  462. //==============================
  463. var _alias_mog_theatrhythm_setup = Game_Enemy.prototype.setup;
  464. Game_Enemy.prototype.setup = function(enemyId, x, y) {
  465.         _alias_mog_theatrhythm_setup.call(this,enemyId, x, y);
  466.     this.notetags().forEach(function(note) {
  467.          var note_data = note.split(': ')
  468.                  if (note_data[0].toLowerCase() == "theatrhythm action animation"){
  469.                          var par = note_data[1].split(':');
  470.                      this._theatrhythm_ani_id = Number(par[0]);
  471.                  };
  472.         },this);
  473. };
  474.  
  475. //=============================================================================
  476. // ** Sprite Battler
  477. //=============================================================================       
  478.  
  479. //==============================
  480. // * Update Position
  481. //==============================
  482. var _alias_mog_theatrhythm_sprbtr_updatePosition = Sprite_Battler.prototype.updatePosition;
  483. Sprite_Battler.prototype.updatePosition = function() {
  484.         _alias_mog_theatrhythm_sprbtr_updatePosition.call(this);
  485.         if ( $gameSystem._theatrhythm) {this.update_theatrhythm()};
  486. };
  487.  
  488. //==============================
  489. // * Update Position
  490. //==============================
  491. Sprite_Battler.prototype.update_theatrhythm = function() {               
  492.         if (!Imported.MOG_BattlerMotion) {
  493.                 if (this._battler) {
  494.                         if (this._battler._motion_damage_duration > 0) {this.update_motion_damage()};
  495.                         if (this._battler._motion_action_data[0] === 7) {this.update_action_move_right();};
  496.                         this.x += this._battler._motion_action_xy[0];
  497.                         this.y += this._battler._motion_action_xy[1];
  498.             };
  499.         };
  500.         if (this._battler.isEnemy() && $gameSystem._theatrhythm_phase === 10) {this.opacity -= 5}
  501. };
  502.  
  503. //==============================
  504. // * Update Motion Damage
  505. //==============================
  506. Sprite_Battler.prototype.update_motion_damage = function() {
  507.          if (Imported.MOG_FlashDamage && this._battler._flashDamage) {return};
  508.          this._battler._motion_damage_xy[0] = (Math.random() * 12) - 6;
  509.          this._battler._motion_damage_duration -= 1;
  510.          if (this._battler._motion_damage_duration <= 0) {this._battler._motion_damage_xy = [0,0]};
  511.          this.x += this._battler._motion_damage_xy[0];
  512. };
  513.  
  514. //==============================
  515. // * Update Move Right
  516. //==============================
  517. Sprite_Battler.prototype.update_action_move_right = function() {
  518.       this._battler._motion_action_data[1] += 1
  519.           if (this._battler._motion_action_data[1] < 15) {
  520.                   this._battler._motion_action_xy[0] += 8;
  521.           }       
  522.           else if (this._battler._motion_action_data[1] < 30) {        
  523.                   this._battler._motion_action_xy[0] -= 8;
  524.           }
  525.           else {
  526.               this._battler.clear_action_data();
  527.       };
  528. };
  529.  
  530. //=============================================================================
  531. // ** Scene_Theatrhythm
  532. //=============================================================================       
  533. function Scene_Theatrhythm() {
  534.     this.initialize.apply(this, arguments);
  535. }
  536.  
  537. Scene_Theatrhythm.prototype = Object.create(Scene_Base.prototype);
  538. Scene_Theatrhythm.prototype.constructor = Scene_Theatrhythm;
  539.  
  540. //==============================
  541. // * Initialize
  542. //==============================
  543. Scene_Theatrhythm.prototype.initialize = function() {
  544.     Scene_Base.prototype.initialize.call(this);       
  545.         $gameSystem._theatrhythm = true;
  546.         $gameSystem._theatrhythm_phase = 0;
  547.         $gameSystem._theatrhythm_miss_dmg = false;
  548.         $gameSystem._theatrhythm_key_data = [null,0,0,0];
  549.         $gameSystem._theatrhythm_chain_data[0] = 0;
  550.         $gameSystem._theatrhythm_score_data[0] = 0;
  551.         this._result_data = [0,0];
  552.         BattleManager.saveBgmAndBgs();
  553.         AudioManager.fadeOutBgm(2);
  554.         AudioManager.stopBgs();
  555.         $gameSwitches._data[Moghunter.theatrhythm_result_switch_id] = false;
  556.         if (!$gameVariables._data[Moghunter.theatrhythm_variable_id]) {
  557.              $gameVariables._data[Moghunter.theatrhythm_variable_id] = 0;
  558.         };
  559.         this._battlers = $gameParty.battleMembers()
  560.         for (var i = 0; i <  $gameParty.battleMembers().length; i++) {$gameParty.battleMembers()[i].recoverAll();};
  561.         this._time = [0,3000];
  562.         this._score = [-1,0,0];
  563.         this._chain_dt = [0,0];       
  564.         this._wait_time = 0;
  565.         this._phase = [0,0,0];
  566.         this._target_id = 0;
  567.         this._enemy_ref = false;
  568.     this.createDisplayObjects();
  569.         this.set_battler_parameters();
  570.         this.startFadeIn(60, false);
  571. };
  572.  
  573. //==============================
  574. // * Set Battler Parameters
  575. //==============================
  576. Scene_Theatrhythm.prototype.set_battler_parameters = function() {
  577.         this._enemy_hp = [this._enemy.hp,this._enemy.hp]
  578.         this._enemy_atk = this._enemy.atk + this._enemy.mat;
  579.         this._enemy_def = (this._enemy.def + this._enemy.mdf) / 2;
  580.         this._enemy_bp = Math.floor(((this._enemy_hp[0] / 30) + this._enemy_atk + this._enemy_def) / 3)
  581.         this._enemy_bp *= Moghunter.theatrhythm_bp_base_value;
  582.         this._party_hp = [0,0];
  583.         this._party_atk = 0;
  584.         this._party_def = 0;
  585.         for (var i = 0; i < this._battlers.length; i++) {
  586.                  this._party_hp[0] += this._battlers[i].hp;
  587.                  this._party_hp[1] += this._battlers[i].mhp;
  588.                  this._party_atk += this._battlers[i].atk;
  589.                  this._party_atk += this._battlers[i].mat;
  590.                  this._party_def += this._battlers[i].def / 2;
  591.                  this._party_def += this._battlers[i].mdf / 2;
  592.         };
  593.         this._party_hp[0] /= this._battlers.length;
  594.         this._party_hp[1] /= this._battlers.length;
  595.         this._party_atk /= this._battlers.length;
  596.         this._party_def /= this._battlers.length;
  597.         this._party_bp = Math.floor(((this._party_hp[0] / 10) + this._party_atk + this._party_def) / 3)
  598.         this._party_bp *= Moghunter.theatrhythm_bp_base_value;
  599. };
  600.  
  601. //==============================
  602. // * Load Images
  603. //==============================
  604. Scene_Theatrhythm.prototype.load_images = function() {
  605.          this._buttons_img = ImageManager.loadTheatrhythm("Theatrhythm_A");       
  606.          this._layout_buttons_img = ImageManager.loadTheatrhythm("Theatrhythm_B");
  607.      this._layout_buttons_img2 = ImageManager.loadTheatrhythm("Theatrhythm_C");
  608.          this._string_img = ImageManager.loadTheatrhythm("Theatrhythm_D");
  609.          this._layout_img = ImageManager.loadTheatrhythm("Theatrhythm_E");
  610.          this._time_meter_img = ImageManager.loadTheatrhythm("Theatrhythm_F");
  611.          this._hp_meter_img = ImageManager.loadTheatrhythm("Theatrhythm_G");
  612.          this._score_img = ImageManager.loadTheatrhythm("Theatrhythm_H");
  613.          this._chain_img = ImageManager.loadTheatrhythm("Theatrhythm_I");
  614.          this._chain_number_img = ImageManager.loadTheatrhythm("Theatrhythm_J");
  615.          this._hp_number_1_img = ImageManager.loadTheatrhythm("Theatrhythm_L");
  616.          this._phase_img = ImageManager.loadTheatrhythm("Theatrhythm_M");
  617.          this._damage_img = ImageManager.loadTheatrhythm("Theatrhythm_N");
  618. };
  619.  
  620. //==============================
  621. // * CreateDisplayObjects
  622. //==============================
  623. Scene_Theatrhythm.prototype.createDisplayObjects = function() {
  624.         this.load_images();
  625.         this._spriteField = new Sprite();       
  626.         this.addChild(this._spriteField);
  627.         this._spriteHudBase = new Sprite();
  628.         this.addChild(this._spriteHudBase);
  629.     this.createScenario();
  630.         this.createActors();
  631.         this.createEnemy();
  632.         this.createLayoutBase();
  633.         this.createLayoutButtons();       
  634.         this.createLayout();
  635.         this.createFace();
  636.         this.createTimeMeter();
  637.         this.createEnemyHpNumber();
  638.         this.createHpMeter();
  639.         this.createActorHpNumber();
  640.         this.createEnemyName();
  641.         this.createScore();
  642.         this.createChain();
  643.         this.createBattlePower();
  644.         this.createDamage();
  645.         this.createPhaseSprite();
  646.         this.createText();
  647. };
  648.  
  649. //==============================
  650. // * createLayout
  651. //==============================
  652. Scene_Theatrhythm.prototype.createLayout = function() {       
  653.      this._layout = new Sprite(this._layout_img);
  654.          this._spriteHudBase.addChild(this._layout);       
  655. };
  656.  
  657. //==============================
  658. // * createPhaseSprite
  659. //==============================
  660. Scene_Theatrhythm.prototype.createPhaseSprite = function() {       
  661.      this._phase_sprite_data = [-1,-1]
  662.      this._phase_sprite = new Sprite(this._phase_img);
  663.          this._phase_sprite.x = Moghunter.theatrhythm_phase_x;
  664.          this._phase_sprite.y = Moghunter.theatrhythm_phase_y;
  665.          this._phase_sprite.anchor.x = 0.5;
  666.          this._phase_sprite.anchor.y = 0.5;
  667.          this._phase_sprite.opacity = 0;
  668.          this.refresh_phase_sprite(0);
  669.          this._spriteHudBase.addChild(this._phase_sprite);       
  670. };
  671.  
  672. //==============================
  673. // * Refresh Phase Sprite
  674. //==============================
  675. Scene_Theatrhythm.prototype.refresh_phase_sprite = function(type) {
  676.          this._phase_sprite.opacity = 0;
  677.          this._phase_sprite.scale.x = 2;
  678.          this._phase_sprite.scale.y = 2;
  679.          this._phase_sprite.setFrame(0,type * this._phase_sprite_data[1],this._phase_sprite_data[0],this._phase_sprite_data[1]);
  680. };
  681.  
  682. //==============================
  683. // * createText
  684. //==============================
  685. Scene_Theatrhythm.prototype.createText = function() {       
  686.      this._text_sprite = new Sprite(new Bitmap(200,160));
  687.          this._text_sprite.anchor.x = 0.5;
  688.          this._text_sprite.anchor.y = 0.5;
  689.          this._text_sprite.x = Moghunter.theatrhythm_result_x + 100;
  690.          this._text_sprite.y = Moghunter.theatrhythm_result_y + 50;
  691.          this._text_sprite.bitmap.fontSize = Moghunter.theatrhythm_result_font_size;
  692.          this._spriteHudBase.addChild(this._text_sprite);
  693.      this._text2_sprite = new Sprite(new Bitmap(200,100));
  694.          this._text2_sprite.anchor.x = 0.5;
  695.          this._text2_sprite.anchor.y = 0.5;
  696.          this._text2_sprite.x = Moghunter.theatrhythm_result_total_x + 100;
  697.          this._text2_sprite.y = Moghunter.theatrhythm_result_total_y + 50;
  698.          this._text2_sprite.bitmap.fontSize = Moghunter.theatrhythm_result_total_font_size;
  699.          this._spriteHudBase.addChild(this._text2_sprite);                 
  700. };
  701.  
  702. //==============================
  703. // * createBattlePower
  704. //==============================
  705. Scene_Theatrhythm.prototype.createBattlePower = function() {       
  706.     this._bp_visible = false;
  707.     if (Moghunter.theatrhythm_bp_visible === "true") {this._bp_visible = true};
  708.     this._battlePower = [];
  709.         for (var i = 0; i < 2; i++) {
  710.                  this._battlePower[i] = new Sprite(new Bitmap(250,32));                 
  711.                  this._battlePower[i].bitmap.fontSize = 20;
  712.                  this._spriteHudBase.addChild(this._battlePower[i]);
  713.         };
  714.         this._battlePower[0].x = Moghunter.theatrhythm_bp_enemy_x;
  715.         this._battlePower[0].y = Moghunter.theatrhythm_bp_enemy_y;
  716.         this._battlePower[1].x = Moghunter.theatrhythm_bp_party_x;
  717.         this._battlePower[1].y = Moghunter.theatrhythm_bp_party_y;
  718. };
  719.  
  720. //==============================
  721. // * createEnemyName
  722. //==============================
  723. Scene_Theatrhythm.prototype.createEnemyName = function() {       
  724.     this._enemyName = new Sprite(new Bitmap(200,32))
  725.         this._enemyName.x = Moghunter.theatrhythm_name_x;
  726.         this._enemyName.y = Moghunter.theatrhythm_name_y;
  727.         this._enemyName.bitmap.fontSize = Moghunter.theatrhythm_name_font_size;
  728.         this._enemyName.bitmap.drawText(this._enemySprite._enemy.name(),0,0,200,32,"left")
  729.         this._spriteHudBase.addChild(this._enemyName);
  730. };
  731.  
  732. //==============================
  733. // * createScore
  734. //==============================
  735. Scene_Theatrhythm.prototype.createScore = function() {       
  736.      this._point = [];
  737.          this._point_data = [-1,-1];
  738.      for (var i = 0; i < 7; i++) {
  739.            this._point[i] = new Sprite(this._score_img);
  740.            this._point[i].visible = false;
  741.            this._point[i].y = Moghunter.theatrhythm_score_y;
  742.            this._spriteHudBase.addChild(this._point[i]);
  743.          };
  744. };
  745.  
  746. //==============================
  747. // * Update Dif
  748. //==============================
  749. Scene_Theatrhythm.prototype.update_dif = function(value,real_value,speed) {
  750.         if (value == real_value) {return value};
  751.         var dnspeed = 1 + (Math.abs(value - real_value) / speed);
  752.         if (value > real_value) {value -= dnspeed;
  753.             if (value < real_value) {value = real_value};}
  754.     else if (value < real_value) {value  += dnspeed;
  755.             if (value  > real_value) {value  = real_value};               
  756.     };
  757.         return Math.floor(value);
  758. };
  759.  
  760. //==============================
  761. // * Refresh Number
  762. //==============================
  763. Scene_Theatrhythm.prototype.refresh_number = function(sprites,value,img_data,x) {
  764.         if (value > 9999999999) {value = 9999999999};
  765.     numbers = Math.abs(value).toString().split("");  
  766.            for (var i = 0; i < sprites.length ; i++) {sprites[i].visible = false;
  767.            sprites[i].visible = true;
  768.            if (i < numbers.length) {
  769.                    var n = Number(numbers[i]);
  770.                    sprites[i].setFrame(n * img_data[0], 0, img_data[0], img_data[1]);
  771.                    var nx = -(img_data[0] * i) + (img_data[0] *  numbers.length);
  772.                    sprites[i].x = x - nx;
  773.            } else {
  774.                   var n = 0;
  775.                   sprites[i].setFrame(n * img_data[0], 0, img_data[0], img_data[1]);
  776.                   var nx = -(img_data[0] * i) + (img_data[0] *  (sprites.length + numbers.length));
  777.                   sprites[i].x = x - nx;
  778.            };
  779.     };
  780. };
  781.  
  782. //==============================
  783. // * Update Score
  784. //==============================
  785. Scene_Theatrhythm.prototype.update_score = function() {       
  786.         var dif_number = this.update_dif(this._score[0],this._score[1],20)
  787.         if (this._score[0] != dif_number) {this._score[0] = dif_number;
  788.         this.refresh_number(this._point,this._score[0] ,this._point_data,this._point_data[2]);};
  789. };
  790.  
  791. //==============================
  792. // * createEnemyHPNumber
  793. //==============================
  794. Scene_Theatrhythm.prototype.createEnemyHpNumber = function() {       
  795.      this._enemyHp_Old = 0;
  796.      this._enemyHpNumber = [];
  797.          this._enemyHpNumber_data = [-1,-1];
  798.      for (var i = 0; i < 6; i++) {
  799.            this._enemyHpNumber[i] = new Sprite(this._hp_number_1_img);
  800.            this._enemyHpNumber[i].visible = false;
  801.            this._enemyHpNumber[i].x = Moghunter.theatrhythm_enemy_hp_number_x;
  802.            this._enemyHpNumber[i].y = Moghunter.theatrhythm_enemy_hp_number_y;
  803.            this._spriteHudBase.addChild(this._enemyHpNumber[i]);
  804.          };
  805. };
  806.  
  807. //==============================
  808. // * Update EnemyHpNumber
  809. //==============================
  810. Scene_Theatrhythm.prototype.update_enemyHpNumber = function() {       
  811.         var dif_number = this.update_dif(this._enemyHp_Old,this._enemy_hp[0],20)
  812.         if (this._enemyHp_Old != dif_number) {this._enemyHp_Old = dif_number;
  813.         this.refresh_number(this._enemyHpNumber,this._enemyHp_Old ,this._enemyHpNumber_data,this._enemyHpNumber_data[2]);};
  814. };
  815.  
  816. //==============================
  817. // * createDamage
  818. //==============================
  819. Scene_Theatrhythm.prototype.createDamage = function() {
  820.      this._damages = [[],[]];
  821.          this._damage_data = [-1,-1];
  822.      for (var i = 0; i < 2; i++) {
  823.            for (var n = 0; n < 4; n++) {
  824.               this._damages[i][n] = new Sprite(this._damage_img);
  825.               this._damages[i][n].visible = false;       
  826.           this._spriteHudBase.addChild(this._damages[i][n]);
  827.            };
  828.          };
  829. };
  830.  
  831. //==============================
  832. // * Refresh Damage
  833. //==============================
  834. Scene_Theatrhythm.prototype.refresh_damage = function(i,value) {
  835.         if (value > 9999999) {value = 9999999};
  836.         if (i === 1 && this._party_hp <= 0) {return};
  837.         if (i === 1 && !this._actorSprites[this._target_id]) {return};
  838.     numbers = Math.abs(value).toString().split("");         
  839.         for (var r = 0; r < this._damages[i].length; r++) {
  840.             this._damages[i][r].visible = false;
  841.             if (r >= numbers.length) {return};
  842.                 this._damages[i][r].visible = true;
  843.                 this._damages[i][r].opacity = 255;
  844.                 var n = Number(numbers[r]);
  845.                 this._damages[i][r].setFrame(n * this._damage_data[0], 0, this._damage_data[0], this._damage_data[1]);
  846.                 var nx = -(this._damage_data[0] * r) + ((this._damage_data[0]  / 2) *  numbers.length);
  847.                 if (i === 0) {
  848.                     this._damages[i][r].x = this._enemySprite.x - nx;               
  849.                     this._damages[i][r].y = this._enemySprite.y - (this._enemySprite.bitmap.height / 2);
  850.                 } else {       
  851.                         this._damages[i][r].x = this._actorSprites[this._target_id].x - nx;
  852.                         this._damages[i][r].y = this._actorSprites[this._target_id].y - 24;
  853.                 };
  854.         };
  855. };
  856.  
  857. //==============================
  858. // * Update Damage
  859. //==============================
  860. Scene_Theatrhythm.prototype.update_damage = function(i,value) {
  861.          for (var i = 0; i < 2; i++) {
  862.            for (var n = 0; n < 4; n++) {
  863.               if (this._damages[i][n].opacity > 0) {
  864.                    this._damages[i][n].opacity -= 3;
  865.                       this._damages[i][n].y -= 2;
  866.                   };
  867.            };
  868.          };
  869. };
  870.  
  871. //==============================
  872. // * createActorHPNumber
  873. //==============================
  874. Scene_Theatrhythm.prototype.createActorHpNumber = function() {       
  875.      this._actorHp_Old = 0;
  876.      this._actorHpNumber = [];
  877.          this._actorHpNumber_data = [-1,-1];
  878.      for (var i = 0; i < 5; i++) {
  879.            this._actorHpNumber[i] = new Sprite(this._hp_number_1_img);
  880.            this._enemyHpNumber[i].visible = false;
  881.            this._actorHpNumber[i].x = Moghunter.theatrhythm_actor_hp_number_x;
  882.            this._actorHpNumber[i].y = Moghunter.theatrhythm_actor_hp_number_y;
  883.            this._spriteHudBase.addChild(this._actorHpNumber[i]);
  884.          };
  885. };
  886.  
  887. //==============================
  888. // * Update ActorHpNumber
  889. //==============================
  890. Scene_Theatrhythm.prototype.update_actorHpNumber = function() {
  891.         var dif_number = this.update_dif(this._actorHp_Old,this._party_hp[0],20)
  892.         if (this._actorHp_Old != dif_number) {this._actorHp_Old = dif_number;
  893.         this.refresh_number(this._actorHpNumber,this._actorHp_Old ,this._actorHpNumber_data,this._actorHpNumber_data[2]);};
  894. };
  895.  
  896. //==============================
  897. // * createLayout
  898. //==============================
  899. Scene_Theatrhythm.prototype.createChain = function() {       
  900.      this._chain = new Sprite(this._chain_img);
  901.          this._chain_data = [-1,-1];
  902.          this._chain.x = Moghunter.theatrhythm_chain_x;
  903.          this._chain.y = Moghunter.theatrhythm_chain_y;
  904.          this._chain.anchor.x = 0.5;
  905.          this._chain.anchor.y = 0.5;
  906.          this._chain.opacity = 0;
  907.          this._spriteHudBase.addChild(this._chain);
  908.          this._chain_number = [];
  909.          this._chain_number_data = [-1,-1];
  910.          for (var i = 0; i < 3; i++) {
  911.                   this._chain_number[i] = new Sprite(this._chain_number_img);
  912.                   this._chain_number[i].anchor.x = 0.5;
  913.                   this._chain_number[i].anchor.y = 0.5;                 
  914.                   this._chain_number[i].opacity = 0;
  915.                   this._spriteHudBase.addChild(this._chain_number[i]);
  916.          };
  917. };
  918.  
  919. //==============================
  920. // * Refresh Chain
  921. //==============================
  922. Scene_Theatrhythm.prototype.refresh_chain = function(sprites,value,img_data,x) {
  923.         if (value > 99999999) {value = 99999999};
  924.         this._chain_dt[0] = value;
  925.         if (this._chain_dt[0] > this._chain_dt[1]) {this._chain_dt[1] = this._chain_dt[0]};
  926.     numbers = Math.abs(value).toString().split("");  
  927.            for (var i = 0; i < sprites.length ; i++) {sprites[i].visible = false;
  928.            if (i < numbers.length) {
  929.                    sprites[i].visible = true;
  930.                    sprites[i].opacity = 255;
  931.                    var n = Number(numbers[i]);
  932.                    sprites[i].setFrame(n * img_data[0], 0, img_data[0], img_data[1]);
  933.                    var nx = -(img_data[0] * i) + (img_data[0] *  numbers.length);
  934.                    sprites[i].x = (x - nx)
  935.            };
  936.     };
  937. };
  938.  
  939. //==============================
  940. // * Update Chain
  941. //==============================
  942. Scene_Theatrhythm.prototype.update_chain = function() {
  943.          if (this._chain_dt[0]  != $gameSystem._theatrhythm_chain_data[0])        {
  944.                  this._chain_dt[0] = $gameSystem._theatrhythm_chain_data[0];
  945.                  if (this._chain_dt[0] > 0) {
  946.                          this._chain.scale.x = 2.0;
  947.                          this._chain.scale.y = this._chain.scale.x;
  948.                          this._chain.opacity = 255;
  949.              this.refresh_chain(this._chain_number,this._chain_dt[0],this._chain_number_data,this._chain_number_data[2]);
  950.                  };
  951.          };
  952.           if (this._chain_dt[0] === 0 || $gameSystem._theatrhythm_phase != 1) {this._chain.opacity -= 15};
  953.           if (this._chain.scale.x > 1.00) {this._chain.scale.x -= 0.1};         
  954.           this._chain.scale.y = this._chain.scale.x;
  955.       for (var i = 0; i < this._chain_number.length ; i++) {
  956.              this._chain_number[i].opacity = this._chain.opacity;
  957.                  this._chain_number[i].scale.x = this._chain.scale.x;
  958.                  this._chain_number[i].scale.y = this._chain_number[i].scale.x;
  959.           };
  960. };
  961.  
  962. //==============================
  963. // * createTimeMeter
  964. //==============================
  965. Scene_Theatrhythm.prototype.createHpMeter = function() {       
  966.      this._hp_meter = new Sprite(this._hp_meter_img);
  967.          this._hp_meter_data = [-1,-1,0,0];
  968.          this._hp_meter.x = Moghunter.theatrhythm_hp_meter_x;
  969.          this._hp_meter.y = Moghunter.theatrhythm_hp_meter_y;
  970.          this._hp_meter.visible = false;
  971.          this._spriteHudBase.addChild(this._hp_meter);       
  972. };
  973.  
  974. //==============================
  975. // * createTimeMeter
  976. //==============================
  977. Scene_Theatrhythm.prototype.update_hp_meter = function() {
  978.         this._hp_meter_data[2] += 3;
  979.         if (this._hp_meter_data[2]  > this._hp_meter_data[3]) {this._hp_meter_data[2] = 0};
  980.     var meter_rate = this._hp_meter_data[0] * this._party_hp[0] / this._party_hp[1];
  981.         this._hp_meter.setFrame(this._hp_meter_data[2],0, meter_rate, this._hp_meter_data[1]);
  982. };
  983.  
  984. //==============================
  985. // * createTimeMeter
  986. //==============================
  987. Scene_Theatrhythm.prototype.createTimeMeter = function() {       
  988.      this._meter = new Sprite(this._time_meter_img);
  989.          this._meter_data = [-1,-1,0,0];
  990.          this._meter.x = Moghunter.theatrhythm_time_meter_x;
  991.          this._meter.y = Moghunter.theatrhythm_time_meter_y;
  992.          this._meter.visible = false;
  993.          this._spriteHudBase.addChild(this._meter);       
  994. };
  995.  
  996. //==============================
  997. // * createTimeMeter
  998. //==============================
  999. Scene_Theatrhythm.prototype.update_time_meter = function() {
  1000.         this._meter_data[2] += 15;
  1001.         if (this._meter_data[2]  > this._meter_data[3]) {this._meter_data[2] = 0};
  1002.     var meter_rate = this._meter_data[0] * this._enemy_hp[0] / this._enemy_hp[1];
  1003.         this._meter.setFrame(this._meter_data[2],0, meter_rate, this._meter_data[1]);
  1004. };
  1005.  
  1006. //==============================
  1007. // * createFace
  1008. //==============================
  1009. Scene_Theatrhythm.prototype.createFace = function() {       
  1010.      this._face_img = ImageManager.loadFace(this._battlers[0].faceName())
  1011.      this._face = new Sprite(this._face_img);
  1012.          this._face.x = Moghunter.theatrhythm_face_x;
  1013.          this._face.y = Moghunter.theatrhythm_face_y;
  1014.      var pw = Window_Base._faceWidth;
  1015.      var ph = Window_Base._faceHeight;       
  1016.      var sx = this._battlers[0].faceIndex() % 4 * pw;
  1017.      var sy = Math.floor(this._battlers[0].faceIndex() / 4) * ph;         
  1018.          this._face.setFrame(sx,sy,pw,ph);
  1019.          this._face.scale.x = 64 / Window_Base._faceWidth;
  1020.          this._face.scale.y = this._face.scale.x;
  1021.          this._spriteHudBase.addChild(this._face);
  1022. };
  1023.  
  1024. //==============================
  1025. // * createStrings
  1026. //==============================
  1027. Scene_Theatrhythm.prototype.createStrings = function() {                 
  1028.          this._strings = [];
  1029.          this._strings_data =  [this._string_img.width,this._string_img.height / 3];
  1030.          for (var i = 0; i < this._layout_buttons2.length; i++) {
  1031.                   this._strings[i] = new Sprite(this._string_img);
  1032.                   this._strings[i].x = this._layout_buttons2[i].x + Moghunter.theatrhythm_string_x;
  1033.                   this._strings[i].y = this._layout_buttons2[i].y + Moghunter.theatrhythm_string_y;
  1034.                   this._strings[i].anchor.x = 0.5;
  1035.                   this._strings[i].anchor.y = 0.5;
  1036.                   this._spriteHudBase.addChild(this._strings[i]);       
  1037.                   this.refresh_string(i,-1);
  1038.          };
  1039. };
  1040.  
  1041. //==============================
  1042. // * refresh String
  1043. //==============================
  1044. Scene_Theatrhythm.prototype.refresh_string = function(i,type) {       
  1045.        this._strings[i].opacity = 255;
  1046.            this._strings[i].scale.x = 1.00;
  1047.            this._strings[i].scale.y = 1.00;
  1048.        this._strings[i].setFrame(0,this._strings_data[1] * type,this._strings_data[0],this._strings_data[1])
  1049. };
  1050.  
  1051. //==============================
  1052. // * createLayoutBase
  1053. //==============================
  1054. Scene_Theatrhythm.prototype.createLayoutBase = function() {
  1055.      this._layoutBase = new Sprite();
  1056.          this._spriteHudBase.addChild(this._layoutBase);
  1057. };
  1058.  
  1059. //==============================
  1060. // * createLayoutButtons
  1061. //==============================
  1062. Scene_Theatrhythm.prototype.createLayoutButtons = function() {
  1063.          this._buttons_position = [[],[],[],[]];
  1064.      this._layout_buttons = [];
  1065.          this._layout_buttons2 = [];
  1066.          this._layout_buttons_data = [-1,-1,-1,-1]
  1067.      for (var i = 0; i < this._actorSprites.length; i++) {
  1068.          this._layout_buttons[i] = new Sprite(this._layout_buttons_img2);
  1069.                  this._layout_buttons[i].anchor.x = 0.5;
  1070.                  this._layout_buttons[i].anchor.y = 0.5;
  1071.                  this._layout_buttons[i].blendMode = 1;
  1072.                  this._layout_buttons[i].opacity = 0;
  1073.                  this._layout_buttons[i].visible = false;
  1074.              this._spriteHudBase.addChild(this._layout_buttons[i]);
  1075.          this._layout_buttons2[i] = new Sprite(this._layout_buttons_img);
  1076.                  this._layout_buttons2[i].anchor.x = 0.5;
  1077.                  this._layout_buttons2[i].anchor.y = 0.5;
  1078.                  this._layout_buttons2[i].opacity = 0;
  1079.                  this._layout_buttons2[i].visible = false;
  1080.              this._spriteHudBase.addChild(this._layout_buttons2[i]);                 
  1081.          };
  1082. };
  1083.  
  1084. //==============================
  1085. // * createLayoutButtons
  1086. //==============================
  1087. Scene_Theatrhythm.prototype.update_layout_buttons = function() {
  1088.     for (var i = 0; i < this._layout_buttons.length; i++) {
  1089.        if ($gameSystem._theatrhythm_phase != 1) {this._layout_buttons2[i].opacity -= 10;
  1090.            } else {this._layout_buttons2[i].opacity += 10};
  1091.         };
  1092. };
  1093.  
  1094. //==============================
  1095. // * createLayoutButtons
  1096. //==============================
  1097. Scene_Theatrhythm.prototype.createButtons = function() {
  1098.      this._sprite_buttons = new Sprite_TKeys(this._buttons_img,this._buttons_position);
  1099.          this._spriteHudBase.addChild(this._sprite_buttons);
  1100. };
  1101.  
  1102. //==============================
  1103. // * getSpriteData
  1104. //==============================
  1105. Scene_Theatrhythm.prototype.getSpriteData = function() {
  1106.           this._layout_buttons_data[0] = this._layout_buttons_img.width / 2;
  1107.           this._layout_buttons_data[1] = this._layout_buttons_img.height / 2;
  1108.           this._layout_buttons_data[2] = Moghunter.theatrhythm_actor_x + Moghunter.theatrhythm_button_layout_x - this._layout_buttons_data[0];
  1109.           this._layout_buttons_data[3] = Moghunter.theatrhythm_actor_y + Moghunter.theatrhythm_button_layout_y - this._layout_buttons_data[1];
  1110.           for (var i = 0; i < this._layout_buttons.length; i++) {
  1111.              this._layout_buttons[i].x = this._layout_buttons_data[2] + Moghunter.theatrhythm_button_flash_x;
  1112.              this._layout_buttons[i].y = this._layout_buttons_data[3]  + (Moghunter.theatrhythm_actor_spc_y * i) + Moghunter.theatrhythm_button_flash_y;
  1113.                  this._layout_buttons[i].visible = true;
  1114.              this._layout_buttons2[i].x = this._layout_buttons_data[2];
  1115.              this._layout_buttons2[i].y = this._layout_buttons_data[3]  + (Moghunter.theatrhythm_actor_spc_y * i);
  1116.                  this._layout_buttons2[i].visible = true;                 
  1117.  
  1118.                  this._buttons_position[i] = [this._layout_buttons2[i].x,this._layout_buttons2[i].y]
  1119.           };
  1120.       this._meter_data = [this._meter.bitmap.width / 3,this._meter.bitmap.height,0,(this._meter.bitmap.width / 3) * 2];
  1121.           this._meter.visible = true;
  1122.       this._hp_meter_data = [this._hp_meter.bitmap.width / 3,this._hp_meter.bitmap.height,0,(this._hp_meter.bitmap.width / 3) * 2];
  1123.           this._hp_meter.visible = true;
  1124.       this._point_data = [this._score_img.width / 10,this._score_img.height,Moghunter.theatrhythm_score_x];
  1125.           this._enemyHpNumber_data = [this._hp_number_1_img.width / 10,this._hp_number_1_img.height,Moghunter.theatrhythm_enemy_hp_number_x];
  1126.           this._actorHpNumber_data = [this._hp_number_1_img.width / 10,this._hp_number_1_img.height,Moghunter.theatrhythm_actor_hp_number_x];
  1127.           this._chain_data = [this._chain_img.width,this._chain_img.height];          
  1128.           this._chain.x = Moghunter.theatrhythm_chain_x + this._chain_data[0] / 2;
  1129.           this._chain.y = Moghunter.theatrhythm_chain_y + this._chain_data[1] / 2;
  1130.       this._chain_number_data = [this._chain_number_img.width / 10, this._chain_number_img.height,
  1131.       Moghunter.theatrhythm_chain_x + Moghunter.theatrhythm_chain_number_x,Moghunter.theatrhythm_chain_y + Moghunter.theatrhythm_chain_number_y];          
  1132.           for (var i = 0; i < this._chain_number.length; i++) {
  1133.                    this._chain_number[i].x = this._chain_number_data[2];
  1134.                   this._chain_number[i].y = this._chain_number_data[3];
  1135.             };         
  1136.           if (this._bp_visible) {
  1137.           this._battlePower[0].bitmap.drawText(this._enemy_bp,0,0,250,32,"center");
  1138.               this._battlePower[1].bitmap.drawText(this._party_bp,0,0,250,32,"center")        ;
  1139.           };
  1140.       this._phase_sprite_data = [this._phase_img.width,this._phase_img.height / 4]
  1141.           this._phase_sprite.x += this._phase_sprite_data[0] / 2;
  1142.           this._phase_sprite.y += this._phase_sprite_data[1] / 2;
  1143.           this._damage_data = [this._damage_img.width / 10,this._damage_img.height];
  1144.           this.createButtons();
  1145.           this.createStrings();
  1146. };
  1147.  
  1148. //==============================
  1149. // * createSpriteset
  1150. //==============================
  1151. Scene_Theatrhythm.prototype.createScenario = function() {
  1152.     this._back1Sprite = new TilingSprite();
  1153.         this._back1Sprite.move(0, 0, Graphics.boxWidth, Graphics.boxHeight);
  1154.         this._back1Sprite.anchor.x = 0.5;
  1155.         this._back1Sprite.anchor.y = 0.5;
  1156.         this._spriteField.addChild(this._back1Sprite);       
  1157.     this._back2Sprite = new TilingSprite();
  1158.         this._back2Sprite.anchor.x = 0.5;
  1159.         this._back2Sprite.anchor.y = 0.5;       
  1160.         this._spriteField.addChild(this._back2Sprite);
  1161.     this._back2Sprite.move(0, 0, Graphics.boxWidth, Graphics.boxHeight);
  1162.         this.refresh_background();
  1163. };
  1164.  
  1165. //==============================
  1166. // * RefreshBackground
  1167. //==============================
  1168. Scene_Theatrhythm.prototype.refresh_background = function() {
  1169.         this._back1Sprite.bitmap = ImageManager.loadBattleback1($gameMap.battleback1Name());
  1170.         this._back2Sprite.bitmap = ImageManager.loadBattleback2($gameMap.battleback2Name());
  1171.         this._back1Sprite.x = Graphics.boxWidth / 2;
  1172.         this._back1Sprite.y = Graphics.boxHeight / 2;
  1173.         this._back1Sprite.origin.x = Graphics.boxWidth / 2;
  1174.         this._back1Sprite.origin.y = Graphics.boxHeight / 2;
  1175.         this._back2Sprite.x = Graphics.boxWidth / 2;
  1176.         this._back2Sprite.y = Graphics.boxHeight / 2;       
  1177.         this._back2Sprite.origin.x = Graphics.boxWidth / 2;
  1178.         this._back2Sprite.origin.y = Graphics.boxHeight / 2;       
  1179. };
  1180.  
  1181. //==============================
  1182. // * Create Actors
  1183. //==============================
  1184. Scene_Theatrhythm.prototype.createActors = function() {
  1185.     this._actorSprites = [];
  1186.         this._actorSprites_Data = [-1,-1,-1,-1]
  1187.     for (var i = 0; i < this._battlers.length; i++) {
  1188.         this._actorSprites[i] = new Sprite_Actor();
  1189.         this._spriteField.addChild(this._actorSprites[i]);
  1190.     };
  1191. };
  1192.  
  1193. //==============================
  1194. // * Create Enemy
  1195. //==============================
  1196. Scene_Theatrhythm.prototype.createEnemy = function() {
  1197.         if (Imported.MOG_BattlerMotion) {
  1198.             this._sprite_shadow = new SpriteBattlerShadow();       
  1199.             this._spriteField.addChild(this._sprite_shadow);
  1200.         };
  1201.     this._enemy = new Game_Enemy($gameSystem._theatrhythm_data[0],Moghunter.theatrhythm_enemy_x, Moghunter.theatrhythm_enemy_y);               
  1202.     this._enemySprite = new Sprite_Enemy(this._enemy);
  1203.         this._spriteField.addChild(this._enemySprite);
  1204.         if (Imported.MOG_BattlerMotion) {           
  1205.             this._enemySprite.add_shadow(this._sprite_shadow);
  1206.         };
  1207. };
  1208.  
  1209. //==============================
  1210. // * Update Actors
  1211. //==============================
  1212. Scene_Theatrhythm.prototype.updateActors = function() {
  1213.     for (var i = 0; i < this._actorSprites.length; i++) {               
  1214.         this._actorSprites[i].setBattler(this._battlers[i]);                       
  1215.     };
  1216. };
  1217.  
  1218. //==============================
  1219. // * Update Actors
  1220. //==============================
  1221. Scene_Theatrhythm.prototype.update_commands = function() {
  1222.         if (Input.isTriggered("a")) {this.check_key(0)}
  1223.         else if (Input.isTriggered("s")) {this.check_key(1)}
  1224.         else if (Input.isTriggered("ok")) {this.check_key(2)}
  1225.         else if (Input.isTriggered("cancel")) {this.check_key(3)}
  1226.         else if (Input.isTriggered("up")) {this.check_key(4)}
  1227.         else if (Input.isTriggered("right")) {this.check_key(5)}
  1228.         else if (Input.isTriggered("left")) {this.check_key(6)}
  1229.         else if (Input.isTriggered("down")) {this.check_key(7)};
  1230. };
  1231.  
  1232. //==============================
  1233. // * Check Key
  1234. //==============================
  1235. Scene_Theatrhythm.prototype.check_key = function(key) {
  1236.         SoundManager.playCursor();
  1237.         this._sprite_buttons.keyisValid(key);
  1238.         if ($gameSystem._theatrhythm_key_data[0] != null) {this.refresh_effect();};
  1239. };
  1240.  
  1241. //==============================
  1242. // * Refresh Effect
  1243. //==============================
  1244. Scene_Theatrhythm.prototype.refresh_effect = function() {
  1245.          var pos_id = $gameSystem._theatrhythm_key_data[0];
  1246.          var string_id = $gameSystem._theatrhythm_key_data[1];
  1247.          if (!this._layout_buttons[pos_id]) {
  1248.                  $gameSystem._theatrhythm_key_data[0] = null;
  1249.                  $gameSystem._theatrhythm_key_data[1] = 0;                 
  1250.                  return;
  1251.          };
  1252.      this._layout_buttons[pos_id].opacity = 255;
  1253.          this.refresh_string(pos_id, string_id);         
  1254.          if (string_id != 0) {this.execute_hit_enemy(pos_id, string_id)}
  1255.          else {this.execute_missed()};
  1256.          $gameSystem._theatrhythm_key_data[0] = null;
  1257.      $gameSystem._theatrhythm_key_data[1] = 0;
  1258. };
  1259.  
  1260. //==============================
  1261. // * Execute Hit Enemy
  1262. //==============================
  1263. Scene_Theatrhythm.prototype.execute_hit_enemy = function(pos_id, string_id) {
  1264.          var ani_id = this._battlers[pos_id].attackAnimationId1();
  1265.          this._enemySprite._enemy.startAnimation(ani_id, false, 0);
  1266.          this._enemySprite._enemy.motion_shake();
  1267.          $gameSystem._theatrhythm_chain_data[0] += 1;
  1268.          if ($gameSystem._theatrhythm_chain_data[1] < $gameSystem._theatrhythm_chain_data[0]) {
  1269.                  $gameSystem._theatrhythm_chain_data[1] = $gameSystem._theatrhythm_chain_data[0]};
  1270.          if (this._result_data[0] < $gameSystem._theatrhythm_chain_data[0]) {this._result_data[0] = $gameSystem._theatrhythm_chain_data[0]};         
  1271.          this.add_score();
  1272.          this.execute_damage(0);
  1273. };
  1274.  
  1275. //==============================
  1276. // * Execute Hit Actor
  1277. //==============================
  1278. Scene_Theatrhythm.prototype.execute_hit_actor = function(pos_id, string_id) {       
  1279.          if (this._enemySprite._enemy._motion_action_data[0] != 0) { return };
  1280.      this._enemySprite._enemy.clear_action_data();
  1281.      this._enemySprite._enemy._motion_action_data[0] = 7;         
  1282.          if (this._party_hp[0] > 0) {
  1283.              this._target_id = Math.randomInt(this._battlers.length);
  1284.        this._battlers[this._target_id].startAnimation(this._enemySprite._enemy._theatrhythm_ani_id, false, 0);
  1285.          this._battlers[this._target_id].motion_shake();
  1286.       } else {
  1287.                   for (var i = 0; i < this._battlers.length; i++) {
  1288.             this._battlers[i].startAnimation(this._enemySprite._enemy._theatrhythm_ani_id, false, 0);
  1289.               this._battlers[i].motion_shake();                          
  1290.                   };
  1291.           };
  1292.           this.execute_damage(1);
  1293. };
  1294.  
  1295. //==============================
  1296. // * Execute Missed
  1297. //==============================
  1298. Scene_Theatrhythm.prototype.execute_missed = function(pos_id, string_id) {
  1299.          $gameSystem._theatrhythm_chain_data[0] = 0;
  1300.      this.execute_miss_damage();
  1301. };
  1302.  
  1303. //==============================
  1304. // * Execute Miss Damage
  1305. //==============================
  1306. Scene_Theatrhythm.prototype.execute_miss_damage = function(pos_id, string_id) {
  1307.          if ($gameSystem._theatrhythm_phase != 1) {return};
  1308.          $gameSystem._theatrhythm_miss_dmg = false;
  1309.          var dmg = this._party_hp[1] * Math.abs(Moghunter.theatrhythm_miss_dmg_per) / 100
  1310.          this._party_hp[0] -= dmg;
  1311.          this.execute_hit_actor()
  1312.          if (this._party_hp[0] <= 0) {this._party_hp[0] = 0;this.battle_end(11)};
  1313. };
  1314.  
  1315. //==============================
  1316. // * Execute Damage
  1317. //==============================
  1318. Scene_Theatrhythm.prototype.execute_damage = function(target) {
  1319.         if ($gameSystem._theatrhythm_phase != 1) {return};
  1320.     if (target === 0) {
  1321.                 var dmg = Math.max((this._party_atk - this._enemy_def),1);
  1322.                 if ($gameSystem._theatrhythm_key_data[1] == 2) {dmg *= Moghunter.theatrhythm_critical_bonus};
  1323.                 this._enemy_hp[0] -= Math.floor(dmg);
  1324.                 if (this._enemy_hp[0] <= 0) {this._enemy_hp[0] = 0; this._enemySprite._enemy.performCollapse();this.battle_end(10)};
  1325.         } else {
  1326.                 var dmg = Math.max((this._enemy_atk - this._party_def),1);
  1327.                 this._party_hp[0] -= Math.floor(dmg);
  1328.                 if (this._party_hp[0] <= 0) {this._party_hp[0] = 0;this.battle_end(11)};
  1329.         };
  1330.         this.refresh_damage(target,Math.floor(dmg));
  1331. };
  1332.  
  1333. //==============================
  1334. // * Battle_End
  1335. //==============================
  1336. Scene_Theatrhythm.prototype.battle_end = function(type) {
  1337.         if ($gameSystem._theatrhythm_phase != 1) {return};
  1338.         if (type === 10) {
  1339.              $gameSwitches._data[Moghunter.theatrhythm_result_switch_id] = true;
  1340.         } else {
  1341.                 $gameSwitches._data[Moghunter.theatrhythm_result_switch_id] = false;
  1342.         };               
  1343.         $gameSystem._theatrhythm_phase = type;
  1344.         if (type === 10) {
  1345.                 for (var i = 0; i < this._battlers.length; i++) {               
  1346.                 this._battlers[i].performVictory();}
  1347.         } else {
  1348.                 $gameParty.requestMotionRefresh();
  1349.         };
  1350. };
  1351.  
  1352. //==============================
  1353. // * Add Score
  1354. //==============================
  1355. Scene_Theatrhythm.prototype.add_score = function() {
  1356.         var value = Moghunter.theatrhythm_base_score + (Moghunter.theatrhythm_chain_bonus * $gameSystem._theatrhythm_chain_data[0])
  1357.         if ($gameSystem._theatrhythm_key_data[1] == 2) {value *= Moghunter.theatrhythm_critical_bonus};
  1358.     this._score[1] += Math.floor(value);
  1359.         if ($gameSystem._theatrhythm_score_data[1] < this.score()) {$gameSystem._theatrhythm_score_data[1] = this.score()};
  1360. };
  1361.  
  1362. //==============================
  1363. // * Chain Bonus
  1364. //==============================
  1365. Scene_Theatrhythm.prototype.chainBonus = function() {
  1366.          return Math.floor((this._result_data[0] * Moghunter.theatrhythm_result_chain_bonus) * this.score())
  1367. };
  1368.  
  1369. //==============================
  1370. // * Score
  1371. //==============================
  1372. Scene_Theatrhythm.prototype.score = function() {
  1373.         return Math.floor(this._score[1])
  1374. };
  1375.  
  1376. //==============================
  1377. // * Set Total
  1378. //==============================
  1379. Scene_Theatrhythm.prototype.set_total = function() {
  1380.         var n = this.score() + this._enemy_bp + this.chainBonus();
  1381.         return Math.floor(n);
  1382. };
  1383.  
  1384. //==============================
  1385. // * Update Phase
  1386. //==============================
  1387. Scene_Theatrhythm.prototype.update_phase = function() {
  1388.     switch ($gameSystem._theatrhythm_phase) {
  1389.                 case 0:
  1390.             this.update_start_phase();
  1391.             break;
  1392.                 case 10:
  1393.             this.update_victory_phase();
  1394.             break;
  1395.                 case 11:
  1396.             this.update_defeat_phase();
  1397.             break;       
  1398.    };   
  1399.    this._phase_sprite.scale.y = this._phase_sprite.scale.x;
  1400. };
  1401.  
  1402. //==============================
  1403. // * Update Start Phase
  1404. //==============================
  1405. Scene_Theatrhythm.prototype.update_start_phase = function() {
  1406.     switch (this._phase[0]) {
  1407.                 case 0:
  1408.                 this.refresh_phase_sprite(0);
  1409.                         this._phase[0] = 1;
  1410.                  break;
  1411.                 case 1:
  1412.                 this._phase_sprite.opacity += 3;
  1413.                         if (this._phase_sprite.scale.x > 1.00) {this._phase_sprite.scale.x -= 0.02};
  1414.                     if (this._phase_sprite.opacity >= 255) {this._phase[0] = 2};
  1415.                 break;
  1416.                 case 2:
  1417.                     if (Input.isTriggered("ok") || Input.isTriggered("cancel") || TouchInput.isTriggered()) {
  1418.                                 SoundManager.playCursor();this._phase[0] = 3;BattleManager.playBattleBgm()};
  1419.                     break;        
  1420.                 case 3:
  1421.                         this._phase_sprite.opacity -= 3;
  1422.                         this._phase_sprite.scale.x += 0.02;
  1423.                         if (this._phase_sprite.opacity <= 0) {$gameSystem._theatrhythm_phase = 1;this._phase[0] = 4};
  1424.                     break;                                
  1425.         };
  1426. };
  1427.  
  1428. //==============================
  1429. // * Update Victory Phase
  1430. //==============================
  1431. Scene_Theatrhythm.prototype.update_victory_phase = function() {
  1432.    switch (this._phase[1]) {
  1433.                 case 0:
  1434.                 this.refresh_phase_sprite(1);
  1435.                         this._phase[1] = 1;
  1436.                         AudioManager.fadeOutBgm(1);
  1437.                  break;
  1438.                 case 1:
  1439.                 this._phase_sprite.opacity += 3;
  1440.                         if (this._phase_sprite.scale.x > 1.00) {this._phase_sprite.scale.x -= 0.02}
  1441.                     if (this._phase_sprite.opacity >= 255) {this._phase[1] = 3;BattleManager.playVictoryMe()};
  1442.                 break;
  1443.                 case 2:
  1444.                     if (Input.isTriggered("ok") || Input.isTriggered("cancel") || TouchInput.isTriggered()) {
  1445.                                 SoundManager.playCursor();this._phase[1] = 3};
  1446.                     break;        
  1447.                 case 3:
  1448.                     this._phase_sprite.opacity -= 3;
  1449.                         this._phase_sprite.scale.x += 0.02;       
  1450.                         if (this._phase_sprite.opacity <= 0) {this.display_result()};       
  1451.                         break;                       
  1452.                 case 4:
  1453.                 this._phase_sprite.opacity += 3;                       
  1454.                         if (this._phase_sprite.scale.x > 1.00) {this._phase_sprite.scale.x -= 0.02}
  1455.                     if (this._phase_sprite.opacity >= 255) {this._phase[1] = 5};
  1456.                 break;                       
  1457.                 case 5:
  1458.                     if (Input.isTriggered("ok") || Input.isTriggered("cancel") || TouchInput.isTriggered()) {
  1459.                                 SoundManager.playCursor();this._phase[1] = 6};
  1460.                     break;                       
  1461.                 case 6:       
  1462.                         this._phase_sprite.opacity -= 3;                       
  1463.                         if (this._phase_sprite.opacity <= 0) {this.fadeOutAll();$gameSystem._theatrhythm_phase = 12;this._phase[1] = 7;SceneManager.pop()};
  1464.                     break;                                
  1465.         };
  1466.         this._text_sprite.opacity = this._phase_sprite.opacity;       
  1467.         this._text_sprite.scale.x = this._phase_sprite.scale.x;
  1468.         this._text_sprite.scale.y = this._phase_sprite.scale.y;
  1469.         this._text2_sprite.opacity = this._phase_sprite.opacity;
  1470.         this._text2_sprite.scale.x = this._phase_sprite.scale.x;
  1471.         this._text2_sprite.scale.y = this._phase_sprite.scale.y;               
  1472. };
  1473.  
  1474. //==============================
  1475. // * Display Result
  1476. //==============================
  1477. Scene_Theatrhythm.prototype.display_result = function() {
  1478.         this._phase[1] = 4;
  1479.         this.refresh_phase_sprite(3);
  1480.         this.gain_rewards();
  1481.     this.draw_result();
  1482. };
  1483.  
  1484. //==============================
  1485. // * Gain Rewards
  1486. //==============================
  1487. Scene_Theatrhythm.prototype.gain_rewards = function() {
  1488.    $gameVariables._data[Moghunter.theatrhythm_variable_id] += this.set_total();
  1489. };
  1490.  
  1491. //==============================
  1492. // * Draw Result
  1493. //==============================
  1494. Scene_Theatrhythm.prototype.draw_result = function() {
  1495.         this._text_sprite.bitmap.drawText(this.score(),0,0,200,32,"right");
  1496.         this._text_sprite.bitmap.drawText("(" + String(this._result_data[0]) + ") " + String(this.chainBonus()),0,32,200,32,"right");
  1497.         this._text_sprite.bitmap.drawText(this._enemy_bp,0,64,200,32,"right");
  1498.         this._text_sprite.bitmap.drawText(this.set_total(),0,96,200,32,"right");
  1499.         this._text2_sprite.bitmap.drawText($gameVariables._data[Moghunter.theatrhythm_variable_id],0,0,200,100,"left");
  1500. };
  1501.  
  1502. //==============================
  1503. // * Update Defeat Phase
  1504. //==============================
  1505. Scene_Theatrhythm.prototype.update_defeat_phase = function() {
  1506.     switch (this._phase[2]) {
  1507.                 case 0:
  1508.                 this.refresh_phase_sprite(2);
  1509.                         this._phase[2] = 1;
  1510.                         AudioManager.fadeOutBgm(2);
  1511.                  break;
  1512.                 case 1:
  1513.                 this._phase_sprite.opacity += 3;
  1514.                         if (this._phase_sprite.scale.x > 1.00) {this._phase_sprite.scale.x -= 0.02};
  1515.                     if (this._phase_sprite.opacity >= 255) {this._phase[2] = 2};
  1516.                 break;
  1517.                 case 2:
  1518.                     if (Input.isTriggered("ok") || Input.isTriggered("cancel") || TouchInput.isTriggered()) {
  1519.                                 SoundManager.playCursor();this._phase[2] = 3};
  1520.                     break;        
  1521.                 case 3:
  1522.                         this._phase_sprite.opacity -= 3;
  1523.                         this._phase_sprite.scale.x += 0.02;
  1524.                         if (this._phase_sprite.opacity <= 0) {this.fadeOutAll();$gameSystem._theatrhythm_phase = 12;this._phase[2] = 4;SceneManager.pop();}
  1525.                     break;                                
  1526.         };
  1527. };
  1528.  
  1529. //==============================
  1530. // * Refresh Enemy Position
  1531. //==============================
  1532. Scene_Theatrhythm.prototype.refresh_enemy_position = function() {
  1533.       this._enemySprite._homeY += this._enemySprite.bitmap.height / 2;
  1534.           this._enemy_ref = true;
  1535. };
  1536.  
  1537. //==============================
  1538. // * Terminate
  1539. //==============================
  1540. Scene_Theatrhythm.prototype.terminate = function() {
  1541.         Scene_Base.prototype.terminate.call(this);
  1542.         BattleManager.replayBgmAndBgs();
  1543.         $gameSystem._theatrhythm = false;
  1544. };
  1545.  
  1546. //==============================
  1547. // * Update
  1548. //==============================
  1549. Scene_Theatrhythm.prototype.update = function() {
  1550.     Scene_Base.prototype.update.call(this);
  1551.     this.updateActors();       
  1552.         if (this._layout_buttons_data[0] === -1) {
  1553.                 if (this._layout_buttons_img.isReady()) {this.getSpriteData()};
  1554.                 return;
  1555.         };
  1556.         this.update_layout_buttons();
  1557.         for (var i = 0; i < this._layout_buttons.length; i++) {
  1558.                 this._layout_buttons[i].opacity -= 5;
  1559.                 this._strings[i].opacity -= 10;
  1560.                 if (this._strings[i].opacity > 0) {this._strings[i].scale.x += 0.05}
  1561.                 this._strings[i].scale.y = this._strings[i].scale.x;
  1562.         };
  1563.          if (!this._enemy_ref && this._enemySprite.bitmap.isReady()) {this.refresh_enemy_position()};
  1564.         if (this._meter_data[0] != -1) {this.update_time_meter()};
  1565.         if (this._hp_meter_data[0] != -1) {this.update_hp_meter()};
  1566.         if (this._point_data[0] != -1) {this.update_score();};
  1567.         if (this._enemyHpNumber_data[0] != -1) {this.update_enemyHpNumber()};
  1568.         if (this._actorHpNumber_data[0] != -1) {this.update_actorHpNumber()};
  1569.         if (this._chain_data[0] != -1) {this.update_chain();};
  1570.         if (this._damage_data[0] != -1) {this.update_damage()};
  1571.         if ($gameSystem._theatrhythm_phase === 1) {this.update_commands();};
  1572.         if ($gameSystem._theatrhythm_miss_dmg) {this.execute_miss_damage();};
  1573.         this.update_phase();
  1574. };
  1575.  
  1576. //=============================================================================
  1577. // ** Sprite TKeys
  1578. //=============================================================================       
  1579. function Sprite_TKeys() {
  1580.     this.initialize.apply(this, arguments);
  1581. }
  1582.  
  1583. Sprite_TKeys.prototype = Object.create(Sprite_Base.prototype);
  1584. Sprite_TKeys.prototype.constructor = Sprite_TKeys;
  1585.  
  1586. //==============================
  1587. // * Initialize
  1588. //==============================
  1589. Sprite_TKeys.prototype.initialize = function(img,pos) {
  1590.     Sprite_Base.prototype.initialize.call(this);
  1591.         this._image = img;
  1592.         this._cw = this._image.width  / 8;
  1593.         this._ch =  this._image.height;
  1594.         this._positions = pos;
  1595.         this._keys_speed = $gameSystem._theatrhythm_data[1];
  1596.         this._button_ok= null;
  1597.         this._batlers = $gameParty.battleMembers();
  1598.         this._limit = [this._positions[0][0] + this._cw + (this._cw / 4),
  1599.                        this._positions[0][0] + (this._cw * 3),
  1600.                                    this._positions[0][0] + this._cw + (this._cw),
  1601.                                    this._positions[0][0] + (this._cw * 2) + (this._cw / 3),
  1602.                                    Graphics.boxWidth + this._cw,
  1603.                                    ];
  1604.         this.create_keys();
  1605. };
  1606.  
  1607. //==============================
  1608. // * Create Keys
  1609. //==============================
  1610. Sprite_TKeys.prototype.create_keys = function() {
  1611.    this._keys = [];   
  1612.    this._keys_c = [];
  1613.    this._keys_f = [];
  1614.    this._keys_i = [];
  1615.    this._keys_h = [];
  1616.    this._keys_r = [];
  1617.    this._keys_s = [];
  1618.    for (var i = 0; i < 6; i++) {
  1619.              this._keys_c[i] = 0;
  1620.                  this._keys_f[i] = false;
  1621.                  this._keys_h[i] = 0;
  1622.                  this._keys_i[i] = this.key_space(i);
  1623.                  this._keys_r[i] = false;
  1624.                  this._keys_s[i] = false;
  1625.              this._keys[i] = new Sprite(this._image)
  1626.                  this._keys[i].x = this._limit[4];
  1627.                  this._keys[i].anchor.x = 0.5;
  1628.                  this._keys[i].anchor.y = 0.5;
  1629.                  this._keys[i].opacity = 0;
  1630.                  this.addChild(this._keys[i]);                 
  1631.    };
  1632. };
  1633.  
  1634. //==============================
  1635. // * Key Space
  1636. //==============================
  1637. Sprite_TKeys.prototype.key_space = function(i) {
  1638.          return ((this._cw +  Graphics.boxWidth / 4) / this._keys_speed) * i;
  1639. };
  1640.  
  1641. //==============================
  1642. // * Refresh Keys
  1643. //==============================
  1644. Sprite_TKeys.prototype.refresh_keys = function(i) {
  1645.         this._keysX = [];
  1646.         for (var e = 0; e < this._keys.length; e++) {this._keysX.push(this._keys[e].x);};
  1647.         this._keysX.sort(function(a, b){return a-b});
  1648.         var difX = (this._keys[i].x - this._limit[4]);
  1649.         this._keys_f[i] = false;
  1650.         this._keys_c[i] = Math.randomInt(8);
  1651.         this._keys_h[i] = Math.randomInt(this._batlers.length);
  1652.         this._keys_r[i] = true;
  1653.         this._keys_s[i] = false;
  1654.         var h = this._positions[this._keys_h[i]][1];
  1655.         this._keys[i].setFrame(this._cw * this._keys_c[i],0,this._cw,this._ch)
  1656.         this._keys[i].x = -(this._cw + this._keys_i[i] - difX);
  1657.         this._keys[i].y = h;
  1658.         this._keys[i].scale.x = 1.00;
  1659.         this._keys[i].scale.y = 1.00;
  1660.         this._keys[i].opacity = 0;
  1661.         if (this._keys[i].x > (this._keysX[0] - (this._cw +  Graphics.boxWidth / 6)) ) {this._keys[i].x = (this._keysX[0] - (this._cw +  Graphics.boxWidth / 6))};
  1662. };
  1663.  
  1664. //==============================
  1665. // * KeysisValid
  1666. //==============================
  1667. Sprite_TKeys.prototype.keyisValid = function(key) {
  1668.         for (var i = 0; i < this._keys.length; i++) {
  1669.              if (this.checkKey(key,i,0)) {this.execute_ok(i,key)};
  1670.         };
  1671.         if ($gameSystem._theatrhythm_key_data[0] == null) {
  1672.                 for (var i = 0; i < this._keys.length; i++) {
  1673.                    this.execute_miss(key,i);
  1674.                 };
  1675.     };
  1676. };
  1677.  
  1678. //==============================
  1679. // * Execute Miss
  1680. //==============================
  1681. Sprite_TKeys.prototype.execute_miss = function(key,i) {
  1682.         if ($gameSystem._theatrhythm_key_data[0] != null) {return};
  1683.         var keys_temp = [];
  1684.         for (var e = 0; e < this._keys.length; e++) {
  1685.                 if (this._keys[e].x <= this._limit[1]) {keys_temp.push([this._keys[e].x,this._keys_h[e]]);};
  1686.         };
  1687.         keys_temp.sort(function(a, b){return b[0]-a[0]});
  1688.         $gameSystem._theatrhythm_key_data[0] = keys_temp[0][1];
  1689.         $gameSystem._theatrhythm_key_data[1] = 0;
  1690. };
  1691.  
  1692. //==============================
  1693. // * Execute OK
  1694. //==============================
  1695. Sprite_TKeys.prototype.execute_ok = function(i,key) {
  1696.         if (!this._batlers[this._keys_h[i]]) {return};
  1697.     this._batlers[this._keys_h[i]].performAttack();
  1698.         $gameSystem._theatrhythm_key_data[0] = this._keys_h[i];
  1699.          if (this.checkKey(key,i,1)) {$gameSystem._theatrhythm_key_data[1] = 2}
  1700.          else {$gameSystem._theatrhythm_key_data[1] = 1};
  1701.          this._keys_f[i] = true;
  1702. };
  1703.  
  1704. //==============================
  1705. // * checkKey
  1706. //==============================
  1707. Sprite_TKeys.prototype.checkKey = function(key,i,type) {
  1708.         if (this._keys_f[i]) {return false};
  1709.         if (key != this._keys_c[i]) {return false};
  1710.         if (type === 0) {
  1711.             if (this._keys[i].x < this._limit[0]) {return false};
  1712.             if (this._keys[i].x > this._limit[1]) {return false};
  1713.         } else {
  1714.             if (this._keys[i].x < this._limit[2]) {return false};
  1715.             if (this._keys[i].x > this._limit[3]) {return false};        
  1716.         };
  1717.     return true;
  1718. };
  1719.  
  1720. //==============================
  1721. // * Update
  1722. //==============================
  1723. Sprite_TKeys.prototype.update = function(i) {
  1724.     Sprite_Base.prototype.update.call(this);
  1725.         for (var i = 0; i < this._keys.length; i++) {this.update_keys(i)};
  1726. };
  1727.  
  1728. //==============================
  1729. // * Update Keys
  1730. //==============================
  1731. Sprite_TKeys.prototype.update_keys = function(i) {
  1732.         if (this._keys_i[i] > 0) {this._keys_i[i] -= 1;return};
  1733.         if ($gameSystem._theatrhythm_phase != 1) {this._keys[i].opacity -= 10; return;};
  1734.         if (this._keys_f[i]) {this.update_fade(i);}
  1735.         else {this.update_position(i)                  
  1736.         };
  1737.         if (this.need_reset_key(i)) {this.refresh_keys(i)};       
  1738. };       
  1739.  
  1740. //==============================
  1741. // * Update Keys
  1742. //==============================
  1743. Sprite_TKeys.prototype.update_position = function(i) {
  1744.         this._keys[i].x += this._keys_speed;
  1745.         if (this._keys[i].x > this._limit[1] && this._keys[i].opacity > 0) {this._keys[i].opacity -= 7;
  1746.              if (!this._keys_s[i] && this._keys_r[i]) {this.slow_pressed(i);}
  1747.         }
  1748.         else {
  1749.              this._keys[i].opacity += 25;
  1750.         };
  1751. };
  1752.  
  1753. //==============================
  1754. // * Update Keys
  1755. //==============================
  1756. Sprite_TKeys.prototype.update_fade = function(i) {
  1757.         this._keys[i].scale.x += 0.05;
  1758.         this._keys[i].scale.y = this._keys[i].scale.x;
  1759.         this._keys[i].opacity -= 25;
  1760. };
  1761.  
  1762. //==============================
  1763. // * Slow Pressed
  1764. //==============================
  1765. Sprite_TKeys.prototype.slow_pressed = function(i) {       
  1766.    this._keys_s[i] = true;
  1767.    $gameSystem._theatrhythm_chain_data[0] = 0;
  1768.    $gameSystem._theatrhythm_miss_dmg = true;
  1769. };
  1770.  
  1771. //==============================
  1772. // * Update Keys
  1773. //==============================
  1774. Sprite_TKeys.prototype.need_reset_key = function(i) {
  1775.         if (this._keys[i].x > this._limit[4]) {return true};
  1776.         if (this._keys[i].opacity === 0) {return true};
  1777.         return false;
  1778. };
  1779.  
  1780. //=============================================================================
  1781. // ** Sprite Actor
  1782. //=============================================================================       
  1783. var _alias_mog_Theatrhythm_updateTargetPosition = Sprite_Actor.prototype.updateTargetPosition;
  1784. Sprite_Actor.prototype.updateTargetPosition = function() {
  1785.         if ($gameSystem._theatrhythm) {return};
  1786.         _alias_mog_Theatrhythm_updateTargetPosition.call(this);
  1787. };
  1788.  
  1789. //==============================
  1790. // * setActorHome
  1791. //==============================
  1792. var _alias_mog_Theatrhythm_setActorHome = Sprite_Actor.prototype.setActorHome;
  1793. Sprite_Actor.prototype.setActorHome = function(index) {
  1794.     if ($gameSystem._theatrhythm) {this.setHome(Moghunter.theatrhythm_actor_x, Moghunter.theatrhythm_actor_y + index * Moghunter.theatrhythm_actor_spc_y);return};
  1795.         _alias_mog_Theatrhythm_setActorHome.call(this,index);
  1796. };
  1797.  
  1798. //==============================
  1799. // * refreshMotion
  1800. //==============================
  1801. var _alias_mog_Theatrhythm_refreshMotion = Sprite_Actor.prototype.refreshMotion;
  1802. Sprite_Actor.prototype.refreshMotion = function() {
  1803.         if ($gameSystem._theatrhythm) {this.refreshMotion_Theatrhythm();return};
  1804.         _alias_mog_Theatrhythm_refreshMotion.call(this);
  1805. };
  1806.  
  1807. //==============================
  1808. // * refreshMotion_Theatrhythm
  1809. //==============================
  1810. Sprite_Actor.prototype.refreshMotion_Theatrhythm = function() {       
  1811.     var actor = this._actor;
  1812.     if (actor) {
  1813.                  if ($gameSystem._theatrhythm_phase === 11) {
  1814.             this.startMotion('dead');
  1815.          } else {
  1816.             this.startMotion('walk');
  1817.          };
  1818.     };
  1819. };

360截图20170728123705930.jpg (154.97 KB, 下载次数: 0)

360截图20170728123705930.jpg

360截图20170728123716814.jpg (18.05 KB, 下载次数: 0)

360截图20170728123716814.jpg

作者: soulsaga    时间: 2017-7-28 14:15
@param Party HP Number X
作者: j296196585    时间: 2017-7-28 14:31
soulsaga 发表于 2017-7-28 14:15
@param Party HP Number X

比方说最大限度 只能显示90万
能不能显示900万 或者9000万的
作者: soulsaga    时间: 2017-7-28 15:39
this._enemyHpNumber_data = [this._hp_number_1_img.width / 10,this._hp_number_1_img.height,Moghunter.theatrhythm_enemy_hp_number_x];

1125行应该是你要找的..你再自己研究看看..
作者: j296196585    时间: 2017-7-28 16:30
soulsaga 发表于 2017-7-28 15:39
this._enemyHpNumber_data = [this._hp_number_1_img.width / 10,this._hp_number_1_img.height,Moghunter. ...


链接: http://pan.baidu.com/s/1skAJNnZ 密码: ixwc
点评

VA 我也是叫人帮忙修改的 MV跟VA 不同。。

JAVASCRIPT 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● Create HP Number
  3.   #--------------------------------------------------------------------------   
  4.   def create_hp_number
  5.       @hp2 = $game_system.boss_hp_meter[4]
  6.       @hp3 = @hp2
  7.       @hp_old2 = @hp2
  8.       @hp_ref = @hp_old2
  9.       @hp_refresh = false   
  10.       @hp_number_image = $game_temp.cache_boss_hp[2]
  11.       @hp_cw = @hp_number_image.width / 10
  12.       @hp_ch = @hp_number_image.height / 2
  13.       @hp_ch2 = 0
  14.       @hp_ch_range = HP_NUMBER_WAVE_EFFECT == true ? @hp_ch / 3 : 0
  15.       @hp_number_sprite = Sprite.new
  16.       @hp_number_sprite.bitmap = Bitmap.new(@hp_number_image.width+300, @hp_ch * 2) 这里可以修改  之后可以破限 MV不知道在哪里改
  17.       @hp_number_sprite.z = @layout.z
  18.       @hp_number_sprite.x = @layout.x + HP_NUMBER_POSITION[0]
  19.       @hp_number_sprite.y = @layout.y + HP_NUMBER_POSITION[1]
  20.       @hp_number_sprite.viewport = @hp_vieport
  21.       @hp_number_sprite.visible = $game_system.boss_hp_meter[9]
  22.       refresh_hp_number
  23.   end

作者: j296196585    时间: 2017-7-28 17:58
j296196585 发表于 2017-7-28 16:30
链接: http://pan.baidu.com/s/1skAJNnZ 密码: ixwc
点评

打开开关
找到以下地址 全部。。999999999

360截图20170728175914119.jpg (7.73 KB, 下载次数: 0)

360截图20170728175914119.jpg

360截图20170728175930072.jpg (74.75 KB, 下载次数: 1)

360截图20170728175930072.jpg

作者: j296196585    时间: 2017-7-28 18:36
j296196585 发表于 2017-7-28 16:30
链接: http://pan.baidu.com/s/1skAJNnZ 密码: ixwc
点评

<hp: 9000000>  你还要在敌人那注释
作者: soulsaga    时间: 2017-7-28 20:07
本帖最后由 soulsaga 于 2017-7-28 20:13 编辑
j296196585 发表于 2017-7-28 18:36
你还要在敌人那注释


结果如下..
MOG_BossHP.js插件里搜
for (var i = 0; i < 6
把所有搜到的6都改成你想改的HP位数就行..

QQQ.png (990.01 KB, 下载次数: 10)

QQQ.png





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1