@@ -42,8 +42,10 @@ protected override async Task MainLoop(CancellationToken token)
42
42
EncounterMode . VerticalLine => WalkInLine ( token ) ,
43
43
EncounterMode . HorizontalLine => WalkInLine ( token ) ,
44
44
EncounterMode . Eternatus => DoEternatusEncounter ( token ) ,
45
+ EncounterMode . Regigigas => DoRegigigasEncounter ( token ) ,
45
46
EncounterMode . Regis => DoRegiEncounter ( token ) ,
46
47
EncounterMode . LegendaryDogs => DoDogEncounter ( token ) ,
48
+ EncounterMode . SwordsJustice => DoJusticeEncounter ( token ) ,
47
49
_ => WalkInLine ( token ) ,
48
50
} ;
49
51
await task . ConfigureAwait ( false ) ;
@@ -109,6 +111,33 @@ private async Task DoEternatusEncounter(CancellationToken token)
109
111
}
110
112
}
111
113
114
+ private async Task DoRegigigasEncounter ( CancellationToken token )
115
+ {
116
+ Log ( "Reminder: LDN-MITM SYSMODULE IS REQUIRED IN ORDER FOR THIS BOT TO WORK!" ) ;
117
+ while ( ! token . IsCancellationRequested )
118
+ {
119
+ Log ( "Looking for Gigas..." ) ;
120
+
121
+ //Click through all the menus until the encounter.
122
+ while ( ! await IsInBattle ( token ) . ConfigureAwait ( false ) )
123
+ await Click ( A , 1_000 , token ) . ConfigureAwait ( false ) ;
124
+
125
+ Log ( "An encounter has started!" ) ;
126
+
127
+ var pk = await ReadUntilPresent ( RaidPokemonOffset , 2_000 , 0_200 , token ) . ConfigureAwait ( false ) ;
128
+ if ( pk != null )
129
+ {
130
+ if ( await HandleEncounter ( pk , true , token ) . ConfigureAwait ( false ) )
131
+ return ;
132
+ }
133
+
134
+ Connection . Log ( "Resetting Regigigas by restarting the game" ) ;
135
+
136
+ await CloseGame ( Hub . Config , token ) . ConfigureAwait ( false ) ;
137
+ await StartGame ( Hub . Config , token ) . ConfigureAwait ( false ) ;
138
+ }
139
+ }
140
+
112
141
private async Task DoRegiEncounter ( CancellationToken token )
113
142
{
114
143
Log ( "Reminder: LDN-MITM SYSMODULE IS REQUIRED IN ORDER FOR THIS BOT TO WORK!" ) ;
@@ -136,11 +165,12 @@ private async Task DoRegiEncounter(CancellationToken token)
136
165
for ( int i = 0 ; i < 3 ; i ++ )
137
166
await ReadUntilChanged ( BattleMenuOffset , BattleMenuReady , 5_000 , 0_100 , true , token ) . ConfigureAwait ( false ) ;
138
167
139
- if ( await HandleEncounter ( pk , false , token ) . ConfigureAwait ( false ) )
168
+ if ( await HandleEncounter ( pk , true , token ) . ConfigureAwait ( false ) )
140
169
return ;
141
170
142
171
Log ( "Restarting game..." ) ;
143
172
await CloseGame ( Hub . Config , token ) . ConfigureAwait ( false ) ;
173
+ await StartGame ( Hub . Config , token ) . ConfigureAwait ( false ) ;
144
174
}
145
175
}
146
176
@@ -194,6 +224,46 @@ private async Task DoDogEncounter(CancellationToken token)
194
224
}
195
225
}
196
226
227
+ private async Task DoJusticeEncounter ( CancellationToken token )
228
+ {
229
+ Log ( "Reminder: LDN-MITM SYSMODULE IS REQUIRED IN ORDER FOR THIS BOT TO WORK!" ) ;
230
+ bool log ;
231
+ while ( ! token . IsCancellationRequested )
232
+ {
233
+ Log ( "Position saved. Rebooting game..." ) ;
234
+ await CloseGame ( Hub . Config , token ) . ConfigureAwait ( false ) ;
235
+ await StartGame ( Hub . Config , token ) . ConfigureAwait ( false ) ;
236
+
237
+ log = true ;
238
+
239
+ while ( ! await IsInBattle ( token ) . ConfigureAwait ( false ) )
240
+ {
241
+ if ( log ) Log ( "Position could be wrong. Try to move a bit and save again." ) ;
242
+ log = false ;
243
+ }
244
+
245
+ Log ( "Encounter started! Checking details..." ) ;
246
+ var pk = await ReadUntilPresent ( WildPokemonOffset , 2_000 , 0_200 , token ) . ConfigureAwait ( false ) ;
247
+ if ( pk == null )
248
+ {
249
+ Log ( "Not right Offset. Restarting loop." ) ;
250
+
251
+ // Flee and continue looping.
252
+ while ( await IsInBattle ( token ) . ConfigureAwait ( false ) )
253
+ await FleeToOverworld ( token ) . ConfigureAwait ( false ) ;
254
+ continue ;
255
+ }
256
+
257
+ // Offsets are flickery so make sure we see it 3 times.
258
+ for ( int i = 0 ; i < 3 ; i ++ )
259
+ await ReadUntilChanged ( BattleMenuOffset , BattleMenuReady , 5_000 , 0_100 , true , token ) . ConfigureAwait ( false ) ;
260
+
261
+ if ( await HandleEncounter ( pk , true , token ) . ConfigureAwait ( false ) )
262
+ return ;
263
+ }
264
+ }
265
+
266
+
197
267
private async Task < int > StepUntilEncounter ( CancellationToken token )
198
268
{
199
269
Log ( "Walking around until an encounter..." ) ;
0 commit comments