/*---------------------------------------------------------- 武器の射程を増減させるスキルを作成できます。 ※各処理での武器射程の取得方法も変更しています。競合が発生するかも ■使用方法 カスタムスキルのキーワードに「range」 カスタムパラメータ例 { startRange:-1, endRange:2 } startRange: 開始射程の増減値(未設定なら0) endRange: 終了射程の増減値(未設定なら0) ■仕様 「有効相手」はスキル所有者の条件となります 終了射程<開始射程となった場合、終了射程=開始射程となります アイテムやスキルの射程は変わりません ■作成者 wiz ■対応バージョン SRPG Studio Version 1.281 ----------------------------------------------------------*/ (function() { //オプション:最大射程1の武器の射程を増やすならtrue、増やさないならfalse var isNearbyRangeExpand = false; //---------------------------------------------------------- var RANGESKILL_KEYWORD = 'range'; if(!Number.clamp) { Number.prototype.clamp = function(min, max) { return Math.min(Math.max(this, min), max); }; } var getCustomParameter = function(obj, key, defValue) { if(obj === null) { return defValue; } if(!obj.custom.hasOwnProperty(key)) { return defValue; } return obj.custom[key]; }; //開始射程の計算 UnitItemControl.getStartRange = function(unit, item) { var startRange = item.getStartRange(); var endRange = item.getEndRange(); if(unit === null) { return startRange; } if(startRange === 1 && !isNearbyRangeExpand) { return startRange; } var obj = SkillControl.getCustomRangeData(unit, item); startRange += obj.startRange; endRange += obj.endRange; //最低射程は開始射程が優先 endRange = endRange.clamp(startRange, 99); return startRange.clamp(1, endRange); }; //終了射程の計算 UnitItemControl.getEndRange = function(unit, item) { var startRange = item.getStartRange(); var endRange = item.getEndRange(); if(unit === null) { return endRange; } if(endRange === 1 && !isNearbyRangeExpand) { return endRange; } var obj = SkillControl.getCustomRangeData(unit, item); startRange += obj.startRange; endRange += obj.endRange; return endRange.clamp(startRange, 99); }; //射程変更スキルの値を取得 SkillControl.getCustomRangeData = function(unit, item) { var i, skill; var arr = this.getDirectSkillArray(unit, SkillType.CUSTOM, RANGESKILL_KEYWORD); var count = arr.length; var obj = {startRange: 0, endRange: 0}; for(i=0; i