Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove legacy rotation code #4116

Merged
merged 41 commits into from
Jan 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
e96990b
Remove legacy rotation code from UI
jimmyt857 Dec 29, 2023
264b436
Rename getRotation() --> getSimpleRotation() for clarity
jimmyt857 Dec 29, 2023
e017516
Clean up hunter pet rotation code
jimmyt857 Jan 2, 2024
2e6a97a
Start cleaning up backend legacy rotation code
jimmyt857 Jan 3, 2024
681d4cd
Commiting to update from master
jimmyt857 Jan 4, 2024
93a32c0
Another commit before making a separate fix
jimmyt857 Jan 5, 2024
3ec99cc
Finish druid and mage
jimmyt857 Jan 5, 2024
ffd4730
Update priest
jimmyt857 Jan 5, 2024
37e1b78
Commit before fixing rogue tests
jimmyt857 Jan 5, 2024
c097de6
Finish rogue
jimmyt857 Jan 5, 2024
f75c707
Commit before making another fix in master
jimmyt857 Jan 6, 2024
c3de2a7
Merge from master
jimmyt857 Jan 6, 2024
c5c0155
Commit before fixing warlock tests
jimmyt857 Jan 6, 2024
d86178b
Merge branch 'master' of https://github.com/wowsims/wotlk into apl
jimmyt857 Jan 6, 2024
fe1d147
Merge from master
jimmyt857 Jan 6, 2024
da00572
Merge branch 'master' of https://github.com/wowsims/wotlk into apl
jimmyt857 Jan 6, 2024
8ebb2f7
Backend code all compiles now
jimmyt857 Jan 6, 2024
10f8370
Fix ui compile error
jimmyt857 Jan 6, 2024
2a473b7
Merge from master
jimmyt857 Jan 7, 2024
e230511
Merge from master
jimmyt857 Jan 7, 2024
faff70c
Commit before making another DK fix on master
jimmyt857 Jan 7, 2024
08f9e16
Merge branch 'master' of https://github.com/wowsims/wotlk into apl
jimmyt857 Jan 7, 2024
fd6d8ec
Cleanup dk code
jimmyt857 Jan 7, 2024
e0dc3bc
Fix priest test change
jimmyt857 Jan 7, 2024
55e0f97
Merge from master
jimmyt857 Jan 7, 2024
0938396
Remove unused protos and fields
jimmyt857 Jan 7, 2024
08c7406
Remove README reference to talents and rotation
jimmyt857 Jan 7, 2024
dd9c6dc
Tiny cleanups
jimmyt857 Jan 7, 2024
c49d71c
Merge from master
jimmyt857 Jan 7, 2024
e07657f
Fix ele tests
jimmyt857 Jan 7, 2024
2cd9e30
Add back detonate_seed rotation field, as an option
jimmyt857 Jan 7, 2024
1eb0848
Update warlock tests
jimmyt857 Jan 7, 2024
ff7d01e
Update warlock demo tests
jimmyt857 Jan 7, 2024
d0910e7
Fix hs+cleave bug
jimmyt857 Jan 9, 2024
5df09a6
Merge from master
jimmyt857 Jan 9, 2024
c07fa39
Merge from master
jimmyt857 Jan 9, 2024
9a2fde3
Merge from master
jimmyt857 Jan 9, 2024
e138207
Fix small shaman bug
jimmyt857 Jan 9, 2024
f752bd9
Merge branch 'master' of https://github.com/wowsims/wotlk into apl
jimmyt857 Jan 9, 2024
9b8987b
Remove deprecated protos
jimmyt857 Jan 9, 2024
d8bd035
Add comment for potential proto refactoring
jimmyt857 Jan 15, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,10 +149,7 @@ This project uses [Google Protocol Buffers](https://developers.google.com/protoc

For a new sim, make the following changes:
- Add a new value to the `Spec` enum in proto/common.proto. __NOTE: The name you give to this enum value is not just a name, it is used in our templating system. This guide will refer to this name as `$SPEC` elsewhere.__
- Add a 'proto/YOUR_CLASS.proto' file if it doesn't already exist and add data messages containing all the class/spec-specific information needed to run your sim. In general, there will be 3 pieces of information you need:
- Talents
- Rotation (the order in which your sim will use spells/abilities)
- Options (additional choices your sim needs to make)
- Add a 'proto/YOUR_CLASS.proto' file if it doesn't already exist and add data messages containing all the class/spec-specific information needed to run your sim.
- Update the `PlayerOptions.spec` field in `proto/api.proto` to include your shiny new message as an option.

That's it! Now when you run `make` there will be generated .go and .ts code in `sim/core/proto` and `ui/core/proto` respectively. If you aren't familiar with protos, take a quick look at them to see what's happening.
Expand Down
3 changes: 3 additions & 0 deletions proto/api.proto
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@ message Player {

APLRotation rotation = 40;

// TODO: Move most of the remaining fields into a 'MiscellaneousPlayerOptions' message.
// This will remove a lot of the boilerplate code in the UI for each new field.

int32 reaction_time_ms = 41;
int32 channel_clip_delay_ms = 42;
bool in_front_of_target = 23;
Expand Down
9 changes: 0 additions & 9 deletions proto/apl.proto
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ import "druid.proto";
// Rotation options are based heavily on APL. See https://github.com/simulationcraft/simc/wiki/ActionLists.

message APLRotation {
bool enabled = 20 [deprecated = true]; // If false, use old rotation options.

enum Type {
TypeUnknown = 0;
TypeAuto = 1;
Expand All @@ -36,9 +34,6 @@ message APLPrepullAction {
APLAction action = 1;
APLValue do_at_value = 4; // When to perform this prepull action. Should be a negative value.
bool hide = 3; // Causes this item to be ignored.

// TODO: Remove after 1 month (on or after 8/30/2023).
string do_at = 2 [deprecated = true];
}

message APLListItem {
Expand Down Expand Up @@ -142,7 +137,6 @@ message APLValue {
APLValueSpellIsReady spell_is_ready = 20;
APLValueSpellTimeToReady spell_time_to_ready = 21;
APLValueSpellCastTime spell_cast_time = 35;
APLValueSpellChannelTime spell_channel_time = 36;
APLValueSpellTravelTime spell_travel_time = 37;
APLValueSpellCPM spell_cpm = 42;
APLValueSpellIsChanneling spell_is_channeling = 56;
Expand Down Expand Up @@ -448,9 +442,6 @@ message APLValueSpellTimeToReady {
message APLValueSpellCastTime {
ActionID spell_id = 1;
}
message APLValueSpellChannelTime {
ActionID spell_id = 1;
}
message APLValueChannelClipDelay {
}
message APLValueFrontOfTarget {
Expand Down
10 changes: 0 additions & 10 deletions proto/common.proto
Original file line number Diff line number Diff line change
Expand Up @@ -431,8 +431,6 @@ message RaidBuffs {
// +Spell Power
bool totem_of_wrath = 18;
bool flametongue_totem = 19;
int32 demonic_pact_old = 20; // old demo SP
int32 demonic_pact = 43; // SP buff -- deprecated.
int32 demonic_pact_sp = 44; // SP buff NEW CORRECT

// +5% Spell Crit and/or +3% Haste
Expand Down Expand Up @@ -658,7 +656,6 @@ message Target {
bool dual_wield = 9;
bool dual_wield_penalty = 10;
bool parry_haste = 12;
bool tight_enemy_damage = 17; // deprecated as of 07/12/23
bool suppress_dodge = 16; // Sunwell Radiance
SpellSchool spell_school = 13; // Allows elemental attacks.

Expand Down Expand Up @@ -785,10 +782,6 @@ message UnitReference {

// Reference to the owner, only used iff this is a pet.
UnitReference owner = 4;

// Raid index of the player to target. A value of -1 indicates no target.
// TODO: Delete this after 2 months (on or after 9/19/2023)
int32 target_index = 1 [deprecated = true];
}

// ID for actions that aren't spells or items.
Expand Down Expand Up @@ -852,9 +845,6 @@ message Cooldowns {

// % HP threshold, below which defensive cooldowns can be used.
double hp_percent_for_defensives = 2;

int32 desync_proc_trinket1_seconds = 3 [deprecated = true];
int32 desync_proc_trinket2_seconds = 4 [deprecated = true];
}

message HealingModel {
Expand Down
136 changes: 0 additions & 136 deletions proto/deathknight.proto
Original file line number Diff line number Diff line change
Expand Up @@ -143,152 +143,16 @@ enum DeathknightMinorGlyph {

message Deathknight {
message Rotation {
enum DrwDiseases {
DoNotApply = 0;
Normal = 1;
Pestilence = 2;
}

enum ArmyOfTheDead {
DoNotUse = 0;
PreCast = 1;
AsMajorCd = 2;
}

enum BloodTap {
GhoulFrenzy = 0;
IcyTouch = 1;
BloodStrikeBT = 2;
BloodBoilBT = 3;
}

enum DeathAndDecayPrio {
MaxRuneDowntime = 0;
MaxDndUptime = 1;
}

enum FirstDisease {
FrostFever = 0;
BloodPlague = 1;
}

enum BloodRuneFiller {
BloodStrike = 0;
BloodBoil = 1;
}

enum Presence {
Blood = 0;
Unholy = 1;
Frost = 2;
}

enum FrostRotationType {
UnknownType = 0;
SingleTarget = 1;
Custom = 2;
}
FrostRotationType frost_rotation_type = 19;

enum BloodOpener {
Standard = 0;
Experimental_1 = 1;
Experimental_2 = 2;
}

enum BloodSpell {
HS = 0;
BB = 1;
BS = 2;
}

enum CustomSpellOption {
CustomNoSpell = 0;
CustomIcyTouch = 1;
CustomPlagueStrike = 2;
CustomPestilence = 3;
CustomObliterate = 4;
CustomHowlingBlast = 5;
CustomHowlingBlastRime = 6;
CustomBloodBoil = 7;
CustomBloodStrike = 8;
CustomDeathAndDecay = 9;
CustomHornOfWinter = 10;
CustomUnbreakableArmor = 11;
CustomBloodTap = 12;
CustomEmpoweredRuneWeapon = 13;
CustomFrostStrike = 14;
}
CustomRotation frost_custom_rotation = 20;

ArmyOfTheDead army_of_the_dead = 1;
bool use_death_and_decay = 2;

bool bt_ghoul_frenzy = 3;

double disease_refresh_duration = 4;
bool refresh_horn_of_winter = 5;

FirstDisease first_disease = 6;

DeathAndDecayPrio death_and_decay_prio = 7;

bool use_empower_rune_weapon = 8;

BloodRuneFiller blood_rune_filler = 9;

Presence starting_presence = 10;
BloodTap blood_tap = 11;

bool use_ams = 13 [deprecated = true];
double avg_ams_success_rate = 14 [deprecated = true];
double avg_ams_hit = 15 [deprecated = true];

bool auto_rotation = 16;

bool desync_rotation = 17;

Presence bl_presence = 18;

Presence presence = 21;

bool hold_erw_army = 22;

bool use_gargoyle = 23;

bool pre_nerfed_gargoyle = 24;

Presence gargoyle_presence = 25;

DrwDiseases drw_diseases = 26;
BloodOpener blood_opener = 27;

bool enable_weapon_swap = 28;
ItemSwap weapon_swap = 29;

bool use_dancing_rune_weapon = 30;

BloodSpell blood_spender = 31;

double virulence_refresh = 32;
}
Rotation rotation = 1;

message Options {
double starting_runic_power = 1;
double pet_uptime = 2;

bool precast_ghoul_frenzy = 3;
bool precast_horn_of_winter = 4;

UnitReference unholy_frenzy_target = 5;

bool drw_pesti_apply = 6;

bool new_drw = 7;

double disease_downtime = 8;

bool use_ams = 9;
double avg_ams_success_rate = 10;
double avg_ams_hit = 11;
Expand Down
61 changes: 1 addition & 60 deletions proto/druid.proto
Original file line number Diff line number Diff line change
Expand Up @@ -146,64 +146,7 @@ enum DruidMinorGlyph {

message BalanceDruid {
message Rotation {
enum Type {
Unknown = 0;
Default = 1;
Manual = 2;
}
Type type = 1;

enum MfUsage {
NoMf = 0;
BeforeLunar = 1;
MaximizeMf = 2;
MultidotMf = 3;
}
MfUsage mf_usage = 2;

enum IsUsage {
NoIs = 0;
BeforeSolar = 1;
OptimizeIs = 2;
MultidotIs = 3;
}
IsUsage is_usage = 3;

bool use_battle_res = 4;
enum WrathUsage {
NoWrath = 0;
FishingForLunar= 1;
RegularWrath = 2;
}
WrathUsage wrath_usage = 5;
bool use_starfire = 6;
bool use_typhoon = 7;
bool use_hurricane = 8;
bool use_smart_cooldowns = 9;
bool maintain_faerie_fire = 10;
int32 player_latency = 11;
float okf_ppm = 14 [deprecated = true];

enum EclipsePrio {
Lunar = 0;
Solar = 1;
}
EclipsePrio eclipse_prio = 12;
bool eclipse_shuffling = 13;

enum MfExtension {
ExtendFishingForLunar = 0;
ExtendFishingForSolar = 1;
ExtendDuringLunar = 2;
ExtendDuringSolar = 3;
ExtendAlways = 4;
ExtendOutsideSolar = 5;
DontExtend = 6;
}
MfExtension mf_extension = 15;
bool snapshot_mf = 16;
}
Rotation rotation = 1;
}

message Options {
UnitReference innervate_target = 1;
Expand Down Expand Up @@ -269,7 +212,6 @@ message FeralTankDruid {
bool maintain_demoralizing_roar = 2;
double lacerate_time = 3;
}
Rotation rotation = 1;

message Options {
UnitReference innervate_target = 1;
Expand All @@ -281,7 +223,6 @@ message FeralTankDruid {
message RestorationDruid {
message Rotation {
}
Rotation rotation = 1;

message Options {
UnitReference innervate_target = 1;
Expand Down
25 changes: 0 additions & 25 deletions proto/hunter.proto
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ package proto;

option go_package = "./proto";

import "common.proto";

message HunterTalents {
// Beast Mastery
int32 improved_aspect_of_the_hawk = 1;
Expand Down Expand Up @@ -198,27 +196,6 @@ message Hunter {

bool trap_weave = 1;

// TODO: Safe to delete after 1 month (after 8/26/2023).
double time_to_trap_weave_ms = 2 [deprecated = true];

enum SpellOption {
NoSpell = 0;
SteadyShot = 1;
ArcaneShot = 2;
AimedShot = 3;
MultiShot = 4;
SerpentStingSpell = 5;
ScorpidStingSpell = 6;
KillShot = 7;
BlackArrow = 8;
ChimeraShot = 9;
ExplosiveShot = 10;
ExplosiveShotDownrank = 13;
ExplosiveTrap = 11;
Volley = 12;
}
CustomRotation custom_rotation = 8 [deprecated = true];

// Switch to Aspect of the Viper when mana goes below this percent.
double viper_start_mana_percent = 6;
// Switch back to Aspect of the Hawk when mana goes above this percent.
Expand All @@ -228,9 +205,7 @@ message Hunter {
bool allow_explosive_shot_downrank = 10;

bool multi_dot_serpent_sting = 11;
double steady_shot_max_delay = 12 [deprecated = true];
}
Rotation rotation = 1;

message Options {
enum Ammo {
Expand Down
4 changes: 0 additions & 4 deletions proto/mage.proto
Original file line number Diff line number Diff line change
Expand Up @@ -145,8 +145,6 @@ enum MageMinorGlyph {
message Mage {
message Rotation {
// Arcane Options.
int32 extra_blasts_during_first_ap = 10 [deprecated = true];
int32 missile_barrage_below_arcane_blast_stacks = 14 [deprecated = true];
double missile_barrage_below_mana_percent = 15;
double blast_without_missile_barrage_above_mana_percent = 16;
double only_3_arcane_blast_stacks_below_mana_percent = 17;
Expand All @@ -164,9 +162,7 @@ message Mage {

// Frost Options.
bool use_ice_lance = 18;
double water_elemental_disobey_chance = 6 [deprecated = true];
}
Rotation rotation = 1;

message Options {
enum ArmorType {
Expand Down
Loading
Loading