FE
というわけで、FEについて色々調べてみた。
FEの武器システムについてわかったことをまとめてみると、
- 味方ターン中は自由に装備変更できる(行動が終了しているか否かを問わない)
- 攻撃の際に使った武器が自動的に装備される
- 敵ターンでは装備している武器で自動反撃を行う
こんな感じでいいのかな?
んで、タイトル通り早速コードに書き下してみた。
思っていたよりかなり大変な作業でした。
ちなみに一度も動かしてないので、バグが潜んでいる可能性高し。
今日は眠いので以上。
以下にコード。
# ファイヤーエムブレム再現インクルード下書き *攻撃後 味方 敵: *攻撃後 味方 中立: # 味方フェイズじゃなければ意味が無いので終了 If フェイズ != "味方" Exit # 使用した武器を記録しておく FEI_装備武器[対象ユニットID] = 対象ユニット使用武器 Exit # 味方ユニットの装備していないアイテムを全て封印する *ターン 全 敵: Local myWeapon i j _ItemID weap temp flag ForEach 味方 # 装備中の武器を変数に格納 myWeapon = FEI_装備武器[対象ユニットID] # 封印済みアイテム数を初期化 FEI_封印アイテム[対象ユニットID,0] = 0 # アイテムの内、「そうび」していないアイテムを検索 For i = 1 to CountItem() # 対象アイテム名称を取得 _Item = Item(対象ユニットID, i) # 対象アイテムが関係無いアイテムだったらスキップ Switch Info(_Item, "装備個所") Case "アイテム" "強化パーツ" "片手" "両手" "盾" "肩" "両肩" "体" "頭" "非表示" Skip EndSw # フラグを初期化 flag = 0 # 対象アイテムの武器と比較 For j = 1 to Info(_Item, "武器数") weap = Info(_Item, "武器", j) # 対象武器が「そうび」している武器なら If myWeapon = weap Then # このアイテムは封印しないのでフラグを立てる flag = 1 Endif Next # フラグが立っていなかったら If flag = 0 Then # 対象アイテムと全ての武器が一致しなかったので、対象アイテムを封印 Disable Unit() _Item # 封印中のアイテム数をインクリメント Incr FEI_封印アイテム[対象ユニットID,0] temp = FEI_封印アイテム[対象ユニットID,0] # 封印したアイテムを記録しておく FEI_封印アイテム[対象ユニットID,temp] = _Item Endif Next Next Exit # 封印したアイテムを全て解除 *ターン 全 味方: Local i ForEach 味方 For i = 1 to FEI_封印アイテム[対象ユニットID,0] Enable Unit() FEI_封印アイテム[対象ユニットID,i] Next Next Exit