rogue

package
v0.1.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 23, 2022 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SpellFlagBuilder  = core.SpellFlagAgentReserved2
	SpellFlagFinisher = core.SpellFlagAgentReserved3
)
View Source
const (
	ShouldNotCast shouldCastRotationItemResult = iota
	ShouldBuild
	ShouldCast
	ShouldWait
)
View Source
const FanOfKnivesSpellID int32 = 51723
View Source
const GarroteSpellID = 48676
View Source
const RogueBleedTag = "RogueBleed"
View Source
const RuptureEnergyCost = 25.0
View Source
const RuptureSpellID = 48672
View Source
const SliceAndDiceEnergyCost = 25.0

Variables

View Source
var AdrenalineRushActionID = core.ActionID{SpellID: 13750}
View Source
var AssassinationRotationOptions = []*proto.Rogue_Rotation{
	{
		ExposeArmorFrequency:          proto.Rogue_Rotation_Never,
		TricksOfTheTradeFrequency:     proto.Rogue_Rotation_Never,
		AssassinationFinisherPriority: proto.Rogue_Rotation_EnvenomRupture,
	},
	{
		ExposeArmorFrequency:          proto.Rogue_Rotation_Never,
		TricksOfTheTradeFrequency:     proto.Rogue_Rotation_Once,
		AssassinationFinisherPriority: proto.Rogue_Rotation_EnvenomRupture,
	},
	{
		ExposeArmorFrequency:          proto.Rogue_Rotation_Once,
		MinimumComboPointsExposeArmor: 3,
		TricksOfTheTradeFrequency:     proto.Rogue_Rotation_Never,
		AssassinationFinisherPriority: proto.Rogue_Rotation_EnvenomRupture,
	},
	{
		ExposeArmorFrequency:          proto.Rogue_Rotation_Maintain,
		TricksOfTheTradeFrequency:     proto.Rogue_Rotation_Never,
		AssassinationFinisherPriority: proto.Rogue_Rotation_EnvenomRupture,
	},
	{
		ExposeArmorFrequency:          proto.Rogue_Rotation_Never,
		TricksOfTheTradeFrequency:     proto.Rogue_Rotation_Maintain,
		AssassinationFinisherPriority: proto.Rogue_Rotation_EnvenomRupture,
	},
	{
		ExposeArmorFrequency:          proto.Rogue_Rotation_Never,
		TricksOfTheTradeFrequency:     proto.Rogue_Rotation_Maintain,
		AssassinationFinisherPriority: proto.Rogue_Rotation_RuptureEnvenom,
	},
}
View Source
var AssassinationTalents = &proto.RogueTalents{
	Malice:           5,
	Ruthlessness:     3,
	PuncturingWounds: 3,
	Lethality:        5,
	VilePoisons:      3,
	ImprovedPoisons:  5,
	FleetFooted:      2,
	ColdBlood:        true,
	SealFate:         5,
	Murder:           2,
	Overkill:         true,
	FocusedAttacks:   3,
	FindWeakness:     3,
	MasterPoisoner:   3,
	Mutilate:         true,
	CutToTheChase:    5,
	HungerForBlood:   true,

	DualWieldSpecialization: 5,
	Precision:               5,
	CloseQuartersCombat:     3,

	RelentlessStrikes: 5,
	Opportunity:       2,
}
View Source
var BladeFlurryActionID = core.ActionID{SpellID: 13877}
View Source
var CombatNoLethalityNoPotWTalents = &proto.RogueTalents{
	Malice:          5,
	Ruthlessness:    3,
	BloodSpatter:    2,
	VilePoisons:     2,
	ImprovedPoisons: 3,

	ImprovedSinisterStrike:  2,
	DualWieldSpecialization: 5,
	ImprovedSliceAndDice:    2,
	Precision:               5,
	Endurance:               1,
	CloseQuartersCombat:     5,
	LightningReflexes:       3,
	Aggression:              5,
	BladeFlurry:             true,
	WeaponExpertise:         2,
	BladeTwisting:           2,
	Vitality:                3,
	AdrenalineRush:          true,
	CombatPotency:           5,
	SurpriseAttacks:         true,
	SavageCombat:            2,
	KillingSpree:            true,
}
View Source
var CombatNoLethalityTalents = &proto.RogueTalents{
	Malice:          5,
	Ruthlessness:    3,
	BloodSpatter:    2,
	VilePoisons:     2,
	ImprovedPoisons: 3,

	ImprovedSinisterStrike:  2,
	DualWieldSpecialization: 5,
	ImprovedSliceAndDice:    2,
	Precision:               5,
	Endurance:               1,
	CloseQuartersCombat:     5,
	LightningReflexes:       3,
	Aggression:              5,
	BladeFlurry:             true,
	WeaponExpertise:         2,
	BladeTwisting:           2,
	Vitality:                3,
	AdrenalineRush:          true,
	CombatPotency:           5,
	SurpriseAttacks:         true,
	SavageCombat:            2,
	PreyOnTheWeak:           5,
	KillingSpree:            true,
}
View Source
var CombatNoPotWTalents = &proto.RogueTalents{
	Malice:          5,
	Ruthlessness:    3,
	BloodSpatter:    2,
	Lethality:       5,
	VilePoisons:     2,
	ImprovedPoisons: 3,

	ImprovedSinisterStrike:  2,
	DualWieldSpecialization: 5,
	ImprovedSliceAndDice:    2,
	Precision:               5,
	Endurance:               1,
	CloseQuartersCombat:     5,
	LightningReflexes:       3,
	Aggression:              5,
	BladeFlurry:             true,
	WeaponExpertise:         2,
	BladeTwisting:           2,
	Vitality:                3,
	AdrenalineRush:          true,
	CombatPotency:           5,
	SurpriseAttacks:         true,
	SavageCombat:            2,
	KillingSpree:            true,
}
View Source
var CombatRotationOptions = []*proto.Rogue_Rotation{
	{
		ExposeArmorFrequency:      proto.Rogue_Rotation_Never,
		TricksOfTheTradeFrequency: proto.Rogue_Rotation_Never,
		CombatFinisherPriority:    proto.Rogue_Rotation_RuptureEviscerate,
	},
	{
		ExposeArmorFrequency:      proto.Rogue_Rotation_Never,
		TricksOfTheTradeFrequency: proto.Rogue_Rotation_Once,
		CombatFinisherPriority:    proto.Rogue_Rotation_RuptureEviscerate,
	},
	{
		ExposeArmorFrequency:          proto.Rogue_Rotation_Once,
		MinimumComboPointsExposeArmor: 3,
		TricksOfTheTradeFrequency:     proto.Rogue_Rotation_Never,
		CombatFinisherPriority:        proto.Rogue_Rotation_RuptureEviscerate,
	},
	{
		ExposeArmorFrequency:      proto.Rogue_Rotation_Maintain,
		TricksOfTheTradeFrequency: proto.Rogue_Rotation_Never,
		CombatFinisherPriority:    proto.Rogue_Rotation_RuptureEviscerate,
	},
	{
		ExposeArmorFrequency:      proto.Rogue_Rotation_Never,
		TricksOfTheTradeFrequency: proto.Rogue_Rotation_Maintain,
		CombatFinisherPriority:    proto.Rogue_Rotation_RuptureEviscerate,
	},
	{
		ExposeArmorFrequency:      proto.Rogue_Rotation_Never,
		TricksOfTheTradeFrequency: proto.Rogue_Rotation_Maintain,
		CombatFinisherPriority:    proto.Rogue_Rotation_EviscerateRupture,
	},
}
View Source
var CombatTalents = &proto.RogueTalents{
	Malice:          5,
	Ruthlessness:    3,
	BloodSpatter:    2,
	Lethality:       5,
	VilePoisons:     2,
	ImprovedPoisons: 3,

	ImprovedSinisterStrike:  2,
	DualWieldSpecialization: 5,
	ImprovedSliceAndDice:    2,
	Precision:               5,
	Endurance:               1,
	CloseQuartersCombat:     5,
	LightningReflexes:       3,
	Aggression:              5,
	BladeFlurry:             true,
	WeaponExpertise:         2,
	BladeTwisting:           2,
	Vitality:                3,
	AdrenalineRush:          true,
	CombatPotency:           5,
	SurpriseAttacks:         true,
	SavageCombat:            2,
	PreyOnTheWeak:           5,
	KillingSpree:            true,
}
View Source
var DeadlyPoisonActionID = core.ActionID{SpellID: 57973}
View Source
var GearWithRED = core.EquipmentSpecFromJsonString(`{"items": [
	{
	  "id": 37293,
	  "enchant": 3817,
	  "gems": [
		41398,
		40088
	  ]
	},
	{
	  "id": 37861
	},
	{
	  "id": 37139,
	  "enchant": 3808,
	  "gems": [
		36766
	  ]
	},
	{
	  "id": 36947,
	  "enchant": 3605
	},
	{
	  "id": 37165,
	  "enchant": 3832,
	  "gems": [
		40044,
		36766
	  ]
	},
	{
	  "id": 44203,
	  "enchant": 3845,
	  "gems": [
		0
	  ]
	},
	{
	  "id": 37409,
	  "enchant": 3604,
	  "gems": [
		0
	  ]
	},
	{
	  "id": 37194,
	  "gems": [
		40014,
		40157
	  ]
	},
	{
	  "id": 37644,
	  "enchant": 3823
	},
	{
	  "id": 44297,
	  "enchant": 3606
	},
	{
	  "id": 43251,
	  "gems": [
		40136
	  ]
	},
	{
	  "id": 37642
	},
	{
	  "id": 37390
	},
	{
	  "id": 37166
	},
	{
	  "id": 37693,
	  "enchant": 3789
	},
	{
	  "id": 37856,
	  "enchant": 3789
	},
	{
	  "id": 37191
	}
  ]}`)
