Timer Doesn't Run Expire Code on Map

Porcelain

Veteran
Veteran
Joined
Oct 12, 2015
Messages
38
Reaction score
2
First Language
English
Primarily Uses
I have my Game_Timer run the following code on expire:
$gameTimer.stop();
SceneManager.goto(Scene_Gameover);

This removes the timer and gives the player a Game Over, but it only works in battle. I'm trying to get it to also work on the map screen. I tried running SceneManager.goto(Scene_Gameover); through a script call on the map, and it worked, so the problem isn't with my timer code.

It looks like both Scene_Map and Scene_Battle update the timer properly with:
var active = this.isActive();
$gameTimer.update(active);

I believe this is a bug with MV's default scripts, but it isn't normally noticed because the timer normally just does BattleManager.abort(); on expiration.

The code for the timer ticking down and expiring is:
Game_Timer.prototype.update = function(sceneActive) {
if (sceneActive && this._working && this._frames > 0) {
this._frames--;
if (this._frames === 0) {
this.onExpire();

The timer ticks down fine on the map, so it is running this code, it just will not do the
$gameTimer.stop();
SceneManager.goto(Scene_Gameover);
part that I've replaced BattleManager.abort(); with.

And is there a way to have the game close all windows on the timer expiring? As it is, it does not close the ActorCommand window or any message/choice windows. It closes the party status and party command windows just fine on going to Scene_Gameover in battle.

Thanks!
 

Yethwhinger

Veteran
Veteran
Joined
Jul 18, 2018
Messages
53
Reaction score
27
First Language
English
Primarily Uses
RMMV
I used an MV version 1.6.1 project with the following plugin based on your description, and it went to the gameover scene whether the timer expired in the battle scene or the map scene. Do you have any other plugins running?
Code:
// TimerGameover.js
// Created on 9/27/2018

/*:
* @plugindesc This plugin is meant to give a gameover
* when the timer expires.
*
* @help This plugin changes the code that runs when
* the game timer expires so that it causes the
* gameover condition.
*/

//----------------------------
// Changes to Game_Timer
//----------------------------

Game_Timer.prototype.onExpire = function () {
    this.stop();
    SceneManager.goto(Scene_Gameover);
};
 

Porcelain

Veteran
Veteran
Joined
Oct 12, 2015
Messages
38
Reaction score
2
First Language
English
Primarily Uses
My project files are version 1.0. Been putting off updating because they're heavily modified.

My code is missing the
this.stop();

so I'll try that. Thank you! If it doesn't work I already have a workaround.
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

Potato The game! Few concepts for characters to my game.
Well, well, well, well....Lemme get a look at this fanart.
The Google Play rating for one of my games finally rose above 4.0 after getting review-bombed from a $0 sale. Now the game's sales are doing much better when discounted, so that's nice.
I'm getting close to releasing a demo. Working on formatting my Games in Development post.
I always see a few people asking for C# in next engine and I always thought: Do I not know enough about that language to tell it will affect extensibility and customizability to the negative? Watching a video from SumRndmDde today I feel confirmed.

Forum statistics

Threads
98,227
Messages
950,542
Members
129,529
Latest member
berriefarm
Top