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

155 lines
5.2 KiB
Text

;アタック処理
@operation
spset "operation",894
sp "operation:table",{name="img\panel\operation_table.png",a=255,x=1265,y=177,z=2}
%weak=""
if critical==2 then %weak="_w"
sp "operation:lv",{name="img\panel\operation_lv_"+str(atk)+%weak+".png",a=255,x=1370,y=44,z=2}
if charge>0 then
if charge==1 then
%x_n=1457
%x_b=1513
elseif charge>=2 and charge<=9 then
%x_n=1476
%x_b=1530
elseif charge>=10 and charge<=19 then
%x_n=1489
%x_b=1545
elseif charge>=20 and charge<=99 then
%x_n=1508
%x_b=1562
endif
sp "operation:charge_brackets_0",{name="img\panel\operation_charge_0.png",a=255,x=1463,y=104,z=0}
sp "operation:charge_brackets_1",{name="img\panel\operation_charge_1.png",a=255,x=%x_b,y=109,z=0}
if charge>=10 then sp "operation:charge_num_2",{name="img\panel\num_s_w_"+str(floor(charge/10))+".png",a=255,x=%x_n,y=115,z=0}
sp "operation:charge_num_1",{name="img\panel\num_s_w_"+str(charge mod 10)+".png",a=255,x=%x_n+32,y=115,z=0}
endif
character_mask
;アタック設定読込
gosub @operationdef
;ボタン描画
for %i=1 to 6
if operation_caption[%i]<>"" then
%x=zlen(operation_caption[%i])-1
if atk+charge>=%i or %i==6 then
%a=255
sp "operation:label"+str(%i),{name="?"+operation_caption[%i]+",operation",a=%a,x=1409-11*%x,y=137+112*%i,z=0}
sp "operation:"+str(%i),{name={"img\panel\operation_btn_"+str(%i)+".png","img\panel\operation_btn_"+str(%i)+"_on.png"},a=%a,x=1267,y=95+112*%i,z=1}
else
%a=60
sp "operation:label"+str(%i),{name="?"+operation_caption[%i]+",operation",a=%a,x=1409-11*%x,y=137+112*%i,z=0}
sp "operation:"+str(%i),{name="img\panel\operation_btn_"+str(%i)+".png",a=%a,x=1267,y=95+112*%i,z=1}
endif
if %i<6 then
if operation_pass[num(mid(operation_order[%i],1,2))][num(mid(operation_order[%i],4,1))]==0 then sp "operation:new"+str(%i),{name="img\panel\operation_new.png",a=%a,x=1522,y=139+112*%i,z=1}
if _operation_pass[stage][num(mid(operation_order[%i],1,2))][num(mid(operation_order[%i],4,1))]==1 then sp "operation:unlock"+str(%i),{name="img\panel\operation_unlock.png",a=%a,x=1551,y=183+112*%i,z=1}
endif
endif
next
print #u,500,"img\rule_06.png"
;マニュアルポップアップ6
if _manualpopup==1 and _manualpopup[6]==0 then system_2_popup 6
;ボタン定義
@operation_btndef
for %i=1 to 6
if operation_caption[%i]<>"" then
if atk+charge>=%i or %i==6 then btn "operation:"+str(%i)
endif
next
;ボタン入力
@operation_btnexec
btnid="operation"
btnexec btn_operation,"operation",{func=1}
if mid(btn_operation,0,2)=="#F" then goto "@func_"+mid(btn_operation,2,2)
if btn_operation=="" or btn_operation==#r then goto @operation_btnexec
btnclear "operation"
se1 "001"
spsetdelete "operation"
print #c
spdelete "character:mask"
if btn_operation=="6" then
charge=charge+atk
if charge>99 then charge=99
print #u,500,"img\rule_06.png"
else
charge=charge+atk-num(btn_operation)
event "operation","operation_"+operation_order[num(btn_operation)]
;汁差分フラグ
pict_diff
;通過フラグ
if operation_pass[num(mid(operation_order[num(btn_operation)],1,2))][num(right(operation_order[num(btn_operation)],1))]==0 then
operation_pass[num(mid(operation_order[num(btn_operation)],1,2))][num(right(operation_order[num(btn_operation)],1))]=1
endif
;開放フラグ
if _operation_pass[stage][num(mid(operation_order[num(btn_operation)],1,2))][num(right(operation_order[num(btn_operation)],1))]==0 then
_operation_pass[stage][num(mid(operation_order[num(btn_operation)],1,2))][num(right(operation_order[num(btn_operation)],1))]=1
endif
;開放フラグ(個別開放条件)
gosub "@operationpass_"+stdp
;オーガズム
if orgnum>0 then
%orgnum=2+orgnum
if %orgnum>10 then %orgnum=10
else
%orgnum=0
endif
orgasm_update 0,orgmag+num(btn_operation)*5+%orgnum
character_body
spsetdelete "event"
print #u,1000,"img\rule_06.png"
endif
return
;汁差分フラグ
@pict_diff
if diff_order[num(btn_operation)]<>"" and diff_order[num(btn_operation)]<>diff and diff<>"_a_b" then
if diff<>"" then diff="_a_b"
if diff=="" then diff=diff_order[num(btn_operation)]
endif
return
;通過フラグ初期化
@operation_pass_format
param %flag
for %depth=1 to 11
for %lv=1 to 5
operation_pass[%depth][%lv]=%flag
next
next
return
;通過フラグ修正
@operation_pass_fix
param %ope1,%ope2,%ope3
%s=mid(%ope1,0,1)
%ope1_stage=num(%s)
%s=mid(%ope1,1,2)
%ope1_depth=num(%s)
%s=mid(%ope1,4,1)
%ope1_select=num(%s)
%s=mid(%ope2,0,1)
%ope2_stage=num(%s)
%s=mid(%ope2,1,2)
%ope2_depth=num(%s)
%s=mid(%ope2,4,1)
%ope2_select=num(%s)
%s=mid(%ope3,0,1)
if %ope3=="" then
if operation_pass[%ope1_depth][%ope1_select]==0 and operation_pass[%ope2_depth][%ope2_select]==1 then operation_pass[%ope1_depth][%ope1_select]=1
if _operation_pass[%ope1_stage][%ope1_depth][%ope1_select]==0 and _operation_pass[%ope2_stage][%ope2_depth][%ope2_select]==1 then _operation_pass[%ope1_stage][%ope1_depth][%ope1_select]=1
else
%ope3_stage=num(%s)
%s=mid(%ope3,1,2)
%ope3_depth=num(%s)
%s=mid(%ope3,4,1)
%ope3_select=num(%s)
if operation_pass[%ope1_depth][%ope1_select]==0 and operation_pass[%ope2_depth][%ope2_select]==1 and operation_pass[%ope3_depth][%ope3_select]==1 then operation_pass[%ope1_depth][%ope1_select]=1
if _operation_pass[%ope1_stage][%ope1_depth][%ope1_select]==0 and _operation_pass[%ope3_stage][%ope3_depth][%ope3_select]==1 then _operation_pass[%ope1_stage][%ope1_depth][%ope1_select]=1
endif
return