Initial Commit
This commit is contained in:
commit
ec5c71b3ac
1712 changed files with 1767257 additions and 0 deletions
355
www/js/plugins/Liquid_EventIcons.js
Normal file
355
www/js/plugins/Liquid_EventIcons.js
Normal file
|
@ -0,0 +1,355 @@
|
|||
//=============================================================================
|
||||
// Liquid's Lovely Plugin for Jasmin - Event Icons
|
||||
// Liquid_EventIcons.js
|
||||
//=============================================================================
|
||||
|
||||
var Imported = Imported || {};
|
||||
Imported.Liquid_EventIcons = true;
|
||||
|
||||
var Liquid = Liquid || {};
|
||||
Liquid.Eventcons = Liquid.Eventcons || {};
|
||||
Liquid.Eventcons.version = 2.01;
|
||||
|
||||
//=============================================================================
|
||||
/*:
|
||||
* @plugindesc v2 adds persistent balloon icons.
|
||||
* @author Liquidize
|
||||
*
|
||||
* @param ---General---
|
||||
* @default
|
||||
*
|
||||
* @param Icon Width
|
||||
* @parent ---General---
|
||||
* @type number
|
||||
* @min 0
|
||||
* @desc Determines the width of each icon frame.
|
||||
* Default: 32
|
||||
* @default 32
|
||||
*
|
||||
* @param Icon Height
|
||||
* @parent ---General---
|
||||
* @type number
|
||||
* @min 0
|
||||
* @desc Determines the height of each icon frame.
|
||||
* Default: 24
|
||||
* @default 24
|
||||
*
|
||||
* @param Default Sprite Sheet
|
||||
* @parent ---General---
|
||||
* @type string
|
||||
* @desc Determines the default sprite sheet to use for eventcons.
|
||||
* Default: quest
|
||||
* @default quest
|
||||
*
|
||||
* @param Speed
|
||||
* @parent ---General---
|
||||
* @type number
|
||||
* @min 0
|
||||
* @desc Determines the speed at which the frame is updated.
|
||||
* Default: 16
|
||||
* @default 16
|
||||
*
|
||||
* @param Wait Time
|
||||
* @parent ---General---
|
||||
* @type number
|
||||
* @min 0
|
||||
* @desc Helps determine the wait between each icon frame.
|
||||
* Default: 64
|
||||
* @default 64
|
||||
*
|
||||
* @help
|
||||
* ============================================================================
|
||||
* Introduction and Instructions
|
||||
* ============================================================================
|
||||
*
|
||||
* To add an indicator add a note to the event with the following:
|
||||
* Indicator: IMAGE_NAME,INDEX
|
||||
*
|
||||
* Example:
|
||||
* Indicator: quest,1
|
||||
*
|
||||
*
|
||||
* ============================================================================
|
||||
* Changelog
|
||||
* ============================================================================
|
||||
*
|
||||
* Version 2.01:
|
||||
* - Fixed an issue where icons wouldn't change on the same map.
|
||||
*
|
||||
* Version 2.00:
|
||||
* - Plugin redo!
|
||||
*
|
||||
* Version 1.02:
|
||||
* - Added Plugin Command to change event icon
|
||||
*
|
||||
* Version 1.01:
|
||||
* - Changed it so icons can be added via notes.
|
||||
* - Made icons persist through saves properly.
|
||||
*
|
||||
* Version 1.00:
|
||||
* - Finished plugin!
|
||||
*/
|
||||
//=============================================================================
|
||||
|
||||
//=============================================================================
|
||||
// Parameter Variables
|
||||
//=============================================================================
|
||||
|
||||
Liquid.Parameters = PluginManager.parameters('Liquid_EventIcons');
|
||||
Liquid.Param = Liquid.Param || {};
|
||||
Liquid.Param.EventconWidth = Number(Liquid.Parameters['Icon Width'] || 32);
|
||||
Liquid.Param.EventconHeight = Number(Liquid.Parameters['Icon Height'] || 24);
|
||||
Liquid.Param.EventconSheet = String(Liquid.Parameters['Default Sprite Sheet'] || 'quest');
|
||||
Liquid.Param.EventconSpeed = Number(Liquid.Parameters['Speed'] || 16);
|
||||
Liquid.Param.EventconWaitTime = Number(Liquid.Parameters['Wait Time'] || 64);
|
||||
|
||||
Liquid.Eventcons.Game_Interpreter_pluginCommand =
|
||||
Game_Interpreter.prototype.pluginCommand;
|
||||
Game_Interpreter.prototype.pluginCommand = function (command, args) {
|
||||
// Plugin Commands
|
||||
if (command === "ChangeEventcon") {
|
||||
if (args.length !== 4) {
|
||||
return;
|
||||
}
|
||||
var map = parseInt(args[0]);
|
||||
var event = parseInt(args[1]);
|
||||
var img = args[2];
|
||||
var index = parseInt(args[3]);
|
||||
if (!$eventData.hasCategory("eventcon")) $eventData.addCategory("eventcon");
|
||||
$eventData.setValueExt("eventcon", map, event, [img, index]);
|
||||
if (map === $gameMap.mapId()) {
|
||||
if ($gameMap._events[event]) {
|
||||
$gameMap._events[event].removeEventcon();
|
||||
$gameMap._events[event].setupEventcon(img,index);
|
||||
}
|
||||
}
|
||||
} else if (command === "RemoveEventcon") {
|
||||
if (args.length !== 2) {
|
||||
return;
|
||||
}
|
||||
var map = parseInt(args[0]);
|
||||
var event = parseInt(args[1]);
|
||||
if (!$eventData.hasCategory("eventcon")) $eventData.addCategory("eventcon");
|
||||
$eventData.setValueExt("eventcon", map, event);
|
||||
if (map === $gameMap.mapId()) {
|
||||
if ($gameMap._events[event]) {
|
||||
$gameMap._events[event].removeEventcon();
|
||||
}
|
||||
}
|
||||
}
|
||||
Liquid.Eventcons.Game_Interpreter_pluginCommand.call(this, command, args);
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// TDS PATCH : USE SCRIPT CALL
|
||||
// this.setEventIcon(42, 'quest', 1);
|
||||
//=============================================================================
|
||||
Game_Interpreter.prototype.setEventIcon = function(eventId, img, index) {
|
||||
var map = $gameMap.mapId();
|
||||
var event = $gameMap.event(eventId);
|
||||
if (!$eventData.hasCategory("eventcon")) $eventData.addCategory("eventcon");
|
||||
$eventData.setValueExt("eventcon", map, eventId, [img, index]);
|
||||
event.removeEventcon();
|
||||
event.setupEventcon(img, index);
|
||||
event.refresh();
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Game_CharacterBase
|
||||
//=============================================================================
|
||||
|
||||
Game_CharacterBase.prototype.setupEventcon = function (img, index) {
|
||||
if (this.isEventconPlaying()) {
|
||||
this.removeEventcon();
|
||||
}
|
||||
this._eventImg = img;
|
||||
this._eventIndex = index;
|
||||
};
|
||||
|
||||
Game_CharacterBase.prototype.startEventcon = function () {
|
||||
this._eventconPlaying = true;
|
||||
};
|
||||
|
||||
Game_CharacterBase.prototype.isEventconPlaying = function () {
|
||||
return this._eventIndex > 0 || this._eventconPlaying;
|
||||
};
|
||||
|
||||
Game_CharacterBase.prototype.removeEventcon = function () {
|
||||
this._eventImg = null;
|
||||
this._eventIndex = -1;
|
||||
this._eventconPlaying = false;
|
||||
};
|
||||
|
||||
Game_CharacterBase.prototype.eventconId = function () {
|
||||
return this._eventIndex;
|
||||
};
|
||||
|
||||
Game_CharacterBase.prototype.eventconImg = function () {
|
||||
return this._eventImg;
|
||||
};
|
||||
|
||||
Game_CharacterBase.prototype.endEventcon = function () {
|
||||
this._eventconPlaying = false;
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Game_Event
|
||||
//=============================================================================
|
||||
Liquid.Eventcons.Game_Event_refresh = Game_Event.prototype.refresh;
|
||||
Game_Event.prototype.refresh = function () {
|
||||
if (!this._eventIndex) {
|
||||
if ($eventData.hasCategory("eventcon")) {
|
||||
var eventIconInfo = $eventData.value("eventcon", [this._mapId, this._eventId]);
|
||||
if (eventIconInfo) {
|
||||
this.setupEventcon(eventIconInfo[0], eventIconInfo[1]);
|
||||
}
|
||||
} else if (this.event().note.match(/(?:INDICATOR):[ ](.+)[,](\d+)/i)) {
|
||||
var img = String(RegExp.$1);
|
||||
var index = Number(RegExp.$2);
|
||||
this.setupEventcon(img, index);
|
||||
|
||||
if (!$eventData.hasCategory("eventcon")) {
|
||||
$eventData.addCategory("eventcon");
|
||||
}
|
||||
$eventData.setValueExt("eventcon", this._mapId, this._eventId, [img, index]);
|
||||
}
|
||||
}
|
||||
Liquid.Eventcons.Game_Event_refresh.call(this);
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Sprite_Character
|
||||
//=============================================================================
|
||||
|
||||
Liquid.Eventcons.Sprite_Character_update = Sprite_Character.prototype.update;
|
||||
Sprite_Character.prototype.update = function () {
|
||||
Liquid.Eventcons.Sprite_Character_update.call(this);
|
||||
this.updateEventcon();
|
||||
};
|
||||
|
||||
Sprite_Character.prototype.setupEventcon = function () {
|
||||
if (this._character.eventconId() > 0) {
|
||||
this.startEventcon();
|
||||
this._character.startEventcon();
|
||||
if (!this.currentEventcondId) {
|
||||
this.currentEventcondId = this._character.eventconId();
|
||||
}
|
||||
if (!this.currentEventcondImg) {
|
||||
this.currentEventcondImg = this._character.eventconImg();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Sprite_Character.prototype.startEventcon = function () {
|
||||
if (!this._eventconSprite || (this.currentEventcondId != this._character.eventconId()) || (this.currentEventcondImg != this._character.eventconImg())) {
|
||||
this.endEventcon();
|
||||
this._eventconSprite = new Sprite_EventCon();
|
||||
this._eventconSprite.setup(this._character.eventconImg(), this._character.eventconId());
|
||||
this.parent.addChild(this._eventconSprite);
|
||||
this.currentEventcondId = this._character.eventconId();
|
||||
this.currentEventcondImg = this._character.eventconImg();
|
||||
}
|
||||
};
|
||||
|
||||
Sprite_Character.prototype.updateEventcon = function () {
|
||||
this.setupEventcon();
|
||||
if (this._eventconSprite) {
|
||||
this._eventconSprite.x = this.x;
|
||||
this._eventconSprite.y = this.y - this.height;
|
||||
if (!this._character.isEventconPlaying()) {
|
||||
this.endEventcon();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Sprite_Character.prototype.endEventcon = function () {
|
||||
if (this._eventconSprite) {
|
||||
this.parent.removeChild(this._eventconSprite);
|
||||
this._eventconSprite = null;
|
||||
}
|
||||
};
|
||||
|
||||
Sprite_Character.prototype.isEventconPlaying = function () {
|
||||
return !!this._eventconSprite;
|
||||
};
|
||||
Liquid.Eventcons.Sprite_Character_updateAnimation = Sprite_Character.prototype.updateAnimation;
|
||||
Sprite_Character.prototype.updateAnimation = function () {
|
||||
Liquid.Eventcons.Sprite_Character_updateAnimation.call(this);
|
||||
if (!this.isEventconPlaying()) {
|
||||
this._character.endEventcon();
|
||||
}
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Sprite_EventCon
|
||||
//=============================================================================
|
||||
|
||||
function Sprite_EventCon() {
|
||||
this.initialize.apply(this, arguments);
|
||||
}
|
||||
|
||||
Sprite_EventCon.prototype = Object.create(Sprite_Base.prototype);
|
||||
Sprite_EventCon.prototype.constructor = Sprite_EventCon;
|
||||
|
||||
Sprite_EventCon.prototype.initialize = function () {
|
||||
Sprite_Base.prototype.initialize.call(this);
|
||||
this.initMembers();
|
||||
};
|
||||
|
||||
Sprite_EventCon.prototype.initMembers = function () {
|
||||
this._eventconId = 0;
|
||||
this._eventconImg = Liquid.Param.EventconSheet
|
||||
this._duration = 0;
|
||||
this.anchor.x = 0.5;
|
||||
this.anchor.y = 1;
|
||||
this.z = 7;
|
||||
};
|
||||
|
||||
Sprite_EventCon.prototype.loadBitmap = function () {
|
||||
this.bitmap = ImageManager.loadSystem(this._eventconImg);
|
||||
this.setFrame(0, 0, 0, 0);
|
||||
};
|
||||
|
||||
Sprite_EventCon.prototype.setup = function (img, index) {
|
||||
this._eventconImg = img;
|
||||
this._eventconId = index;
|
||||
this._duration = 4 * this.speed() + this.waitTime();
|
||||
this.loadBitmap();
|
||||
};
|
||||
|
||||
Sprite_EventCon.prototype.update = function () {
|
||||
Sprite_Base.prototype.update.call(this);
|
||||
if (this._duration > 0) {
|
||||
this._duration--;
|
||||
if (this._duration > 0) {
|
||||
this.updateFrame();
|
||||
} else {
|
||||
this._duration = 4 * this.speed() + this.waitTime();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Sprite_EventCon.prototype.updateFrame = function () {
|
||||
var w = Liquid.Param.EventconWidth;
|
||||
var h = Liquid.Param.EventconHeight;
|
||||
var sx = this.frameIndex() * w;
|
||||
var sy = (this._eventconId - 1) * h;
|
||||
this.setFrame(sx, sy, w, h);
|
||||
};
|
||||
|
||||
Sprite_EventCon.prototype.speed = function () {
|
||||
return Liquid.Param.EventconSpeed;
|
||||
};
|
||||
|
||||
Sprite_EventCon.prototype.waitTime = function () {
|
||||
return Liquid.Param.EventconWaitTime;
|
||||
};
|
||||
|
||||
Sprite_EventCon.prototype.frameIndex = function () {
|
||||
var index = (this._duration - this.waitTime()) / this.speed();
|
||||
return 3 - Math.max(Math.floor(index), 0);
|
||||
};
|
||||
|
||||
Sprite_EventCon.prototype.isPlaying = function () {
|
||||
return this._duration > 0;
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue