Thursday, October 30, 2014

Soylent Update - 2 Days Later

I've gone through most of the pitcher from the video I made, and I wanted to update my findings a bit.

I've been replacing about 1.5 meals a day with Soylent. I'll do a small bit for breakfast at 10 AM (maybe 300 calories worth), grab a smaller than normal lunch of actual food around 1 PM, then have a bigger portion in the mid-afternoon at around 4 or 5 PM (probably in the range of 600 calories or so), and finally have a smaller than normal dinner of actual food around 8 or 9 PM, which admittedly is late for me.

I haven't seen any of the gut-churning, room clearing gas that previous Soylent 1.0 customers seemed to complain about. In fact, as TMI as this may be, my bowels have never felt better to be perfectly honest, though given it's only been two days might be too early to proclaim victory. But the upside is that I am eating less junk. Because I eat out less, my soda intake has also gone down, which may also have something to do with a happier gut.

The taste definitely got better after it had been refrigerated for about 24 hours. It actually tasted quite neutral and I could drink it pretty well without grimacing or looking askance at the glass afterwards. The grittiness seemed to go away as well, though I wonder if I just didn't shake it enough originally. It would still be nice to have some sort of fruit mixer for it, but I don't think it's strictly necessary anymore.

After drinking breakfast or second lunch/first dinner (hobbitses), there was a definite feeling of satiety. I didn't feel hungry at all, and I could tell much more easily when to stop eating than I can with solid foods. That might be a byproduct of the eating because I have to rather than eating because it tastes good, but it has helped me to just eat less overall, as well. Given that most of my excess weight comes from eating too much crappy food, I can only think of this as a plus in my mind.

Overall, I'm actually rather impressed. I'm going to keep going through the Soylent at the rate at which I have been until I run out (so likely about 2 weeks), and we'll see how things are from there.
#FirstImpression, #Food

Wednesday, October 29, 2014

Soylent Unboxing/Preparing/Consuming (With Video)

So waaaay back in May I ordered myself some Soylent--a meal replacement created by Robert Rhinehart, and eventually Kickstarted to victory. Well, it's not really a meal replacement. Soylent is classified by the FDA as food, and has been nutritionally analyzed:


The idea behind it is that some people don't have time to cook, or the inclination. For myself, it's a combination of not having the willpower to bother, and the fact that eating for one is difficult without having oodles of leftovers. Most grocery stores are designed around families, and it costs me a disproportionate amount of money for food that often goes to waste. Basically, I'd rather try this stuff than eat out all the time, because it's likely more healthy than fast food.

I made a video of me unboxing, making, and then trying the Soylent. The entire video is embedded below, or if you want links to each specific section, find them underneath the video.



Unboxing the Soylent
Preparing the Soylent
Consuming the Soylent

So overall it was a bit gritty and bland, not fantastic, but not terrible, either. Would be much, much better with something for flavour, like strawberries or banana. I'll have to invest in a food processor and give that a whirl. But it definitely has promise. I'll be eating the rest of that jug, as well as making more later. But as far as healthy calories for my dollar, it's hard to beat about $4 per meal for a single person living in an expensive city, and it'll definitely make for good emergency rations, too.
#FirstImpression, #Food

Friday, October 24, 2014

[IndieDev] I Choose You! Threat and Other Artificial Intelligence Criteria

Making enemies look somewhat intelligent has always been a difficult problem in video games. When you as a player decide what you want to do, you're taking into account a massive amount of data, distilling it down (often subconsciously), then making the decision from there

Things you might take into account are how much ammo you have, which enemy is the most dangerous, which enemy is healing others, which enemies have the biggest impact of health to damage so you can take out smaller enemies first, dodging attacks, buffing allies, using special abilities, hitting levers and other level-specific objects, and so on.

It's no wonder that creating an AI is difficult, and not only that, but different enemies may have different priorities and abilities! The slow-but-sturdy enemy isn't going to try and sneak by you to flank you, whereas the rocket launcher mob isn't going to run into melee.

When you look at a game like WoW, the grand majority of AI is relatively simple. Based on a stat called aggro, you decide who you're going to attack. Then, based on your abilities, you choose an ability. Melee? Run up and hit them. Caster? Stay back and cast (some enemies will even run away a bit and cast). Use your most powerful ability that isn't on cooldown. Bosses often have complex choreography which are basically scripted patterns rather than any sort of intelligent decision making, which makes many bosses in MMOs more of a puzzle rather than a dynamic fight.

