@Riot what is the simplest spell ever? As in, least amount of code required?
^ but excluding passives abilities, only active ones.
^ but excluding passives abilities, only active ones.
Tristana's Q. Literally, all it does is increase her attack speed, which is kind of insane given all the extra bonuses every other ADC gets with their steroids.
Would say Tristana Q too.
I don't know if you could count it cuz yeah it's an active, but it's basically like Kled's W (an active passive) where you decide when you can activate it. I'd say Raka's R. You take every champ in her team, health += base + x% raka's ap
Uh.... no, it's not like Kled's W at all, Kled can't control when he uses his W other than not auto attacking. Tristana chooses when to use her Q, it's an active used when she wants, not a passive.
They of course are different abilities, but they are both attack speed steroids. One procs when you attack something, the other procs when you hit Q.
That's kinda like Udyr having 4 activable passives, if you get my point.
Except Kled's W only does so for 4 attacks and has max health damage for the last one. They are not the same.
How do you take the logic of "raka R" over her W?
Dont do drugs kids.
cuz the ulty doesn't drain your hp aswell
Jax W probably.
Yeah, Empower just adds X magic damage to your next basic attack, and possibly resets the animation.
but it does interact with his Q and also will apply on-spell effects
True. Good point.
Potentially Karma R depending on if the interactions are coded into the QWE, or into the R
Like the coding could literally be (I don't know how to code so bear with the simple explanation) - also I imagine starting with a point in R isn't part of the ability code
on R press, R active for 8 seconds
Q code: Press Q, do blah if R active, do blah
In that instance her R would literally do nothing but be active..
w
lowers cd of Q and E doesnt require a designation of targetting (like a lot of peoples choice)
Its just on activate
Play fx "blabbity blah"
if Q cd > 0
then set cd 0
If E cd > 0
then set cd 0
set W cd X * (1-CDR multiplier)
done
set tristana as +35%
done
Movement speed has a soft cap though, so in terms of code it's probably more complicated than you would think.
How did you get movement speed out of that?
Was thinking zilean E.
My bad.
so it never wears off? It doesnt have a cd? also that isnt how an ability that modifies a stat works code wise...at all lol
I'm going with Azir's whole kit on this one
:^^^^^^^^^^^^^^^^^^^)
Tristana's Q seems to take the cake. Annie Q and Pantheon Q both have to be coded to start the throwing animation, play a sound on launch and on hit, summon a projectile, drain mana, reset/crit, make the projectile disappear on hit, and apply a passive stack (Edit: this could be coded onto their passive' maybe). Also, spells might need to be coded to be queued.
Tristana's Q just needs to be coded to play a sound, summon a particle effect, and increase attack speed, and put a buff on her bar (I think? I dont play Tristana.).
Edit: Jax's Empower seems like a likely candidate too, but probably isn't. The stack, could be passive coded and the Q interaction could be Q coded. Thing is, after its coded play a sound, summon a particle, and put a buff on the buff slot, it still needs to have it's damage converted to magic, use the crit animation, and probably has to be coded to reset auto attack timer.
Zyra w. Place minion type Z at location.
This lol. As a zyra main I didn't even think about it and it makes me sad
It also gives vision, can be stepped on to be destroyed, gives vision of who steps on it, and can only be stepped on after a second of being placed.
But are those considered code of the spell, or code of the special minion/pet it creates?
It's mostly semantics though, but could be argued either way with valid points either way.
's q
's q
That's connected to her passive though and it has the mechanic of refunding mana based on whether it kills a minion. Pantheon Q is much more simple since it is literally just damage.
It can crit depending on your health
[{quoted}](name=Akali is SO HOT,realm=NA,application-id=3ErqAdtq,discussion-id=coAEMY36,comment-id=000300000000,timestamp=2017-05-23T00:30:52.664+0000)
It can crit depending on your health
The Wiki just says it can crit, does it really have a chance to crit depending on health? I thought it just had a chance to crit based on the items and Runes Pantheon had.
It only and always crits when the target has <15% health.
It only and always crits when the target has <15% health.
Thanks for letting me know! I guess I'm wrong then, it's probably not the simplest ability in-game (though probably still close to it). What do you think about Tristana's Rapid Fire?
That is actually not part of Pantheon's Q at all.
It's part of his E's passive, which lets his auto-attacks and his Q crit a target at 15% or less hp.
edit: though coding wise, I guess it's probably still coded into the Q, and just rigged up to test if he has a point in E or not when it lands, which is a bit more complicated coding.
Pantheon Q would add a stack to his passive as well.
Jax Empower would add a stack to his passive, increasing AS.
But jax empower wouldn't actually stack his passive, his passive would stack as a result of him AAing, but empower can be cast without it. Due to the scalings on it vs trist Q as well as it acting as an AA reset (although we don't know whether aa resets are coded in or it has to be coded NOT to aa reset) I would say trist Q still seems simpler.
Pantheon Q would add a stack to his passive as well.
Jax Empower would add a stack to his passive, increasing AS.
Empower adding a stack on his passive is part of his passive, which is coded to proc on auto attacks, which Empower is not. Empower itself is just +magic damage + auto attack reset.
What counts as code for an ability?
It's pretty much certain that they're not hand coding every ability from scratch, and instead they're calling more general stuff (e.g. things for projectiles) that wasn't written specifically for that champion, so most of the heavy lifting codewise is done separate from the ability itself. If they're really on the ball with their coding, they can get writing abilities for a new champion to just a few lines of new code (or even a single line) in principle.
And are we only talking about the gameplay impacting code, or are we also looking at all the stuff involved with hooking up audio/animation/etc?
Is "Reallylongchampionname_q_ability(stuff)" more code than "champ#_q_ability(stuff)"?
(Riot has an engineering website which often has articles that discuss a lot of behind the scenes insights into how their code base works if you really want to dig into things.)
All that said, trist Q does seem like a reasonable contender, but basic skill shots might be 'simpler' if you consider the rapid fire buff that (that has a duration that the game needs to track) as part of the ability.
Basic skill shots might need distance to be coded in too which is the same thing. And if I'm wrong, who has the simplest skill shot?
If we want to remove distance as a factor, global ults (jinx/ashe/ezreal) come to mind. Ezreal is probably easier since it doesn't even stop on hitting a champion.
It sortof depends on some of the answers to what counts. If your ability applies a buff that doesn't previously exist in the game, do you then need to write code for that buff as part of the ability, or do you write the ability "apply_rapidfire_buff(rank)", then elsewhere actually code up the buff as something that exists independent of that ability?
Ashe W is sortof 9 simple projectiles in one. Veig Q is straight forward as well. Cait Q might also be easy. They all have some complications from their passives (or in caits case, w interaction) depending on if that stuff counts as part of those abilities, or if those complications are actually just part of the passive(/w).
Garen's W active. It just reduces incoming damage for a short time and the animation is quite plain.
That's my best guess.
but it also has to code the armor/mr minion stacking into effect
I think Soraka's w is most basic. It regains health to an ally. Thought of a complication: it has to be a champion. You cannot use it on minions or turrets?
You can make it more complicated with Windspeaker's Blessing.
Soraka's W has coding synergy with Q, so no.
Soraka's W has coding synergy with Q, so no.
It also has a health cost, so it has to have coding to make sure Soraka doesn't kill herself. I also don't know if the health cost itself is also another line of code. It probably is.
That could be done with a simple if statement I think. Not so hard.
The easiest ability might be a dash. "increase MS for a fraction of a second and play x animation"
I'm trying to think of if theres any dashes that are only dashes and don't have other effects. Lucian gets his double tap interaction which might complicate things (although one might argue that the passive is independent of his other abilities).
Ezreal blink? The fact that he can't be interrupted wasn't originally supposed to happen IIRC so it wouldn't have been coded in. That is easier than a dash, it is just change location based on mouse position.
Ez's E also fires a homing bolt to the nearest enemy though, so is a blink and also fires a homing projectile, the latter which seems like it'd complicate things somewhat (and also theres bound to be abilities that are only a projectile instead of projectile+blink, making those abilities strictly simpler).
Ah right, forgot about that.
Besides Tristana Q I would argue Nautilus W. Activate Shield and Particle effect.
He gets additional AoE damage as long as the shield is active too, though.