@@ -72,14 +72,21 @@ private void ProcessEvent(string eventString)
7272 switch ( verb )
7373 {
7474 case GameStage . Start :
75+ if ( Program . _config . SpeakerSettings . SpeakModes [ subject ] == Config . Speaker . SpeakModeOff ) return ;
7576 dialogue = "対戦よろしくお願いします。" ;
7677 break ;
7778 case GreMessageType . MulliganReq :
79+ if ( Program . _config . SpeakerSettings . SpeakModes [ subject ] == Config . Speaker . SpeakModeOff ) return ;
7880 dialogue = "マリガンチェック。" ;
7981 break ;
8082 case GameStage . GameOver :
83+ if ( Program . _config . SpeakerSettings . SpeakModes [ subject ] == Config . Speaker . SpeakModeOff ) return ;
8184 dialogue = "対戦ありがとうございました。" ;
8285 break ;
86+ case TurnInfo . PhaseCombat :
87+ if ( Program . _config . SpeakerSettings . SpeakModes [ subject ] == Config . Speaker . SpeakModeOff ) return ;
88+ dialogue = "コンバット。" ;
89+ break ;
8390 }
8491 if ( ! string . IsNullOrEmpty ( dialogue ) )
8592 {
@@ -95,7 +102,12 @@ private void ProcessEvent(string eventString)
95102 }
96103 switch ( verb )
97104 {
105+ case DraftKey . Pick :
106+ if ( ! Program . _config . SpeakerSettings . SpeakDraftPick ) return ;
107+ dialogue = $ "{ string . Join ( " " , tokens . Skip ( 2 ) ) } をピック。";
108+ break ;
98109 case AnnotationType . NewTurnStarted :
110+ if ( Program . _config . SpeakerSettings . SpeakModes [ subject ] == Config . Speaker . SpeakModeOff ) return ;
99111 int turnNumber ;
100112 try
101113 {
@@ -126,6 +138,7 @@ private void ProcessEvent(string eventString)
126138 }
127139 break ;
128140 case AnnotationType . TokenCreated :
141+ if ( Program . _config . SpeakerSettings . SpeakModes [ subject ] == Config . Speaker . SpeakModeOff ) return ;
129142 string tokenName = RemoveObjectiveDelimiters ( tokens [ 2 ] ) ;
130143 switch ( subject )
131144 {
@@ -149,15 +162,64 @@ private void ProcessEvent(string eventString)
149162 return ;
150163 }
151164
152- // トークン数 = 4(ライフ増減)
165+ // トークン数 = 4
153166 if ( tokens . Length < 4 )
154167 {
155168 Logger . Instance . Log ( $ "{ this . GetType ( ) . Name } : { verb } イベントのトークン数が4未満: { eventString } ", LogLevel . Error ) ;
156169 return ;
157170 }
158171 switch ( verb )
159172 {
160- case AnnotationType . ModifiedLife :
173+ case DraftKey . Pack :
174+ if ( ! Program . _config . SpeakerSettings . SpeakDraftPick ) return ;
175+ int packNum = int . Parse ( tokens [ 2 ] ) ;
176+ int pickNum = int . Parse ( tokens [ 3 ] ) ;
177+ if ( packNum < 1 || pickNum < 1 )
178+ {
179+ Logger . Instance . Log ( $ "{ this . GetType ( ) . Name } : パック番号またはピック番号が不正: { eventString } ", LogLevel . Error ) ;
180+ return ;
181+ }
182+ if ( pickNum == 1 )
183+ {
184+ dialogue = $ "{ packNum } パック目。";
185+ }
186+ else
187+ {
188+ dialogue = $ "{ packNum } の{ pickNum } 。";
189+ }
190+ break ;
191+ case DraftKey . DraftRarity :
192+ if ( ! Program . _config . SpeakerSettings . SpeakDraftPick ) return ;
193+ int draftRarityNum = int . Parse ( tokens [ 2 ] ) ;
194+ switch ( draftRarityNum )
195+ {
196+ case 5 : // 神話レア
197+ dialogue = $ "神話レアは、{ string . Join ( " " , tokens . Skip ( 3 ) ) } 。";
198+ break ;
199+ case 4 : // レア
200+ dialogue = $ "レアは、{ string . Join ( " " , tokens . Skip ( 3 ) ) } 。";
201+ break ;
202+ default :
203+ return ;
204+ }
205+ break ;
206+ case SealedKey . SealedRarity :
207+ if ( ! Program . _config . SpeakerSettings . SpeakSealedOpen ) return ;
208+ int sealedRarityNum = int . Parse ( tokens [ 2 ] ) ;
209+ switch ( sealedRarityNum )
210+ {
211+ case 5 : // 神話レア
212+ dialogue = $ "神話レアは、{ string . Join ( " " , tokens . Skip ( 3 ) ) } 。";
213+ break ;
214+ case 4 : // レア
215+ dialogue = $ "レアは、{ string . Join ( " " , tokens . Skip ( 3 ) ) } 。";
216+ break ;
217+ default :
218+ return ;
219+ }
220+ break ;
221+ case AnnotationType . ModifiedLife : // ライフ増減
222+ if ( Program . _config . SpeakerSettings . SpeakModes [ subject ] == Config . Speaker . SpeakModeOff ) return ;
161223 int lifeDiff , lifeTotal ;
162224 try
163225 {
@@ -224,6 +286,7 @@ private void ProcessEvent(string eventString)
224286 Logger . Instance . Log ( $ "{ this . GetType ( ) . Name } : { verb } イベントのトークン数が5未満: { eventString } ", LogLevel . Error ) ;
225287 return ;
226288 }
289+ if ( Program . _config . SpeakerSettings . SpeakModes [ subject ] == Config . Speaker . SpeakModeOff ) return ;
227290 string objectName = RemoveObjectiveDelimiters ( tokens [ 2 ] ) ;
228291 int zoneSrcId , zoneDestId ;
229292 try
0 commit comments