GOREとにゃんこの桃源郷

主観的にCDのレビューやら、日記やら、色々と。
ゴアとかメタルとかロックとか

SPRG日誌Vol.3 - 盾というカテゴリを作る

2022-07-15 | SRPG Studio

 ファイアーエムブレム外伝か、ティアリングサーガに倣った盾を作りたいと思い立ったが吉日。それから連日のように神社にお参りをしたのだが、一向に盾が完成する気配は無かった。それもそのはず、実はその盾、スクリプトやデータ設定を駆使して作成する必要があったのだ。愕然とした…。だから俺はあの神社を賽銭泥棒と呼ぶことに決めた。


↓ 重さ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;
};



最新の画像もっと見る

コメントを投稿