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