View Source
var GearWithoutRED = core.EquipmentSpecFromJsonString(`{"items": [
	{
	  "id": 37293,
	  "enchant": 3817,
	  "gems": [
		41339,
		40088
	  ]
	},
	{
	  "id": 37861
	},
	{
	  "id": 37139,
	  "enchant": 3808,
	  "gems": [
		36766
	  ]
	},
	{
	  "id": 36947,
	  "enchant": 3605
	},
	{
	  "id": 37165,
	  "enchant": 3832,
	  "gems": [
		40044,
		36766
	  ]
	},
	{
	  "id": 44203,
	  "enchant": 3845,
	  "gems": [
		0
	  ]
	},
	{
	  "id": 37409,
	  "enchant": 3604,
	  "gems": [
		0
	  ]
	},
	{
	  "id": 37194,
	  "gems": [
		40014,
		40157
	  ]
	},
	{
	  "id": 37644,
	  "enchant": 3823
	},
	{
	  "id": 44297,
	  "enchant": 3606
	},
	{
	  "id": 43251,
	  "gems": [
		40136
	  ]
	},
	{
	  "id": 37642
	},
	{
	  "id": 37390
	},
	{
	  "id": 37166
	},
	{
	  "id": 37693,
	  "enchant": 3789
	},
	{
	  "id": 37856,
	  "enchant": 3789
	},
	{
	  "id": 37191
	}
  ]}`)
