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 from sod-fork #4206

Merged
merged 26 commits into from
Jan 29, 2024
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
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
9 changes: 0 additions & 9 deletions proto/apl.proto
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ import "shaman.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 @@ -35,9 +33,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 @@ -123,7 +118,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 @@ -379,9 +373,6 @@ message APLValueSpellTimeToReady {
message APLValueSpellCastTime {
ActionID spell_id = 1;
}
message APLValueSpellChannelTime {
ActionID spell_id = 1;
}
message APLValueChannelClipDelay {
}
message APLValueFrontOfTarget {
Expand Down
7 changes: 0 additions & 7 deletions proto/common.proto
Original file line number Diff line number Diff line change
Expand Up @@ -706,10 +706,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 @@ -763,9 +759,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
72 changes: 1 addition & 71 deletions proto/druid.proto
Original file line number Diff line number Diff line change
Expand Up @@ -78,64 +78,7 @@ enum DruidRune {

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 All @@ -146,14 +89,7 @@ message BalanceDruid {

message FeralDruid {
message Rotation {
bool maintain_faerie_fire = 1;
int32 min_combos_for_rip = 2;
float max_wait_time = 3;
float preroar_duration = 4;
bool precast_tigers_fury = 5;
bool use_shred_trick = 6;
}
Rotation rotation = 1;

message Options {
UnitReference innervate_target = 1;
Expand All @@ -165,24 +101,18 @@ message FeralDruid {

message FeralTankDruid {
message Rotation {
// Minimum rage to queue HS or Cleave.
int32 maul_rage_threshold = 1;
bool maintain_demoralizing_roar = 2;
double lacerate_time = 3;
}
Rotation rotation = 1;

message Options {
UnitReference innervate_target = 1;
double starting_rage = 2;
double starting_rage = 2;
}
Options options = 3;
}

message RestorationDruid {
message Rotation {
}
Rotation rotation = 1;

message Options {
UnitReference innervate_target = 1;
Expand Down
16 changes: 0 additions & 16 deletions proto/hunter.proto
Original file line number Diff line number Diff line change
Expand Up @@ -120,23 +120,7 @@ enum HunterRune {

message Hunter {
message Rotation {
enum RotationType {
UnknownType = 0;
SingleTarget = 1;
Aoe = 2;
Custom = 3;
}
RotationType type = 1;

enum StingType {
NoSting = 0;
ScorpidSting = 1;
SerpentSting = 2;
}
StingType sting = 2;
bool multi_dot_serpent_sting = 3;
}
Rotation rotation = 1;

message Options {
enum Ammo {
Expand Down
6 changes: 0 additions & 6 deletions proto/mage.proto
Original file line number Diff line number Diff line change
Expand Up @@ -78,13 +78,7 @@ enum MageRune {

message Mage {
message Rotation {
enum RotationType {
Unknown = 0;
Auto = 1;
}
RotationType rotation_type = 1;
}
Rotation rotation = 1;

message Options {
enum ArmorType {
Expand Down
55 changes: 0 additions & 55 deletions proto/paladin.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 PaladinTalents {
// Holy
int32 divine_strength = 1;
Expand Down Expand Up @@ -87,40 +85,7 @@ enum PaladinJudgement {

message RetributionPaladin {
message Rotation {
int32 exo_slack = 1;
int32 cons_slack = 2;
double divine_plea_percentage = 3;
int32 holy_wrath_threshold = 4;
int32 sov_targets = 5;

enum SpellOption {
NoSpell = 0;
JudgementOfWisdom = 1;
DivineStorm = 2;
HammerOfWrath = 3;
Consecration = 4;
HolyWrath = 5;
CrusaderStrike = 6;
Exorcism = 7;
DivinePlea = 8;
}
CustomRotation custom_rotation = 8;
CustomRotation custom_cast_sequence = 10;

enum RotationType {
UnknownType = 0;
Standard = 1;
Custom = 2;
CastSequence = 3;
}
RotationType type = 9;

bool use_divine_plea = 11;
bool avoid_clipping_consecration = 12;
bool hold_last_avenging_wrath_until_execution = 13;
bool cancel_chaos_bane = 14;
}
Rotation rotation = 1;

message Options {
PaladinJudgement judgement = 1;
Expand All @@ -133,26 +98,7 @@ message RetributionPaladin {

message ProtectionPaladin {
message Rotation {
bool hammer_first = 1;
bool use_custom_prio = 2;
bool squeeze_holy_wrath = 4;
double wait_slack = 5;

enum SpellOption {
NoSpell = 0;
JudgementOfWisdom = 1;
HammerOfWrath = 2;
Consecration = 3;
HolyWrath = 4;
Exorcism = 5;
ShieldOfRighteousness = 6;
AvengersShield = 7;
HammerOfTheRighteous = 8;
HolyShield = 9;
}
CustomRotation custom_rotation = 3;
}
Rotation rotation = 1;

message Options {
PaladinJudgement judgement = 1;
Expand All @@ -166,7 +112,6 @@ message ProtectionPaladin {
message HolyPaladin {
message Rotation {
}
Rotation rotation = 1;

message Options {
PaladinJudgement judgement = 1;
Expand Down
37 changes: 0 additions & 37 deletions proto/priest.proto
Original file line number Diff line number Diff line change
Expand Up @@ -72,23 +72,7 @@ enum PriestRune {

message ShadowPriest {
message Rotation {
enum RotationType {
Unknown = 0;
Basic = 1;
Clipping = 2;
Ideal = 3;
AoE = 4;
}
enum PreCastOption {
Nothing = 0;
PrecastVt = 1;
PrecastMb = 2;
}
RotationType rotation_type = 1;
PreCastOption precast_type = 2;
double latency = 3 [deprecated = true]; // Latency between actions
}
Rotation rotation = 1;

message Options {
enum Armor {
Expand All @@ -108,28 +92,7 @@ message ShadowPriest {

message HealingPriest {
message Rotation {
enum RotationType {
UnknownType = 0;
Cycle = 1;
Custom = 2;
}
RotationType type = 1;

enum SpellOption {
NoSpell = 0;
GreaterHeal = 1;
FlashHeal = 2;
Renew = 3;
PowerWordShield = 4;
CircleOfHealing = 5;
PrayerOfHealing = 6;
PrayerOfMending = 7;
Penance = 8;
BindingHeal = 9;
}
CustomRotation custom_rotation = 2;
}
Rotation rotation = 1;

message Options {
bool use_inner_fire = 3;
Expand Down
Loading