diff --git a/Locale-koKR.lua b/Locale-koKR.lua
new file mode 100644
index 0000000..04f391e
--- /dev/null
+++ b/Locale-koKR.lua
@@ -0,0 +1,4 @@
+local L = LibStub:GetLibrary("AceLocale-3.0"):NewLocale("Ovale", "ruRU", false)
+if not L then return end
+
+--@localization(locale="ruRU", format="lua_additive_table", same-key-is-true=true, handle-subnamespaces="concat")@
\ No newline at end of file
diff --git a/Locale-zhCN.lua b/Locale-zhCN.lua
new file mode 100644
index 0000000..8959e04
--- /dev/null
+++ b/Locale-zhCN.lua
@@ -0,0 +1,4 @@
+local L = LibStub:GetLibrary("AceLocale-3.0"):NewLocale("Ovale", "zhCN", false)
+if not L then return end
+
+--@localization(locale="zhCN", format="lua_additive_table", same-key-is-true=true, handle-subnamespaces="concat")@
\ No newline at end of file
diff --git a/Ovale.toc b/Ovale.toc
index a74c534..5861234 100644
--- a/Ovale.toc
+++ b/Ovale.toc
@@ -3,7 +3,7 @@
## Notes: Show the icon of the next spell to cast
## Notes-frFR: Affiche l'icône du prochain sort à lancer
## Author: Sidoine
-## Version: 4.3.0
+## Version: 4.3.1
## OptionalDeps: Ace3, ButtonFacade, Recount, Skada, LibBabble-CreatureType-3.0, LibRangeCheck-2.0
## SavedVariables: OvaleDB
## SavedVariablesPerCharacter: OvaleDBPC
@@ -18,6 +18,7 @@ Locale-enUS.lua
Locale-koKR.lua
Locale-ptBR.lua
Locale-ruRU.lua
+Locale-zhCN.lua
Locale-zhTW.lua
Ovale.lua
Condition.lua
diff --git a/OvaleEquipement.lua b/OvaleEquipement.lua
index 2c5979f..2ae320a 100644
--- a/OvaleEquipement.lua
+++ b/OvaleEquipement.lua
@@ -32,6 +32,21 @@ local itemTier =
[65191] = "T11",
[65192] = "T11",
[65193] = "T11",
+ [78789] = "T13",
+ [78779] = "T13",
+ [78808] = "T13",
+ [78760] = "T13",
+ [78838] = "T13",
+ [77015] = "T13",
+ [77014] = "T13",
+ [77016] = "T13",
+ [77013] = "T13",
+ [77017] = "T13",
+ [78694] = "T13",
+ [78684] = "T13",
+ [78713] = "T13",
+ [78665] = "T13",
+ [78743] = "T13",
--Balance druid
[60284] = "T11",
[60281] = "T11",
diff --git a/defaut/Demoniste.lua b/defaut/Demoniste.lua
index 82fa195..f0fed77 100644
--- a/defaut/Demoniste.lua
+++ b/defaut/Demoniste.lua
@@ -121,7 +121,7 @@ AddListItem(bane agony SpellName(BANEOFAGONY))
AddListItem(bane doom SpellName(BANEOFDOOM) default)
AddListItem(bane havoc SpellName(BANEOFHAVOC) mastery=3)
AddCheckBox(shadowflame SpellName(SHADOWFLAME) default)
-AddCheckBox(petswap SpellName(SUMMONFELGUARD))
+AddCheckBox(petswap SpellName(SUMMONFELGUARD) mastery=2)
ScoreSpells(CURSEELEMENTS SHADOWBOLT HAUNT UNSTABLEAFFLICTION IMMOLATE CONFLAGRATE CURSEWEAKNESS
BANEOFAGONY CORRUPTION SOULFIRE DRAINSOUL INCINERATE SHADOWBOLT CHAOSBOLT)
@@ -276,6 +276,8 @@ AddIcon help=main mastery=3
if TargetDebuffExpires(IMMOLATE 2 mine=1 haste=spell) and TargetDeadIn(more 4) Spell(IMMOLATE)
#/conflagrate
if 1s after TargetDebuffPresent(IMMOLATE mine=1) Spell(CONFLAGRATE)
+ #/immolate,if=buff.bloodlust.react&buff.bloodlust.remains>32&cooldown.conflagrate.remains<=3&remains<12
+ if BuffPresent(heroism 32) and {spell(CONFLAGRATE)<3} and TargetDebuffExpires(IMMOLATE 12 mine=1) Spell(IMMOLATE)
#/bane_of_doom,if=!ticking&target.time_to_die>=15&miss_react
if TargetDebuffExpires(BANEOFDOOM 0 mine=1) and TargetDebuffExpires(BANEOFAGONY 0 mine=1)
{
@@ -286,14 +288,16 @@ AddIcon help=main mastery=3
if TargetDebuffExpires(CORRUPTION 2 mine=1 haste=spell) and TargetDebuffExpires(SEEDOFCORRUPTION 0 mine=1) and TargetDeadIn(more 9) Spell(CORRUPTION)
#/shadowflame
if CheckBoxOn(shadowflame) Spell(SHADOWFLAME)
- #/soul_fire,if=buff.empowered_imp.react&buff.empowered_imp.remains<(buff.improved_soul_fire.remains+action.soul_fire.travel_time)
- if TalentPoints(IMPROVEDSOULFIRE more 0) and BuffExpires(IMPROVEDSOULFIREBUFF 0) and BuffExpires(EMPOWEREDIMP 0) Spell(SOULFIRE)
- #/chaos_bolt
- Spell(CHAOSBOLT)
- #/soul_fire,if=buff.improved_soul_fire.remains<(cast_time+travel_time+action.incinerate.cast_time+gcd)&!in_flight
+ #/chaos_bolt,if=cast_time>0.9
+ if {castTime(CHAOSBOLT) > 0.9} Spell(CHAOSBOLT)
if TalentPoints(IMPROVEDSOULFIRE more 0)
{
- if buffExpires(IMPROVEDSOULFIREBUFF)< {castTime(SOULFIRE)+castTime(INCINERATE)+timeWithHaste(1.5)+1} Spell(SOULFIRE)
+ #((buff.empowered_imp.react&buff.empowered_imp.remains<(buff.improved_soul_fire.remains+action.soul_fire.travel_time))
+ if BuffPresent(EMPOWEREDIMP) and {buffExpires(EMPOWEREDIMP) < {buffExpires(IMPROVEDSOULFIREBUFF) + 1}}
+ Spell(SOULFIRE)
+ #|buff.improved_soul_fire.remains<(cast_time+travel_time+action.incinerate.cast_time+gcd))
+ if buffExpires(IMPROVEDSOULFIREBUFF)< {castTime(SOULFIRE)+ 1 +castTime(INCINERATE)+timeWithHaste(1.5)}
+ Spell(SOULFIRE)
}
#/shadowburn
Spell(SHADOWBURN usable=1)
diff --git a/defaut/Guerrier.lua b/defaut/Guerrier.lua
index 805724a..17018fe 100644
--- a/defaut/Guerrier.lua
+++ b/defaut/Guerrier.lua
@@ -18,10 +18,10 @@ Define(CLEAVE 845)
SpellInfo(CLEAVE cd=3)
Define(COLOSSUSSMASH 86346)
SpellInfo(COLOSSUSSMASH cd=20)
- SpellAddTargetDebuff(COLOSSUSSMASH COLOSSUSSMASH=6)
+ SpellAddTargetDebuff(COLOSSUSSMASH COLOSSUSSMASH=6 SUNDERARMORDEBUFF=30)
Define(COMMANDINGSHOUT 469)
SpellInfo(COMMANDINGSHOUT cd=30)
- SpellAddBuff(COMMANDINGSHOUT cd=60 COMMANDINGSHOUT=120)
+ SpellAddBuff(COMMANDINGSHOUT COMMANDINGSHOUT=120)
Define(CONCUSSIONBLOW 12809)
SpellInfo(CONCUSSIONBLOW cd=30)
Define(DEADLYCALM 85730)
@@ -123,7 +123,7 @@ Define(TITANSGRIPTALENT 9658)
#Glyphs
Define(GLYPHOFBERSERKERRAGE 58096)
-AddCheckBox(multi L(AOE))
+AddCheckBox(aoe L(AOE) default)
AddCheckBox(demo SpellName(DEMOSHOUT))
AddCheckBox(sunder SpellName(SUNDERARMOR) default)
AddCheckBox(dancing SpellName(BERSERKERSTANCE) default mastery=1)
@@ -139,7 +139,7 @@ AddIcon help=main mastery=1
if List(shout command) and {Mana(less 20) or BuffExpires(stamina 3)} Spell(COMMANDINGSHOUT nored=1)
if List(shout battle) and {Mana(less 20) or BuffExpires(strengthagility 3)} Spell(BATTLESHOUT nored=1)
if TargetClassification(worldboss) and CheckBoxOn(demo) and TargetDebuffExpires(lowerphysicaldamage 2) Spell(DEMOSHOUT nored=1)
- if TargetDebuffExpires(SUNDERARMORDEBUFF 3 stacks=3) and CheckBoxOn(sunder) and TargetDebuffExpires(lowerarmor 2 mine=0) Spell(SUNDERARMOR nored=1)
+ if TargetDebuffExpires(SUNDERARMORDEBUFF 3 stacks=2) and CheckBoxOn(sunder) and TargetDebuffExpires(lowerarmor 2 mine=0) Spell(SUNDERARMOR nored=1)
if CheckBoxOn(dancing)
{
@@ -155,13 +155,6 @@ AddIcon help=main mastery=1
#/deadly_calm,if=rage<30&((target.health_pct>20&target.time_to_die>130)|(target.health_pct<=20&buff.recklessness.up))
if Mana(less 30) and {{TargetLifePercent(more 20) and TargetDeadIn(more 130)} or {TargetLifePercent(less 20) and BuffPresent(RECKLESSNESS)}} Spell(DEADLYCALM)
- if CheckBoxOn(multi)
- {
- #/sweeping_strikes,if=target.adds>0
- Spell(SWEEPINGSTRIKES)
- #/bladestorm,if=target.adds>0&!buff.deadly_calm.up&!buff.sweeping_strikes.up
- if BuffExpires(SWEEPINGSTRIKES) and BuffExpires(DEADLYCALM) Spell(BLADESTORM)
- }
#/inner_rage,if=!buff.deadly_calm.up&rage>80&cooldown.deadly_calm.remains>15
if BuffExpires(DEADLYCALM) and Mana(more 80) and {spell(DEADLYCALM)>15} Spell(INNERRAGE)
#/overpower,if=buff.taste_for_blood.remains<=1.5
@@ -193,7 +186,6 @@ AddIcon help=offgcd mastery=1
{
if target.IsInterruptible() Spell(PUMMEL)
- if CheckBoxOn(multi) Spell(CLEAVE)
#/heroic_strike,if=((rage>=85&target.health_pct>=20)|buff.deadly_calm.up|buff.battle_trance.up|((buff.incite.up|buff.colossus_smash.up)&((rage>=50&target.health_pct>=20)|(rage>=75&target.health_pct<20))))
if {Mana(more 85) and TargetLifePercent(more 20)}
or BuffPresent(DEADLYCALM) or BuffPresent(BATTLETRANCE)
@@ -201,6 +193,16 @@ AddIcon help=offgcd mastery=1
Spell(HEROICSTRIKE)
}
+AddIcon help=aoe mastery=1 checkboxon=aoe
+{
+ #/sweeping_strikes,if=target.adds>0
+ Spell(SWEEPINGSTRIKES)
+ #/bladestorm,if=target.adds>0&!buff.deadly_calm.up&!buff.sweeping_strikes.up
+ if BuffExpires(SWEEPINGSTRIKES) and BuffExpires(DEADLYCALM) Spell(BLADESTORM)
+ if Stance(3) Spell(WHIRLWIND)
+ Spell(CLEAVE)
+}
+
AddIcon help=cd mastery=1
{
if {TargetLifePercent(more 20) and TargetDeadIn(more 320)} or TargetLifePercent(less 20)
@@ -217,14 +219,13 @@ AddIcon help=main mastery=2
if List(shout command) and {Mana(less 20) or BuffExpires(stamina 3)} Spell(COMMANDINGSHOUT nored=1)
if List(shout battle) and {Mana(less 20) or BuffExpires(strengthagility 3)} Spell(BATTLESHOUT nored=1)
if TargetClassification(worldboss) and CheckBoxOn(demo) and TargetDebuffExpires(lowerphysicaldamage 2) Spell(DEMOSHOUT nored=1)
- if TargetDebuffExpires(SUNDERARMORDEBUFF 3 stacks=3) and CheckBoxOn(sunder) and TargetDebuffExpires(lowerarmor 2 mine=0) Spell(SUNDERARMOR nored=1)
+ if TargetDebuffExpires(SUNDERARMORDEBUFF 3 stacks=2) and CheckBoxOn(sunder) and TargetDebuffExpires(lowerarmor 2 mine=0) Spell(SUNDERARMOR nored=1)
- #/whirlwind,if=target.adds>0
- if CheckBoxOn(multi) Spell(WHIRLWIND)
#/execute,if=buff.executioner_talent.remains<1.5
if BuffExpires(EXECUTIONER 1.5) and TargetLifePercent(less 20) Spell(EXECUTE)
#/colossus_smash
Spell(COLOSSUSSMASH)
+
#/execute,if=buff.executioner_talent.stack<5
if BuffExpires(EXECUTIONER 0 stacks=5) and TargetLifePercent(less 20) Spell(EXECUTE)
#/bloodthirst
@@ -260,14 +261,20 @@ AddIcon help=main mastery=2
AddIcon help=offgcd mastery=2
{
if target.IsInterruptible() Spell(PUMMEL)
- #/cleave,if=target.adds>0
- if CheckBoxOn(multi) Spell(CLEAVE)
#/heroic_strike,if=((rage>=85&target.health_pct>=20)|buff.battle_trance.up|((buff.incite.up|buff.colossus_smash.up)&((rage>=50&target.health_pct>=20)|(rage>=75&target.health_pct<20))))
if {Mana(more 84) and TargetLifePercent(more 20)} or BuffPresent(BATTLETRANCE) or
{{BuffPresent(INCITE) or TargetDebuffPresent(COLOSSUSSMASH mine=1)} and {{Mana(more 49) and TargetLifePercent(more 20)} or {Mana(more 74) and TargetLifePercent(less 20)}}}
Spell(HEROICSTRIKE)
}
+AddIcon help=aoe mastery=2 checkboxon=aoe
+{
+ #/whirlwind,if=target.adds>0
+ Spell(WHIRLWIND)
+ #/cleave,if=target.adds>0
+ Spell(CLEAVE)
+}
+
AddIcon help=cd mastery=2
{
#/recklessness
@@ -287,14 +294,8 @@ AddIcon help=main mastery=3
if List(shout battle) and {Mana(less 20) or BuffExpires(strengthagility 3)} Spell(BATTLESHOUT nored=1)
if LifePercent(less 75) and BuffPresent(VICTORIOUS) Spell(VICTORYRUSH usable=1)
- if CheckBoxOn(multi)
- {
- if TargetDebuffExpires(RENDDEBUFF mine=1) Spell(REND)
- Spell(THUNDERCLAP)
- Spell(SHOCKWAVE)
- Spell(REVENGE usable=1)
- }
- if CheckBoxOn(sunder) and CheckBoxOff(multi) and TargetDebuffExpires(SUNDERARMORDEBUFF 3 stacks=3) and TargetDebuffExpires(lowerarmor 2 mine=0) Spell(DEVASTATE)
+
+ if CheckBoxOn(sunder) and TargetDebuffExpires(SUNDERARMORDEBUFF 3 stacks=3) and TargetDebuffExpires(lowerarmor 2 mine=0) Spell(DEVASTATE)
if 1s before Spell(SHIELDSLAM) Spell(SHIELDSLAM usable=1)
@@ -319,10 +320,17 @@ AddIcon help=main mastery=3
AddIcon help=offgcd mastery=3
{
if target.IsInterruptible() Spell(PUMMEL)
- if CheckBoxOn(multi) and Mana(more 44) Spell(CLEAVE)
if Mana(more 44) Spell(HEROICSTRIKE)
}
+AddIcon help=aoe mastery=3 checkboxon=aoe
+{
+ if TargetDebuffExpires(RENDDEBUFF mine=1) Spell(REND)
+ Spell(THUNDERCLAP)
+ Spell(SHOCKWAVE)
+ Spell(CLEAVE)
+}
+
AddIcon help=cd mastery=3
{
if Stance(2)