View Source
var ItemSetBonescythe = core.NewItemSet(core.ItemSet{
	Name: "Bonescythe Battlegear",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {

		},
		4: func(agent core.Agent) {

		},
	},
})
View Source
var ItemSetGladiatorsVestments = core.NewItemSet(core.ItemSet{
	Name: "Gladiator's Vestments",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {
			agent.GetCharacter().AddStat(stats.Resilience, 100)
			agent.GetCharacter().AddStat(stats.AttackPower, 50)
		},
		4: func(agent core.Agent) {
			agent.GetCharacter().AddStat(stats.AttackPower, 150)

		},
	},
})
View Source
var ItemSetShadowblades = core.NewItemSet(core.ItemSet{
	Name: "Shadowblade's Battlegear",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {

		},
		4: func(agent core.Agent) {

			actionID := core.ActionID{SpellID: 70803}
			rogue := agent.(RogueAgent).GetRogue()
			metrics := rogue.NewComboPointMetrics(actionID)
			rogue.RegisterAura(core.Aura{
				Label:    "Shadowblade's 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, result *core.SpellResult) {
					if !result.Landed() {
						return
					}
					if !spell.Flags.Matches(SpellFlagFinisher) {
						return
					}
					if sim.RandomFloat("Shadowblades") > 0.13 {
						return
					}
					rogue.AddComboPoints(sim, 3, metrics)
				},
			})
		},
	},
})
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 ItemSetTerrorblade = core.NewItemSet(core.ItemSet{
	Name: "Terrorblade Battlegear",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {

		},
		4: func(agent core.Agent) {

		},
	},
})
View Source
var ItemSetVanCleefs = core.NewItemSet(core.ItemSet{
	Name: "VanCleef's Battlegear",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {

			rogue := agent.(RogueAgent).GetRogue()
			energyMetrics := rogue.NewEnergyMetrics(core.ActionID{SpellID: 67209})

			procAura := rogue.RegisterAura(core.Aura{
				Label:    "VanCleef's 2pc Proc",
				ActionID: core.ActionID{SpellID: 67209},
				Duration: time.Second * 15,
				OnGain: func(aura *core.Aura, sim *core.Simulation) {
					rogue.PseudoStats.CostReduction += 40
				},
				OnExpire: func(aura *core.Aura, sim *core.Simulation) {
					rogue.PseudoStats.CostReduction -= 40
				},
				OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, _ *core.SpellResult) {
					if !spell.ProcMask.Matches(core.ProcMaskMeleeSpecial) {
						return
					}

					if actualGain := spell.DefaultCast.Cost - spell.CurCast.Cost; actualGain > 0 {
						energyMetrics.AddEvent(40, actualGain)
						aura.Deactivate(sim)
					}
				},
			})

			icd := core.Cooldown{
				Timer:    rogue.NewTimer(),
				Duration: time.Second * 15,
			}
			procChance := 0.02
			rogue.RegisterAura(core.Aura{
				Label:    "VanCleef's 2pc",
				Duration: core.NeverExpires,
				OnReset: func(aura *core.Aura, sim *core.Simulation) {
					aura.Activate(sim)
				},
				OnPeriodicDamageDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) {
					if !result.Landed() {
						return
					}
					if !spell.ActionID.IsSpellAction(RuptureSpellID) {
						return
					}
					if !icd.IsReady(sim) {
						return
					}
					if sim.RandomFloat("VanCleef's 2pc") > procChance {
						return
					}
					icd.Use(sim)
					procAura.Activate(sim)
				},
			})
		},
		4: func(agent core.Agent) {

		},
	},
})
View Source
var MHOutcome = core.OutcomeHit
View Source
var MutilateP1Gear = core.EquipmentSpecFromJsonString(`{"items": [
	{
		"id": 29044,
		"enchant": 3003,
		"gems": [
			32409,
			24061
		]
	},
	{
		"id": 29381
	},
	{
		"id": 27797,
		"enchant": 2986,
		"gems": [
			24061,
			24055
		]
	},
	{
		"id": 28672,
		"enchant": 368
	},
	{
		"id": 29045,
		"enchant": 2661,
		"gems": [
			24061,
			24051,
			24055
		]
	},
	{
		"id": 29246,
		"enchant": 1593
	},
	{
		"id": 27531,
		"gems": [
			24061,
			24061
		]
	},
	{
		"id": 29247
	},
	{
		"id": 28741,
		"enchant": 3012,
		"gems": [
			24051,
			24051,
			24051
		]
	},
	{
		"id": 28545,
		"enchant": 2939,
		"gems": [
			24061,
			24051
		]
	},
	{
		"id": 28757
	},
	{
		"id": 28649
	},
	{
		"id": 29383
	},
	{
		"id": 28830
	},
	{
		"id": 28768,
		"enchant": 2673
	},
	{
		"id": 29182,
		"enchant": 2673
	},
	{
		"id": 28772
	}
]}`)
View Source
var MutilateSpellID int32 = 48666
View Source
var OHOutcome = core.OutcomeHit
View Source
var OverkillActionID = core.ActionID{SpellID: 58426}
View Source
var P1Gear = core.EquipmentSpecFromJsonString(`{"items": [
    {
      "id": 40499,
      "enchant": 3817,
      "gems": [
        41398,
        42702
      ]
    },
    {
      "id": 44664,
      "gems": [
        42154
      ]
    },
    {
      "id": 40502,
      "enchant": 3808,
      "gems": [
        36766
      ]
    },
    {
      "id": 40403,
      "enchant": 3605
    },
    {
      "id": 40539,
      "enchant": 3832,
      "gems": [
        36766
      ]
    },
    {
      "id": 39765,
      "enchant": 3845,
      "gems": [
        40003,
        0
      ]
    },
    {
      "id": 40496,
      "enchant": 3604,
      "gems": [
        40058,
        0
      ]
    },
    {
      "id": 40260,
      "gems": [
        39999
      ]
    },
    {
      "id": 40500,
      "enchant": 3823,
      "gems": [
        40003,
        40003
      ]
    },
    {
      "id": 39701,
      "enchant": 3606
    },
    {
      "id": 40074
    },
    {
      "id": 40474
    },
    {
        "id": 40684
    },
    {
      "id": 44253
    },
    {
      "id": 39714,
      "enchant": 3789
    },
    {
      "id": 40386,
      "enchant": 3789
    },
    {
      "id": 40385
    }
  ]}`)
