//=============================================================================
// BMSP.js
//=============================================================================

/*:
 * @plugindesc BMSPベースプラグインです。
 * @author gentlawk
 * @website http://blueredzone.com
 * @url https://github.com/gentlawk/BMSP_MV
 * @license
 * Copyright(c) 2015 BlueRedZone, gentlawk
 * Released under the MIT license
 * https://github.com/gentlawk/BMSP_MV/blob/master/LICENSE
 *
 * @version 1.10
 *
 * @help
 * 追加位置:
 *   BMSPプラグインシリーズの一番上
 *
 * 使用方法:
 *   BMSPプラグインシリーズのベースとなるプラグインです。
 */

function BMSP() {
    throw new Error('This is a static class');
}

/*
 * プラグインの導入チェック
 */
PluginManager._versions = {};

PluginManager.version = function (name) {
    if(!(name.toLowerCase() in this._versions)) return 0;
    return this._versions[name.toLowerCase()];
};

PluginManager.setVersion = function (name, version) {
    this._versions[name.toLowerCase()] = version;
};

BMSP.checkPluginName = function (name) {
    return PluginManager._scripts.indexOf(name) >= 0;
};

BMSP.checkPluginVersion = function (name, version) {
    var now = PluginManager.version(name);
    return now >= version;
};

BMSP.includedPlugin = function (name, version) {
    if (!this.checkPluginName(name)) return false;
    if (version === undefined) return true;
    return this.checkPluginVersion(name, version);
};

BMSP.requirePlugin = function (name, version) {
    if (!this.checkPluginName(name)) {
        throw new Error('no such plugin: ' + name);
    }
    if (version === undefined) return;
    if (!this.checkPluginVersion(name, version)){
        var now = PluginManager.version(name);
        throw new Error('need version ' + version + ' and over: ' + name + ' version ' + now);
    }
};

/*
 * プラグインバージョン
 */
PluginManager.setVersion('BMSP', 1.10);

/*
 * オブジェクトのユニークID管理
 */
BMSP.getUniqueId = function () {
    return new Date().getTime() + Math.floor(Math.random() * 1000);
};

BMSP.getObjectId = function (object) {
    if (!object){
        return 0;
    }
    if (!('_bmsp_object_id' in object)) {
        object._bmsp_object_id = BMSP.getUniqueId();
    }
    return object._bmsp_object_id;
};

/*
 * Ruby(他Perl等)ライクな剰余演算
 */
BMSP.rubyLikeMod = function (a, b) {
    return (a%b+b)%b;
};

/*
 * シャローコピー
 */
BMSP.shallowCopy = function (object) {
    if (object instanceof Array) {
        return [].concat(object);
    }
    var copy = {};
    for (var prop in object) {
        copy[prop] = object[prop];
    }
    return copy;
};
@@ -84,16 +84,31 @@
  BMSP.js
+ (BMSP%E3%83%99%E3%83%BC%E3%82%B9%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3)
 %0D%0A//====
@@ -494,17 +494,17 @@
 sion 1.1
-0
+1
 %0D%0A *%0D%0A *
@@ -518,12 +518,12 @@
 %0A * 
-%E8%BF%BD%E5%8A%A0%E4%BD%8D%E7%BD%AE
+%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95
 :%0D%0A 
@@ -544,11 +544,22 @@
 %E3%83%AA%E3%83%BC%E3%82%BA%E3%81%AE
-%E4%B8%80%E7%95%AA%E4%B8%8A
+%E3%83%99%E3%83%BC%E3%82%B9%E3%81%A8%E3%81%AA%E3%82%8B%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%A7%E3%81%99%E3%80%82
 %0D%0A *
@@ -559,36 +559,39 @@
 %E3%81%A7%E3%81%99%E3%80%82%0D%0A *%0D%0A * 
-%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95:
+%E2%97%8F%E8%BF%BD%E5%8A%A0%E4%BD%8D%E7%BD%AE
 %0D%0A *   
+%E5%85%A8%E3%81%A6%E3%81%AE
 BMSP%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%82%B7%E3%83%AA%E3%83%BC
@@ -587,38 +587,36 @@
 MSP%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA
-%E3%81%AE%E3%83%99%E3%83%BC%E3%82%B9%E3%81%A8%E3%81%AA%E3%82%8B%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%A7%E3%81%99
+%E3%82%88%E3%82%8A%E4%B8%8A%E3%81%AB%E9%85%8D%E7%BD%AE%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84
 %E3%80%82%0D%0A */%0D%0A%0D%0Afu
@@ -1909,17 +1909,17 @@
 SP', 1.1
-0
+1
 );%0D%0A%0D%0A/*

Update BMSP ver1.11