663 lines
		
	
	
	
		
			21 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			663 lines
		
	
	
	
		
			21 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // ----------------------------------------------------------------------------
 | |
| // OMORI Minigame - Pet Rocks
 | |
| //-----------------------------------------------------------------------------
 | |
| // Rock Template
 | |
| //-----------------------------------------------------------------------------
 | |
| function Rock() {
 | |
|     this.initialize.apply(this, arguments);
 | |
| }
 | |
| 
 | |
| Rock.prototype = Object.create(Sprite_Base.prototype);
 | |
| Rock.prototype.construstor = Rock;
 | |
| 
 | |
| Rock.prototype.initialize = function(name) {
 | |
|     Sprite_Base.prototype.initialize.call(this);
 | |
|     // Defaults
 | |
|     this.name = "ROCK-" + name;
 | |
|     this.bitmap = ImageManager.loadPicture("ROCK-" + name);
 | |
|     this.hp = 6;
 | |
|     this.frequency = [33, 33, 33];
 | |
|     this.options = ["rock", "paper", "scissors"];
 | |
|     this.setSprite(false);
 | |
|     this.setupRock(name);
 | |
| }
 | |
| 
 | |
| Rock.prototype.setupRock = function(name) {
 | |
|     switch (name) {
 | |
|         case "Jash":
 | |
|             this.hp = 3;
 | |
|             this.frequency = [0, 0, 0];
 | |
|             break;
 | |
|         case "TomatoGirl":
 | |
|             this.hp = 3;
 | |
|             this.frequency = [60, 40, 0];
 | |
|             break;
 | |
|         case "RoseLad":
 | |
|             this.hp = 3;
 | |
|             this.frequency = [0, 60, 40];
 | |
|             break;
 | |
|         case "TheMuncherKing":
 | |
|             this.hp = 3;
 | |
|             this.frequency = [40, 0, 60];
 | |
|             break;
 | |
|         case "PapaChip":
 | |
|             this.hp = 3;
 | |
|             this.frequency = [50, 25, 25];
 | |
|             break;
 | |
|         case "Bunny":
 | |
|             this.hp = 3;
 | |
|             this.frequency = [25, 50, 25];
 | |
|             break;
 | |
|         case "SaucyK":
 | |
|             this.hp = 6;
 | |
|             this.frequency = [0, 0, 100];
 | |
|             break;
 | |
|         case "Pluto":
 | |
|             this.hp = 6;
 | |
|             this.frequency = [100, 0, 0];
 | |
|             break;
 | |
|         case "LilG":
 | |
|             this.hp = 4;
 | |
|             this.frequency = [33, 33, 33];
 | |
|             break;
 | |
|         case "P'terry":
 | |
|             this.hp = 5;
 | |
|             this.frequency = [25, 25, 50];
 | |
|             break;
 | |
|         case "CoolSNake":
 | |
|             this.hp = 5;
 | |
|             this.frequency = [25, 50, 25];
 | |
|             break;
 | |
|         case "Ocotaco":
 | |
|             this.hp = 5;
 | |
|             this.frequency = [50, 25, 25];
 | |
|             break;
 | |
|         case "OneWingAsh":
 | |
|             this.hp = 9;
 | |
|             this.frequency = [33, 33, 33];
 | |
|             break;
 | |
|     }
 | |
| }
 | |
| 
 | |