View Source
var PlayerOptionsAssassinationDD = &proto.Player_Rogue{
	Rogue: &proto.Rogue{
		Talents:  AssassinationTalents,
		Options:  DeadlyDeadly,
		Rotation: basicRotation,
	},
}
View Source
var PlayerOptionsAssassinationDI = &proto.Player_Rogue{
	Rogue: &proto.Rogue{
		Talents:  AssassinationTalents,
		Options:  DeadlyInstant,
		Rotation: basicRotation,
	},
}
View Source
var PlayerOptionsAssassinationID = &proto.Player_Rogue{
	Rogue: &proto.Rogue{
		Talents:  AssassinationTalents,
		Options:  InstantDeadly,
		Rotation: basicRotation,
	},
}
View Source
var PlayerOptionsAssassinationII = &proto.Player_Rogue{
	Rogue: &proto.Rogue{
		Talents:  AssassinationTalents,
		Options:  InstantInstant,
		Rotation: basicRotation,
	},
}
View Source
var PlayerOptionsCombatDD = &proto.Player_Rogue{
	Rogue: &proto.Rogue{
		Talents:  CombatTalents,
		Options:  DeadlyDeadly,
		Rotation: basicRotation,
	},
}
View Source
var PlayerOptionsCombatDI = &proto.Player_Rogue{
	Rogue: &proto.Rogue{
		Talents:  CombatTalents,
		Options:  DeadlyInstant,
		Rotation: basicRotation,
	},
}
View Source
var PlayerOptionsCombatID = &proto.Player_Rogue{
	Rogue: &proto.Rogue{
		Talents:  CombatTalents,
		Options:  InstantDeadly,
		Rotation: basicRotation,
	},
}
View Source
var PlayerOptionsCombatII = &proto.Player_Rogue{
	Rogue: &proto.Rogue{
		Talents:  CombatTalents,
		Options:  InstantInstant,
		Rotation: basicRotation,
	},
}
View Source
var PlayerOptionsNoLethality = &proto.Player_Rogue{
	Rogue: &proto.Rogue{
		Talents:  CombatNoLethalityTalents,
		Options:  DeadlyInstant,
		Rotation: basicRotation,
	},
}
View Source
var PlayerOptionsNoLethalityNoPotW = &proto.Player_Rogue{
	Rogue: &proto.Rogue{
		Talents:  CombatNoLethalityNoPotWTalents,
		Options:  DeadlyInstant,
		Rotation: basicRotation,
	},
}
View Source
var PlayerOptionsNoPotW = &proto.Player_Rogue{
	Rogue: &proto.Rogue{
		Talents:  CombatNoPotWTalents,
		Options:  DeadlyInstant,
		Rotation: basicRotation,
	},
}
View Source
var PreRaidGear = core.EquipmentSpecFromJsonString(`{"items": [
    {
      "id": 42550,
      "enchant": 3817,
      "gems": [
        41398,
        40058
      ]
    },
    {
      "id": 40678
    },
    {
      "id": 43481,
      "enchant": 3808
    },
    {
      "id": 38614,
      "enchant": 3605
    },
    {
      "id": 39558,
      "enchant": 3832,
      "gems": [
        40003,
        42702
      ]
    },
    {
      "id": 34448,
      "enchant": 3845,
      "gems": [
        40003,
        0
      ]
    },
    {
      "id": 39560,
      "enchant": 3604,
      "gems": [
        40058,
        0
      ]
    },
    {
      "id": 40694,
      "gems": [
        40003,
        40003
      ]
    },
    {
      "id": 37644,
      "enchant": 3823
    },
    {
      "id": 34575,
      "enchant": 3606,
      "gems": [
        40003
      ]
    },
    {
      "id": 40586
    },
    {
      "id": 37642
    },
    {
      "id": 40684
    },
    {
      "id": 44253
    },
    {
      "id": 37856,
      "enchant": 3789
    },
    {
      "id": 37667,
      "enchant": 3789
    },
    {
      "id": 43612
    }
  ]}`)