The Heigan Dance is the ultimate example of an extremely scripted battle.
I enjoyed it, but intelligent behaviour it was not.
Source: http://s72.photobucket.com/user/kirsehn/media/heigan.gif.html
But when players can blatantly manipulate enemies--which the aggro/threat concept generally allows them to do--enemies feel less like they're smart and you're not fighting for your life, you're actually composing a battlefield. Playing Combat Tetris, essentially. I'm not saying that's bad--I love the boss fights in most MMOs; I also love Tetris. Puzzle games are one of my favourite genres, and we're basically solving and executing a group puzzle when we're raiding.

However, the beauty in a game like D&D or in PvP is that there is actual intelligence on the other side of the playing field. A DM who's coordinating the enemy party, or the other arena team who have their own goals, strategies, ideas, and human nature.

So, how do you make enemies smarter? By making them take more criteria into account, and by giving them more options. This isn't easy, or cheap in developer time, though.

Threat is a popular mechanic because it's easy to implement, and (relatively) clear to communicate. Players perform actions, they generate threat. Whoever has the most threat, or passes some threshold, now has the enemy's attention. Some players can generate threat at an accelerated rate (tanks, usually) to hold the monsters' attention. Maybe in one game, healing generates four times as much threat as damage, so the healer is constantly in danger of getting attacked. It's basically a calculated heuristic to emulate in D&D when your Ranger crits the boss, the boss is going to turn around and deal with them because they're currently the biggest threat.

But what are some other criteria we could use?

Proximity is one that could be used. Some enemies are just fodder, and used to hold the front line, so they'll go engage the closest player. Maybe you want to have a rogue NPC skulk around the outside of the battlefield, so they'll choose the furthest player. Or if a player starts casting spells, perhaps you want your archer enemies to focus on them first. Or you have a dual-wielder who goes after whichever player has the weakest armor so they can do the most damage.

In WoW, some of my favourite fights were ones that eschewed the traditional threat mechanic. Take the Faction Champions in Trial of the Crusader, who usually targeted whoever was at the lowest percentage health; or Garalon in Heart of Fear, who chased whoever was affected by the Pheremones debuff.

Garalon, also known as the PUG breaker. Hell, he was a raid breaker before he got nerfed.
Source: http://i.imgur.com/c31SA.jpg
And if you're really clever, you can find a way to weight the criteria together. Closest spellcaster? Or choose someone at a weighted random based on defense and threat. Once you start putting these things together in a way that makes sense mathematically, you can build pretty specific behaviours quite easily that look smart; like your enemies are actually thinking about who they should attack. Because they're doing exactly that!

It's not just targeting who, though, it's also about what powers you want to use. Given a list of powers, it's easy to say, well, pick the most powerful one that's not on cooldown. Basically, a priority queue not unlike most DPS classes in WoW today. But maybe they also have a power that's a stun, and they want to turn and stun the person on their back before turning around and beating on their target. You could build a feedback loop between target selection and power availability to help make something that really has a good idea about the best thing it can do.

Which all leads back to the player, who needs some way to counter that thought. Aggro and threat in most MMOs are simple, because combat is simple. Players and enemies can walk through each other; throwing down impediments to movement exist, but outright barriers often do not. Thinking back to the Warhammer MMO, where tanks were tanks because they literally blocked enemies from passing. 

This sort of thing allowed for more complex behaviour, because if the enemy can just choose the one in the dress and walk through everyone to get there unimpeded, you either need to be able to kill the enemy before they arrive, block the enemy, or grab its attention (or, I suppose, make yourself untargetable either via invulnerability or invisibility or the like). Otherwise the player will feel that the enemy is being unfair. Taunting enemies gives players the ability to have some control over the battlefield when other game mechanics cannot.

When you can't influence the battlefield as a party and the enemy is coming straight at the healer.
AI design is inherently a loop between game mechanic design and ability design, on top of actually building the criteria weighting. But while you can make a super smart AI, you also need to ensure the game mechanics allow the AI to be "fair" with respect to the players. It's fun to have smart opponents. It's not fun to have smart opponents who don't take into account your own actions. NPCs should be intelligent, but players still need to be able to influence the battlefield somehow, or you'll end up with bored and frustrated players.

Arguably--and most MMO games would likely agree with me given their own designs--player agency is more important than super smart AI. But if you can grant players agency, having the enemies also able to use those mechanics makes for really interesting combat.
#IndieDev, #GameDesign

