I think I get what an Alias does - it protects the original...
So I began testing the script and made an exp fairy event to level up one of the techniques to see if
#1 would it gain experience points?
#2 would a second technique retain it's separate identity?
#3 would the technique gain a level, given enough experience points?
Well, what happened is #1 and #2 worked, and then #3 crashed on the following lines:
#====================================================================
# NEEDS HEAVY REVISION CF SKILL WINDOW
# Learn skill
for j in $data_classes[@class_id].learnings
if j.level == @level
learn_skill(j.skill_id)
end
end
end
#====================================================================
Which wasn't surprising at all, actually. So I took it out
And this is the resulting success:
Now the idea of having the "for i/j" thing was originally to allow people to have something like "black magic" final fantasy 4. So when you get to a certain technique level, you unlock a new spell, and again at a higher level, and so on, just like the actors do with their skill list. I haven't figured out how to set that up yet, but would presume it's a small table or array, that assigns a "level" to zero or more of your technique's skills.
Originally I thought this would only be useful for spells or "secret ninja techniques" etc., but I realize now throwing in some delayed flaws might also be interesting. For example, having some skills in your list simply act as placeholders for common events that inflict insanity, aging, or whatever, would be great for high powered Black Magic.
For now, it doesn't matter what the skills do, just that there's an optional "level attainment" list for them. I was thinking of exploiting some existing part of skills, like their element checkbox would be the fastest way to say "this skill/spell can have a level", or slightly more complex,
have three elements, like
.power x2 = level
.power x4 = level
.power x8 = level
or whatever. Then with that mechanism in place, I could actually create a "learn powerful spell early" option that would jack up the total skill multiplier.
So if something had a power of 20, and a multiplier of x2, it might be attainable at level 40, but you could have a "learn[skill_id] early" option that allows you to learn it at 20th level. I think the only problem is the complexity of the array. The simplest way to do it is to apply it to all skills, the second simplest is to have a single "skill", or a small list (like three), that reduce levels by something like 4,8, and 32 levels respectively, for a single chosen skill.
I do like the idea of 3 elements determining level attainment, but I'm pretty intimidated by the mess of being able to choose which skill is getting the discount, because it would look something like
game_actor[i].technique[a].skill[x]
game_actor[i].technique[a].skill[y][z]
Where x is the spell (like Meteo), y is the discount (like "learn 8 levels sooner"), and z refers back to Meteo.
Edit: maybe I can create an 8th category called "addendum" or "auxiliary" that's basically a junk array that after the computer checks existing skills, does additional calculations for certain skills and stores it. like which skills are discounted, what special trainers are needed, etc.