Initial Commit
This commit is contained in:
commit
ec5c71b3ac
1712 changed files with 1767257 additions and 0 deletions
199
www/js/plugins/YEP_SlipperyTiles.js
Normal file
199
www/js/plugins/YEP_SlipperyTiles.js
Normal file
|
@ -0,0 +1,199 @@
|
|||
//=============================================================================
|
||||
// Yanfly Engine Plugins - Slippery Tiles
|
||||
// YEP_SlipperyTiles.js
|
||||
//=============================================================================
|
||||
|
||||
var Imported = Imported || {};
|
||||
Imported.YEP_SlipperyTiles = true;
|
||||
|
||||
var Yanfly = Yanfly || {};
|
||||
Yanfly.Slip = Yanfly.Slip || {};
|
||||
Yanfly.Slip.version = 1.05
|
||||
|
||||
//=============================================================================
|
||||
/*:
|
||||
* @plugindesc v1.05 You can create slippery tiles by marking them with
|
||||
* either a terrain tag or a region number.
|
||||
* @author Yanfly Engine Plugins
|
||||
*
|
||||
* @param Slippery Frame
|
||||
* @type number
|
||||
* @min 0
|
||||
* @desc This is the frame used while characters are sliding.
|
||||
* @default 2
|
||||
*
|
||||
* @param Slippery Region
|
||||
* @type number
|
||||
* @min 0
|
||||
* @max 255
|
||||
* @desc Any tile marked with this region is a slippery tile
|
||||
* regardless of terrain tag. Use 0 to ignore.
|
||||
* @default 0
|
||||
*
|
||||
* @param Slippery Speed
|
||||
* @type number
|
||||
* @min 0
|
||||
* @desc Change the speed of the player while on a slippery tile to
|
||||
* this speed instead. Leave at 0 to keep current speed.
|
||||
* @default 0
|
||||
*
|
||||
* @help
|
||||
* ============================================================================
|
||||
* Introduction
|
||||
* ============================================================================
|
||||
*
|
||||
* This plugin enables you to set which tiles are slippery tiles through either
|
||||
* regions or notetags. To use regions, change the parameter setting to which
|
||||
* region ID you would like to associate with a slippery tile.
|
||||
*
|
||||
* ============================================================================
|
||||
* Notetags
|
||||
* ============================================================================
|
||||
*
|
||||
* You can use these notetags to add slippery tiles to your tilesets.
|
||||
*
|
||||
* Tileset Notetag:
|
||||
* <Slippery Tile: x>
|
||||
* <Slippery Tile: x, x, x>
|
||||
* Tiles with terrain ID x will be designated as slippery tiles.
|
||||
*
|
||||
* ============================================================================
|
||||
* Changelog
|
||||
* ============================================================================
|
||||
*
|
||||
* Version 1.05:
|
||||
* - Updated for RPG Maker MV version 1.5.0.
|
||||
*
|
||||
* Version 1.04:
|
||||
* - Added 'Slippery Speed' plugin parameter to let you change the speed of
|
||||
* a character when its on a slippery tile.
|
||||
*
|
||||
* Version 1.03:
|
||||
* - Added anti-crash for switch checks from battle tests.
|
||||
*
|
||||
* Version 1.02:
|
||||
* - Updated for RPG Maker MV version 1.1.0.
|
||||
*
|
||||
* Version 1.01:
|
||||
* - Added failsafe for people who aren't using tilesets
|
||||
*
|
||||
* Version 1.00:
|
||||
* - Finished Plugin!
|
||||
*/
|
||||
//=============================================================================
|
||||
|
||||
//=============================================================================
|
||||
// Parameter Variables
|
||||
//=============================================================================
|
||||
|
||||
Yanfly.Parameters = PluginManager.parameters('YEP_SlipperyTiles');
|
||||
Yanfly.Param = Yanfly.Param || {};
|
||||
|
||||
Yanfly.Param.SlipRegion = Number(Yanfly.Parameters['Slippery Region']);
|
||||
Yanfly.Param.SlipFrame = Number(Yanfly.Parameters['Slippery Frame']);
|
||||
Yanfly.Param.SlipSpeed = Number(Yanfly.Parameters['Slippery Speed']);
|
||||
|
||||
//=============================================================================
|
||||
// DataManager
|
||||
//=============================================================================
|
||||
|
||||
Yanfly.Slip.DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded;
|
||||
DataManager.isDatabaseLoaded = function() {
|
||||
if (!Yanfly.Slip.DataManager_isDatabaseLoaded.call(this)) return false;
|
||||
if (!Yanfly._loaded_YEP_SlipperyTiles) {
|
||||
this.processSlipNotetags($dataTilesets);
|
||||
Yanfly._loaded_YEP_SlipperyTiles = true;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
DataManager.processSlipNotetags = function(group) {
|
||||
var regexp1 = /<(?:SLIPPERY|slippery tile):[ ]*(\d+(?:\s*,\s*\d+)*)>/i;
|
||||
for (var n = 1; n < group.length; n++) {
|
||||
var obj = group[n];
|
||||
var notedata = obj.note.split(/[\r\n]+/);
|
||||
|
||||
obj.slippery = [];
|
||||
|
||||
for (var i = 0; i < notedata.length; i++) {
|
||||
var line = notedata[i];
|
||||
if (line.match(regexp1)) {
|
||||
var array = JSON.parse('[' + RegExp.$1.match(/\d+/g) + ']');
|
||||
obj.slippery = obj.slippery.concat(array);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Game_Map
|
||||
//=============================================================================
|
||||
|
||||
Game_Map.prototype.isSlippery = function(mx, my) {
|
||||
if ($gameParty.inBattle()) return false;
|
||||
if (this.isValid(mx, my) && this.tileset()) {
|
||||
if (Yanfly.Param.SlipRegion !== 0 &&
|
||||
this.regionId(mx, my) === Yanfly.Param.SlipRegion) return true;
|
||||
var tagId = this.terrainTag(mx, my);
|
||||
var slipTiles = this.tileset().slippery;
|
||||
return slipTiles.contains(tagId);
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Game_CharacterBase
|
||||
//=============================================================================
|
||||
|
||||
Game_CharacterBase.prototype.onSlipperyFloor = function() {
|
||||
return $gameMap.isSlippery(this._x, this._y);
|
||||
};
|
||||
|
||||
Game_CharacterBase.prototype.slipperyPose = function() {
|
||||
if (!this.onSlipperyFloor()) return false;
|
||||
if (this._stepAnime) return false;
|
||||
return true;
|
||||
};
|
||||
|
||||
Yanfly.Slip.Game_CharacterBase_pattern = Game_CharacterBase.prototype.pattern;
|
||||
Game_CharacterBase.prototype.pattern = function() {
|
||||
if (this.slipperyPose()) return Yanfly.Param.SlipFrame;
|
||||
return Yanfly.Slip.Game_CharacterBase_pattern.call(this);
|
||||
};
|
||||
|
||||
Yanfly.Slip.Game_CharacterBase_realMoveSpeed =
|
||||
Game_CharacterBase.prototype.realMoveSpeed;
|
||||
Game_CharacterBase.prototype.realMoveSpeed = function() {
|
||||
if (this.onSlipperyFloor() && Yanfly.Param.SlipSpeed > 0) {
|
||||
return Yanfly.Param.SlipSpeed;
|
||||
}
|
||||
return Yanfly.Slip.Game_CharacterBase_realMoveSpeed.call(this);
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Game_Player
|
||||
//=============================================================================
|
||||
|
||||
Yanfly.Slip.Game_Player_isDashing = Game_Player.prototype.isDashing;
|
||||
Game_Player.prototype.isDashing = function() {
|
||||
if (this.onSlipperyFloor()) return false;
|
||||
return Yanfly.Slip.Game_Player_isDashing.call(this);
|
||||
};
|
||||
|
||||
Yanfly.Slip.Game_Player_update = Game_Player.prototype.update;
|
||||
Game_Player.prototype.update = function(sceneActive) {
|
||||
Yanfly.Slip.Game_Player_update.call(this, sceneActive);
|
||||
this.updateSlippery();
|
||||
};
|
||||
|
||||
Game_Player.prototype.updateSlippery = function() {
|
||||
if ($gameMap.isEventRunning()) return;
|
||||
if (this.onSlipperyFloor() && !this.isMoving()) {
|
||||
$gameTemp.clearDestination();
|
||||
this.moveStraight(this._direction);
|
||||
}
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// End of File
|
||||
//=============================================================================
|
Loading…
Add table
Add a link
Reference in a new issue