|     Rock.prototype.setSprite = function(attacking) {
 | |
|         var pw = 128;
 | |
|         var ph = 128;
 | |
|         if (attacking) {
 | |
|             var sx = 1 * pw;
 | |
|             var sy = 0;
 | |
|             this.setFrame(sx, sy, pw, ph);
 | |
|         } else {
 | |
|             var sx = 0 * pw;
 | |
|             var sy = 0;
 | |
|             this.setFrame(sx, sy, pw, ph);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     Rock.prototype.flash = function() {
 | |
|         this.flashing = 40;
 | |
|     }
 | |
| 
 | |
|     Rock.prototype.update = function() {
 | |
|         if(this.flashing > 0) {
 | |
|             this.flashing --;
 | |
|             if (this.flashing % 5 === 0) this.visible = this.visible ? false : true;
 | |
|             if (this.flashing <= 0) this.visible = true;
 | |
|         }
 | |
|     }
 | |
| 
 | |
| function Rock_Result() {
 | |
|     this.initialize.apply(this, arguments);
 | |
| }
 | |
| 
 | |
| Rock_Result.prototype = Object.create(Sprite_Base.prototype);
 | |
| Rock_Result.prototype.construstor = Rock_Result;
 | |
| 
 | |
| Rock_Result.prototype.initialize = function (x, y) {
 | |
|     Sprite_Base.prototype.initialize.call(this);
 | |
|     this.visible = false;
 | |
|     this.bitmap = ImageManager.loadPicture('ROCK-Animation');
 | |
|     this.x = x; this.y = y;
 | |
| }
 | |
| 
 | |
| Rock_Result.prototype.setSprite = function (result, id) {
 | |
|     var pw = 64;
 | |
|     var ph = 64;
 | |
|     if (result) {
 | |
|         var sx = id * pw;
 | |
|         if (result === "defend") var sy = 0;
 | |
|         if (result === "hit") var sy = 1 * ph;
 | |
|         if (result === "draw") var sy = 2 * ph;
 | |
|         this.setFrame(sx, sy, pw, ph);
 | |
|         this.visible = true;
 | |
|     }
 | |
| }
 | |
| 
 | |
| //=============================================================================
 | |
| // Gameplay
 | |
| //=============================================================================
 | |
| function Scene_PetRocks() {
 | |
|     this.initialize.apply(this, arguments);
 | |
| }
 | |
| Scene_PetRocks.prototype = Object.create(Scene_Base.prototype);
 | |
| Scene_PetRocks.prototype.constructor = Scene_MenuBase;
 | |
| 
 | |
| Scene_PetRocks.prototype.initialize = function () {
 | |
|     Scene_Base.prototype.initialize.call(this);
 | |
|     this.startFadeIn(this.fadeSpeed(), false);
 | |
|     ImageManager.loadAtlas("MN_PetRocks");
 | |
|     ImageManager.loadPicture("Sequence/ROCK-Intro_01");
 | |
|     ImageManager.loadPicture("Sequence/ROCK-Intro_02");
 | |
|     ImageManager.loadPicture("Sequence/ROCK-Intro_03");
 | |
|     ImageManager.loadPicture("Sequence/ROCK-Intro_04");
 | |
|     ImageManager.loadPicture("Sequence/ROCK-Intro_05");
 | |
|     ImageManager.loadPicture("Sequence/ROCK-Intro_06");
 | |
|     ImageManager.loadPicture("Sequence/ROCK-Intro_07");
 | |
| 
 | |
|     this._titleShowing = true;
 | |
|     this._gameEndTimer = 0;
 | |
|     this._onStart = false;
 | |
| }
 | |
| 
 | |
| Scene_PetRocks.prototype.create = function() {
 | |
|     Scene_Base.prototype.create.call(this);
 | |
|     this.mainImage = new Sprite();
 | |
|     this.mainImage.bitmap = ImageManager.loadPicture('ROCK-Background');
 | |
|     this.addChild(this.mainImage);
 | |
| 
 | |
|     this.startGame();
 | |
| }
 | |
| 
 | |
| Scene_PetRocks.prototype.startGame = function(){
 | |
|     var bgm = {
 | |
|         name: "minigame_jash_title",
 | |
|         volume: 100,
 | |
|         pitch: 100,
 | |
|         pan: 0
 | |
|     };
 | |
|     AudioManager.playBgm(bgm);
 | |
| 
 | |
|     this._player = new Rock("Jash");
 | |
|     this.addChild(this._player);
 | |
|     this._player.x = 160;
 | |
|     this._player.y = 176;
 | |
|     this._player.currentCombo = 1;
 | |
| 
 | |
|     this._opponent = new Rock($gameVariables.value(824));
 | |
|     this.addChild(this._opponent);
 | |
|     this._opponent.x = 640 - 160 - 128;
 | |
|     this._opponent.y = 176;
 | |
|     this._opponent.currentCombo = 1;
 | |
| 
 | |
|     this._options = new Window_PetRockOptions();
 | |
|     this._options.setHandler('rock', this.onChoice.bind(this, "rock"));
 | |
|     this._options.setHandler('paper', this.onChoice.bind(this, "paper"));
 | |
|     this._options.setHandler('scissors', this.onChoice.bind(this, "scissors"));
 | |
|     this.addChild(this._options);
 | |
|     this._playerHearts = [];
 | |
|     for (var i = 0; i < this._player.hp; i++) {
 | |
|         var sprite = new Sprite();
 | |
|         sprite.bitmap = ImageManager.loadPicture('ROCK-Heart');
 | |
|         sprite.id = i;
 | |
|         sprite.x = 174 + (i % 3 * 32);
 | |
|         sprite.y = 106;
 | |
|         this._playerHearts.push(sprite);
 | |
|         this.addChild(sprite);
 | |
|     }
 | |
|     this._playerHearts.reverse();
 | |
| 
 | |
|     this._opponentHearts = [];
 | |
|     for (var i = 0; i < this._opponent.hp; i++) {
 | |
|         var sprite = new Sprite();
 | |
|         sprite.bitmap = ImageManager.loadPicture('ROCK-Heart');
 | |
|         sprite.x = 382 + (i % 3 * 32);
 | |
|         sprite.id = i;
 | |
|         if (i > 5) {
 | |
|             sprite.y = 106 + 28 + 28;
 | |
|         } else if (i > 2) {
 | |
|             sprite.y = 106 + 28;
 | |
|         } else {
 | |
|             sprite.y = 106;
 | |
|         }
 | |
| 
 | |
|         this._opponentHearts.push(sprite);
 | |
|         this.addChild(sprite);
 | |
|     }
 | |
|     this._opponentHearts.reverse();
 | |
| 
 | |
|     this._comboCounter = new Sprite();
 | |
|     this._comboCounter.bitmap = ImageManager.loadPicture("ROCK-ComboCounter");
 | |
|     this._comboCounter.x = 320 - 37;
 | |
|     this._comboCounter.y = 92;
 | |
|     this.addChild(this._comboCounter);
 | |
| 
 | |
|     this._comboNumber = new Sprite();
 | |
|     this._comboNumber.bitmap = ImageManager.loadPicture("ROCK-Combo1");
 | |
|     this._comboNumber.x = 320;
 | |
|     this._comboNumber.y = 114;
 | |
|     this.addChild(this._comboNumber);
 | |
| }
 | |
| 
 | |
| Scene_PetRocks.prototype.onChoice = function(choice) {
 | |
|     if (!this._onStart) return;
 | |
|     SoundManager.playOk();
 | |
|     this._options.deactivate();
 | |
|     this._optionPressed = 20;
 | |
|     this._options.redrawCurrentItem();
 | |
| 
 | |
|     this._playerChoice = choice;
 | |
|     this._opponentChoice = this.getOpponentChoice(this._opponent);
 | |
| 
 | |
|     this._playerIcon = new Sprite();
 | |
|     this._playerIcon.bitmap = ImageManager.loadPicture("ROCK-OptionsSheet");
 | |
|     this._playerIcon.x = 320 - 41;
 | |
|     this._playerIcon.y = 240 - 48;
 | |
| 
 | |
|     this._opponentIcon = new Sprite();
 | |
|     this._opponentIcon.bitmap = ImageManager.loadPicture("ROCK-OptionsSheet");
 | |
|     this._opponentIcon.x = 320 + 41;
 | |
|     this._opponentIcon.y = 240;
 | |
|     this._opponentIcon.scaleX = -1;
 | |
| 
 | |
|     this._sfxDelay = 240;
 | |
| }
 | |
| 
 | |
| Scene_PetRocks.prototype.displayDecision = function() {
 | |
|     // Check Who Won + Display Result
 | |
|     if (this._playerChoice === "rock") {
 | |
|         var sx = 2 * 82;
 | |
|         if (this._opponentChoice === "rock") {
 | |
|             // TIE
 | |
|             this._rockResult = ["draw", "draw"];
 | |
|             var ox = 2 * 82;
 | |
|         } else if (this._opponentChoice === "paper") {
 | |
|             // LOSE
 | |
|             this._rockResult = ["hit", "defend"];
 | |
|             var ox = 1 * 82;
 | |
|         } else {
 | |
|             // WIN
 | |
|             this._rockResult = ["defend", "hit"];
 | |
|             var ox = 0 * 82;
 | |
|         }
 | |
|     }
 | |
|     if (this._playerChoice === "paper") {
 | |
|         var sx = 1 * 82;
 | |
|         if (this._opponentChoice === "paper") {
 | |
|             // TIE
 | |
|             this._rockResult = ["draw", "draw"];
 | |
|             var ox = 1 * 82;
 | |
|         } else if (this._opponentChoice === "scissors") {
 | |
|             // LOSE
 | |
|             this._rockResult = ["hit", "defend"];
 | |
|             var ox = 0 * 82;
 | |
|         } else {
 | |
|             // WIN
 | |
|             this._rockResult = ["defend", "hit"];
 | |
|             var ox = 2 * 82;
 | |
|         }
 | |
|     }
 | |
|     if (this._playerChoice === "scissors") {
 | |
|         var sx = 0 * 82;
 | |
|         if (this._opponentChoice === "scissors") {
 | |
|             // TIE
 | |
|             this._rockResult = ["draw", "draw"];
 | |
|             var ox = 0 * 82;
 | |
|         } else if (this._opponentChoice === "rock") {
 | |
|             // LOSE
 | |
|             this._rockResult = ["hit", "defend"];
 | |
|             var ox = 2 * 82;
 | |
|         } else {
 | |
|             // WIN
 | |
|             this._rockResult = ["defend", "hit"];
 | |
|             var ox = 1 * 82;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     this._playerIcon.setFrame(sx, 0, 82, 44);
 | |
|     this.addChild(this._playerIcon);
 | |
|     this._opponentIcon.setFrame(ox, 0, 82, 44);
 | |
|     this.addChild(this._opponentIcon);
 | |
| 
 | |
|     this._playerIcon.visible = true;
 | |
|     this._opponentIcon.visible = true;
 | |
| 
 | |
|     this._resultsShowing = 75;
 | |
| }
 | |
| 
 | |
| Scene_PetRocks.prototype.displayResults = function() {
 | |
|     if (this._rockResult[0] === "hit") {
 | |
|         var se = {
 | |
|             name: "mini_coj_hurt",
 | |
|             volume: 100,
 | |
|             pitch: 100,
 | |
|             pan: 0
 | |
|         };
 | |
|         AudioManager.playSe(se);
 | |
|         this._opponent.setSprite(true);
 | |
|     } else if (this._rockResult[0] === "defend") {
 | |
|         var se = {
 | |
|             name: "mini_coj_hit",
 | |
|             volume: 100,
 | |
|             pitch: 100,
 | |
|             pan: 0
 | |
|         };
 | |
|         AudioManager.playSe(se);
 | |
|         this._player.setSprite(true);
 | |
|     } else {
 | |
|         var se = {
 | |
|             name: "mini_coj_draw",
 | |
|             volume: 100,
 | |
|             pitch: 100,
 | |
|             pan: 0
 | |
|         };
 | |
|         AudioManager.playSe(se);
 | |
|     }
 | |
|     // Display Graphical Animations
 | |
|     this._displayingAnimations = true;
 | |
|     this._timer = 15;
 | |
|     var x = 160 + 32;
 | |
|     var y = 174 + 32;
 | |
|     this._resultAnimation = new Rock_Result(x, y);
 | |
|     this.addChild(this._resultAnimation);
 | |
| 
 | |
|     var x = 640 - 160 - 128 + 32;
 | |
|     var y = 174 + 32;
 | |
|     this._resultAnimationOpp = new Rock_Result(x, y);
 | |
|     this.addChild(this._resultAnimationOpp);
 | |
| }
 | |
| 
 | |
| Scene_PetRocks.prototype.getOpponentChoice = function(opponent) {
 | |
|     var randomNum = Math.floor(Math.random() * 100);
 | |
|     var weightAddition = 0;
 | |
|     for (var i = 0; i < opponent.frequency.length; i++) {
 | |
|         weightAddition += opponent.frequency[i];
 | |
|         if (randomNum < weightAddition){
 | |
|             this._opponentChoice = opponent.options[i];
 | |
|             return opponent.options[i];
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| Scene_PetRocks.prototype.update = function() {
 | |
|     Scene_Base.prototype.update.call(this);
 | |
|     // Are you ready to clash animation
 | |
|     if (this._titleShowing) {
 | |
|         if (!this._titleSprite) {
 | |
|             this._titleSprite = new Sprite();
 | |
|             this._titleSprite.bitmap = ImageManager.loadPicture("Sequence/ROCK-Intro_01");
 | |
|             this.addChild(this._titleSprite);
 | |
|             this._titleAnimationTimer = 300;
 | |
|             this._titleSpriteID = 1;
 | |
|             this._options.deactivate();
 | |
|         }
 | |
|         if (this._titleSprite) {
 | |
|             if (this._titleAnimationTimer % (this._titleSpriteID >= 6 ? 10 : 40) === 0) {
 | |
|                 this._titleSpriteID += 1;
 | |
|                 if(this._titleSpriteID > 7) {
 | |
|                     this._titleSpriteID = 6;
 | |
|                 }
 | |
|                 this._titleSprite.bitmap = ImageManager.loadPicture("Sequence/ROCK-Intro_" + (this._titleSpriteID > 9 ? this._titleSpriteID : "0" + this._titleSpriteID));
 | |
|             }
 | |
|             this._titleAnimationTimer--;
 | |
|             if (this._titleAnimationTimer <= 0) {
 | |
|                 this._titleShowing = false;
 | |
|                 this.removeChild(this._titleSprite);
 | |
|                 this._options.activate();
 | |
|                 var townsPeople = ["ROCK-TomatoGirl", "ROCK-RoseLad", "ROCK-TheMuncherKing", "ROCK-PapaChip", "ROCK-Bunny", "ROCK-SaucyK", "ROCK-Pluto"];
 | |
|                 var elite = ["ROCK-LilG", "ROCK-P'terry", "ROCK-CoolSNake", "ROCK-Ocotaco"];
 | |
|                 var champ = ["ROCK-OneWingAsh"];
 | |
|                 if (townsPeople.contains(this._opponent.name)) var name = "minigame_jash1";
 | |
|                 else if (elite.contains(this._opponent.name)) var name = "minigame_jash2";
 | |
|                 else if (champ.contains(this._opponent.name)) var name = "minigame_jash3"
 | |
|                 var bgm = {
 | |
|                     name: name,
 | |
|                     volume: 100,
 | |
|                     pitch: 100,
 | |
|                     pan: 0
 | |
|                 };
 | |
|                 AudioManager.playBgm(bgm);
 | |
|                 this._onStart = true;
 | |
|             }
 | |
|         }
 | |
|         return;
 | |
|     }
 | |
| 
 | |
|     if (this._sfxDelay > 0) {
 | |
|         this._sfxDelay--;
 | |
|         if (this._sfxDelay === 180) {
 | |
|             var se = {
 | |
|                 name: "mini_coj_windup",
 | |
|                 volume: 100,
 | |
|                 pitch: 100,
 | |
|                 pan: 0
 | |
|             };
 | |
|             AudioManager.playSe(se);
 | |
|         }
 | |
|         if (this._sfxDelay === 120) {
 | |
|             var se = {
 | |
|                 name: "mini_coj_windup",
 | |
|                 volume: 100,
 | |
|                 pitch: 100,
 | |
|                 pan: 0
 | |
|             };
 | |
|             AudioManager.playSe(se);
 | |
|         }
 | |
|         if (this._sfxDelay === 60) {
 | |
|             var se = {
 | |
|                 name: "mini_coj_windup",
 | |
|                 volume: 100,
 | |
|                 pitch: 100,
 | |
|                 pan: 0
 | |
|             };
 | |
|             AudioManager.playSe(se);
 | |
|         }
 | |
|         if (this._sfxDelay <= 0) {
 | |
|             this.displayDecision();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     if (this._resultsShowing > 0) {
 | |
|         this._resultsShowing --;
 | |
|         if (this._resultsShowing <= 0) {
 | |
|             this.displayResults();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     if (this._optionPressed > 0) {
 | |
|         this._optionPressed--;
 | |
|         if (this._optionPressed <= 0) {
 | |
|             this._options.redrawCurrentItem();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     // Show result animation of the clash
 | |
|     if (this._displayingAnimations || this._timer > 0) {
 | |
|         this._timer--;
 | |
|         if (this._timer > 10 && this._timer < 15) {
 | |
|             if (this._rockResult[0] ==="hit") this._player.flash();
 | |
|             else if (this._rockResult[0] === "defend") this._opponent.flash();
 | |
|             this._resultAnimation.setSprite(this._rockResult[0], 0);
 | |
|             this._resultAnimationOpp.setSprite(this._rockResult[1], 0);
 | |
|         }
 | |
|         if (this._timer > 5 && this._timer < 10) {
 | |
|             this._resultAnimation.setSprite(this._rockResult[0], 1);
 | |
|             this._resultAnimationOpp.setSprite(this._rockResult[1], 1);
 | |
|         }
 | |
|         if (this._timer < 5) {
 | |
|             this._resultAnimation.setSprite(this._rockResult[0], 2);
 | |
|             this._resultAnimationOpp.setSprite(this._rockResult[1], 2);
 | |
|         }
 | |
| 
 | |
|         if (this._timer <= 0) {
 | |
|             if (this._rockResult[0] === "draw") { // TIE
 | |
|                 this._opponent.currentCombo = 1;
 | |
|                 this._player.currentCombo = 1;
 | |
|             }
 | |
|             if (this._rockResult[0] === "defend") { // WIN
 | |
|                 var damage = 1 * this._player.currentCombo;
 | |
|                 this.removeHearts("opponent", damage);
 | |
|                 this._opponent.hp -= damage;
 | |
|                 this._opponent.currentCombo = 1;
 | |
|                 this._player.currentCombo += 1;
 | |
|                 if (this._player.currentCombo > 3) this._player.currentCombo = 3;
 | |
|             }
 | |
|             if (this._rockResult[0] === "hit") { // LOSE
 | |
|                 var damage = 1 * this._opponent.currentCombo;
 | |
|                 this.removeHearts("player", damage);
 | |
|                 this._player.hp -= damage;
 | |
|                 this._player.currentCombo = 1;
 | |
|                 this._opponent.currentCombo += 1;
 | |
|                 if (this._opponent.currentCombo > 3) this._opponent.currentCombo = 3;
 | |
| 
 | |
|             }
 | |
|             this._displayingAnimations = false;
 | |
|             this.removeChild(this._resultAnimation);
 | |
|             this.removeChild(this._resultAnimationOpp);
 | |
|             this._player.setSprite(false);
 | |
|             this._opponent.setSprite(false);
 | |
| 
 | |
|             this.removeChild(this._playerIcon);
 | |
|             this.removeChild(this._opponentIcon);
 | |
| 
 | |
|             // Start Next Turn
 | |
|             this._nextTurnDelay = 80;
 | |
|             this.checkWinConditions();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     if (this._nextTurnDelay > 0) {
 | |
|         this._nextTurnDelay--;
 | |
|         if (this._nextTurnDelay <= 0) {
 | |
|             if (this._gameEndTimer <= 0) {
 | |
|                 this._options.activate();
 | |
|                 this._comboNumber.bitmap = ImageManager.loadPicture("ROCK-Combo" + (this._player.currentCombo > 0 ? this._player.currentCombo : 1));
 | |
|             }
 | |
|         }
 | |
|     }
 | |
|     // Game over
 | |
|     if (this._gameEndTimer > 0) {
 | |
|         this._gameEndTimer--;
 | |
|         if (this._gameEndTimer === 120) {
 | |
|             if ($gameVariables.value(825) === "opponent") {
 | |
|                 var se = {
 | |
|                     name: "mini_coj_lose",
 | |
|                     volume: 100,
 | |
|                     pitch: 100,
 | |
|                     pan: 0
 | |
|                 };
 | |
|                 AudioManager.playSe(se);
 | |
|             } else {
 | |
|                 var se = {
 | |
|                     name: "mini_coj_win",
 | |
|                     volume: 100,
 | |
|                     pitch: 100,
 | |
|                     pan: 0
 | |
|                 };
 | |
|                 AudioManager.playSe(se);
 | |
|             }
 | |
|         }
 | |
|         if (this._gameEndTimer <= 0) {
 | |
| 
 | |
|             for (var i = 0 ;i < this.children.length; i++) {
 | |
|                 this.children[i].parent.removeChild(this.children[i]);
 | |
|             }
 | |
|             this.children = [];
 | |
|             this.popScene();
 | |
|             AudioManager.stopBgm();
 | |
|         }
 | |
|         return;
 | |
|     }
 | |
| }
 | |
| 
 | |
| Scene_PetRocks.prototype.removeHearts = function(rock, damage) {
 | |
|     if (rock === "player") {
 | |
|         rock = this._player;
 | |
|         var hearts = this._playerHearts;
 | |
|     } else {
 | |
|         rock = this._opponent;
 | |
|         var hearts = this._opponentHearts;
 | |
|     }
 | |
|     for (var i = 0; i < damage; i++) {
 | |
|         if (hearts[i].alpha < 1) break;
 | |
|         hearts[i].alpha -= 0.4;
 | |
|     }
 | |
|     for (var i = 0; i < damage; i++) {
 | |
|         hearts.push(hearts.shift());
 | |
|     }
 | |
| }
 | |
| 
 | |
| Scene_PetRocks.prototype.checkWinConditions = function() {
 | |
|     if (this._player.hp <= 0) {
 | |
|         // Game Over
 | |
|         this._player.alpha = 0.3;
 | |
|         $gameVariables.setValue(825, "opponent");
 | |
|         this._gameEndTimer = 180;
 | |
|         this._options.deactivate();
 | |
|     } else if (this._opponent.hp <= 0) {
 | |
|         // You Win, But still game over
 | |
|         // Put result in a variable for outside usage
 | |
|         this._opponent.alpha = 0.3;
 | |
|         $gameVariables.setValue(825, "player");
 | |
|         this._gameEndTimer = 180;
 | |
|         this._options.deactivate();
 | |
|     }
 | |
| }
 | |
| 
 | |
| //=============================================================================
 | |
| // R P S
 | |
| //=============================================================================
 | |
| function Window_PetRockOptions() {
 | |
|     this.initialize.apply(this, arguments);
 | |
| }
 | |
| 
 | |
| Window_PetRockOptions.prototype = Object.create(Window_HorzCommand.prototype);
 | |
| Window_PetRockOptions.prototype.constructor = Window_PetRockOptions;
 | |
| 
 | |
| Window_PetRockOptions.prototype.initialize = function () {
 | |
|     Window_HorzCommand.prototype.initialize.call(this, 160, 375);
 | |
|     this.opacity = 0;
 | |
| };
 | |
| 
 | |
| Window_PetRockOptions.prototype.makeCommandList = function() {
 | |
|     this.addCommand("Rock", 'rock', true);
 | |
|     this.addCommand("Paper", 'paper', true);
 | |
|     this.addCommand("Scissors", 'scissors', true);
 | |
| }
 | |
| 
 | |
| Window_PetRockOptions.prototype.windowWidth = function() {
 | |
|     return 330;
 | |
| }
 | |
| 
 | |
| Window_PetRockOptions.prototype.windowHeight = function() {
 | |
|     return 100;
 | |
| }
 | |
| 
 | |
| Window_PetRockOptions.prototype.maxCols = function () {
 | |
|     return 3;
 | |
| };
 | |
| 
 | |
| Window_PetRockOptions.prototype.drawItem = function(index) {
 | |
|     var rect = this.itemRectForText(index);
 | |
|     this.contents.clearRect(rect.x, rect.y, rect.width + 12, rect.height + 12);
 | |
| 
 | |
|     if (SceneManager._scene._optionPressed && this.currentSymbol() === this.commandSymbol(index)) {
 | |
|         var addon = "Pressed";
 | |
|     } else if (this.currentSymbol() === this.commandSymbol(index)) {
 | |
|         var addon = "Selected";
 | |
|     } else addon = "";
 | |
| 
 | |
|     var bitmap = ImageManager.loadPicture('ROCK-Button' + addon);
 | |
|     this.contents.blt(bitmap, 0, 0, bitmap.width, bitmap.height, rect.x, rect.y);
 | |
| }
 | |
| 
 | |
| Window_PetRockOptions.prototype.select = function(index) {
 | |
|     this._index = index;
 | |
|     this._stayCount = 0;
 | |
|     this.ensureCursorVisible();
 | |
|     this.updateCursor();
 | |
|     this.callUpdateHelp();
 | |
|     this.refresh();
 | |
| }
 | |
| 
 | |
| Window_PetRockOptions.prototype._updateCursor = function () {
 | |
|     this._windowCursorSprite.visible = false;
 | |
| };
 |