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

First pass at hunter #60

Merged
merged 6 commits into from
Jan 1, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
75 changes: 13 additions & 62 deletions proto/hunter.proto
Original file line number Diff line number Diff line change
Expand Up @@ -57,51 +57,6 @@ message HunterTalents {
bool wyvern_sting = 46;
}

message HunterPetTalents {
// Cunning
int32 cobra_reflexes = 1;
bool dive = 2;
int32 great_stamina = 3;
int32 natural_armor = 4;
bool boars_speed = 5;
int32 mobility = 6;
int32 owls_focus = 7;
int32 spiked_collar = 8;
int32 culling_the_herd = 9;
int32 lionhearted = 10;
bool carrion_feeder = 11;
int32 great_resistance = 12;
int32 cornered = 13;
int32 feeding_frenzy = 14;
bool wolverine_bite = 15;
bool roar_of_recovery = 16;
bool bullheaded = 17;
int32 grace_of_the_mantis = 18;
int32 wild_hunt = 19;
bool roar_of_sacrifice = 20;

// Ferocity
int32 improved_cower = 21;
int32 bloodthirsty = 22;
bool heart_of_the_pheonix = 23;
int32 spiders_bite = 24;
bool rabid = 25;
bool lick_your_wounds = 26;
bool call_of_the_wild = 27;
int32 shark_attack = 28;

// Tenacity
bool charge = 29;
int32 blood_of_the_rhino = 30;
int32 pet_barding = 31;
int32 guard_dog = 32;
bool thunderstomp = 33;
bool last_stand = 34;
bool taunt = 35;
bool intervene = 36;
int32 silverback = 37;
}

message Hunter {
message Rotation {
enum RotationType {
Expand Down Expand Up @@ -165,16 +120,15 @@ message Hunter {
Owl = 6;
Boar = 7;
CarrionBird = 8;
CoreHound = 10;
Crab = 11;
Crocolisk = 12;
Gorilla = 15;
Hyena = 16;
Raptor = 17;
Scorpid = 18;
Spider = 21;
Tallstrider = 24;
Turtle = 25;
Crab = 9;
Crocolisk = 10;
Gorilla = 11;
Hyena = 12;
Raptor = 13;
Scorpid = 14;
Spider = 15;
Tallstrider = 16;
Turtle = 17;
}

enum PetAttackSpeed {
Expand All @@ -191,16 +145,13 @@ message Hunter {
}

PetType pet_type = 3;
HunterPetTalents pet_talents = 4;
double pet_uptime = 5;

double sniper_training_uptime = 6;
double pet_uptime = 4;

double pet_attack_speed_old = 7;
double pet_attack_speed_old = 5;

bool new_raptor_strike = 8;
bool new_raptor_strike = 6;

PetAttackSpeed pet_attack_speed = 9;
PetAttackSpeed pet_attack_speed = 7;
}
Options options = 2;
}
8 changes: 8 additions & 0 deletions sim/core/attack.go
Original file line number Diff line number Diff line change
Expand Up @@ -842,6 +842,14 @@ func (aa *AutoAttacks) StopMeleeUntil(sim *Simulation, readyAt time.Duration, de
}
}

func (aa *AutoAttacks) StopRangedUntil(sim *Simulation, readyAt time.Duration) {
if !aa.AutoSwingRanged { // if not auto swinging, don't auto restart.
return
}
aa.ranged.swingAt = readyAt + aa.ranged.curSwingDuration
sim.rescheduleWeaponAttack(aa.ranged.swingAt)
}
kayla-glick marked this conversation as resolved.
Show resolved Hide resolved

// Delays all swing timers for the specified amount. Only used by Slam.
func (aa *AutoAttacks) DelayMeleeBy(sim *Simulation, delay time.Duration) {
if delay <= 0 {
Expand Down
18 changes: 18 additions & 0 deletions sim/core/debuffs.go
Original file line number Diff line number Diff line change
Expand Up @@ -744,6 +744,24 @@ func HuntersMarkAura(target *Unit, points int32) *Aura {
return aura
}

func ExposeWeaknessAura(target *Unit) *Aura {
bonus := 450.0

aura := target.GetOrRegisterAura(Aura{
ActionID: ActionID{SpellID: 23577},
Label: "Expose Weakness",
Duration: time.Second * 7,
OnGain: func(aura *Aura, sim *Simulation) {
target.PseudoStats.BonusRangedAttackPowerTaken += bonus
},
OnExpire: func(aura *Aura, sim *Simulation) {
target.PseudoStats.BonusRangedAttackPowerTaken -= bonus
},
})

return aura
}

func DemoralizingRoarAura(target *Unit, points int32) *Aura {
baseAPReduction := 138.0

Expand Down
Loading
Loading