勝利条件表示

自作できるものは自前で、を合言葉に、勝利条件表示インクルードを作成してみました。
特徴としては、条件の数に制限を設けず、ウィンドウ内に収まる限りはいくらでも条件を表示可能。
ヘッダ部(「勝利条件」や「敗北条件」、「ボーナス条件」など)も引数として渡すことで自由に決められます。
表示するウィンドウの配色は、

Flame_Light[?] = #7878ff
Flame_Shadow[?] = #5050ff
Flame_BackColor[?] = #000032

の部分を弄ることで変更可能。以下のソースには4パターンまで記述済み。
そのうちスクリーンショットも掲載します。使いたいと思った方はご自由にどうぞ。以下ソース。

# 書式
# 勝利条件コール ヘッダ1 条件1 条件2 ... "" ヘッダ2 条件1 ... "" ヘッダ3 条件1 ...
# "" が境目となります

勝利条件コール:
Local i j
Local Flag = 0
Local Condition_Num
Local Condition
Local Window_Y
Local Temp_BaseY
Local General_Len
Local Str_Height
Local Margin
Local Flame_Light
Local Flame_Shadow
Local Flame_BackColor

Flame_Light[0] = #7878ff
Flame_Shadow[0] = #5050ff
Flame_BackColor[0] = #000032

Flame_Light[1] = #ff7878
Flame_Shadow[1] = #dc2828
Flame_BackColor[1] = #320000

Flame_Light[2] = #dcdcdc
Flame_Shadow[2] = #b4b4b4
Flame_BackColor[2] = #323232

Flame_Light[3] = #ffff78
Flame_Shadow[3] = #dcdc00
Flame_BackColor[3] = #323200

For i = 1 to ArgNum
  If Args(i) = "" Then
    Incr Flag
  Else
    Incr Condition_Num[Flag]
    Condition[Flag,Condition_Num[Flag]] = Args(i)
  Endif
Next

For i = 0 to Flag
  Incr General_Len (Condition_Num[i] * 30 - 5)
Next
Incr General_Len (Flag * 30)

BaseX = 90
Temp_BaseY = 240 - General_Len / 2 - 30

For i = 0 to Flag
  If Condition_Num[i] = "" Then
    Skip
  Endif
  Incr Temp_BaseY (Window_Y + 30)
  BaseY = Temp_BaseY
  Window_Y = Condition_Num[i] * 30 - 5

  # Main Window
  Line 0 0 300 Window_Y BF Flame_BackColor[i]
  Line 0 0 300 Window_Y B Flame_Light[i]
  Line 1 1 299 (Window_Y - 1) B Flame_Shadow[i]

  # Header
  Line 0 0 300 25 B Flame_Light[i]
  Line 1 1 299 24 B Flame_Shadow[i]
  Line 1 26 299 26 Flame_Shadow[i]
  Font 11pt #00ff00 Regular
  PaintString 6 5 Condition[i,1]

  # Data
  Str_Height = (Condition_Num[i] * 30 - 40) / (Condition_Num[i] - 1)
  Margin = (Str_Height - 15) / 2
  Font 11pt #f0f0f0
  For j = 2 to Condition_Num[i]
    PaintString 20 (30 + Margin + (j - 2) * Str_Height) Condition[i,j]
  Next
Next

BaseX = 0
BaseY = 0
Font
Refresh
Return