Skip to content

Commit 307489f

Browse files
committed
Migrate TeraMoveTable off ticks.
1 parent 4b9c141 commit 307489f

File tree

3 files changed

+15
-13
lines changed

3 files changed

+15
-13
lines changed

SerialPrograms/Source/PokemonSV/Options/PokemonSV_TeraMoveTable.cpp

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
*
55
*/
66

7+
#include "Common/Cpp/Time.h"
8+
#include "Common/Cpp/PrettyPrint.h"
79
#include "PokemonSV_TeraMoveTable.h"
810

911
//#include <iostream>
@@ -43,7 +45,7 @@ const EnumDropdownDatabase<TeraTarget>& tera_target_enum_database(){
4345
std::string TeraMoveEntry::to_str() const{
4446
switch (type){
4547
case TeraMoveType::Wait:
46-
return "Wait for " + std::to_string(seconds) + " second(s).";
48+
return "Wait for " + tostr_u_commas(duration.count()) + " milliseconds.";
4749
case TeraMoveType::Move1:
4850
case TeraMoveType::Move2:
4951
case TeraMoveType::Move3:
@@ -76,12 +78,12 @@ TeraMoveTableRow::~TeraMoveTableRow(){
7678
TeraMoveTableRow::TeraMoveTableRow(EditableTableOption& parent_table)
7779
: EditableTableRow(parent_table)
7880
, type(tera_move_enum_database(), LockMode::UNLOCK_WHILE_RUNNING, TeraMoveType::Move1)
79-
, seconds(LockMode::UNLOCK_WHILE_RUNNING, 5)
81+
, duration(LockMode::UNLOCK_WHILE_RUNNING, "5000 ms")
8082
, target(tera_target_enum_database(), LockMode::UNLOCK_WHILE_RUNNING, TeraTarget::Opponent)
8183
, notes(false, LockMode::UNLOCK_WHILE_RUNNING, "", "(e.g. Screech, Belly Drum)")
8284
{
8385
PA_ADD_OPTION(type);
84-
PA_ADD_OPTION(seconds);
86+
PA_ADD_OPTION(duration);
8587
PA_ADD_OPTION(target);
8688
PA_ADD_OPTION(notes);
8789

@@ -91,19 +93,19 @@ TeraMoveTableRow::TeraMoveTableRow(EditableTableOption& parent_table)
9193
std::unique_ptr<EditableTableRow> TeraMoveTableRow::clone() const{
9294
std::unique_ptr<TeraMoveTableRow> ret(new TeraMoveTableRow(parent()));
9395
ret->type.set(type);
94-
ret->seconds.set(seconds);
96+
ret->duration.set(duration.current_text());
9597
ret->target.set(target);
9698
ret->notes.set(notes);
9799
return ret;
98100
}
99101
TeraMoveEntry TeraMoveTableRow::snapshot() const{
100-
return TeraMoveEntry{type, seconds, target};
102+
return TeraMoveEntry{type, duration, target};
101103
}
102104
void TeraMoveTableRow::on_config_value_changed(void* object){
103105
TeraMoveType type = this->type;
104106
// cout << "Enter: type = " << (int)type << endl;
105107

106-
seconds.set_visibility(
108+
duration.set_visibility(
107109
type == TeraMoveType::Wait
108110
? ConfigOptionState::ENABLED
109111
: ConfigOptionState::HIDDEN
@@ -146,7 +148,7 @@ std::vector<TeraMoveEntry> TeraMoveTable::snapshot(){
146148
std::vector<std::string> TeraMoveTable::make_header() const{
147149
return {
148150
"Move",
149-
"Wait (seconds)",
151+
"Wait (ms)",
150152
"Target",
151153
"Notes",
152154
};

SerialPrograms/Source/PokemonSV/Options/PokemonSV_TeraMoveTable.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
#ifndef PokemonAutomation_PokemonSV_TeraMoveTable_H
88
#define PokemonAutomation_PokemonSV_TeraMoveTable_H
99

10-
#include "Common/Cpp/Options/SimpleIntegerOption.h"
10+
#include "Common/Cpp/Options/TimeDurationOption.h"
1111
#include "Common/Cpp/Options/StringOption.h"
1212
#include "Common/Cpp/Options/EnumDropdownOption.h"
1313
#include "Common/Cpp/Options/EditableTableOption.h"
@@ -44,7 +44,7 @@ const EnumDropdownDatabase<TeraTarget>& tera_target_enum_database();
4444

4545
struct TeraMoveEntry{
4646
TeraMoveType type;
47-
uint8_t seconds;
47+
Milliseconds duration;
4848
TeraTarget target;
4949

5050
std::string to_str() const;
@@ -64,7 +64,7 @@ class TeraMoveTableRow : public EditableTableRow, public ConfigOption::Listener{
6464

6565
private:
6666
EnumDropdownCell<TeraMoveType> type;
67-
SimpleIntegerCell<uint8_t> seconds;
67+
MillisecondsCell duration;
6868
EnumDropdownCell<TeraTarget> target;
6969
StringCell notes;
7070
};

SerialPrograms/Source/PokemonSV/Programs/TeraRaids/PokemonSV_TeraBattler.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ BattleMenuResult run_battle_menu(
4545
int ret = run_until<ProControllerContext>(
4646
stream, context,
4747
[&](ProControllerContext& context){
48-
pbf_mash_button(context, BUTTON_B, move.seconds * TICKS_PER_SECOND);
48+
pbf_mash_button(context, BUTTON_B, move.duration);
4949
},
5050
{catch_menu, overworld}
5151
);
@@ -195,7 +195,7 @@ bool run_tera_battle(
195195

196196
size_t turn = 0;
197197
std::vector<TeraMoveEntry> move_table = battle_AI.MOVE_TABLE.snapshot();
198-
TeraMoveEntry current_move{TeraMoveType::Move1, 0, TeraTarget::Opponent};
198+
TeraMoveEntry current_move{TeraMoveType::Move1, 0ms, TeraTarget::Opponent};
199199
if (!move_table.empty()){
200200
current_move = move_table[0];
201201
}
@@ -272,7 +272,7 @@ bool run_tera_battle(
272272
// Reset the move to the table entry in case we were forced to
273273
// change moves due to move being unselectable.
274274
if (move_table.empty()){
275-
current_move = TeraMoveEntry{TeraMoveType::Move1, 0, TeraTarget::Opponent};
275+
current_move = TeraMoveEntry{TeraMoveType::Move1, 0ms, TeraTarget::Opponent};
276276
}else if (turn < move_table.size()){
277277
current_move = move_table[turn];
278278
}else{

0 commit comments

Comments
 (0)