Skip to content

Commit

Permalink
Merge pull request #4116 from wowsims/apl
Browse files Browse the repository at this point in the history
Remove legacy rotation code
  • Loading branch information
jimmyt857 authored Jan 15, 2024
2 parents b558abd + d8bd035 commit 4d764ec
Show file tree
Hide file tree
Showing 277 changed files with 508 additions and 18,331 deletions.
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

0 comments on commit 4d764ec

Please sign in to comment.