Skip to content

Commit

Permalink
Merge pull request #60 from wowsims/Hunter
Browse files Browse the repository at this point in the history
First pass at hunter
  • Loading branch information
sanguinerarogue authored Jan 1, 2025
2 parents 8b5bbb3 + 4cc82e5 commit 6ae03be
Show file tree
Hide file tree
Showing 26 changed files with 766 additions and 1,632 deletions.
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)
}

// 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

0 comments on commit 6ae03be

Please sign in to comment.