ファイアーエムブレム外伝か、ティアリングサーガに倣った盾を作りたいと思い立ったが吉日。それから連日のように神社にお参りをしたのだが、一向に盾が完成する気配は無かった。それもそのはず、実はその盾、スクリプトやデータ設定を駆使して作成する必要があったのだ。愕然とした…。だから俺はあの神社を賽銭泥棒と呼ぶことに決めた。
↓ 重さ2の武器を所持。さらに重さ1の盾を2つ所持しているため、速さ5-2-1-1=敏捷1になる。
もう1つ、盾を加味した守備力が表示されることで、現在の成長状態が不明瞭になるので、メインのステータスウインドウは純粋な能力値だけが載るように変更した。これは好みの問題だと思う。
変更箇所:赤文字
// 盾はカスタムパラメータに入力 {shield:true}
// 盾の場合だけ、所持しているだけでも重量に加算する。
AbilityCalculator.getAgility = function(unit, weapon) {
var agi, pow, value;
var spd = RealBonus.getSpd(unit);
if (DataConfig.isItemWeightDisplayable() && weapon !== null) {
if (Miscellaneous.isPhysicsBattle(weapon)) {
pow = RealBonus.getStr(unit);
}
else {
pow = RealBonus.getMag(unit);
}
// 所持アイテムの総重量を取得
var i, item, count;
var sweight = 0;
count = UnitItemControl.getPossessionItemCount(unit);
for(i = 0; i < count; i++){
item = UnitItemControl.getItem(unit, i);
if((item !== null)&&(item.isWeapon() == false)){
if( typeof item.custom.shield === 'boolean' ) {
sweight += item.getWeight();
}
}
}
// 重さ - 力(魔力)
value = weapon.getWeight() + sweight;
if (value > 0) {
// 力(魔力)が重さより低いため、その差分だけ敏捷を下げる
agi = spd - value;
if(agi < 0) {
agi = 0;
}
}
else {
agi = spd;
}
}
else {
// 重さを表示しない場合は、速さが敏捷と同一になる
agi = spd;
}
return agi;
};
UnitStatusScrollbar._createStatusEntry = function(unit, index, weapon) {
var statusEntry = StructureBuilder.buildStatusEntry();
statusEntry.type = ParamGroup.getParameterName(index);
// ParamGroup.getLastValue ⇒ ParamGroup.getClassUnitValueに変更することでアイテムやステートボーナスを含めない
statusEntry.param = ParamGroup.getClassUnitValue(unit, index, weapon);
statusEntry.bonus = 0;
statusEntry.index = index;
statusEntry.isRenderable = ParamGroup.isParameterRenderable(index);
return statusEntry;
};
※コメント投稿者のブログIDはブログ作成者のみに通知されます