mindsweeper/00/003.txt
2024-05-18 15:26:53 -05:00

423 lines
18 KiB
Text
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;システムメニュー描画
@system_menu
gosub @system_menu_0
for %i=1 to 4
if pageid<>"log" and %i==5 then exit
if pageid=="title" and %i==1 then continue
if pageid=="title" then sys_y=232
if pageid=="log" and %i<=2 then continue
if pageid=="log" then sys_y=95
if pageid=="stage" then sys_y=207
sp "command:sys"+str(%i),{name={"img\panel\system_"+str(%i)+".png","img\panel\system_"+str(%i)+"_on.png"},a=255,x=1860,y=sys_y+%i*112,z=100}
if pageid<>"log" then
print #c
wait 50
endif
next
if pageid=="title" and _clear==1 then sp "command:sys9",{name={"img\panel\system_9.png","img\panel\system_9_on.png"},a=255,x=1860,y=904,z=100}
return
;スクリーンモードボタン
@system_menu_0
sp "command:sys0",{name={"img\panel\system_0_"+str(getscreen())+".png","img\panel\system_0_"+str(getscreen())+"_on.png"},a=255,x=1877,y=5,z=100}
return
;ボタン定義
@system_btndef
for %i=1 to 9
btn "command:sys"+str(%i)
next
btn "command:sys0"
return
;システム処理
@system
param %mode,%sys
if %mode==0 or %mode==3 then
se1 "004"
elseif %mode==1 then
wait 500
se1 "001"
endif
if %sys==0 then goto @system_0
if %sys==5 then goto @system_5
if %mode<>3 then spset "system",810
sp "system:bg",{name="*#000000",a=230,x=0,y=0,z=3}
if %sys>=1 and %sys<=4 then %y=sys_y+%sys*112
if %sys==9 then %y=904
if %mode==0 then sp "system:x",{name={"img\panel\system_"+str(%sys)+".png","img\panel\system_"+str(%sys)+"_on.png"},a=255,x=1860,y=%y,z=0}
if pageid=="stage" then %backlogpage=backlogpage
manualpagemax=0
for %i=1 to 99
%s=str(%i)
zeropad 2,%s
if filechk("img\panel\system_2_"+%s+"_0.png")==1 then manualpagemax=manualpagemax+1
next
;リロード
@system_reload
if %sys==1 then
backlog_reload "system",%backlogpage,backlogpage
endif
if %sys==2 then
spdeletes "system:manual_pict_"
gosub "@system_2_"+str(_manualpage)
sp "system:table",{name="img\panel\system_1_table.png",a=255,x=960,y=303,z=2}
sp "system:manual_head",{name="?【"+manual_head+"】,manual_head",a=255,x=960,y=340,z=0}
sp "system:manual_text_1",{name="*960,440,#00000000",a=255,x=960,y=320,z=1}
sp "system:manual_text_0",{name="*960,440,#00000000",a=255,x=960,y=320,z=0}
spformat "system:manual_text_1",0,manual_text_1+"{ / }",{font="manual_text_1",x=2,y=52,w=40,h=11},{font="manual_ruby_1"}
spformat "system:manual_text_0",0,manual_text_0+"{ / }",{font="manual_text_0",x=2,y=52,w=40,h=11},{font="manual_ruby_0"}
if %mode==0 then
%len=zlen(zenkaku(str(_manualpage))+""+zenkaku(str(manualpagemax)))
sp "system:manual_page",{name="?"+zenkaku(str(_manualpage))+""+zenkaku(str(manualpagemax))+",manual_head",a=255,x=1299+(5-%len)*15,y=267,z=0}
sp "system:btn1",{name={"img\panel\system_1_btn_1.png","img\panel\system_1_btn_1_on.png"},a=255,x=1190,y=259,z=0}
sp "system:btn2",{name={"img\panel\system_1_btn_2.png","img\panel\system_1_btn_2_on.png"},a=255,x=1534,y=259,z=0}
btn "system:btn1"
btn "system:btn2"
endif
if %mode>0 and _manualpopup==1 then
sp "system:manual_cancel",{name="?次回から表示しない,caption",a=255,x=1630,y=789,z=0}
sp "system:btn0",{name={"img\panel\system_2_btn_0.png","img\panel\system_2_btn_0_on.png"},a=255,x=1566,y=773,z=0}
btn "system:btn0"
elseif %mode>0 and _manualpopup==0 then
spdelete "system:manual_cancel"
spdelete "system:btn0"
_manualpage=%manualpage
endif
if %mode==1 then print #u,500,"img\rule_00.png"
if %mode==2 then print #c
endif
if %sys==3 then
sp "system:table",{name="img\panel\system_3_table.png",a=255,x=870,y=sys_y+336,z=1}
for %i=0 to 3
sp "system:btn"+str(%i)+"0",{name={"img\panel\system_3_btn_0_"+str(_volume[%i][0])+".png","img\panel\system_3_btn_0_"+str(_volume[%i][0])+"_on.png"},a=255,x=935+230*%i,y=sys_y+412,z=0}
sp "system:btn"+str(%i)+"1",{name={"img\panel\system_3_btn_1.png","img\panel\system_3_btn_1_on.png"},a=255,x=1005+230*%i,y=sys_y+412,z=0}
sp "system:btn"+str(%i)+"2",{name={"img\panel\system_3_btn_2.png","img\panel\system_3_btn_2_on.png"},a=255,x=1075+230*%i,y=sys_y+412,z=0}
if _volume[%i][1]>0 then sp "system:bar"+str(%i),{name=">l200,6,"+str(_volume[%i][1])+",11,#00ff00,#282828",a=255,x=930+230*%i,y=sys_y+387,z=0}
if _volume[%i][1]==0 then spdelete "system:bar"+str(%i)
next
for %i1=0 to 3
for %i2=0 to 2
btn "system:btn"+str(%i1)+str(%i2)
next
next
endif
if %sys==4 then
sp "system:table",{name="img\panel\system_4_table.png",a=255,x=870,y=sys_y+448,z=1}
if pageid=="title" then
sp "system:btn1",{name="img\panel\system_4_btn_1_lock.png",a=255,x=906,y=sys_y+477,z=0}
sp "system:btn2",{name="img\panel\system_4_btn_2_lock.png",a=255,x=1222,y=sys_y+477,z=0}
endif
if pageid=="log" then
sp "system:btn1",{name="img\panel\system_4_btn_1_lock.png",a=255,x=906,y=sys_y+477,z=0}
sp "system:btn2",{name={"img\panel\system_4_btn_2.png","img\panel\system_4_btn_2_on.png"},a=255,x=1222,y=sys_y+477,z=0}
btn "system:btn2"
endif
if pageid=="stage" then
sp "system:btn1",{name={"img\panel\system_4_btn_1.png","img\panel\system_4_btn_1_on.png"},a=255,x=906,y=sys_y+477,z=0}
btn "system:btn1"
sp "system:btn2",{name={"img\panel\system_4_btn_2.png","img\panel\system_4_btn_2_on.png"},a=255,x=1222,y=sys_y+477,z=0}
btn "system:btn2"
endif
sp "system:btn3",{name={"img\panel\system_4_btn_3.png","img\panel\system_4_btn_3_on.png"},a=255,x=1538,y=sys_y+477,z=0}
btn "system:btn3"
endif
if %sys==41 then
sp "system:table",{name="img\panel\system_41_table.png",a=255,x=870,y=sys_y+448,z=1}
for %i=1 to 10
%s=str(%i)
zeropad 2,%s
if filechk("savedata\"+str(stage*100+%i)+".sav")==1 then
sp "system:btn"+%s,{name={"img\panel\log_btn1_"+%s+".png","img\panel\log_btn1_"+%s+"_on.png"},a=255,x=910+85*%i,y=sys_y+477,z=0}
btn "system:btn"+%s
else
sp "system:btn"+%s,{name="img\panel\log_btn1_"+%s+"_lock.png",a=255,x=910+85*%i,y=sys_y+477,z=0}
endif
next
endif
if %sys==9 then
sp "system:table",{name="img\panel\system_4_table.png",a=255,x=870,y=904,z=1}
sp "system:btn1",{name={"img\panel\system_9_btn_1.png","img\panel\system_9_btn_1_on.png"},a=255,x=919,y=933,z=0}
sp "system:btn2",{name={"img\panel\system_9_btn_2.png","img\panel\system_9_btn_2_on.png"},a=255,x=1385,y=933,z=0}
btn "system:btn1"
btn "system:btn2"
endif
if %mode==0 then btn "system:x"
@system_btnexec
btnid="system"
if %sys==1 then
btnexec btn_system,"system",{func=1,wheel=1}
elseif %mode==0 and %sys==2 then
btnexec btn_system,"system",{func=1,wheel=1}
else
btnexec btn_system,"system",{func=1}
endif
if mid(btn_system,0,2)=="#F" then goto "@func_"+mid(btn_system,2,2)
if %mode==3 and %sys==4 then
if btn_system=="" or btn_system==#r then goto @system_btnexec
endif
if %mode==3 and %sys==41 then
if btn_system=="" then goto @system_btnexec
endif
btnclear "system"
;マニュアルポップアップ連続0
if btn_system=="btn0" then
_manualpopup=0
%manualpage=_manualpage
%page=0:goto @system_2_continue
endif
;マニュアルポップアップ連続2
if %mode==1 and _manualpage==1 then %page=2:goto @system_2_continue
;マニュアルポップアップ連続4
if %mode==1 and _manualpage==3 then %page=4:goto @system_2_continue
;マニュアルポップアップ連続8
if %mode==1 and _manualpage==7 then %page=8:goto @system_2_continue
;マニュアルポップアップ連続11
if %mode==1 and _manualpage==10 then %page=11:goto @system_2_continue
;リトライキャンセル
if %sys==41 and btn_system==#r then
%sys=4
spdeletes "system:btn"
goto @system_reload
endif
;戻り
if btn_system=="" or btn_system==#r or btn_system=="x" then
if btn_system=="x" then se1 "004"
spsetdelete "system"
return
endif
goto "@system_"+str(%sys)
;スクリーン
@system_0
if getscreen()==0 then
setscreen 1
else
setscreen 0
endif
gosub @system_menu_0
return
;バックログ
@system_1
se1 "007"
if btn_system==#wu then btn_system="btn1"
if btn_system==#wd then btn_system="btn2"
if %backlogpage>1 and btn_system=="btn1" then %backlogpage=%backlogpage-1
if %backlogpage==backlogpage and btn_system=="btn2" then
spsetdelete "system"
return
endif
if %backlogpage<backlogpage and btn_system=="btn2" then %backlogpage=%backlogpage+1
goto @system_reload
;マニュアル
@system_2
se1 "007"
if %mode==0 then
if btn_system==#wu then btn_system="btn1"
if btn_system==#wd then btn_system="btn2"
if btn_system=="btn1" then _manualpage=_manualpage-1
if btn_system=="btn2" then _manualpage=_manualpage+1
if _manualpage<1 then _manualpage=manualpagemax
if _manualpage>manualpagemax then _manualpage=1
endif
goto @system_reload
;マニュアルポップアップ
@system_2_popup
param %page
_manualpopup[%page]=1
_manualpage=%page
system 1,2
return
;マニュアルポップアップ連続
@system_2_continue
_manualpopup[%page]=1
_manualpage=%page
%mode=2
btn_system=""
goto @system_2
@system_2_0
manual_head="マニュアルの確認"
manual_text_1="マニュアルはサイドメニューの「?」ボタンから開くことが出来ます。"
manual_text_0="              「?」               "
return
@system_2_1
manual_head="基本ルール"
manual_text_1="エージェントの精神防壁を表すパネルを、クリックで選択しめくってゆきます。\nパネルに潜むファイアウォールを避けながら全てめくるとコンプリートとなり、精神侵入の深度「」が進行します。\n最深部のまで到達しコンプリートすれば、ステージクリアとなります。"
manual_text_0="                                    \nパネルに潜むファイアウォールを避けながら全てめくる                         \n                                       "
sp "system:manual_pict_0",{name="img\panel\system_2_01_0.png",a=255,x=960,y=535,z=0}
sp "system:manual_pict_1",{name="img\panel\system_2_01_1.png",a=255,x=1160,y=535,z=0}
return
@system_2_2
manual_head="ファイアウォール"
manual_text_1="パネルには右上に表示された設定数の「ファイアウォール」が潜んでおり、踏むとHPにダメージを受けてしまいます。HPが0になるとゲームオーバーです。\n※初手ではファイアウォールを踏まない仕様になっています"
manual_text_0="                                  踏むとHPにダメージ          HPが0になるとゲームオーバー   \n                             "
sp "system:manual_pict_0",{name="img\panel\system_2_02_0.png",a=255,x=960,y=535,z=0}
sp "system:manual_pict_1",{name="img\panel\system_2_02_1.png",a=255,x=1160,y=535,z=0}
return
@system_2_3
manual_head="数字ヘクス"
manual_text_1="空き地に表示された数字は、隣接パネルに潜在するファイアウォールのレベルです。例えば「1」の隣接パネルには、レベル1のファイアウォールが1個潜んでいます。\nファイアウォールを特定したパネルには、右クリックでマーキングすることが出来ます。"
manual_text_0="             隣接パネルに潜在するファイアウォールのレベル                                         \n                   右クリックでマーキング          "
sp "system:manual_pict_0",{name="img\panel\system_2_03_0.png",a=255,x=960,y=515,z=0}
sp "system:manual_pict_1",{name="img\panel\system_2_03_1.png",a=255,x=1215,y=550,z=0}
return
@system_2_4
manual_head=""
manual_text_1="パネルをめくる毎にゲージが溜まり、ハッキングの発動に必要なHACKポイントが得られます。"
manual_text_0="                 ハッキングの発動に必要                "
sp "system:manual_pict_0",{name="img\panel\system_2_04_0.png",a=255,x=960,y=480,z=0}
return
@system_2_5
manual_head="ハッキング"
manual_text_1="マーキングしたパネルは左クリックすると、HACKポイントを消費しファイアウォールごとパネルを消去するスキルが発動します。\nまた、ハッキングでファイアウォールの破壊に成功すると、エージェントに対する攻撃「アタック」が選択出来ます。"
manual_text_0="                                ファイアウォールごとパネルを消去            \n                           エージェントに対する攻撃「アタック」        "
sp "system:manual_pict_0",{name="img\panel\system_2_05_0.png",a=255,x=960,y=535,z=0}
sp "system:manual_pict_1",{name="img\log\operation_101_1.png",a=255,cx=1550,cy=638,xs=0.19,ys=0.19,rot=0,z=0}
return
@system_2_6
manual_head="アタック"
manual_text_1="選択可能なアタックは、ファイアウォールのレベルに対応しています。\nレベルのアタックを選択するには、それ以上のレベルのファイアウォールを破壊する必要があります。\nまた、チャージを選択することで次回にレベルの持ち越しが可能です。"
manual_text_0="           ファイアウォールのレベルに対応      \n                                               \n   チャージを選択することで次回にレベルの持ち越しが可能   "
sp "system:manual_pict_0",{name="img\panel\system_2_06_0.png",a=255,x=960,y=535,z=0}
sp "system:manual_pict_1",{name="img\panel\system_2_06_1.png",a=255,x=1250,y=563,z=0}
return
@system_2_7
manual_head=""
manual_text_1="アタックを実行すると、エージェントのORGASMゲージが増加します。\nゲージが最大になると絶頂が発生し、シールドを獲得することが出来ます。\nゲージの増加率はゲームの進行度によって変化します。\nまた、絶頂を繰り返すことでも増加率が上昇します。"
manual_text_0="                  ORGASMゲージが増加    \n                 シールドを獲得          \n                         \n   絶頂を繰り返すことでも増加率が上昇    "
sp "system:manual_pict_0",{name="img\panel\system_2_07_0.png",a=255,x=960,y=575,z=0}
sp "system:manual_pict_1",{name="img\panel\system_2_07_1.png",a=255,x=1400,y=575,z=0}
return
@system_2_8
manual_head="シールド"
manual_text_1="シールドはファイアウォールによるダメージを1度だけ防ぎます。\nファイアウォールのレベルに関係無く、完全に無効化することが出来ます。"
manual_text_0="     ファイアウォールによるダメージを1度だけ防ぎます。\n                                  "
sp "system:manual_pict_0",{name="img\panel\system_2_08_0.png",a=255,x=960,y=485,z=0}
sp "system:manual_pict_1",{name="img\panel\system_2_07_1.png",a=255,x=1200,y=485,z=0}
return
@system_2_9
manual_head="回復"
manual_text_1="DEPTHの進行時、HACKとHPを1獲得します。\nについては唯一の回復手段となります。"
manual_text_0="DEPTHの進行時、HACKとHPを1獲得    \n                    "
sp "system:manual_pict_0",{name="img\panel\system_2_01_1.png",a=255,x=960,y=485,z=0}
sp "system:manual_pict_1",{name="img\panel\system_2_09_0.png",a=255,x=1075,y=560,z=0}
sp "system:manual_pict_2",{name="img\panel\system_2_09_1.png",a=255,x=1375,y=560,z=0}
return
@system_2_10
manual_head="ファイアウォールのレベル"
manual_text_1="ファイアウォールには1~5のレベルがあり、レベル相当のダメージを持っています。\n数字ヘクスが表すのは、隣接するファイアウォールのレベルの合計です。個数ではないので、特定する際は注意が必要です。\nまた、右クリックの繰り返しでマーキングのレベルを変更することが出来ます。"
manual_text_0="          1~5のレベル                     \n                        レベルの合計                           \n   右クリックの繰り返しでマーキングのレベルを変更          "
sp "system:manual_pict_0",{name="img\panel\system_2_10_0.png",a=255,x=960,y=535,z=0}
sp "system:manual_pict_1",{name="img\panel\system_2_10_1.png",a=255,x=1280,y=570,z=0}
return
@system_2_11
manual_head="ハッキングのレベル"
manual_text_1="ハッキングにも1~5のレベルがあり、マーキングに対応しています。\nハッキングの発動には、レベル分のポイントが必要となります。\nファイアウォールの破壊には同レベル以上のハッキングが必要で、ハッキングのレベルが下回った場合は、に差分ダメージを受けることになります。"
manual_text_0="       1~5のレベル    マーキングに対応      \n                                 \n             同レベル以上のハッキング                                            "
sp "system:manual_pict_0",{name="img\panel\system_2_11_0.png",a=255,x=960,y=535,z=0}
return
@system_2_12
manual_head="セキュリティーホール"
manual_text_1="ピンクの数字ヘクスは「セキュリティーホール」の存在を示しています。\nこれは弱点を含むファイアウォールで、ハッキングに成功すると隣接ヘクスごと破壊する範囲攻撃が発生します。また、ファイアウォールを巻き込んだ場合、レベルをチャージとして獲得することが出来ます。"
manual_text_0="                                 \n                             隣接ヘクスごと破壊する範囲攻撃が発生       ファイアウォールを巻き込んだ場合、レベルをチャージとして獲得          "
sp "system:manual_pict_0",{name="img\panel\system_2_12_0.png",a=255,x=960,y=535,z=0}
sp "system:manual_pict_1",{name="img\panel\system_2_12_1.png",a=255,x=1180,y=535,z=0}
return
;音量
@system_3
%n1=num(mid(btn_system,3,1))
%n2=num(mid(btn_system,4,1))
if %n2==0 then
if _volume[%n1][0]==0 then _volume[%n1][0]=1 else _volume[%n1][0]=0
endif
if %n2==1 and _volume[%n1][1]>0 then _volume[%n1][1]=_volume[%n1][1]-1
if %n2==2 and _volume[%n1][1]<10 then _volume[%n1][1]=_volume[%n1][1]+1
se1 "004"
volume_load
goto @system_reload
;終了
@system_4
if btn_system=="btn1" then
se1 "004"
spdelete "system:btn1"
spdelete "system:btn2"
spdelete "system:btn3"
%sys=41
goto @system_reload
endif
se1 "001"
spsetdelete "system"
print #c
sp "effect:mask",{name="*#000000",a=255,x=0,y=0,z=0}
print #f,1500
bgmfade 1000
selpstopall
if btn_system=="btn2" then
resettimer
stage_spsetdelete
waittimer 1500
return @title
elseif btn_system=="btn3" then
wait 1000
quit
endif
;リトライ
@system_41
se1 "001"
spdelete "system:table"
spdeletes "system:btn"
print #c
spset "sign",100
sp "sign:bg",{name="img\title.png",a=255,x=0,y=0,z=1}
sp "sign:load",{name="img\sign_load.png",a=255,x=760,y=510,z=0}
print #f,500
for %i=1 to 40
sp "sign:bar",{name=">l400,7,"+str(%i)+",40,#ff91ed,#505050",a=255,x=760,y=578,z=0}
print #c
wait 1
next
_retry=1
load num(st+right(btn_system,2))
;アンロック
@system_9
se1 "126"
if btn_system=="btn1" then unlock 1
if btn_system=="btn2" then unlock 0
sp "effect:flash",{name="*#ffffff",a=255,x=0,y=0,z=0}
print #f,1000
bgmfade 1000
wait 1000
spdelete "effect:flash"
spsetdelete "system"
return @title