With some help from a fan, I’ve been able to track down a bug that was causing crashes in combat if you were using the Average AI.
So if you’ve been using the Average AI, and you’ve been having problems with combat crashing, download the latest version and try again!
Uploaded a new version that fixes some bugs kindly pointed out by Aymer over on animeotk.
This version also *massively* nerfs s-chords, s-fists, and s-eyes. Before, the stat transfers and buffs scaled based on Scarlet Moon’s power stat. However, I realized while debugging that I’m balancing characters to be fairly close in stats. As a result, s-chords and s-fists will only get more powerful relative to your opponent, and will in fact get more powerful very quickly. This plus the new buff in defense means that s-chords is all you need to make Scarlet Moon nigh untouchable.
Now, all three powers modify your stats by a flat 2 points (well, s-fists reduces your power by 4, but increases your strength and speed by 2 each). If as the game goes on, combat becomes a drag (because energy ends up going up faster than damage, which is very possible), then I’ll “manually” upgrade s-chords at a later point in the story. For example, I could imagine Scarlet Moon having a training montage, after which s-chords gives you a 4 point buff or something. S-armor will still scale based on power, and every power’s duration will still be going up as you increase in power. I’ll probably go through and similarly nerf headwind and tailwind when I release episode 5.
I also reduced the power of some enemy powers, since Scarlet Moon now has a much lower defense. Let me know if the combat becomes too difficult (especially Prometheus and Poseidon).
A new version has been uploaded with a bugfix for the Love version that was causing the combat UI to crash after you defeated an opponent.
Sorry about that!
A new version has been uploaded. There isn’t any new content, instead a new
combat system has been introduced. The big changes are the introduction of
1. Attack – This is how much damage you do. It’s base value is strength +
2. Defense – This is how much damage you reduce enemy attacks. It’s base value
3. Shield – This is effectively temporary hitpoints. Whenever an enemy damages
you, it reduces your shield stat before it reduces your energy. For example,
suppose you have a shield stat of 5, and an enemy does 3 damage to you. Then
they will do 0 damage, and your shield will be reduced to 2. If they do 3
damage to you *again*, then they will reduce your shield to 0 and do 1 damage
to you. By default, shield is 0, but powers can be used to increase it.
4. Retaliation – This behaves just like shield, except instead of blocking
damage, you retaliate. For example, suppose you have a retaliation of 5 and an
enemy does 3 damage to you. Then, you take 3 damage, do 3 damage to them, and
your retaliation is reduced to 2. If they do 3 damage to you *again*, then they
do 3 damage to you, you do 2 damage to them, and your retaliation is reduced to
0. Note that retaliation ignores defense, so it can be a great way of damaging
enemies with high defense. However, it is blocked by shields.
Buffing and debuffing powers now increase and decrease attack, defense, shield
and retaliation. Most of Scarlet Moon’s powers are the same, except:
1. Scarlet Chords now increases attack and defense based on your Power stop,
rather than increasing your speed based on your Strength. Furthermore, if you
are inflicted with Away at the start of your turn, Scarlet Chords automatically
cures you of it at the start of your turn (rendering you effectively immune to
2. Scarlet Fists and Scarlet Eyes work the same they did before, except they no
longer inflict a status. This means that they don’t increase your attrition,
they cannot be disrupted by spankings, and they remain in effect until you
3. Scarlet Beam uses your attack stat, rather than your Power stat. This is so
that Scarlet Fists more obviously increases your damage output (before it
increased your Attack damage, but reduced your Shoot damage, which was lame).
Shoot does not trigger retaliation, but is not affected by your weapons.
4. S-Armor – Now increases Scarlet Moon’s shield stat, rather than increasing
1. Tailwind – Increases all allis’ attack.
2. Headwind – Decreases all enemies’ attacks.
3. Wind tunnel – increases Tempestas’ retaliation.
4. Twister no longer inflicts damage on a character when they are inflicted
with Away. Instead, it does damage at the end of their turn if they are
inflicted with Away. What this means is that Scarlet Moon is effectively immune
to Twister if she is inflicted with Scarlet Chords, because that removes Away
at the start of her turn. Twister also cures Tempestas of Away and gives her a
bonus to her attack that lasts one round.
5. Airburst – Works the same way it did before, except it inflicts Away for a
minimum of two rounds.
1. Armor – Increases Anklyana’s Defense.
2. Bubblesaurus – Reduces her energy, and increases an ally’s shield by the
same amount (basically, she gives her energy to someone else as temporary
hitpoints). Note that this *does not* inflict a status, which means it stacks,
and it cannot be disrupted by spankings.
3. Wallsaurus – Increases a target’s defense, and decreases their attack by the
Also, the game now tells you at the start of every combat whether or not
winning that battle is optional.
Hopefully, people find this combat system fun and well-balanced (Lord knows
it’s a lot simpler to implement at least). Feedback is much appreciated.
Just posted a new version that fixes a bug in the story content, where the game just straight up stops moving forward during one branch of the “escape Princess” route. Thanks Wildfire for the bug report!
There’s also apparently a crash in the battle royale at the end of the episode kindly pointed out by Wildfire that seems to be tied to administering spankings. I’m not going to track that one down though, because I’m currently doing some balancing of a combat rework, and the code is changing so much that whatever bug is there will almost certainly have gone away (to be replaced by three or four new ones I’m sure). I’m hoping to release that in the next few weeks, so tracking down the bug doesn’t seem like it’ll be a good use of my time.
Also, updated the Downloads section to clarify that the source code of Scarlet Moon is released under GPL v3 license, while the story content (i.e. setting, characters, etc) is released under CC-BY-SA. I don’t think that I have it actually written down anywhere on here.
Yet Another Version uploaded. This one fixes a bug that was causing a crash early on in episode 2, and some bugs in the scarletmoon.sh script that kept it from running smoothly when people downloaded the Scarlet Moon loveless version.
I’ve also updated the Downloads section for those of you on Linux. If you want to try the loveless version, make sure to install Lua (5.3.x or 5.2.x) first. I don’t bundle a Lua executable with the Linux loveless version for the same reason I don’t bundle a Love executable with the Linux Love version. I haven’t tried it on the bleeding-edge Lua 5.4 yet, so I can’t guarantee it will work. I wouldn’t be surprised if it does though. My understanding of Lua 5.4 is that it’s mostly touching stuff related to coroutines, and I don’t use anything that advanced in my game.
Moar bug fixes!
— Fixes crashes that occur whenever the game tries to remove your costume when you aren’t wearing it.
— Fixes a crash that can occur if you load an older save file and then try to turn combat on or off.
— Fixes a crash that occurs at the end of episode 2, if you refuse to get spanked by Dr. Parks, and so Juliana spanks you at the end of the episode.
Yet more bug fixes:
— Fixes a bug where the game doesn’t let you progress after attempting to negotiate with Princess in certain cases
— Fixes a crash when you choose to bide your time shortly after being captured
Thank you to everyone willing to try the early versions of this content and send me bug reports. Here’s hoping things stabilize soon.
Fixes a crash caused when the game tried to equip the PC with their costume.
Spankers and Spankees,
At last, the second half of episode 4 is complete and has been released. You can get it in the Downloads section. This completes the fourth, count it, fourth! episode of Scarlet Moon. We finally resolve the cliff hanger I so evilly left you with last time.
There are a *lot* of changes in this most recent version beyond just the release of the next set of content. The highlights:
0. A new Loveless version of the game is now available for all three major platforms (Windows, Mac, Linux). There have been a small number of users who haven’t been able to play the game because of a bug in Love that affects old computers. Their plight filled me with sadness, so I decided to create a version that doesn’t use Love at all. More details below.
1. Speed now gives you a full point of defense, and half a point of offense.
2. Scarlet Feet has been removed, and now Scarlet Fists reduces power by x and increases both strength and speed by x/2. I found that those two tended to clash with each other, so I felt it best to roll them together and simplify Scarlet Moon’s powers a bit.
3. Small story retcon: You and Juliana are adoptive siblings. This doesn’t change much, but earlier episodes have been tweaked in places where it
was unnatural for siblings to talk (typically references to “your mother” vs. “our mother”).
4. A new heroine is introduced: Anklyana! You know those people who say “The best offense is a good defense?” well, Anklyana would slap them upside the head, except she’s too busy defending her allies with her awesome defensive powers.
5. In a *totally* unrelated note (totally unrelated), you can also start romancing a certain submissive young lady who may or may not be really good at defense. You only get the option to do so if you aren’t already attracted to David. Sorry, no bisexual threesomes. You will get the option regardless of which path you chose at the end of episode 4 day 1, it just shows up at different times. That being said, the climax is a bit chaotic (as climaxes tend to be when superheroes are involved), so I’ll also give the ability to start romancing the sexy lady at the start of episode 5 in case people somehow miss it.
6. The character screen has been reworked. Now, when changing clothing or character attributes instead of slogging one at a time through a sluggish list, you go to a separate screen. This screen displays a list of all the options you can pick from. You select one by either typing a number into the text box and pressing enter *or searching for the item you want*. For example, suppose you want to equip some shorts. Then you can go to the character screen, select lower clothing, and type “shorts.” The list will be filtered down to just items that contain the string “shorts.” From there, you can add additional words to narrow it down to just the item you want, or arrow key to beginning and type the number you want, or delete your search and type the number. A little bit awkward (it’s better in the console version) but it is still an improvement over the awful thing we had before.
7. A *lot* of ascetic choices have been added. This is mostly because the console version automatically scrolls to the bottom, and I found that to be a less than ideal user interaction. So I split up long events so that each event fits in a single screen in the Loveless version. Most of these choices follow a Snarky, Serious, Stoic pattern. Typically there will be a snarky option, a serious option, and a stoic option. Basically, it’s a next page functionality like we had in Potion Wars, except it grants roleplaying options. This should hopefully also address a criticism from the guy at puddinggames.blogspot.com a while back that my game just went too damn long without player feedback sometimes.
8. Hairstyle and clothing can now be changed from the story screen. Just press F1 to change hairstyle, F2 to change your upper clothing and so on. Saves you a keypress!
9. You can choose between an emoji bum status (in which your status is ^_^, >_<, etc depending on the state of your bottom) and the original short sentences.
This version doesn’t use Love at all. Instead, it bundles a lua executable, and includes an executable script you execute to play the game. It’s basically the same as starting the Love version, except instead of double-clicking ScarletMoon.exe (in Windows) or ScarletMoon.app (in Mac), you double-click ScarletMoon.bat (in Windows) and scarletmoon-mac.sh (in Mac).
Get it in the Downloads section!
Once things stabilize, my next plan is to overhaul combat. Something I discovered working on this episode is that the combat code is quite complicated, and it’s also hard to follow the combat. The first one is a problem for me (especially since my life is only getting busier), and the second is a problem for players.
In particular, I have all this complexity to support damage redirection. However, the ability to redirect damage is really hard to balance in a game like this, and it’s not even the most interesting thing in my system. The most interesting parts of my combat system is the rich action economy (i.e. the fact that your character can do any combination of their actions each turn, instead of having to pick one), and the ridiculous number of statuses. So I want to double down on these, and simplify everything else.
My plan is to simplify things significantly by adding some more secondary statistics (attack, defense, shield, etc), remove the ability to redirect, and focus instead on giving the player more tools to control the action economy and buffs. For example, instead of Wind Tunnel, Tempestas may have a skill that lets her throw a character at another character and scramble their statuses. Similarly, she might get a power (Wind Switches!) that removes *everyone*’s statuses. Plus, not everything necessarily needs to be a status. For example, Scarlet Fists and Scarlet Eyes don’t necessarily need to be statuses. So you could potentially wipe the board of everyone’s statuses, and still leave your characters more built than your opponents.
While doing so, I’ll be chewing on the next step in the story and start working on that once I’ve got combat where I want it.