Sunday, October 19, 2014

[WoW] Just How Much Damage Could a Backdoor in an Addon Do?

Recently it was made known that ElvUI--a very popular UI addon suite--had in it something known as a "backdoor". A large number of people have been pooh-poohing folks over being concerned over this capability: The authors never intended to use it maliciously (for various definitions of malicious), and the code was whitelisted to only specific developers. I want to talk about how the developer's intentions don't matter and how much damage such a backdoor could possibly do to your character.

What is a backdoor?
A backdoor is something that allows someone, sometimes a developer, to issue commands to retrieve information from or execute commands on a client machine. Backdoors are generally malicious, though occasionally a backdoor created for debugging purposes will escape into the wild because the developers forgot to remove it.


Does ElvUI still have this backdoor?
Not as of October 19th, 2014. In ElvUI's case, the backdoor was removed once they were called out on it, but it had existed in the code for almost two years before anyone who cared and were capable of understanding the code apparently noticed. Version 7.0.8 is when it was taken out. ElvUI Shadow and Light took their version out a couple days after. I have not looked into other possible variants of ElvUI.

What could this backdoor do?
As per the image below, ElvUI's backdoor allowed the developers (or anyone who could hijack the addon) to execute any LUA code they wanted in your WoW session. Basically, anything an addon could do, the developer could send a message to your WoW client running this addon to execute, even though the addon had otherwise known/solidifed capabilities. It literally took a message sent by someone, checked if it was the developer, converted it into code at runtime, and executed it, as per the second blue code block below:

Source: http://i.imgur.com/WYVJplW.png; loadstring is a LUA API that takes a string and compiles it, labeling the method as func. Later that block the code is run (func()).
This weekend I decided this was an interesting enough problem and sat down, learned LUA, and built an addon that emulated just the ElvUI backdoor. I won't be releasing the code (unless Blizzard wants it), but the fact that I threw this together in about 7 hours of work (including building attack strings) knowing little to nothing about addon development, frankly it would be trivial to reproduce.

However, I did make a video showing some of the capabilities.



So, to recap, to be potentially affected if someone had a backdoor like the one ElvUI had, you need only be on the same server, raid, or coalesced zone (something that would allow addons to communicate "cross-server"). There's no requirement to be in the same guild, nor the same raid, or the same continent even.

Some of the things that could be done includes, but is not limited to:
  • Dismounting you
  • Disabling your addons on next UI reload (the attacker needs to know the name of the addon)
  • Adding or removing people from your in-game friends list, or ignore list
  • Toggle your At-War factions to make them hostile to you
  • Deleting your macros
  • Creating/Editing macros and binding them to whatever key the attacker wants
  • Forcing you to leave your party (including LFR/LFD, incurring the deserter debuff)
  • Deleting your equipped gear
  • Grabbing your friend data, including Battle.net tags and associated character
  • Force your WoW client to quit with no confirmation
There's plenty of other functionality that's theoretically possible, but I didn't get around to trying/testing because of the effort involved, but frankly that above list should be sufficient. 

