paladin

package
v0.0.38 Latest Latest
Warning

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

Go to latest
Published: Dec 30, 2024 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PaladinT1Prot2P  = 456536
	PaladinT1Prot4P  = 456538
	PaladinT1Prot6P  = 456541
	PaladinT2Prot2P  = 467531
	PaladinT2Prot4P  = 467532
	PaladinT2Prot6P  = 467536
	PaladinTAQProt2P = 1213410
	PaladinTAQProt4P = 1213413
	PaladinT1Holy2P  = 456488
	PaladinT1Holy4P  = 457323
	PaladinT1Holy6P  = 456492
	PaladinT2Holy2P  = 467506
	PaladinT2Holy4P  = 467507
	PaladinT2Holy6P  = 467513
	PaladinTAQHoly2P = 1213349
	PaladinTAQHoly4P = 1213353
	PaladinT1Ret2P   = 456494
	PaladinT1Ret4P   = 456489
	PaladinT1Ret6P   = 456533
	PaladinT2Ret2P   = 467518
	PaladinT2Ret4P   = 467526
	PaladinT2Ret6P   = 467529
	PaladinTAQRet2P  = 1213397
	PaladinTAQRet4P  = 1213406
	PaladinZG2P      = 468401
	PaladinZG3P      = 468428
	PaladinZG5P      = 468431
	PaladinRAQ3P     = 1213467
)

Soul Related Set Bonus IDs

View Source
const (
	SanctifiedOrb                        = 20512
	LibramOfHope                         = 22401
	LibramOfFervor                       = 23203
	LibramDiscardedTenetsOfTheSilverHand = 209574
	LibramOfBenediction                  = 215435
	LibramOfDraconicDestruction          = 221457
	LibramOfTheDevoted                   = 228174
	LibramOfAvenging                     = 232421
	Truthbearer2H                        = 229749
	Truthbearer1H                        = 229806
	HammerOfTheLightbringer              = 230003
	ScrollsOfBlindingLight               = 230272
	GrileksCharmOfValor                  = 231285
	HerosBrand                           = 231328
	ZandalarFreethinkersBreastplate      = 231329
	ZandalarFreethinkersBelt             = 231330
	LibramOfWrath                        = 232420
	LibramOfTheExorcist                  = 234475
	LibramOfSanctity                     = 234476
	LibramOfRighteousness                = 234477
)

Libram IDs

View Source
const (
	SpellFlag_RV          = core.SpellFlagAgentReserved1
	SpellFlag_Forbearance = core.SpellFlagAgentReserved2
)
View Source
const (
	SpellCode_PaladinNone = iota

	SpellCode_PaladinExorcism
	SpellCode_PaladinHolyShock
	SpellCode_PaladinHolyWrath
	SpellCode_PaladinJudgementOfCommand
	SpellCode_PaladinConsecration
	SpellCode_PaladinAvengersShield
	SpellCode_PaladinHolyShield
	SpellCode_PaladinHolyShieldProc
	SpellCode_PaladinLayOnHands
	SpellCode_PaladinHammerOfWrath
	SpellCode_PaladinCrusaderStrike
	SpellCode_PaladinHammerOfTheRighteous
	SpellCode_PaladinShieldOfRighteousness
)
View Source
const RVTicks = 4

Variables

View Source
var HolyShieldValues = []struct {
	level    int32
	spellID  int32
	procID   int32
	manaCost float64
	damage   float64
}{
	{/* contains filtered or unexported fields */},
	{/* contains filtered or unexported fields */},
	{/* contains filtered or unexported fields */},
}
View Source
var ItemSetAvengersRadiance = core.NewItemSet(core.ItemSet{
	Name: "Avenger's Radiance",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinTAQRet2P() },
		4: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinTAQRet4P() },
	},
})
View Source
var ItemSetBattlegearOfEternalJustice = core.NewItemSet(core.ItemSet{
	Name: "Battlegear of Eternal Justice",
	Bonuses: map[int32]core.ApplyEffect{

		3: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinRAQ3P() },
	},
})
View Source
var ItemSetFreethinkersArmor = core.NewItemSet(core.ItemSet{
	Name: "Freethinker's Armor",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinZG2P() },
		3: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinZG3P() },
		5: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinZG5P() },
	},
})
View Source
var ItemSetLawbringerMercy = core.NewItemSet(core.ItemSet{
	Name: "Lawbringer Mercy",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinT1Holy2P() },
		4: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinT1Holy4P() },
		6: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinT1Holy6P() },
	},
})
View Source
var ItemSetLawbringerRadiance = core.NewItemSet(core.ItemSet{
	Name: "Lawbringer Radiance",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinT1Ret2P() },
		4: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinT1Ret4P() },
		6: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinT1Ret6P() },
	},
})
View Source
var ItemSetLawbringerWill = core.NewItemSet(core.ItemSet{
	Name: "Lawbringer Will",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinT1Prot2P() },
		4: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinT1Prot4P() },
		6: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinT1Prot6P() },
	},
})
View Source
var ItemSetLieutenantCommandersRedemption = core.NewItemSet(core.ItemSet{
	Name: "Lieutenant Commander's Redemption",
	Bonuses: map[int32]core.ApplyEffect{

		2: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.HealingPower, 44)
		},

		4: func(agent core.Agent) {

		},

		6: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.Stamina, 20)
		},
	},
})
View Source
var ItemSetLieutenantCommandersVindication = core.NewItemSet(core.ItemSet{
	Name: "Lieutenant Commander's Vindication",
	Bonuses: map[int32]core.ApplyEffect{

		2: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStats(stats.Stats{
				stats.AttackPower:       40,
				stats.RangedAttackPower: 40,
			})
		},

		4: func(agent core.Agent) {

		},

		6: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.Stamina, 20)
		},
	},
})
View Source
var ItemSetMercifulJudgement = core.NewItemSet(core.ItemSet{
	Name: "Merciful Judgement",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinT2Holy2P() },
		4: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinT2Holy4P() },
		6: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinT2Holy6P() },
	},
})
View Source
var ItemSetObsessedProphetsPlate = core.NewItemSet(core.ItemSet{
	Name: "Obsessed Prophet's Plate",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.MeleeCrit, 1*core.CritRatingPerCritChance)
			c.AddStat(stats.SpellCrit, 1*core.SpellCritRatingPerCritChance)
		},
		3: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.PseudoStats.SchoolBonusCritChance[stats.SchoolIndexHoly] += 3 * core.SpellCritRatingPerCritChance
		},
	},
})
View Source
var ItemSetRadiantJudgement = core.NewItemSet(core.ItemSet{
	Name: "Radiant Judgement",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinT2Ret2P() },
		4: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinT2Ret4P() },
		6: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinT2Ret6P() },
	},
})
View Source
var ItemSetRedemptionArmor = core.NewItemSet(core.ItemSet{
	Name: "Redemption Armor",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {
			paladin := agent.(PaladinAgent).GetPaladin()
			paladin.applyNaxxramasHoly2PBonus()
		},

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

		6: func(agent core.Agent) {
		},
	},
})
View Source
var ItemSetRedemptionBulwark = core.NewItemSet(core.ItemSet{
	Name: "Redemption Bulwark",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {
			paladin := agent.(PaladinAgent).GetPaladin()
			paladin.applyNaxxramasProtection2PBonus()
		},
		4: func(agent core.Agent) {
			paladin := agent.(PaladinAgent).GetPaladin()
			paladin.applyNaxxramasProtection4PBonus()
		},
		6: func(agent core.Agent) {
			paladin := agent.(PaladinAgent).GetPaladin()
			paladin.applyNaxxramasProtection6PBonus()
		},
	},
})
View Source
var ItemSetRedemptionWarplate = core.NewItemSet(core.ItemSet{
	Name: "Redemption Warplate",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {
			paladin := agent.(PaladinAgent).GetPaladin()
			paladin.applyNaxxramasRetribution2PBonus()
		},
		4: func(agent core.Agent) {
			paladin := agent.(PaladinAgent).GetPaladin()
			paladin.applyNaxxramasRetribution4PBonus()
		},
		6: func(agent core.Agent) {
			paladin := agent.(PaladinAgent).GetPaladin()
			paladin.applyNaxxramasRetribution6PBonus()
		},
	},
})
View Source
var ItemSetSoulforgeArmor = core.NewItemSet(core.ItemSet{
	Name: "Soulforge Armor",
	Bonuses: map[int32]core.ApplyEffect{

		2: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStats(stats.Stats{
				stats.AttackPower:       40,
				stats.RangedAttackPower: 40,
				stats.HealingPower:      40,
			})
		},

		4: func(agent core.Agent) {
			c := agent.GetCharacter()
			actionID := core.ActionID{SpellID: 450625}

			procAura := c.NewTemporaryStatsAura("Crusader's Wrath", core.ActionID{SpellID: 27499}, stats.Stats{stats.SpellPower: 95}, time.Second*10)
			handler := func(sim *core.Simulation, spell *core.Spell, _ *core.SpellResult) {
				procAura.Activate(sim)
			}

			core.MakeProcTriggerAura(&c.Unit, core.ProcTrigger{
				ActionID:   actionID,
				Name:       "Item - Crusader's Wrath Proc - Lightforge Armor (Melee Auto)",
				Callback:   core.CallbackOnSpellHitDealt,
				Outcome:    core.OutcomeLanded,
				ProcMask:   core.ProcMaskMeleeWhiteHit,
				ProcChance: 0.06,
				Handler:    handler,
			})
			core.MakeProcTriggerAura(&c.Unit, core.ProcTrigger{
				ActionID:   actionID,
				Name:       "Item - Crusader's Wrath Proc - Lightforge Armor (Spell Cast)",
				Callback:   core.CallbackOnCastComplete,
				ProcMask:   core.ProcMaskSpellDamage | core.ProcMaskSpellHealing,
				ProcChance: 0.04,
				Handler:    handler,
			})
		},

		6: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddResistances(8)
		},

		8: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.Armor, 200)
		},
	},
})
View Source
var ItemSetWilfullJudgement = core.NewItemSet(core.ItemSet{
	Name: "Wilfull Judgement",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinT2Prot2P() },
		4: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinT2Prot4P() },
		6: func(agent core.Agent) { agent.(PaladinAgent).GetPaladin().applyPaladinT2Prot6P() },
	},
})
View Source
var KnightLieutenantsImbuedPlate = core.NewItemSet(core.ItemSet{
	Name: "Knight-Lieutenant's Imbued Plate",
	Bonuses: map[int32]core.ApplyEffect{
		3: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.Stamina, 15)
		},
		6: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.HealingPower, 33)
		},
	},
})
View Source
var KnightLieutenantsLamellarPlate = core.NewItemSet(core.ItemSet{
	Name: "Knight-Lieutenant's Lamellar Plate",
	Bonuses: map[int32]core.ApplyEffect{
		3: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.Stamina, 15)
		},
		6: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.SpellPower, 18)
		},
	},
})
View Source
var TalentTreeSizes = [3]int{14, 15, 15}

Functions

This section is empty.

Types

type APLActionCastPaladinPrimarySeal

type APLActionCastPaladinPrimarySeal struct {
	// contains filtered or unexported fields
}

func (*APLActionCastPaladinPrimarySeal) Execute

func (*APLActionCastPaladinPrimarySeal) Finalize

func (*APLActionCastPaladinPrimarySeal) GetAPLValues

func (x *APLActionCastPaladinPrimarySeal) GetAPLValues() []core.APLValue

func (*APLActionCastPaladinPrimarySeal) GetInnerActions

func (x *APLActionCastPaladinPrimarySeal) GetInnerActions() []*core.APLAction

func (*APLActionCastPaladinPrimarySeal) GetNextAction

func (*APLActionCastPaladinPrimarySeal) IsReady

func (*APLActionCastPaladinPrimarySeal) Reset

func (*APLActionCastPaladinPrimarySeal) String

type APLValueCurrentSealRemainingTime

type APLValueCurrentSealRemainingTime struct {
	core.DefaultAPLValueImpl
	// contains filtered or unexported fields
}

func (*APLValueCurrentSealRemainingTime) GetDuration

func (*APLValueCurrentSealRemainingTime) String

func (*APLValueCurrentSealRemainingTime) Type

type Paladin

type Paladin struct {
	core.Character

	Talents *proto.PaladinTalents
	Options *proto.PaladinOptions
	// contains filtered or unexported fields
}

func NewPaladin

func NewPaladin(character *core.Character, options *proto.Player, paladinOptions *proto.PaladinOptions) *Paladin

maybe need to add stat dependencies

func (*Paladin) AddPartyBuffs

func (paladin *Paladin) AddPartyBuffs(_ *proto.PartyBuffs)

func (*Paladin) AddRaidBuffs

func (paladin *Paladin) AddRaidBuffs(_ *proto.RaidBuffs)

func (*Paladin) ApplyRunes

func (paladin *Paladin) ApplyRunes()

func (*Paladin) ApplyTalents

func (paladin *Paladin) ApplyTalents()

func (*Paladin) GetCharacter

func (paladin *Paladin) GetCharacter() *core.Character

func (*Paladin) GetPaladin

func (paladin *Paladin) GetPaladin() *Paladin

func (*Paladin) Initialize

func (paladin *Paladin) Initialize()

func (*Paladin) NewAPLAction

func (paladin *Paladin) NewAPLAction(rot *core.APLRotation, config *proto.APLAction) core.APLActionImpl

The APLAction for casting the current Seal

func (*Paladin) NewAPLValue

func (paladin *Paladin) NewAPLValue(rot *core.APLRotation, config *proto.APLValue) core.APLValue

func (*Paladin) Reset

func (paladin *Paladin) Reset(_ *core.Simulation)

func (*Paladin) ResetCurrentPaladinAura added in v0.0.17

func (paladin *Paladin) ResetCurrentPaladinAura()

func (*Paladin) ResetPrimarySeal added in v0.0.7

func (paladin *Paladin) ResetPrimarySeal(primarySeal proto.PaladinSeal)

type PaladinAgent

type PaladinAgent interface {
	GetPaladin() *Paladin
}

Implemented by each Paladin spec.

type SealJudgeCode added in v0.0.24

type SealJudgeCode uint8
const (
	SealJudgeCodeNone        SealJudgeCode = 0
	SealJudgeOfMartyrdomCode SealJudgeCode = 1 << iota
	SealJudgeOfRighteousnessCode
	SealJudgeOfCommandCode
	SealJudgeOfTheCrusaderCode
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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