//=============================================================================// Terrain Tags// by Shaz// Last Updated: 2015.10.03//=============================================================================/*: * @plugindesc Uses terrain tags to change map behaviour * @author Shaz * * @param Passability Number * @desc Terrain tag to indicate "use passability from tile below" * @default -1 * * @param Counter Number * @desc Terrain tag to indicate "behave like counter (allow interaction)" * @default -1 * * @help This plugin does not provide plugin commands. * * * * */(function() { var parameters = PluginManager.parameters('TerrainTags'); var passageTerrain = Number(parameters['Passability Number'] || -1); var passageCounter = Number(parameters['Counter Number'] || -1); var _Game_Map_checkPassage = Game_Map.prototype.checkPassage; Game_Map.prototype.checkPassage = function(x, y, bit) { if (passageTerrain === -1) { return _Game_Map_checkPassage.call(this, x, y, bit); } else { var flags = this.tilesetFlags(); var tiles = this.allTiles(x, y); for (var i = 0; i < tiles.length; i++) { var flag = flags[tiles]; if ((flag & 0x10) !== 0) // [*]No effect on passage continue; if (this.terrainTag(x, y) === passageTerrain) // Take terrain from tile below continue; if ((flag & bit) === 0) // [o] Passable return true; if ((flag & bit) === bit) // [x] Impassable return false; } return false; } }; var _Game_Map_isCounter = Game_Map.prototype.isCounter; Game_Map.prototype.isCounter = function(x, y) { if (passageCounter === -1) { return _Game_Map_isCounter.call(this, x, y); } else { return _Game_Map_isCounter.call(this, x, y) || this.terrainTag(x, y) === passageCounter; } };})();