Things that also potentially include (where I think theory is sound but I haven't checked it): kicking characters from guilds; disbanding guilds; forcing other parties to open a trade window, put something in it, and accept; Mail gold away at an open mailbox (to your server only); getting your battle.net tag.

I'm sure there's more, but I'll admit that my imagination is sometimes lacking.

Well, someone else told me that it could only do chat commands, so it can't be that bad.
Actually, one of the chat commands you can execute is /script, which--surprise!--lets you run arbitrary LUA code. So even if it could only cause you to perform chat commands--which is incorrect--it doesn't matter, because we're back to square one of someone using the backdoor to execute arbitrary LUA code on your machine.

I trust Elv, he never used it for anything malicious!
There are reports (unsubstantiated but numerous) of events where folks in a raid would /follow one of the devs, or start posting things in chat like, "this is elv". Besides the creep factor of your character moving under someone else's control, even briefly, or the implications of impersonation (imagine if the author had made you say things blatantly offensive, or a bannable offense), different people have different definitions of "malicious" when it comes to character control.

However, even if you trust the authors, if there was a bug in that whitelisting code, someone else could hijack the addon and execute whatever they like. Turns out the code has exactly such a bug.


Notice that the whitelist contains the server and author, but notice that it does NOT mention what continent. So if the authors are from the North America servers, someone could create characters with the same name on EU servers and hijack the code. Or if they're EU, vice versa.

The authors could also end up renaming their characters, moving to another server, deleting their characters, etc. and if someone else grabbed those names on those servers, they could also hijack the addon capability. They could also get hacked, and have their account no longer under their control.

The important thing here is that even if you trust the author, the fact the capability exists at all is potentially harmful.

It was put in as a developer tool, it's important for them to get debugging information.
If you want things like telemetry, or the ability to execute specific commands, you should build that code specifically rather than taking what is at best the lazy way out and just opening a giant hole in your program. You should also let the folks installing your product know what capabilities like that exist so they can make an informed decision about whether to install your addon.

Remote arbitrary code execution is the BIGGEST security bug a piece of software could ever have, and to deliberately code it into your addon is extremely irresponsible, if not outright unethical. Granted, in the sandboxed environment that makes up WoW, it's certainly a lot less dangerous than ones you typically hear about. You can't lose your account (though you could potentially end up communicating your BNet tag), and they can't just throw out gold (but they can throw out equipment!). There's a snowball's chance in hell that it could end up breaking out of WoW's addon sandbox--but I'll never say impossible. There are many, many people out there who are far more clever at this than I am.

But any addon could do this!
This is technically true, which is why only installing things that you trust is important. Ostensibly, if you installed ElvUI, you trusted the authors previously. For some folks, the fact that they put in an undisclosed backdoor that allows them to do what they please (and potentially others if they hijack the addon or their character) is the breaking point for their trust.

Responsible developers don't open giant holes on your machine. Addons are software; no different than installing an app on your iPad or a program on your PC. Once you've installed that software, you have to trust that it won't do things like gather and report out valuable information, or screw with your settings.

But the important distinction here is that the backdoor that was in ElvUI could be hijacked by another party to do whatever that party likes within the addon environment. Your trust in the authors of ElvUI becomes immaterial at that point.



I'll be honest, I build my own UI generally by cobbling together addons instead of using addon packs like ElvUI, so the only horse I have in this race is developer integrity. But frankly, as a professional software developer this backdoor absolutely appalls me, and the completely cavalier attitude the authors have around this event scares me. If anyone on my software projects ever created such a backdoor in a released-to-public product intentionally I would fire them so fast their head would spin.

If you still don't think this is a big deal after all of this, well, I'll probably never convince you unless someone actually exercised this functionality on you. But hey, it's your characters and your own risk assessment.
#WoW, #Security

Wednesday, October 15, 2014

[WoW] The Redonkulous Healing Environment at Level 90

I just ran a (new) Heroic Siege of Orgrimmar raid with my guild this evening (11 of us), and I have to say, the healing environment still feels a lot like 5.4 did. Actually, Hamlet of ye olde Elitist Jerks put it better than I: right now healing is more 5.4ish than even 5.4 was. Infinite mana, spamming AoE heals, nothing stopping you as a healer but your raw throughput. 

 
My Holy Paladin has no Spirit outside a couple gems and an enchant, and yet only on a single fight (Malkorok) did I ever actually run OOM. And that was because I was spamming Holy Shock-Holy Radiance-Holy Radiance-Light of Dawn (Eternal Flame-spec'd no less) effectively non-stop the entire combat.

But I still couldn't keep up with our Disc priest, who was nearly only casting Holy Nova and Power Word: Shield pretty well over and over and over again. And absorbs are as powerful as ever, making up more than 70% of our Disc priest's healing and 40% of my (Holy paladin) healing done.

Iron Juggernaut Discipline Priest Spell Usage

But as someone who's run a fair number of dungeons on the Beta, right now is not indicative whatsoever of what you'll see at level 100. Seriously, not even close.

Actually, if you wanted to see something far closer to what Beta was like, you would have had to have run the leveling dungeons between 85 - 90. I've been duo-ing them with my boyfriend (him as Holy Paladin, myself as Bear Tank), and holy crap they were amazing! But you pretty much needed to be at Challenge Mode levels of competence to not be a complete pancake, which is, frankly, silly for leveling dungeons. At least, they were as of October 14th. the issue was worse at below level 40, when most tanks don't even have Active Mitigation yet. 


Sadly/Happily, they've been fixed. Not quite the cakewalk it used to be, but definitely not Challenge Mode hard anymore. Still, the leveling dungeons provide a preview that cleaves closer to the 100 experience than content at 90 does now.

So, anyways, healing right now is about as hard/easy as it was before the patch in a raid environment, and totally not indicative of what we'll see come level 100, for better or worse.
#WoW, #Healing

Monday, October 13, 2014

[WoW] Challenge Modes: The Race to the Finish

With 6.0 imminent, many, many folks decided that, oh crap, I need to finish Challenge Modes before they go away! Frankly, I wasn't really any different there myself. One of those things where you need to organize a group of people, and the rewards are all cosmetic, so it wasn't until there was nothing else to do and the fact that they were going away that people started really digging into them.

Now, for anyone who is currently struggling to get them done, I feel badly but at the same time we did have literally two years to accomplish them, so I'm not really that sympathetic to folks saying they didn't have time. I am sympathetic, however, to folks who couldn't throw together a group of people. Sure you need fewer than a raid, but Challenge Modes are, well, challenging, and you can't just outgear them. If you're stuck with friends who are sub-par players, you might well just be hosed unless you find other people.

For our group, we ended up only going for silvers, because we were pretty much only super interested in the mounts. All in all, I admit, it was a complete blast doing that content at the difficulty level it was intended to be completed at. Our comp was Frost Mage, Enhancement Shaman, Unholy DK, Protection Warrior, and Disc Priest; we used all of our many tools at our disposal. Defensive cooldowns, chain group stuns between Ring of Frost, Remorseless Winter, Capacitor Totem, and Shockwave, massive amounts of off-healing from myself, along with healer DPS. Picking and choosing specific talents and glyphs that we'd never normally pick. It was the perfect example of how difficult WoW can be, if you do the optional content.

Random really late pro-tip: if you're running Enhancement, you can bring all five players from about 20% to full health on a large group of mobs if you already have a bunch of Flame Shocks up by using Ancestral Guidance->Fire Nova. One of my favourite tricks when we were struggling with healing large groups of mobs.

We ended up getting all 9 silvers in 4.5 hours. We actually even one-shot gold Scholomance, which was a pleasant surprise. Siege and Brewery we were within 44 and 23 seconds of gold, respectively. Most of these we one-shot, or in a couple cases with a false start, two-shot. The worst three for us were Stormstout Brewery, Scarlet Monastery, and Siege.

Not too shabby for most of us never having walked into CMs before.
The brewery was our second one, and we were still coming to terms with some of the mechanics that previously in normal/heroic modes we could ignore. Especially the boss' self-healing. Got to the end and had to reboot that one. The practice helped our time get really close to gold though.

Siege, those bombs, ugh. Seriously, the beginning of that dungeon is nasty. The rest was relatively easy, however.

And Scarlet Monastery, so many inadvertent pulls, face pulls, a couple of wipes. It was our last one to do, and definitely the hardest in my opinion. I've heard people say Mogu'shan Palace is the hardest, but ehhhh, I dunno about that.

Overall, having competent players in all roles is a must. All five of us are in the same raid, so we're already pretty in sync with each other in terms of play style, personality, and our classes. It also helps that our tank had done them before; having a guide probably shaved off a good 4 or 5 hours worth of attempts. So while we got silver quite handily, I wouldn't say they were easy. Quite the contrary, they were difficult, and we had to play at our relative best to nail them as quickly as we could.

With the WoW populace finally getting exposed to Challenge Modes, I'm happy that Blizzard didn't look at participation previously and axe them for WoD. I know we came out thinking they were a blast, and will quite probably end up doing them earlier next expansion instead of waiting until the last minute. I'd bet there's a number of other folks in the same situation/mindset. Having that extra challenging content is wonderful, and frankly, even though we had to effectively be bribed to try them with the Phoenix mounts, I'd be totally willing to run them regardless.

So, to Blizzard: Challenge Modes, awesome and thanks!

#WoW, #Challenge

Thursday, October 9, 2014

[WoW] Holy Paladin Changes for 6.0

Keeping this as short and sweet as I can, here's a quick set of things you need to know for Holy Paladins in 6.0. Note that this doesn't include full changes in Warlords, just info for level 90. We have a slightly ridiculous number of changes, so even the short version of this is pretty long. If you're just interested in high level playstyle changes, check out the Conclusion section at the bottom.

Stat Changes
  • Item Squish is in. All your numbers are going to go down. Don't panic!
  • Intellect no longer increases your Crit with spells.
  • Sanctified Light was added, increasing the amount of Crit we get from things like gear and buffs by 5% (so if you'd normally get 100 crit rating from a piece of gear, Holy Paladins get 105).
  • There are no more Haste breakpoints. If you like Haste, stack it without worrying about your HoT ticks.
  • Spirit should be a lot more powerful, but you should need a lot less of it. However, this is not as apparent at level 90 and kicks in much more at 100.
  • Health with respect to healing throughput should be much higher, so people will be at less than 100% health more often. Your heals, however, will also do a much smaller percentage of your target's health. This should be okay! Admittedly I am unsure as to how much SoO changes with this.

Ability Removals

Talent Changes
  • Eternal Flame once again procs our Mastery, but the length of the HoT is now proportional to Holy Power spent, up to 30 seconds for 3 Holy Power. So no more spamming small HoTs everywhere; it's just not efficient.
  • Stay of Execution is a bit more powerful and the burst of healing is now at the beginning rather than at the end, making it easier to use.
  • Selfless Healer no longer affects Holy Radiance, and Judgment doesn't generate Holy Power. However, it buffs Flash of Light (now our primary throughput spell) a fair bit more than it did previously, by nearly twice as much.
 Ability Changes
  • Holy Light is our "efficient" heal, whereas Flash of Light is our throughput heal. They actually heal for identical amounts, but Flash is 66.7% faster to cast.
  • Avenging Wrath is now the mother of all throughput cooldowns, boosting healing by 100%, and Haste, Crit, and damage by 20%.
  • Beacon of Light now transfers multistrikes (of which for now the only thing that this affects are the multistrike SoO trinkets). Casting spells directly on the Beacon no longer generates Holy Power; however, casting Holy Light or Flash of Light on the Beacon will refund 40% of the mana cost, making direct Beacon healing extremely efficient. It also now has a small mana cost to keep people from macroing the ability to every spell cast.
  • Our area heals, like Daybreak and Holy Radiance, now only affect up to 6 injured targets instead of all targets in the area. (Note Light of Dawn always had this effect).
  • Holy Shock has twice the chance to Crit, rather than having a static +25%. This should help make Crit more attractive.
  • Mastery: Illuminated Healing is now applied by multistrikes (for now, only the SoO trinkets, same with Beacon).
  • Denounce now has a 40 yard range, up from 30. (hooray!)
  • All healers had most of their instant cast heals gain a 1.5 second cast time. For Paladins, Word of Glory, Eternal Flame, and Light of Dawn all have a cast time now, leaving us with only Holy Shock which is still instant.
  • Redemption no longer costs excruciatingly large amounts of mana.
  • Seal of Insight no longer increases our spell haste by 10%. Instead, that was rolled into Infusion of Light, a baseline Holy passive (and increases all Haste instead of just spell). This means if you want to do less healing but more damage, you can switch your seal without losing the haste, just 5% healing.
  Glyph Changes

Not listing every glyph change. Many of them are just numbers tweaks. But here's the major playstyle-altering changes.
  • Glyph of Divine Wrath now reduces mana costs by 25% while Avenging Wrath is active, but halves the healing bonus of the cooldown.
  • Glyph of Cleanse now grants Cleanse 2 charges, but increases the cooldown to 12 seconds.

Conclusion

Overall, the biggest changes to our playstyle is a much slower generation of Holy Power, and a lot less mobility with Holy Shock and our 90 talents being the only instant cast heals we have left. With less holy power, it makes Eternal Flame much less attractive, so I expect that whole tier to balance out a bit with all of them being viable choices.

With Divine Light gone, get used to using Flash of Light as our throughput heal. Note that unless you have stacks of Selfless Healer banked, Word of Glory at 2 Holy Power is still significantly stronger than a Flash of Light/Holy Light (and at 3 HP is a full 150% more powerful in a single cast).

Holy Radiance should be harder to spam, and only really worth casting if it'll hit two or more injured players, whereas today on live I use it almost exclusively over Divine Light because it hits nearly as hard on the tank after Beacon transfer is taken into account.

I'm not sure if at level 90 we'll see players sitting at less than 100% health much, but if that's the case, we should see Crit become a bit more valuable than it has been in the past, and it should also naturally make our Mastery a little less potent, because throughput will be a bit more important than bubbles.

I raid on Wednesday after the patch, so we'll see how this plays out in practice. I imagine SoO has been nerfed through the floor in anticipation of these changes, so I wouldn't panic about current content.

#WoW, #WarlordsOfDraenor