FE再現インクル

武器の耐久度関連を実装してみた。
実装してみたのはいいが、この耐久度ってゼロになるとどうなるんだろう?
武器が使えなくなるのは想像がつくけど、そのまま武器をデリートしていいのだろうか?
使えないようにするだけでとっておくのの方が難しいです…。
とりあえずは以上。以下コード。

# ファイヤーエムブレム再現インクルード
# 前提:
# 武器はハードポイントに装備。腕などでは無視されます

# 全アイテムを探査し、耐久が設定されていなければ設定する
*プロローグ:
Local i j _ItemID
ForEach 味方
  For i = 1 to CountItem()
    # 参照しているアイテムのIDを取得
    _ItemID = ItemID(対象ユニットID,i)

    # 既に耐久度が設定されていたら
    If FEI_武器耐久度[_ItemID] != "" Then
      Skip
    Endif

    # 対象アイテムが関係無いアイテムなら
    Switch Info(_ItemID, "装備個所")
    Case "アイテム" "強化パーツ" "片手" "両手" "盾" "肩" "両肩" "体" "頭" "非表示"
      # スキップ
    EndSw

    # 参照アイテムに耐久が設定されているか探索
    For j = 1 to Info(_ItemID, "特殊能力数")
      # 耐久度を持っていたら
      If Info(_ItemID, "特殊能力", j) = "耐久度" Then
        # 耐久度を設定
        FEI_武器耐久度[_ItemID] = Info(_ItemID, "特殊能力レベル", j)
        # ループ終了
        Break
      Endif
    Next
  Next
Next
Exit


# 武器の耐久を減らし、最後に使用した武器を記録しておく
*攻撃後 味方 敵:
*攻撃後 味方 中立:

# 味方フェイズじゃなければ意味が無いので終了
If フェイズ != "味方" Exit

# ローカル変数を宣言
Local i j _ItemID flag
flag = 0
# 対象ユニットが装備しているアイテムを全て検査
For i = 1 to CountItem()
  # 参照中アイテムのアイテムIDを取得
  _ItemID = ItemID(対象ユニットID,i)
  # 参照アイテムの武器を全て探査
  For j = 1 to Info(_ItemID, "武器数")
    # 参照アイテムが使用した武器を持っていたら
    If 対象ユニット使用武器 = Info(_ItemID, "武器", j) Then
      # 最終使用武器として記録
      FEI_装備武器[対象ユニットID] = _ItemID
      # アイテムの耐久度をデクリメント
      Incr FEI_武器耐久度[_ItemID] -1
      # 耐久度が0になったら
      If FEI_武器耐久度[_ItemID] <= 0 Then
        # なんか処理
      Endif
      # 発見フラグを立てる
      Set flag
      # ループ終了
      Break
    Endif
  Next
  # アイテム発見フラグが立っていたら
  If flag Then
    # ループ終了
    Break
  Endif
Next

Exit


# 味方ユニットの装備していないアイテムを全て封印する
*ターン 全 敵:

# 元々装備していたアイテムのリストを初期化
UnSet FEI_装備アイテムリスト
Local FEI_装備アイテムリスト

Local usedItemID _ItemID i
ForEach 味方
  # 対象ユニットが装備しているアイテムの数を記録
  FEI_装備アイテムリスト[対象ユニットID,0] = CountItem()
  # 最終使用アイテムを取得
  usedItemID = FEI_装備武器[対象ユニットID]

  # 装備解除しないアイテムを記録する変数を初期化
  UnSet 外さないアイテム
  Local 外さないアイテム
  Set 外さないアイテム[1] = usedItemID
  # 外さないアイテムを検索
  For i = 1 to CountItem()
    # 対象アイテムIDを取得
    _ItemID = ItemID(対象ユニットID, i)
    # 対象アイテムが関係無いアイテムなら
    Switch Info(_ItemID, "装備個所")
    Case "アイテム" "強化パーツ" "片手" "両手" "盾" "肩" "両肩" "体" "頭" "非表示"
      # 装備解除しないアイテムのリストに追加
      Set 外さないアイテム[Count(外さないアイテム) + 1] = _ItemID
    EndSw

    # 元々装備していたアイテムを記録
    FEI_装備アイテムリスト[対象ユニットID,i] = _ItemID
  Next

  # 対象ユニットのアイテムを全て解除
  RemoveItem
  # 装備解除しないアイテムは装備しなおす
  For i = 1 to Count(外さないアイテム)
    Equip 外さないアイテム[i]
  Next
Next
Exit

# 封印したアイテムを全て解除
*ターン 全 味方:
Local i
ForEach 味方
  For i = 1 to FEI_装備アイテムリスト[対象ユニットID,0]
    # 一度一応装備解除
    RemoveItem
    # 改めて装備していたアイテムを付け直す
    Equip FEI_装備アイテムリスト[対象ユニットID,i]
  Next
Next
Exit