Documentation
¶
Index ¶
- Constants
- Variables
- func RegisterRogue()
- type Rogue
- func (rogue *Rogue) AddPartyBuffs(partyBuffs *proto.PartyBuffs)
- func (rogue *Rogue) AddRaidBuffs(raidBuffs *proto.RaidBuffs)
- func (rogue *Rogue) ApplyFinisher(sim *core.Simulation, spell *core.Spell)
- func (rogue *Rogue) ApplyTalents()
- func (rogue *Rogue) GetCharacter() *core.Character
- func (rogue *Rogue) GetRogue() *Rogue
- func (rogue *Rogue) Initialize()
- func (rogue *Rogue) MaintainingExpose(target *core.Unit) bool
- func (rogue *Rogue) MeleeCritMultiplier(isMH bool, applyLethality bool) float64
- func (rogue *Rogue) OnGCDReady(sim *core.Simulation)
- func (rogue *Rogue) Reset(sim *core.Simulation)
- func (rogue *Rogue) RuptureDuration(comboPoints int32) time.Duration
- func (rogue *Rogue) SinisterStrikeEnergyCost() float64
- func (rogue *Rogue) SpellCritMultiplier() float64
- type RogueAgent
Constants ¶
View Source
const ( SpellFlagBuilder = core.SpellFlagAgentReserved1 SpellFlagFinisher = core.SpellFlagAgentReserved2 SpellFlagRogueAbility = SpellFlagBuilder | SpellFlagFinisher )
View Source
const ( PlanNone = iota PlanOpener PlanExposeArmor PlanSliceASAP PlanFillBeforeEA PlanFillBeforeSND PlanMaximalSlice )
View Source
const RuptureEnergyCost = 25.0
View Source
const SliceAndDiceEnergyCost = 25.0
Variables ¶
View Source
var CombatTalents = &proto.RogueTalents{ Malice: 5, Ruthlessness: 3, Murder: 2, RelentlessStrikes: true, ImprovedExposeArmor: 2, Lethality: 5, VilePoisons: 2, ImprovedSinisterStrike: 2, ImprovedSliceAndDice: 3, Precision: 5, DualWieldSpecialization: 5, BladeFlurry: true, SwordSpecialization: 5, WeaponExpertise: 2, Aggression: 3, Vitality: 2, AdrenalineRush: true, CombatPotency: 5, SurpriseAttacks: true, }
View Source
var FullConsumes = &proto.Consumes{ MainHandImbue: proto.WeaponImbue_WeaponImbueRogueInstantPoison, OffHandImbue: proto.WeaponImbue_WeaponImbueRogueDeadlyPoison, Flask: proto.Flask_FlaskOfRelentlessAssault, DefaultPotion: proto.Potions_HastePotion, DefaultConjured: proto.Conjured_ConjuredRogueThistleTea, SuperSapper: true, FillerExplosive: proto.Explosive_ExplosiveGnomishFlameTurret, }
View Source
var FullDebuffs = &proto.Debuffs{ BloodFrenzy: true, Mangle: true, SunderArmor: true, FaerieFire: proto.TristateEffect_TristateEffectImproved, ImprovedSealOfTheCrusader: true, Misery: true, }
View Source
var FullIndividualBuffs = &proto.IndividualBuffs{ BlessingOfKings: true, BlessingOfMight: proto.TristateEffect_TristateEffectImproved, }
View Source
var FullPartyBuffs = &proto.PartyBuffs{ Bloodlust: 1, Drums: proto.Drums_DrumsOfBattle, BattleShout: proto.TristateEffect_TristateEffectImproved, LeaderOfThePack: proto.TristateEffect_TristateEffectImproved, GraceOfAirTotem: proto.TristateEffect_TristateEffectRegular, WindfuryTotemRank: 5, }
View Source
var FullRaidBuffs = &proto.RaidBuffs{ GiftOfTheWild: proto.TristateEffect_TristateEffectImproved, }
View Source
var HemoTalents = &proto.RogueTalents{ ImprovedSinisterStrike: 2, ImprovedSliceAndDice: 3, Precision: 5, DualWieldSpecialization: 5, BladeFlurry: true, SwordSpecialization: 5, WeaponExpertise: 2, Aggression: 3, Vitality: 2, AdrenalineRush: true, CombatPotency: 5, SerratedBlades: 3, Hemorrhage: true, }
View Source
var ItemSetAssassination = core.NewItemSet(core.ItemSet{ Name: "Assassination Armor", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
View Source
var ItemSetDeathmantle = core.NewItemSet(core.ItemSet{ Name: "Deathmantle", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { rogue := agent.(RogueAgent).GetRogue() rogue.DeathmantleProcAura = rogue.RegisterAura(core.Aura{ Label: "Deathmantle 4pc Proc", ActionID: core.ActionID{SpellID: 37171}, Duration: time.Second * 15, }) ppmm := rogue.AutoAttacks.NewPPMManager(1.0, core.ProcMaskMelee) rogue.RegisterAura(core.Aura{ Label: "Deathmantle 4pc", Duration: core.NeverExpires, OnReset: func(aura *core.Aura, sim *core.Simulation) { aura.Activate(sim) }, OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, spellEffect *core.SpellEffect) { if !spellEffect.Landed() { return } if !spellEffect.ProcMask.Matches(core.ProcMaskMelee) { return } if !ppmm.Proc(sim, spellEffect.ProcMask, "Deathmantle 4pc") { return } rogue.DeathmantleProcAura.Activate(sim) }, }) }, }, })
View Source
var ItemSetNetherblade = core.NewItemSet(core.ItemSet{ Name: "Netherblade", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
View Source
var ItemSetSlayers = core.NewItemSet(core.ItemSet{ Name: "Slayer's Armor", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
View Source
var MHOutcome = core.OutcomeHit
View Source
var MutilateP1Gear = items.EquipmentSpecFromJsonString(`{"items": [
{
"id": 29044,
"enchant": 29192,
"gems": [
32409,
24061
]
},
{
"id": 29381
},
{
"id": 27797,
"enchant": 28888,
"gems": [
24061,
24055
]
},
{
"id": 28672,
"enchant": 34004
},
{
"id": 29045,
"enchant": 24003,
"gems": [
24061,
24051,
24055
]
},
{
"id": 29246,
"enchant": 34002
},
{
"id": 27531,
"enchant": 19445,
"gems": [
24061,
24061
]
},
{
"id": 29247
},
{
"id": 28741,
"enchant": 29535,
"gems": [
24051,
24051,
24051
]
},
{
"id": 28545,
"enchant": 28279,
"gems": [
24061,
24051
]
},
{
"id": 28757
},
{
"id": 28649
},
{
"id": 29383
},
{
"id": 28830
},
{
"id": 28768,
"enchant": 22559
},
{
"id": 29182,
"enchant": 22559
},
{
"id": 28772
}
]}`)
View Source
var MutilateTalents = &proto.RogueTalents{ Malice: 5, Ruthlessness: 3, Murder: 2, PuncturingWounds: 3, RelentlessStrikes: true, ImprovedExposeArmor: 2, Lethality: 5, ImprovedPoisons: 5, ColdBlood: true, QuickRecovery: 2, SealFate: 5, Vigor: true, FindWeakness: 5, Mutilate: true, ImprovedSinisterStrike: 2, ImprovedSliceAndDice: 3, Precision: 5, DualWieldSpecialization: 5, }
View Source
var OHOutcome = core.OutcomeHit
View Source
var P1Gear = items.EquipmentSpecFromJsonString(`{"items": [
{
"id": 29044,
"enchant": 29192,
"gems": [
32409,
24061
]
},
{
"id": 29381
},
{
"id": 27797,
"enchant": 28888,
"gems": [
24061,
24055
]
},
{
"id": 28672,
"enchant": 34004
},
{
"id": 29045,
"enchant": 24003,
"gems": [
24061,
24051,
24055
]
},
{
"id": 29246,
"enchant": 34002
},
{
"id": 27531,
"enchant": 19445,
"gems": [
24061,
24061
]
},
{
"id": 29247
},
{
"id": 28741,
"enchant": 29535,
"gems": [
24051,
24051,
24051
]
},
{
"id": 28545,
"enchant": 28279,
"gems": [
24061,
24051
]
},
{
"id": 28757
},
{
"id": 28649
},
{
"id": 29383
},
{
"id": 28830
},
{
"id": 28729,
"enchant": 22559
},
{
"id": 28189,
"enchant": 22559
},
{
"id": 28772
}
]}`)
View Source
var PlayerOptionsBasic = &proto.Player_Rogue{ Rogue: &proto.Rogue{ Talents: CombatTalents, Options: basicOptions, Rotation: basicRotation, }, }
View Source
var PlayerOptionsHemo = &proto.Player_Rogue{ Rogue: &proto.Rogue{ Talents: HemoTalents, Options: basicOptions, Rotation: basicRotation, }, }
View Source
var PlayerOptionsMutilate = &proto.Player_Rogue{ Rogue: &proto.Rogue{ Talents: MutilateTalents, Options: basicOptions, Rotation: basicRotation, }, }
View Source
var SliceAndDiceActionID = core.ActionID{SpellID: 6774}
Functions ¶
func RegisterRogue ¶
func RegisterRogue()
Types ¶
type Rogue ¶
type Rogue struct {
core.Character
Talents proto.RogueTalents
Options proto.Rogue_Options
Rotation proto.Rogue_Rotation
// Assigned based on rotation, can be SS, Backstab, Hemo, etc
Builder *core.Spell
Backstab *core.Spell
DeadlyPoison *core.Spell
Hemorrhage *core.Spell
InstantPoison *core.Spell
Mutilate *core.Spell
Shiv *core.Spell
SinisterStrike *core.Spell
Envenom [6]*core.Spell
Eviscerate [6]*core.Spell
ExposeArmor *core.Spell
Rupture [6]*core.Spell
SliceAndDice [6]*core.Spell
DeadlyPoisonDot *core.Dot
RuptureDot *core.Dot
AdrenalineRushAura *core.Aura
BladeFlurryAura *core.Aura
DeathmantleProcAura *core.Aura
ExposeArmorAura *core.Aura
SliceAndDiceAura *core.Aura
QuickRecoveryMetrics *core.ResourceMetrics
// contains filtered or unexported fields
}
func (*Rogue) AddPartyBuffs ¶
func (rogue *Rogue) AddPartyBuffs(partyBuffs *proto.PartyBuffs)
func (*Rogue) AddRaidBuffs ¶
func (*Rogue) ApplyFinisher ¶
func (rogue *Rogue) ApplyFinisher(sim *core.Simulation, spell *core.Spell)
func (*Rogue) ApplyTalents ¶
func (rogue *Rogue) ApplyTalents()
func (*Rogue) GetCharacter ¶
func (*Rogue) Initialize ¶
func (rogue *Rogue) Initialize()
func (*Rogue) MeleeCritMultiplier ¶
func (*Rogue) OnGCDReady ¶
func (rogue *Rogue) OnGCDReady(sim *core.Simulation)
func (*Rogue) Reset ¶
func (rogue *Rogue) Reset(sim *core.Simulation)
func (*Rogue) RuptureDuration ¶
func (*Rogue) SinisterStrikeEnergyCost ¶
func (*Rogue) SpellCritMultiplier ¶
type RogueAgent ¶
type RogueAgent interface {
GetRogue() *Rogue
}
Agent is a generic way to access underlying rogue on any of the agents.
Click to show internal directories.
Click to hide internal directories.