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
29
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

Couple hours of work. Might use in my game as a secret find or something. Not sure. Fancy though no? :D
Holy stink, where have I been? Well, I started my temporary job this week. So less time to spend on game design... :(
Cartoonier cloud cover that better fits the art style, as well as (slightly) improved blending/fading... fading clouds when there are larger patterns is still somewhat abrupt for some reason.
Do you Find Tilesetting or Looking for Tilesets/Plugins more fun? Personally I like making my tileset for my Game (Cretaceous Park TM) xD
How many parameters is 'too many'??

Forum statistics

Threads
105,860
Messages
1,017,038
Members
137,568
Latest member
invidious
Top