9/13/2025 - PyNori v2.1.0
Hey all, Shirley here with another update! This one's kinda big, but not as big as v2.0.0 in my opinion.
As usual, before we get into the bugfixes, let's talk about what's new first.
1: The sound system has been rewritten. There are now 7 different channels for sounds to fit in. The first one (channel 0) is for music, which is currently unused. The second one (channel 1) is for fanfares (victory, game over, stuff like that). The third one (channel 2) is for sound effects. The fourth and fifth ones (channels 3 and 4) are for weather sounds (there are two channels for this so different weather sounds don't interrupt each other). The sixth and seventh ones (channels 5 and 6) are for battle sounds (typing sounds, attack sounds, mutual miss, stuff like that).
2: There are now Splash Texts on the title screen! There's a plethora of built-in ones, including some that only appear if you've beaten the game at least once, and some that only appear on April Fool's day. If you want to add your own, create a text file called UserSplashTexts.txt (if the file extension is already there/you don't have "show file extensions" enabled, don't type .txt, or else that'll make UserSplashTexts.txt.txt) and write as many lines as you'd like! There's no limit to how many splash texts you can add, but I'm pretty sure the more you add the longer it'll take for the title screen to load. You can, of course, toggle Splash Texts off in the Options Menu.
3 (the focus of this update): Enemies can now POWERSCALE! Only SOME enemies do this (because in certain cases it wouldn't make sense), and there are a few different ways TO powerscale, but most battles should be a lot easier now! Just for fun, I'm going to explain how the Powerscaling functionality works.
There's a new dictionary in every enemy's data called Powerscaling. In it are 4 values called "enabled", "ratio", "mode", and "method". Aside from "enabled", which obviously can only be True or False, here are the details for the other values.
"ratio" is formatted as M:L, where M is a multiplier and L is the amount of levels needed to trigger the multiplier once. I'm going to have to name one of the Powerscaling methods early here for the example, but say the ratio was 1.5:2 and the method was "mult" for multiplicative. This means that, for every 2 levels, the enemy's stats are multiplied/divided by 1.5 depending on if you're stronger/weaker than it. Say the level difference between you and the enemy was 7, the multiplier would go off 3 times, since 2 fits into 7 3 times.
"mode" tells the game when Powerscaling is appropriate. This can either be "up", "down", or "bidi". If the mode is "up", the enemy can only powerscale when you're stronger than it. The opposite is the case for if the mode is "down". "bidi" is short for "bidirectional", which means that the enemy can powerscale whether you're weaker or stronger than it. "null" means it can't powerscale at all; if the mode is null, then the enemy has Powerscaling disabled anyway, so even if I accidentally left it on for an enemy that doesn't need it, the code won't run because "null" isn't a mode (it's literally just the JSON equivalent of None).
Lastly, "method" tells the game HOW to powerscale the enemy. This can either be "mult" for multiplicative, "add" for additive, "level", or null.
With the multiplicative method, the game multiplies each of the enemy's stats by the first half of the ratio for every time the second half fits into the difference of levels between you and the enemy. I'm well aware this is extremely wordy, but I already explained how the multiplicative method works, so I'm not worried about that.
With the additive method, the game adds a certain bonus to each of the enemy's stats for every time the second half of the ratio fits into the difference of levels between you and the enemy. Say for example the ratio was 1.2:2, the method was additive, and the difference of levels was 9. Since 2 fits into 9 4 times, the game will take 20%* of each stat and add that percentage 4 times.
* The 1.2 in percentage form would be 120%. We don't want to add 120% of each stat, as that would be more than doubling what was there before, so 100% is subtracted first. This means that the first half of the ratio has to be at least 1, or else the enemy will get weaker when the math hits (say the multiplier was 0.9, that would be 90%, 90 - 100 is -10, so the enemy would LOSE 10% of its stats every time it tried to powerscale).
With the level method, the game simply treats the enemy like the player and levels it up/down using the same logic. The enemy can gain/lose from 5 to 15 Max HP, its defense [in/de]creases by 1, and its attack [in/de]creases from 1 to 3.
Anyway, let's carry on with the new content! (By the way, Powerscaling is also toggleable in the Options Menu.)
4: Attack sounds now have crit variants! Crit, of course, is slang for "critical hit", which means an attack was super effective. These sounds do not replace the old critical hit sound; it still plays, but in tandem with the new sounds.
5: There's now a level up sound! This is self-explanatory.
And that's all for the new content! I'm pretty sure I didn't forget anything, so if I did, oh well. Onto the bugfixes!
1: The logic for dissatisfaction has been fixed (hopefully). Negative interactions should no longer be janky.
2: Speaking of negative interactions, enemies will no longer go easy on you after one. Also, if you're doing a kill everything run, choosing a positive interaction will now result in a lesser satisfaction bonus, as the enemy will struggle to trust you.
3: When asking the Deer God to tell the history of Deerism, the dialogue no longer assumes you're playing as Pinori.
4: Exiting the attack menu during a Battle Daily Challenge now shows the Refill Vocal Points option.
5: Fixed bugs in the logic for both the Shadorako Guards double battle and the puzzles in Shadorako's Lair. The latter is VERY important, because apparently the puzzles were IMPOSSIBLE without this fix. Oops... (also, I fixed a weird bug with the room type not updating when you advance to the next one.)
6: Not really a BUG fix, just a fix in general, but I normalised some of the sound effects because for SOME reason they weren't normalised.
And that's all for now! Damn, this update's smaller than it seems, isn't it? I managed to write so much about so little. Well, that just shows that I'm very passionate about this, I suppose. Anyway, see you for either v2.1.1 or v2.2.0!
Files
Get PyNori
PyNori
Old concept, new take.
Status | Released |
Author | Shirley.XML |
Genre | Role Playing, Adventure, Interactive Fiction |
Tags | Fantasy, Multiple Endings, python, Singleplayer, text-adventure, Text based, Turn-based |
Languages | English |
More posts
- 9/15/2025 - PyNori v2.1.211 days ago
- 9/14/2025 - PyNori v2.1.111 days ago
- 8/18/2025 - PYNORI IS NOW ON BLUESKY!39 days ago
- 8/10/2025 - PyNori v2.0.247 days ago
- 8/9/2025 (again) - PyNori v2.0.147 days ago
- 8/9/2025 - PYNORI VERSION 2.0.0 IS OUT!!!48 days ago
- 6/25/2025 - Thanks for 100 downloads!93 days ago
- 6/23/2025 - PyNori v1.9.195 days ago
- 6/20/2025 - PyNori v1.9.0 is OUT!98 days ago
Leave a comment
Log in with itch.io to leave a comment.