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