Comments (9)
Yes, the modifiers were really just placeholders for a potential future design on how we might handle increasing stats upon level up. The actual stat leveling is still up for discussion and modification. The initial design was that each monster has a "base" stat (e.g. hp_base) and each time the monster leveled up, a random "mod" stat (e.g. hp_mod) would be multiplied by the base stat and added to the current stat.
Something like this when a monster levels up:
hp_base = 50
hp_mod = [0.9, 1.0, 1.1]
max_hp += (hp_base * random.choice(hp_mod))
Again, this was just a simple system I thought of when I first started the project. I'm open to any suggestions for how we handle stat leveling. It would be nice if we could come up with a system equal in depth as the EV & IV system of the original Pokemon games.
from tuxemon.
Okay cool. I have been thinking a little bit about this and reading up on IVs and EVs. Here's my idea:
For built in monster nature, we could have something like this:
nature_points { # median range is -2 to 2
'hp': [-2, -1, 0],
'attack': [1, 2, 3],
'defense': [-1, 0, 1],
'speed': [-3, -2, -1],
'special_attack': [0, 1, 2],
'special_defense': [-1, 0, 1]
}
Nature points would be fairly simple and similar to IVs. First an array will be generated randomly of numbers from -2 to +2. This array, when the medians are added together must equal 0 for monsters caught in the wild/traded for. Maybe legendaries will be allowed to have a total of +2 or 4 or something. Regardless, this array of numbers will then be randomly assigned to the available positions in the example above. This will be done upon monster creation and remain static. Then these numbers will be referenced during a level up to modify the new stat total. The equation might look like this: new_stat = old_stat * 0.1 + random.choice(nature_points[stat]) * (level / 10)
And then for actual battle experience modifiers we could have something like this:
battle_points { # Can range from 1 to 300
'hp': 0,
'attack': 0,
'defense': 0,
'speed': 0,
'special_attack': 0,
'special_defense': 0
}
So this would work more so as a tally system and similar to EVs. Basically, these are points that are gained when defeating an opponent, or using stat increasing items. They are to represent the training/practice that the monster had in each area. When you defeat an enemy you will receive a number of battle points in the field that the enemy has the highest battle points in. The number of battle points you receive is determined as follows:
- 1BP - if opponent is stage 1 or less than level 15
- 2BP - if opponent is stage 2 or level 16 to 35
- 3BP - if opponent is stage 3 or greater than level 35
These points would continue to tally throughout the monster's lifetime, and would not reset each level up. They will not be referenced when leveling up, but instead they will be checked each time an attack is made with that specific monster in battle. When referenced the code will divide the points for each stat by 4 and the result will be used in conjunction with the monsters current value of the corresponding stat. This means that every 4 BPs count as a +1 to the corresponding stat and the max bonus you can get from BPs on a single stat is 75 (= 300 / 4). To reach the maximum BPs in a single stat it would take 150 successful battles against monsters strong in that stat.
I did derive some elements from EVs and IVs, but I think it is far enough removed to call our own too. Sorry its so long. I kind of wanted to post it before I did anything for reference and to hear thoughts about it. I'll go ahead and put it together so you can try it out. In the meantime though, let me know what you think.
from tuxemon.
I realized after posting the last comment that Nature pooints would actually have to be preset and the same for all instances of that monster in the game (e.g. all rockittens have the same nature points). This way you can simulate traits of specific monsters. And then if we want to get crazy, we can add a personality modifier to it as well.
from tuxemon.
First, do you think you could repost this to forum.tuxemon.org? I think it would give this idea more exposure to the community and I'd love to hear others input on the leveling system as well.
I really like this idea. Were you thinking of having a cap on the total number of BPs you could get overall? For example, could you max out the BPs on all stats, or would you only have a total of 300 BPs or something to distribute amongst all of the stats? I think having a finite amount of BPs would be interesting. That way, for example, you could spec your monster into ALL defense or something, but you wouldn't be able to spec in all the other stats as well.
Another thing I think would be cool, and would also further deviate us away from the EV and IV system, would be to also influence your monster's BPs through the particular moves your monster uses. Something similar to how the Elder's Scrolls series games level up your skills in a particular area the more you use them. It just feels logically that if a monster kept using a certain kind of attack (like special attacks vs physical attacks, or fire vs water attacks, etc.) they would get better at using those kinds of attacks. This kind of system could even be separate from the BP system, but affect the damage calculations or leveling.
What do you think?
from tuxemon.
Good idea. I'll move it over to the forum and respond to you there.
from tuxemon.
@treetrnk How's it going with this issue? Are you still interested in tackling it?
from tuxemon.
Looks this have been done already?
from tuxemon.
This Issue haven't been touched in a while. Did anyone test it so far? I guess there's been major code changes - is this fixed? Or does this need testing?
from tuxemon.
Looking it over, to me it looks like some parts of it have been merged in, but BP is not implemented. I'm just going to close it becasue I think most of the discussion here is no longer relevant. If Anyone would want to address monster stats or BP, a new ticket can be added.
from tuxemon.
Related Issues (20)
- teleport_faint should be a transition, not instantaneous
- Enums for sprites broken with python 3.11+
- Rename character
- Game freezes after first battle HOT 4
- Text inconsistency when playing as a female character. HOT 5
- If a Tuxemon has too many techniques, the game will crash HOT 1
- When you lose a battle, the game doesn't wait until you've exited the battle to continue events HOT 1
- how do you advance past the part with the first med centre? HOT 10
- If a player faint their only Tuxemon in the early game, the game will glitch out
- The player encountered a game crash right after the first battle against Bille.
- Allow custom music to be set for battles HOT 1
- The game crashed when entering the building. HOT 5
- White squares instead of some tiles HOT 3
- Game crashes if you sell a tuxemon + 2 dialog bugs
- Screen goes black if you're defeated on Route 3
- If two tuxemon attack, the one with the lower speed attacks first
- Add a challenge mode where you only battle HOT 4
- After battling a trainer on Route 3, the game crashes.
- The protagonist can walk through the fence in the city park. HOT 3
- Upon reaching Route 3, the protagonist is sometimes teleported to the wrong location.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tuxemon.