さすがに複雑すぎるというか、中身を何も考えていないので、
あちこちに矛盾が生じまくっている。
なにがいいかよくわからないのでブレインストームレベル。

というわけで再びメモ。

■案: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)

コメント

お気に入り日記の更新

最新のコメント

この日記について

日記内を検索