View Source
var RotationNames = []string{
	"No Expose No Tricks Primary",
	"No Expose One Tricks Primary",
	"One Expose No Tricks Primary",
	"Maintain Expose No Tricks Primary",
	"No Expose Maintain Tricks Primary",
	"No Expose Maintain Tricks Secondary",
}
View Source
var SliceAndDiceActionID = core.ActionID{SpellID: 6774}
View Source
var WoundPoisonActionID = core.ActionID{SpellID: 57975}

Functions

func RegisterRogue

func RegisterRogue()

func RotationSpecOptions

func RotationSpecOptions(talents *proto.RogueTalents, options *proto.Rogue_Options) []core.SpecOptionsCombo

Types

type DoAction added in v0.1.1

type DoAction func(*core.Simulation, *Rogue) bool

type GetAction added in v0.1.1

type GetAction func(*core.Simulation, *Rogue) PriorityAction

type PoisonProcSource

type PoisonProcSource int
const (
	NormalProc PoisonProcSource = iota
	DeadlyProc
	ShivProc
)

type PriorityAction added in v0.1.1

type PriorityAction int32
const (
	Skip PriorityAction = iota
	Build
	Cast
	Wait
)

type Rogue

type Rogue struct {
	core.Character

	Talents  *proto.RogueTalents
	Options  *proto.Rogue_Options
	Rotation *proto.Rogue_Rotation

	BuilderPoints    int32
	Builder          *core.Spell
	Backstab         *core.Spell
	BladeFlurry      *core.Spell
	DeadlyPoison     *core.Spell
	FanOfKnives      *core.Spell
	Feint            *core.Spell
	Garrote          *core.Spell
	Hemorrhage       *core.Spell
	HungerForBlood   *core.Spell
	InstantPoison    [3]*core.Spell
	WoundPoison      [3]*core.Spell
	Mutilate         *core.Spell
	Shiv             *core.Spell
	SinisterStrike   *core.Spell
	TricksOfTheTrade *core.Spell

	Envenom      [6]*core.Spell
	Eviscerate   [6]*core.Spell
	ExposeArmor  [6]*core.Spell
	Rupture      [6]*core.Spell
	SliceAndDice [6]*core.Spell

	AdrenalineRushAura   *core.Aura
	BladeFlurryAura      *core.Aura
	EnvenomAura          *core.Aura
	ExposeArmorAura      *core.Aura
	HungerForBloodAura   *core.Aura
	KillingSpreeAura     *core.Aura
	OverkillAura         *core.Aura
	SliceAndDiceAura     *core.Aura
	TricksOfTheTradeAura *core.Aura

	QuickRecoveryMetrics *core.ResourceMetrics
	// contains filtered or unexported fields
}

