So I'm trying to develop a leveling system that works based on a unit's Base stats (Damage, Armor, Life, Non-Attributes, etc...) A unit at Level 1 would only have a fraction of its Base stats. If the unit gains enough levels, it will have 100% of its Base stats, and by Level 20, it would have about 160% of its Base. The only way this seems possible for me is to do the math and give the unit only a fraction of the stats to begin with. What I want to do is set a unit's Base stats, and start off with a percentage of that.
(e.g. Level 1 (60% Base Damage, 60% Base Life), Level 5 (95% Base Damage, 95% Base Life), Level 13 (120% Base Damage, 120% Base Life))
Is this possible to do something like this? Or will I have to set the unit's Base stats at a fraction to begin with?
Also, is it possible for levels to influence an Attribute without adding to the attribute itself? (e.g. Endurance Attribute becoming more effective with every level, instead of adding Endurance +1 to each level)
I'm sorry if my question is long, but I want to find more efficient ways to my ideas instead of having to rewrite everything. Thank you in advance.
I believe all of this is possible the first part having a unit at a base of its stats would probably best be done through a combination of triggers/validators and Upgrades. Upgrades for applying the fractional increases to the heroes stats and then triggers/validators so that the unit would never go over that amount while its under its maximum stats IE if you had 60 of 100 life and you used a healing potion or someone tried to heal you so that if 60 was the units current max it wouldn't go above that until he had leveled. As for increasing the effectiveness of a stat, there is a work-around you could try to employ, and this is literally pure theory I haven't ever tried it, but based on my knowledge of the data editor it should be possible. There is no way to directly affect the effectiveness of an attribute since it's just really a permanent buff. However you could make several different version of the same attribute each one that is more effective in how it modifies your hero. For Example say that 1 Base Agility Stat point increases your heroes attack speed by .05, then 1 point of an Advanced Agility stat increases your heroes attack speed by .10 Now in the editor your could name both stats the same thing "Agility" and as long as the ID was different. Personally I would also attach a Prefix or Suffix to them so you could tell the difference when you are working on the map. Finally you could swap them on and off of the hero as you saw fit via Triggers and your player would be none the wiser.
My advice is when you look at doing anything in the editor, especially the data editor, don't ask the question "how do I make this happen?" The question you should ask is: "How do I make it look like this is happening?"
BTW interesting concept of making stats more effective, wish I had thought of that.
@alderis: Go
I really must thank you for the information and advice. It is very informative and useful. However, it's having a hard time fitting within the confines of my current project unless you could help me understand further. As of right now, I'm trying to create the core gameplay as a module, instead of making an actual map. The reason behind this is so the mechanics could be applied easily to any map in the future without having to compromise by copy/paste data from one map to another. Since I'm doing it this way, the editor doesn't allow me to create triggers or scripts, which I think may be what is hindering me at this point and completely wrong in approach. As for you advice on how to make stats more effective, your solution sounds like a good idea. What concerns me is how much data it's going to consume if I implement it for each stat at each individual level. I'm trying to be picky by saving on potential data that will have to be downloaded, and clutter space. I guess right now, I should try to find a way to make it "look" like it's happening.
Another question I also have was how things like Damage Dealt (Scaled/Unscaled/Fraction) actually work in-game.
1)Can you alter by level based on a negative or positive percentage?
2)Do the effects of Veterancy stack for each level? Or is each level its own state? (i.e. If Level 2, stats of 1+2? or stats of 2?)
The map I am currently working on uses units that level up and gain stats and abilities and the entire thing is done through variables and arrays. The actual units themselves have no connection to the data found in the data editor. By doing this you are free from the many restrictions caused by limited trigger types and other GE limitations.
I'm telling you this to let you know that not only does this method work, it's completely seamless and allows you to do so much more.
I achieved this by creating a custom UI. Health Bars, XP bars, Mana bars, stat dialogs, etc. Tooltips, and mouseovers also help to display the data in realtime. I'm not entirely sure what your end goal is but you shouldn't have any problem with data consumption since all your data will be kept in arrays which will all be referenced by an index value. Also, my map is one where every unit is treated like a hero as in they gain experience, level up, and have attributes. Staying away from veterancy opened the floodgates for me ;).
@llou: Go
Thank you. This should also help me. I guess I'll have to lay off trying to edit without a map,because scripts and triggers sound like the only thing that will work. Though what do you mean when you say the units have no connection to the data?
Well basically the values set in the data editor, where you can view Units, Actors, Models, etc, have nothing to do with the values setup in-game. The only values I use are the Unit-Actor-Model relationships so that the Units have unique models, and the "Class" type value is setup to the name of the unit. Basically any time a type of unit is created, whether it's created for the player's army or for the computer's army, their vital stats are created and stored in the custom unit data using the Custom Unit Value data table and they receive a random generated name (ex: a unit could end up being called "Markus the Warrior" or "Cecil the Knight"). I also control everything involved in combat, all the way up to the lower and upper range of damage, minimum and maximum hp/energy/experience, and more. They are all either generated from the default settings that I declare, or are values loaded from a player's bank. My map contains a bunch of easy to use functions like "Get/Set Unit ID", "Get/Set Unit Current HP", etc.
I even go a step further and create the attack type (melee, melee cleave, melee line, ranged, and more) and what the exact damage done is based on a formula that uses the custom attributes that I set up. So, for example, all of my units have the same value, I think 20 or 30, for max hp as setup in the data editor. This value isn't using and is instead changed to what I want using variables, therefore giving the effect that the unit has the set amount HP. If it sounds confusing then I'm probably over explaining it as it's pretty simple.
The reason I even ended up going down this route was due to the requirements for my map, a turn based strategy rpg, and the fact that I wanted total control over how a unit moves, all damage done during an attack including animations and missile type, custom attribute formulas (example: every point of stamina adds 15 HP except if the unit class type has a special "talent" such as the Monk who gains 20 HP per stamina point), and control over what to do when a unit levels up. Note: This was before the recent patch that now lets you have access to triggers such as unit Level and Experience, but I still like my method because I completely control any and all data manipulation outside of Starcraft II's default formula's.
Thank you for the insight. It also sounds like you're doing a map based on Final Fantasy Tactics, so I'll be eager to see the fruits of your labor when it's completed.
I think all my questions have been answered. Thank you alderis and llou.
So I'm trying to develop a leveling system that works based on a unit's Base stats (Damage, Armor, Life, Non-Attributes, etc...) A unit at Level 1 would only have a fraction of its Base stats. If the unit gains enough levels, it will have 100% of its Base stats, and by Level 20, it would have about 160% of its Base. The only way this seems possible for me is to do the math and give the unit only a fraction of the stats to begin with. What I want to do is set a unit's Base stats, and start off with a percentage of that.
(e.g. Level 1 (60% Base Damage, 60% Base Life), Level 5 (95% Base Damage, 95% Base Life), Level 13 (120% Base Damage, 120% Base Life))
Is this possible to do something like this? Or will I have to set the unit's Base stats at a fraction to begin with?
Also, is it possible for levels to influence an Attribute without adding to the attribute itself? (e.g. Endurance Attribute becoming more effective with every level, instead of adding Endurance +1 to each level)
I'm sorry if my question is long, but I want to find more efficient ways to my ideas instead of having to rewrite everything. Thank you in advance.
@JCManowar: Go
My guess is probably create attribute dummies, and use behavior counts in triggers as the real stats.
@PSGMud: Go Can you be a little clearer?
@JCManowar: Go
I believe all of this is possible the first part having a unit at a base of its stats would probably best be done through a combination of triggers/validators and Upgrades. Upgrades for applying the fractional increases to the heroes stats and then triggers/validators so that the unit would never go over that amount while its under its maximum stats IE if you had 60 of 100 life and you used a healing potion or someone tried to heal you so that if 60 was the units current max it wouldn't go above that until he had leveled. As for increasing the effectiveness of a stat, there is a work-around you could try to employ, and this is literally pure theory I haven't ever tried it, but based on my knowledge of the data editor it should be possible. There is no way to directly affect the effectiveness of an attribute since it's just really a permanent buff. However you could make several different version of the same attribute each one that is more effective in how it modifies your hero. For Example say that 1 Base Agility Stat point increases your heroes attack speed by .05, then 1 point of an Advanced Agility stat increases your heroes attack speed by .10 Now in the editor your could name both stats the same thing "Agility" and as long as the ID was different. Personally I would also attach a Prefix or Suffix to them so you could tell the difference when you are working on the map. Finally you could swap them on and off of the hero as you saw fit via Triggers and your player would be none the wiser.
My advice is when you look at doing anything in the editor, especially the data editor, don't ask the question "how do I make this happen?" The question you should ask is: "How do I make it look like this is happening?"
BTW interesting concept of making stats more effective, wish I had thought of that.
@alderis: Go I really must thank you for the information and advice. It is very informative and useful. However, it's having a hard time fitting within the confines of my current project unless you could help me understand further. As of right now, I'm trying to create the core gameplay as a module, instead of making an actual map. The reason behind this is so the mechanics could be applied easily to any map in the future without having to compromise by copy/paste data from one map to another. Since I'm doing it this way, the editor doesn't allow me to create triggers or scripts, which I think may be what is hindering me at this point and completely wrong in approach. As for you advice on how to make stats more effective, your solution sounds like a good idea. What concerns me is how much data it's going to consume if I implement it for each stat at each individual level. I'm trying to be picky by saving on potential data that will have to be downloaded, and clutter space. I guess right now, I should try to find a way to make it "look" like it's happening.
Another question I also have was how things like Damage Dealt (Scaled/Unscaled/Fraction) actually work in-game. 1)Can you alter by level based on a negative or positive percentage? 2)Do the effects of Veterancy stack for each level? Or is each level its own state? (i.e. If Level 2, stats of 1+2? or stats of 2?)
@JCManowar: Go
The map I am currently working on uses units that level up and gain stats and abilities and the entire thing is done through variables and arrays. The actual units themselves have no connection to the data found in the data editor. By doing this you are free from the many restrictions caused by limited trigger types and other GE limitations.
I'm telling you this to let you know that not only does this method work, it's completely seamless and allows you to do so much more.
I achieved this by creating a custom UI. Health Bars, XP bars, Mana bars, stat dialogs, etc. Tooltips, and mouseovers also help to display the data in realtime. I'm not entirely sure what your end goal is but you shouldn't have any problem with data consumption since all your data will be kept in arrays which will all be referenced by an index value. Also, my map is one where every unit is treated like a hero as in they gain experience, level up, and have attributes. Staying away from veterancy opened the floodgates for me ;).
@llou: Go Thank you. This should also help me. I guess I'll have to lay off trying to edit without a map,because scripts and triggers sound like the only thing that will work. Though what do you mean when you say the units have no connection to the data?
@JCManowar: Go
Well basically the values set in the data editor, where you can view Units, Actors, Models, etc, have nothing to do with the values setup in-game. The only values I use are the Unit-Actor-Model relationships so that the Units have unique models, and the "Class" type value is setup to the name of the unit. Basically any time a type of unit is created, whether it's created for the player's army or for the computer's army, their vital stats are created and stored in the custom unit data using the Custom Unit Value data table and they receive a random generated name (ex: a unit could end up being called "Markus the Warrior" or "Cecil the Knight"). I also control everything involved in combat, all the way up to the lower and upper range of damage, minimum and maximum hp/energy/experience, and more. They are all either generated from the default settings that I declare, or are values loaded from a player's bank. My map contains a bunch of easy to use functions like "Get/Set Unit ID", "Get/Set Unit Current HP", etc.
I even go a step further and create the attack type (melee, melee cleave, melee line, ranged, and more) and what the exact damage done is based on a formula that uses the custom attributes that I set up. So, for example, all of my units have the same value, I think 20 or 30, for max hp as setup in the data editor. This value isn't using and is instead changed to what I want using variables, therefore giving the effect that the unit has the set amount HP. If it sounds confusing then I'm probably over explaining it as it's pretty simple.
The reason I even ended up going down this route was due to the requirements for my map, a turn based strategy rpg, and the fact that I wanted total control over how a unit moves, all damage done during an attack including animations and missile type, custom attribute formulas (example: every point of stamina adds 15 HP except if the unit class type has a special "talent" such as the Monk who gains 20 HP per stamina point), and control over what to do when a unit levels up. Note: This was before the recent patch that now lets you have access to triggers such as unit Level and Experience, but I still like my method because I completely control any and all data manipulation outside of Starcraft II's default formula's.
@llou: Go
Thank you for the insight. It also sounds like you're doing a map based on Final Fantasy Tactics, so I'll be eager to see the fruits of your labor when it's completed.
I think all my questions have been answered. Thank you alderis and llou.