Closed Capruce closed 9 years ago
The champions system looks solid, aside from tests, that i didn't make already '-'.
There is no problem in mergin right away, unless it heavily broke something you don't know how to fix, but even this can be reverted anyway.
We just need to ensure to keep a general style guide, like a recent pointed out on wiki, it needs some reformatting to be a good read tho.
I'll also add that I've created a simple level scaling and auto-learn for innate skills, with simple specific KV.
Gonna edit right away on the wiki but basically
If you want to make a ability a innate, it should be place as Ability4 on the hero(using a AbilityLayout "5")
Then on the ability KV
"01"
{
"var_type" "FIELD_INTEGER"
"champion_passive" "1"
}
This will make the spell to auto learn as soon as the hero spawn, and not being upgraded by skill points.
if you want something to scale by level, like Leona innate, you need to add a AbilitySpecial on it's KV like:
"02"
{
"var_type" "FIELD_INTEGER" // or FIELD_FLOAT if needed
"level_scale" "1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9"
}
This is a direct 1:1 relationship,
So level of passive will be 2 in level 3 (third value of Level scale), and level 9 on levels 17 and 18 (17th and 18th index on level_scale)
ah the champion system already levels the passive at the start too although it uses slot 1 but that's easy to move. I think its cleaner to keep all that in one section.
I don't really get the point of the level scale? Couldn't you simply do integer division? Like the giant if else used on leona's passive could be replaced by a single line of integer division...
On Fri, Jul 24, 2015 at 10:59 PM, Victor Hugo Panisa < notifications@github.com> wrote:
The champions system looks solid, aside from tests, that i didn't do already '-'.
There is no problem in mergin right away, unless it heavily broke something you don't know how to fix, but even this can be reverted anyway.
We just need to ensure to keep a general style guide, like a recent pointed out on wiki https://github.com/coldAmphibian/Defense-of-the-Legends/wiki/style, it needs some reformatting to be a good read tho.
I'll also add that I've created a simple level scaling and auto-learn for innate skills, with simple specific KV.
Gonna edit right away on the wiki but basically
If you want to make a ability a innate, it should be place as Ability4 on the hero(using a AbilityLayout "5")
Then on the ability KV
"01" { "var_type" "FIELD_INTEGER" "champion_passive" "1" }
This will make the spell to auto learn as soon as the hero spawn, and not being upgraded by skill points.
if you want something to scale by level, like Leona innate, you need to add a AbilitySpecial on it's KV like:
"02" { "var_type" "FIELD_INTEGER" // or FIELD_FLOAT if needed "level_scale" "1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9"
}
This is a direct 1:1 relationship,
So level of passive will be 2 in level 3 (third value of Level scale), and level 9 on levels 17 and 18 (17th and 18th index on level_scale)
— Reply to this email directly or view it on GitHub https://github.com/coldAmphibian/Defense-of-the-Legends/pull/29#issuecomment-124739561 .
I didn't finished the lua part tho, i just added the this special value kv, so it gets levels auto, without huge lua scripts, that lua file with many if/else, yeah i'll rewrite it, i'm finishing another personal project grad-related T.T
Lol sorry about that. That's my noob programming skills in full effect right there, I wasn't aware you could do that wide of an AbilitySpecial range
You suggestion for a simple integer division on lua must take in account in a dotaxlol crossover or another weird stuff, the heroes will more than lvl 18 and this can break stuff.
on my kv approach, if there isn't a value nothing happens. so leona can get to lvl 19. 20 21, without breaking her innate
No problem Zarth. Actually is good this kind of thing happens, so we can make more simple and wider approachs. Just keep tracking of commits, and see how things can be redone, like the sunlight modifier i've removed for e.g
As in Leona, base_damage + (current_level / block_size * damage_per_block)
i.e. for leona 5 + (current_level / 2 * 15) = the damage at that level. Why would you assume to reach beyond level 18 if that's the max level? It wouldn't break if you went beyond 18 either it would follow the trend, which is what I would assume would happen if you push past the max level (i.e abilities level with you)
Doesn't really matter anyway everyone approaches things differently. I'm sure the level ability specials can be included.
I understand from where you are coming from. The problem with this, is that you make everything related with the innate stuck with your math formula, if the formula changes, or gets re-balanced in Riot's LoL, you'll need to change everything again.
If you keep things reference by things like ability:GetSpecialLevel(), ability:GetLevel, ability:GetDamage, and stuff, and make the plain values set on KV, this makes the only place to change the current KV for the ability, making easy to track current/future bugs, and change behaviors or rescale.
Like i said on a possible crossover, when valve adds support to add new heroes instead of overriding current ones, there is no point no capping dota heroes on lvl 18, it's more reasnoable to up the cap for lol to 25.
this would make the need to check in any hard coded place a check, if the level is above 18, or make smth at addon level like a Convar, "IsCrossover", making things unnecessary complicated.
I never meant that my approach wouldn't use ability specials either, but as I said, everyone has their own approaches. I'm not working on this specific hero, was just merely suggesting one of many methods to take. It seems you're all set on this one and so it shall be.
On another note I think one of Sona's abilities has some missing character somewhere, any ability after sona seems to not work correctly. Currently trying to find where the problem is.
EDIT: Scratch that it seems it's Mundo.
Sorry if I'm misunderstanding you, but KV can't take arithmetical expressions. I'm confused xD
Dw about it. I will mention though that if we want to take into account AP + AD multipliers on abilities, they will have to apply damage through lua. I've proposed a way to do this as shown with lux. The ability has a "ap_scaling" ability special (just for readability) and then use the function from the champion.lua to get the champion's ap and multiply it by the the scaling factor giving the final damage to apply. Feel free to suggest a different method
Yeap, i thought the same thing. This looks to be the best approach tbh
EDIT: Also valves makes this too, looks at rpg_example ability "juggernaut slash", it have AD scaling
Oh crap also ignore my use of self = {} in my files. I will be moving away from that. It's not clean since it's shared through every single version of the ability on any unit/team (something I didn't realise at the time)
Not sure if this is a great place to discuss this, but what will we do about armor? I have been using the divide by 6 rule from the unit conversion page but this leaves people like taric who get bonus damage based on armor in the dust. Should I multiply the armor by 6 when damage is being calculated or something else.
In addition to that dota does not have armor per level (and magic resist either), im not so comfortable with gamemode programming so im not sure how to implement something like that on heroes.
Stuff like that can be added to the champion stuff and add it to the modifier so levels take care of themselves like they do now. I haven't touched them though because I haven't compared the maths of one system to the other.
On Sat, Jul 25, 2015 at 12:04 AM, Zarthbenn notifications@github.com wrote:
Not sure if this is a great place to discuss this, but what will we do about armor? I have been using the divide by 6 rule from the unit conversion page but this leaves people like taric who get bonus damage based on armor in the dust. Should I multiply the armor by 6 when damage is being calculated or something else.
In addition to that dota does not have armor per level (and magic resist either), im not so comfortable with gamemode programming so im not sure how to implement something like that on heroes.
— Reply to this email directly or view it on GitHub https://github.com/coldAmphibian/Defense-of-the-Legends/pull/29#issuecomment-124759472 .
This is a very though detail, I'm not exactly sure about how we should proceed with this. Armor at least have value points, an can be "added per lvl" with modifiers like Capruce said, but MR don't have points in Dota, so we'll probably ending done our formula for this, like "xxx%" = y points of MR in Dota.Lol
Something unrelated @Capruce what happened to veigar/kassadin? I remember you had a commit ready to merge but something didnt allow it and it was forgotten. It looked pretty done. Also are you going to do the models/animations yourself or not (I ask since I have been on kinda a import roll recently)
Hahah speaking of that I'm literally committing them as we speak, they're both done. If you want to import them I won't stop you. I don't mind importing them either would be good experience to do one.
On Sat, Jul 25, 2015 at 12:17 AM, Zarthbenn notifications@github.com wrote:
Something unrelated @Capruce https://github.com/Capruce what happened to veigar/kassadin? I remember you had a commit ready to merge but something didnt allow it and it was forgotten. It looked pretty done. Also are you going to do the models/animations yourself or not (I ask since I have been on kinda a import roll recently)
— Reply to this email directly or view it on GitHub https://github.com/coldAmphibian/Defense-of-the-Legends/pull/29#issuecomment-124762810 .
Nah by all means, its good learning experience. We wrote a small tut here:
https://www.reddit.com/r/DefenseoftheLegends/wiki/importing_lol_models
If any questions ask me or CA (swordzz also did one)
…otw.
Hopefully I don't f this all up hooray for source control with back peddling.
Also I'm doing it this way because I can't find a way to just push it. fml.