Quote:
Originally posted by Sungam
Any chance you could give a little more info about how the actual Trimods will end up? So that we'd know how to implement them in our games, if we wish?
Doesn't matter too much about the editor at this point, but some specifications and perhaps a sample file would be sheer awesomeness.
Hard to tell right now, since there's some small confusion. Hearing that vecna is implementing floats in the future, I know that you'll be able to utilize the trimod system with less hassle (no need to used fixed point from user side). I'm deciding on two possibilities.
Either that the trimods are saved with max values so that you can simply return something like this:
int Strength = 20;
int Dexterity = 20;
int Level = 3;
int tmStr = TrimodFunction__GetByName('AttrFastCurve');
int tmDex = TrimodFunction__GetByName('AttrSlowCurve');
void LevelUp()
{
level++;
Strength += TrimodFunction__GetValue(tmStr, Level);
Dexterity += TrimodFunction__GetValue(tmDex, Level);
}
There will also be a function like this:
int TrimodFunction__GetRange(int ID, int min, int max);
Basically GetValue works like a GetRange only that it automatically uses 'min' as level-1, and 'max' as level.
The strings forwarded in GetByName are names you give individual series. A serie with trimods is what you can see in one window at a time, a lot of trimods linked together. In the above example you'll get them easily by name, I'll be nice enough to throw in error support, if you write it wrong, it will exit and return an error saying you sought a serie that doesn't exist.
The second way it could work if I decide not to save max values is that you'll have to submit them. Like this.
int Strength = 20;
int MaxStrength = 255;
int Dexterity = 20;
int MaxDexterity = 255;
int Level = 3;
int MaxLevel = 100;
int tmStr = TrimodFunction__GetByName('FastCurve');
int tmDex = TrimodFunction__GetByName('SlowCurve');
void LevelUp()
{
level++;
Strength += TrimodFunction__GetValue(tmStr, Level,
MaxLevel, MaxStrength);
Dexterity += TrimodFunction__GetValue(tmDex, Level,
MaxLevel, MaxDexterity);
}
Why? Well, both X and Y are percentual, because you won't always have values ranging from 0 to 100. Therefore you'll have to supply MaxValues to tell what Y100 represents in the graph.
I'm pretty sure I'll implement the first version (where you set a MaxValue for X and Y in the editor for each serie), it means you'll perhaps have to make more series, but I think we can spare the place for the much cleaner functions.
With floats, I might implement zooming in the Trimod Editor, which would allow you to set graphs to points between 0.00 and 100.00 (i.e. being able to set a point to say 56.25 instead of just 56).
I hope this satisfies SOME of your curiosity. I'm still working out some plans as to how I'll work everything out. Ashamed I be, but I'm currently working on a good GUI. I want it to be comfortable to work in. DETAILS, MY SON. I love them details.