ごっこあそび。事例研究(めどりんぐきっず)
2005年6月2日さすがに複雑すぎるというか、中身を何も考えていないので、
あちこちに矛盾が生じまくっている。
なにがいいかよくわからないのでブレインストームレベル。
というわけで再びメモ。
■案:SYS_WAIT時にユーザが可能な行動をどう管理するか。
[T_CARD]に手伝わせてみる。
この場合([T-CARD]→[T_STAT])だと矛盾が生じるのでいっそのことT_STATなんてイラネ、
という考えもある。
アプリケーション関連のプロパティはT_STAT、ユーザ関連のプロパティはT_PROPに持っていくテスト。
([T-CARD]→[T_PROP])
〜〜〜〜
ターン終了ステップのシナリオ進行の例。
1.シナリオの状態を得る。
[T_STAT]
NM,VAL
--+---
’PID’,’1’
’SENA_NM’,’BG_UK_WT’
’SENA_TRG’,’EXE’
’SENA_CAP’,’Upkeep Wait’
2.可能なユーザ行動をチェックしクライアントに通知。
これはカードを選んで可能な行動をメニューに表示させたときに必要。
[T_CARD] c → [T_PROP] p
c.CNM = (’MTG_SENA_’ || T_STAT_SENA_NM || ’_INVALID_ACTION’)
or c.CNM = (’MTG_SENA_’ || T_STAT_SENA_NM || ’_VALID_ACTION’)
c.STMP, c.CRE, c.CNM, p.VAL,
-----+------+-------+-------
20050101000000,’gmaster’,’MTG_SENA_BG_UK_WT_INVALID_ACTION’,#NULL#
20050101000130,’rebecca’,’MTG_SENA_BG_UK_WT_VALID_ACTION’,’CARD-Necrogia_PLAY0’
20050101000000,’gmaster’,’MTG_SENA_BG_UK_WT_VALID_ACTION’,’TYPE-INS’
20050101000000,’gmaster’,’MTG_SENA_BG_UK_WT_VALID_ACTION’,’TYPE-MANA’
:
一部、Necrogiaなんて入れてみていい気になってみたけど
これだと常在能力等の例外処理が抜けている。
Medlling Mageなんか全部のフェイズにINVALID_ACTIONを入れなきゃいけない。
(いや、いれてもいいけど。)
常在能力のチェックを入れるとすごく遅くなるはずだが・・・。
それは下で。
3.SYS_WAITを送信。
〜〜〜〜
■常在能力の処理。
常在能力などはそれが発生している間、T_ZONEのNM=’CEF’に能力の擬似カードと
廃棄トリガーをおいていく。
[T_ZONE] z
PID,CID,ZN,CNM,CRE
-+--+---+----------
1,67,CEF,’Meddling Kids_Effect1_0’,’Meddling Kids@20050101000505’ //禁止効果
1,67,CEF,’Meddling Kids_Effect2_1’,’Meddling Kids@20050101000505’ //削除トリガー
z.CNMからCNMを取り出してそれをT_SENAとマッチングするとよさげ。
[T_SENA] s
SID,STMP,NM,PH,TRG,PROC
---------------------------------------------
1,20050101000505,’,’Meddling Kids_Effect1_0’,’CE_常在効果’,"Meddling Kids_Effect1"
1,20050101000505,’,’Meddling Kids_Effect2_0’,’CE_場を離れる’,"Meddling Kids_Effect1"
ネーミングルールにあらが見えるなw
ああ、駄目だ。やり直し。(T-T)
あちこちに矛盾が生じまくっている。
なにがいいかよくわからないのでブレインストームレベル。
というわけで再びメモ。
■案:SYS_WAIT時にユーザが可能な行動をどう管理するか。
[T_CARD]に手伝わせてみる。
この場合([T-CARD]→[T_STAT])だと矛盾が生じるのでいっそのことT_STATなんてイラネ、
という考えもある。
アプリケーション関連のプロパティはT_STAT、ユーザ関連のプロパティはT_PROPに持っていくテスト。
([T-CARD]→[T_PROP])
〜〜〜〜
ターン終了ステップのシナリオ進行の例。
1.シナリオの状態を得る。
[T_STAT]
NM,VAL
--+---
’PID’,’1’
’SENA_NM’,’BG_UK_WT’
’SENA_TRG’,’EXE’
’SENA_CAP’,’Upkeep Wait’
2.可能なユーザ行動をチェックしクライアントに通知。
これはカードを選んで可能な行動をメニューに表示させたときに必要。
[T_CARD] c → [T_PROP] p
c.CNM = (’MTG_SENA_’ || T_STAT_SENA_NM || ’_INVALID_ACTION’)
or c.CNM = (’MTG_SENA_’ || T_STAT_SENA_NM || ’_VALID_ACTION’)
c.STMP, c.CRE, c.CNM, p.VAL,
-----+------+-------+-------
20050101000000,’gmaster’,’MTG_SENA_BG_UK_WT_INVALID_ACTION’,#NULL#
20050101000130,’rebecca’,’MTG_SENA_BG_UK_WT_VALID_ACTION’,’CARD-Necrogia_PLAY0’
20050101000000,’gmaster’,’MTG_SENA_BG_UK_WT_VALID_ACTION’,’TYPE-INS’
20050101000000,’gmaster’,’MTG_SENA_BG_UK_WT_VALID_ACTION’,’TYPE-MANA’
:
一部、Necrogiaなんて入れてみていい気になってみたけど
これだと常在能力等の例外処理が抜けている。
Medlling Mageなんか全部のフェイズにINVALID_ACTIONを入れなきゃいけない。
(いや、いれてもいいけど。)
常在能力のチェックを入れるとすごく遅くなるはずだが・・・。
それは下で。
3.SYS_WAITを送信。
〜〜〜〜
■常在能力の処理。
常在能力などはそれが発生している間、T_ZONEのNM=’CEF’に能力の擬似カードと
廃棄トリガーをおいていく。
[T_ZONE] z
PID,CID,ZN,CNM,CRE
-+--+---+----------
1,67,CEF,’Meddling Kids_Effect1_0’,’Meddling Kids@20050101000505’ //禁止効果
1,67,CEF,’Meddling Kids_Effect2_1’,’Meddling Kids@20050101000505’ //削除トリガー
z.CNMからCNMを取り出してそれをT_SENAとマッチングするとよさげ。
[T_SENA] s
SID,STMP,NM,PH,TRG,PROC
---------------------------------------------
1,20050101000505,’,’Meddling Kids_Effect1_0’,’CE_常在効果’,"Meddling Kids_Effect1"
1,20050101000505,’,’Meddling Kids_Effect2_0’,’CE_場を離れる’,"Meddling Kids_Effect1"
ネーミングルールにあらが見えるなw
ああ、駄目だ。やり直し。(T-T)
コメント