@@ -28,6 +28,8 @@ namespace PokemonAutomation{
2828namespace NintendoSwitch {
2929namespace PokemonLA {
3030
31+ using namespace std ::chrono_literals;
32+
3133
3234
3335
@@ -78,58 +80,73 @@ CustomPathCell::~CustomPathCell(){
7880void CustomPathCell::operator =(const CustomPathCell& x){
7981 text.set_text (x.text .text ());
8082 mount.set (x.mount );
81- move_forward_ticks .set (x.move_forward_ticks );
83+ move_forward .set (x.move_forward . current_text () );
8284 move_speed.set (x.move_speed );
8385 left_x.set (x.left_x );
8486 left_y.set (x.left_y );
85- jump_wait_ticks .set (x.jump_wait_ticks );
86- wait_ticks .set (x.wait_ticks );
87+ jump_wait .set (x.jump_wait . current_text () );
88+ wait .set (x.wait . current_text () );
8789}
8890CustomPathCell::CustomPathCell (EnumDropdownCell<PathAction>& action)
8991 : BatchOption(LockMode::LOCK_WHILE_RUNNING, true )
9092 , m_action(action)
9193 , text(" " , false )
9294 , mount(PathMount_Database(), LockMode::LOCK_WHILE_RUNNING, PathMount::NO_MOUNT)
93- , move_forward_ticks(" Ticks to Move:" , LockMode::LOCK_WHILE_RUNNING, 0 )
95+ , move_forward(
96+ " Duration (ms):" , false ,
97+ LockMode::LOCK_WHILE_RUNNING,
98+ 0ms, Milliseconds::max(),
99+ " 2000 ms"
100+ )
94101 , move_speed(PathSpeed_Database(), LockMode::LOCK_WHILE_RUNNING,PathSpeed::NORMAL_SPEED)
95102 , left_x(" x: [left: -1.0, right: 1.0]" , LockMode::LOCK_WHILE_RUNNING, 0 , -1.0 , 1.0 )
96103 , left_y(" y: [backward: -1.0, forward: 1.0]" , LockMode::LOCK_WHILE_RUNNING, 0 , -1.0 , 1.0 )
97- , jump_wait_ticks(" Ticks after jump:" , LockMode::LOCK_WHILE_RUNNING, 0 )
98- , wait_ticks(" Ticks:" , LockMode::LOCK_WHILE_RUNNING, 0 )
104+ , jump_wait(
105+ " Wait after jump (ms):" , false ,
106+ LockMode::LOCK_WHILE_RUNNING,
107+ 0ms, Milliseconds::max(),
108+ " 2000 ms"
109+ )
110+ , wait(
111+ " Wait Time (ms):" , false ,
112+ LockMode::LOCK_WHILE_RUNNING,
113+ 0ms, Milliseconds::max(),
114+ " 2000 ms"
115+ )
99116{
100117 PA_ADD_STATIC (text);
101118 PA_ADD_OPTION (mount);
102- PA_ADD_OPTION (move_forward_ticks );
119+ PA_ADD_OPTION (move_forward );
103120 PA_ADD_OPTION (move_speed);
104121 PA_ADD_OPTION (left_x);
105122 PA_ADD_OPTION (left_y);
106- PA_ADD_OPTION (jump_wait_ticks );
107- PA_ADD_OPTION (wait_ticks );
123+ PA_ADD_OPTION (jump_wait );
124+ PA_ADD_OPTION (wait );
108125
109126 CustomPathCell::value_changed (this );
110127 action.add_listener (*this );
111128}
112129void CustomPathCell::value_changed (void * object){
113130 text.set_visibility (ConfigOptionState::HIDDEN);
114131 mount.set_visibility (ConfigOptionState::HIDDEN);
115- move_forward_ticks .set_visibility (ConfigOptionState::HIDDEN);
132+ move_forward .set_visibility (ConfigOptionState::HIDDEN);
116133 move_speed.set_visibility (ConfigOptionState::HIDDEN);
117134 left_x.set_visibility (ConfigOptionState::HIDDEN);
118135 left_y.set_visibility (ConfigOptionState::HIDDEN);
119- jump_wait_ticks .set_visibility (ConfigOptionState::HIDDEN);
120- wait_ticks .set_visibility (ConfigOptionState::HIDDEN);
136+ jump_wait .set_visibility (ConfigOptionState::HIDDEN);
137+ wait .set_visibility (ConfigOptionState::HIDDEN);
121138 switch (m_action){
122139 case PathAction::NO_ACTION:
123140 break ;
124141 case PathAction::CHANGE_MOUNT:
125142 mount.set_visibility (ConfigOptionState::ENABLED);
126143 break ;
127144 case PathAction::MOVE_FORWARD:
128- move_forward_ticks .set_visibility (ConfigOptionState::ENABLED);
145+ move_forward .set_visibility (ConfigOptionState::ENABLED);
129146 move_speed.set_visibility (ConfigOptionState::ENABLED);
130147 break ;
131148 case PathAction::MOVE_IN_DIRECTION:
132- move_forward_ticks .set_visibility (ConfigOptionState::ENABLED);
149+ move_forward .set_visibility (ConfigOptionState::ENABLED);
133150 left_x.set_visibility (ConfigOptionState::ENABLED);
134151 left_y.set_visibility (ConfigOptionState::ENABLED);
135152 break ;
@@ -138,10 +155,10 @@ void CustomPathCell::value_changed(void* object){
138155 text.set_visibility (ConfigOptionState::ENABLED);
139156 break ;
140157 case PathAction::JUMP:
141- jump_wait_ticks .set_visibility (ConfigOptionState::ENABLED);
158+ jump_wait .set_visibility (ConfigOptionState::ENABLED);
142159 break ;
143160 case PathAction::WAIT:
144- wait_ticks .set_visibility (ConfigOptionState::ENABLED);
161+ wait .set_visibility (ConfigOptionState::ENABLED);
145162 break ;
146163 case PathAction::START_LISTEN:
147164 text.set_text (" If shiny detected, use \" Destination Shiny Action\" ." );
@@ -194,8 +211,12 @@ void CustomPathTableRow2::load_json(const JsonValue& json){
194211 break ;
195212 case PathAction::MOVE_FORWARD:
196213 value = obj->get_value (" MoveForwardTicks" );
214+ if (value != nullptr && value->is_integer ()){
215+ parameters.move_forward .set (std::to_string (value->to_integer_default () * 8 ));
216+ }
217+ value = obj->get_value (" MoveForwardMs" );
197218 if (value != nullptr ){
198- parameters.move_forward_ticks .load_json (*value);
219+ parameters.move_forward .load_json (*value);
199220 }
200221 value = obj->get_value (" Speed" );
201222 if (value != nullptr ){
@@ -204,8 +225,12 @@ void CustomPathTableRow2::load_json(const JsonValue& json){
204225 break ;
205226 case PathAction::MOVE_IN_DIRECTION:
206227 value = obj->get_value (" MoveForwardTicks" );
228+ if (value != nullptr && value->is_integer ()){
229+ parameters.move_forward .set (std::to_string (value->to_integer_default () * 8 ));
230+ }
231+ value = obj->get_value (" MoveForwardMs" );
207232 if (value != nullptr ){
208- parameters.move_forward_ticks .load_json (*value);
233+ parameters.move_forward .load_json (*value);
209234 }
210235// value = obj->get_value("Speed");
211236// if (value != nullptr){
@@ -222,14 +247,22 @@ void CustomPathTableRow2::load_json(const JsonValue& json){
222247 break ;
223248 case PathAction::JUMP:
224249 value = obj->get_value (" JumpWaitTicks" );
250+ if (value != nullptr && value->is_integer ()){
251+ parameters.jump_wait .set (std::to_string (value->to_integer_default () * 8 ));
252+ }
253+ value = obj->get_value (" JumpWaitMs" );
225254 if (value != nullptr ){
226- parameters.jump_wait_ticks .load_json (*value);
255+ parameters.jump_wait .load_json (*value);
227256 }
228257 break ;
229258 case PathAction::WAIT:
230259 value = obj->get_value (" WaitTicks" );
260+ if (value != nullptr && value->is_integer ()){
261+ parameters.wait .set (std::to_string (value->to_integer_default () * 8 ));
262+ }
263+ value = obj->get_value (" WaitMs" );
231264 if (value != nullptr ){
232- parameters.wait_ticks .load_json (*value);
265+ parameters.wait .load_json (*value);
233266 }
234267 break ;
235268 default :
@@ -244,20 +277,20 @@ JsonValue CustomPathTableRow2::to_json() const{
244277 obj[" Mount" ] = parameters.mount .to_json ();
245278 break ;
246279 case PathAction::MOVE_FORWARD:
247- obj[" MoveForwardTicks " ] = parameters.move_forward_ticks .to_json ();
280+ obj[" MoveForwardMs " ] = parameters.move_forward .to_json ();
248281 obj[" Speed" ] = parameters.move_speed .to_json ();
249282 break ;
250283 case PathAction::MOVE_IN_DIRECTION:
251- obj[" MoveForwardTicks " ] = parameters.move_forward_ticks .to_json ();
284+ obj[" MoveForwardMs " ] = parameters.move_forward .to_json ();
252285// obj["Speed"] = parameters.move_speed.to_json();
253286 obj[" MoveDirectionX" ] = parameters.left_x .to_json ();
254287 obj[" MoveDirectionY" ] = parameters.left_y .to_json ();
255288 break ;
256289 case PathAction::JUMP:
257- obj[" JumpWaitTicks " ] = parameters.jump_wait_ticks .to_json ();
290+ obj[" JumpWaitMs " ] = parameters.jump_wait .to_json ();
258291 break ;
259292 case PathAction::WAIT:
260- obj[" WaitTicks " ] = parameters.wait_ticks .to_json ();
293+ obj[" WaitMs " ] = parameters.wait .to_json ();
261294 break ;
262295 default :
263296 break ;
@@ -294,7 +327,7 @@ std::vector<std::unique_ptr<EditableTableRow>> CustomPathTable2::make_defaults()
294327
295328 row = std::make_unique<CustomPathTableRow2>(*this );
296329 row->action .set (PathAction::MOVE_IN_DIRECTION);
297- row->parameters .move_forward_ticks .set (400 );
330+ row->parameters .move_forward .set (" 3200 ms " );
298331 row->parameters .left_x .set (-1.0 );
299332 row->parameters .left_y .set (1.0 );
300333 ret.emplace_back (std::move (row));
@@ -306,7 +339,7 @@ std::vector<std::unique_ptr<EditableTableRow>> CustomPathTable2::make_defaults()
306339 row = std::make_unique<CustomPathTableRow2>(*this );
307340 row->action .set (PathAction::MOVE_FORWARD);
308341 row->parameters .move_speed .set (PathSpeed::DASH);
309- row->parameters .move_forward_ticks .set (400 );
342+ row->parameters .move_forward .set (" 3200 ms " );
310343 ret.emplace_back (std::move (row));
311344
312345 return ret;
0 commit comments