func NewRogue

func NewRogue(character core.Character, options *proto.Player) *Rogue

func (*Rogue) AddPartyBuffs

func (rogue *Rogue) AddPartyBuffs(partyBuffs *proto.PartyBuffs)

func (*Rogue) AddRaidBuffs

func (rogue *Rogue) AddRaidBuffs(raidBuffs *proto.RaidBuffs)

func (*Rogue) ApplyCutToTheChase

func (rogue *Rogue) ApplyCutToTheChase(sim *core.Simulation)

func (*Rogue) ApplyEnergyTickMultiplier

func (rogue *Rogue) ApplyEnergyTickMultiplier(multiplier float64)

func (*Rogue) ApplyFinisher

func (rogue *Rogue) ApplyFinisher(sim *core.Simulation, spell *core.Spell)

func (*Rogue) ApplyTalents

func (rogue *Rogue) ApplyTalents()

func (*Rogue) CanMutilate

func (rogue *Rogue) CanMutilate() bool

func (*Rogue) GetCharacter

func (rogue *Rogue) GetCharacter() *core.Character

func (*Rogue) GetDeadlyPoisonProcChance

func (rogue *Rogue) GetDeadlyPoisonProcChance(mask core.ProcMask) float64

func (*Rogue) GetRogue

func (rogue *Rogue) GetRogue() *Rogue

func (*Rogue) HasMajorGlyph

func (rogue *Rogue) HasMajorGlyph(glyph proto.RogueMajorGlyph) bool

func (*Rogue) HasMinorGlyph

func (rogue *Rogue) HasMinorGlyph(glyph proto.RogueMinorGlyph) bool

func (*Rogue) Initialize

func (rogue *Rogue) Initialize()

func (*Rogue) MeleeCritMultiplier

func (rogue *Rogue) MeleeCritMultiplier(applyLethality bool) float64

func (*Rogue) OnCanAct added in v0.1.1

func (rogue *Rogue) OnCanAct(sim *core.Simulation)

func (*Rogue) OnEnergyGain

func (rogue *Rogue) OnEnergyGain(sim *core.Simulation)

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 *Rogue) RuptureDuration(comboPoints int32) time.Duration

func (*Rogue) SpellCritMultiplier

func (rogue *Rogue) SpellCritMultiplier() float64

func (*Rogue) UpdateInstantPoisonPPM

func (rogue *Rogue) UpdateInstantPoisonPPM(bonusChance float64)

type RogueAgent

type RogueAgent interface {
	GetRogue() *Rogue
}

Agent is a generic way to access underlying rogue on any of the agents.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL