Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
61ac791
initial warlock cleanup and moves
Jazz405 Nov 30, 2025
45adbf1
more updates, specific spells
Jazz405 Dec 1, 2025
e8721f3
merge main
Jazz405 Dec 1, 2025
0b0d501
Merge branch 'master' of https://github.com/wowsims/tbc-new into rhon…
Jazz405 Dec 2, 2025
b2a2ff9
first pass on talents
Jazz405 Dec 2, 2025
fe00129
site stood up with minimal issues
Jazz405 Dec 3, 2025
f8d6fdd
spell updates, can see in ui
Jazz405 Dec 3, 2025
73104ed
merge main
Jazz405 Dec 3, 2025
e45febc
some ui updates
Jazz405 Dec 6, 2025
0fc3034
updates
Jazz405 Dec 6, 2025
14342b5
Merge branch 'master' of https://github.com/wowsims/tbc-new into rhon…
Jazz405 Dec 6, 2025
bab5b63
some spell and casting fixes
Jazz405 Dec 7, 2025
8481e37
Merge branch 'master' of https://github.com/wowsims/tbc-new into rhon…
Jazz405 Dec 7, 2025
f945683
Spells mostly firing, fix calcs
Jazz405 Dec 7, 2025
4f5f89e
fill out pet talents
Jazz405 Dec 9, 2025
a4c27db
add buff defaults
Jazz405 Dec 11, 2025
cce817f
buffs and debuffs in ui
Jazz405 Dec 13, 2025
c8a8b64
updating otherinputs
Jazz405 Dec 14, 2025
fd97d25
merge master
Jazz405 Dec 14, 2025
578cfb7
missed save
Jazz405 Dec 14, 2025
4c11d36
most of the debuffs tested except for tank ones
Jazz405 Dec 15, 2025
b13e4d7
commit latest
Jazz405 Dec 23, 2025
b328150
Merge branch 'master' of github.com:wowsims/tbc-new into rhonnie/xbuf…
Jazz405 Dec 23, 2025
14db761
buffs implemented
Jazz405 Dec 27, 2025
898601a
ignore tests for removed things
Jazz405 Dec 27, 2025
332c061
comment out BoL for now
Jazz405 Dec 27, 2025
d006333
Fix or ignore tests
Jazz405 Dec 27, 2025
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
2 changes: 1 addition & 1 deletion assets/database/db.json
Original file line number Diff line number Diff line change
Expand Up @@ -12109,4 +12109,4 @@
"spellEffects":[
{"id":696085,"spellId":17528,"type":30,"minEffectSize":449,"effectSpread":301,"resourceType":3}
]
}
}
7 changes: 7 additions & 0 deletions proto/common.proto
Original file line number Diff line number Diff line change
Expand Up @@ -449,6 +449,7 @@ enum StrengthOfEarthType {
EnhancingAndCyclone = 4;
}


// Buffs that affect the entire raid.
// Reindexed to The Burning Crusade raid buffs.
// Next index: 36
Expand Down Expand Up @@ -480,7 +481,9 @@ message PartyBuffs {
Drums drums = 11;

// Item Buffs
int32 atiesh_druid = 35;
int32 atiesh_mage = 12;
int32 atiesh_priest = 36;
int32 atiesh_warlock = 13;
bool braided_eternium_chain = 14;
bool eye_of_the_night = 15;
Expand Down Expand Up @@ -564,6 +567,7 @@ message Debuffs {
bool scorpid_sting = 24;
bool shadow_embrace = 25;
bool screech = 26;
double hemorrhage_uptime = 27;
}

message ConsumesSpec {
Expand Down Expand Up @@ -719,11 +723,14 @@ enum ConsumableType {
ConsumableTypeExplosive = 5;
ConsumableTypeBattleElixir = 6;
ConsumableTypeGuardianElixir = 7;
ConsumableTypeImbue = 8;
ConsumableTypePetFood = 9;
}





// Extra enum for describing which items are eligible for an enchant, when
// ItemType alone is not enough.
enum EnchantType {
Expand Down
8 changes: 8 additions & 0 deletions proto/warlock.proto
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,17 @@ message WarlockOptions {
Felguard = 5;
}

enum Armor {
NoArmor = 0;
FelArmor = 1;
DemonArmor = 2;
}

Summon summon = 1;
bool detonate_seed = 2;
bool use_item_swap_bonus_stats = 3;
bool sacrifice_summon = 5;
Armor armor = 4;
}

message Warlock {
Expand Down
32 changes: 16 additions & 16 deletions sim/core/armor_test.go → sim/core/_armor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,21 +62,21 @@ func TestDamageReductionFromArmor(t *testing.T) {
t.Fatalf("Expected no armor modifiers to result in %f damage reduction got %f", expectedDamageReduction, 1-attackTable.getArmorDamageModifier())
}

// Major
weakenedArmorAura := WeakenedArmorAura(&target)
weakenedArmorAura.Activate(&sim)
weakenedArmorAura.SetStacks(&sim, 3)
expectedDamageReduction = 0.320864
if !WithinToleranceFloat64(1-expectedDamageReduction, attackTable.getArmorDamageModifier(), tolerance) {
t.Fatalf("Expected major armor modifier to result in %f damage reduction got %f", expectedDamageReduction, 1-attackTable.getArmorDamageModifier())
}
weakenedArmorAura.Deactivate(&sim)
// // Major
// weakenedArmorAura := WeakenedArmorAura(&target)
// weakenedArmorAura.Activate(&sim)
// weakenedArmorAura.SetStacks(&sim, 3)
// expectedDamageReduction = 0.320864
// if !WithinToleranceFloat64(1-expectedDamageReduction, attackTable.getArmorDamageModifier(), tolerance) {
// t.Fatalf("Expected major armor modifier to result in %f damage reduction got %f", expectedDamageReduction, 1-attackTable.getArmorDamageModifier())
// }
// weakenedArmorAura.Deactivate(&sim)

// Major Multi
shatteringThrowAura := ShatteringThrowAura(&target, attacker.UnitIndex)
shatteringThrowAura.Activate(&sim)
expectedDamageReduction = 0.300459
if !WithinToleranceFloat64(1-expectedDamageReduction, attackTable.getArmorDamageModifier(), tolerance) {
t.Fatalf("Expected major & shattering modifier to result in %f damage reduction got %f", expectedDamageReduction, 1-attackTable.getArmorDamageModifier())
}
// // Major Multi
// shatteringThrowAura := ShatteringThrowAura(&target, attacker.UnitIndex)
// shatteringThrowAura.Activate(&sim)
// expectedDamageReduction = 0.300459
// if !WithinToleranceFloat64(1-expectedDamageReduction, attackTable.getArmorDamageModifier(), tolerance) {
// t.Fatalf("Expected major & shattering modifier to result in %f damage reduction got %f", expectedDamageReduction, 1-attackTable.getArmorDamageModifier())
// }
}
2 changes: 1 addition & 1 deletion sim/core/dot_test.go → sim/core/_dot_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ func NewFakeElementalShaman(char *Character, _ *proto.Player) Agent {
},
NumberOfTicks: 6,
TickLength: time.Second * 3,
AffectedByCastSpeed: true,
AffectedByCastSpeed: false,
BonusCoefficient: 1,

OnSnapshot: func(sim *Simulation, target *Unit, dot *Dot) {
Expand Down
File renamed without changes.
1 change: 1 addition & 0 deletions sim/core/apl.go
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ func (unit *Unit) newAPLRotation(config *proto.APLRotation) *APLRotation {
action := rotation.newAPLAction(aplItem.Action)
if action != nil {
rotation.priorityList = append(rotation.priorityList, action)

rotation.priorityListIdxMap = append(rotation.priorityListIdxMap, i)
}
}
Expand Down
6 changes: 6 additions & 0 deletions sim/core/apl_actions_casting.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,16 @@ type APLActionCastSpell struct {

func (rot *APLRotation) newActionCastSpell(config *proto.APLActionCastSpell) APLActionImpl {
spell := rot.GetAPLSpell(config.SpellId)

if spell == nil {
return nil
}

target := rot.GetTargetUnit(config.Target)
if target.Get() == nil {
return nil
}

return &APLActionCastSpell{
spell: spell,
target: target,
Expand Down Expand Up @@ -85,9 +88,12 @@ func (rot *APLRotation) newActionChannelSpell(config *proto.APLActionChannelSpel
}

spell := rot.GetAPLSpell(config.SpellId)

if spell == nil {
println("GETAPLSPELL GAVE ME A NIL ONE")
return nil
}
println("GET APL SPELL: ", spell.ActionID.SpellID)
if !spell.Flags.Matches(SpellFlagChanneled) {
return nil
}
Expand Down
Loading