Nightgames Mod (v2.5.1.2) updated 2/11/17

dndw

Well-Known Member
Aug 27, 2015
456
20
@DarkSinfulMage
As you've found, you can't really wait for input in-line as your pseudocode said. When you press a key, an event gets fired on the UI thread. If you use that event to run the combat loop, and then want to wait for input, the UI thread will be waiting for the UI thread to fire a new event. That doesn't work, so the program freezes. There are two solutions: Either run the combat loop on a different thread, or structure it in a way it doesn't block the UI thread. The former option introduces a gazillion new bugs, so don't.

That means structuring your code in a non-blocking way, like so:
Code:
// In Combat
public void doCombatStage1() {
    // Do stuff
    gui.addButton("Go To Stage 2", this::doCombatStage2);
}

public void doCombatStage2(ActionEvent evt) {
    // Do more stuff
   gui.addButton("Go To Stage 3, Option 1", this::doCombatStage3Opt1);
   gui.addButton("Go To Stage 3, Option 2", this::doCombatStage3Opt2);
}

public void doCombatStage3Opt1(ActionEvent evt) { 
   // Yet more stuff
   this.endOfTurn(); // calls doCombatStage1
}

// ^ Same for doCombatStage3Opt2

// In GUI
public void addButton(String text, ActionListener listener) {
    // We don't want plain grey buttons...
    // FancyColoredButton extends javax.swing.JButton

    FancyColoredButton btn = new FancyColoredButton(text);
    btn.addActionListener(listener);
    this.buttonContainer.add(btn);
}

So now, at some point doCombatStage1 gets called, starting the combat loop. It does some stuff, then it adds a button to the GUI. It tells the GUI what text should appear on the button, and what it should do when it is pressed. The button gets added, doCombatStage1 is done, so the UI thread can finish doing what it needs to do (handling events, painting components, etc.). That means the user will now see the button and be able to click it. Once the button is clicked, its handler, doCombatStage2, will execute. It has two branches, so two buttons are added. Repeat as often as you like, making sure you eventually end up back at doCombatStage1. Ignore the ActionEvent parameters, you probably won't use them.
 

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
42
@dndw

because of the way the game is structured (in scenes via playscene() executing a bunch of lines) This might work if I structure each phase of combat with a scene. I hit upon this last night but was too tired to wonder if it would work.

so I'd probably have to do as so:

Code:
Encounter.playScene();   //This is the encounter scene, which only happens in the map - this can be bypassed if you wish to fight someone directly.
introduce.playScene();   //This currently says the opponent's challenge line and sets up the battle. Might stand for some improvement. Continues into phase1();
phase1.playScene();   //This is the round start, which displays enemy information and currently situation. This silently and without input starts phase2().playscene()
phase2.playScene();   //This is the "Select your skills" phase, gathering possible skills that can be used displaying. The buttons here start phase3.playscene().
phase3.playScene();  //This executes the skills selected in both turns by both combatants in the determined sequence, displaying results. It moves onto phase4();
phase4.playScene();   //This resolves the round and checks for win conditions. if they aren't met, it plays phase1.playScene().
finish.playScene();      //This finishes combat, cleaning up and setting both characters to the correct state.

I think another interesting move is if I can start a SceneCollection to act in the place of a structure like this which requires several scenes. I haven't had coffee, yet, so I'm not sure I want to do that without knowing how many files I'm making unless I can make scenes on the fly.

The thing is I might need a better way of creating buttons. This is currently how I get a character's usable skills and make a button for each one:

Code:
    for (int i=0; i < A.getM_Skills().size(); i++) {

                   if (A.getM_Skills().get(i).checkIfUsable(A, B)) {
                       if (GUI.MainWindow.DATA.isM_isDebugEnabled() == true) { System.out.println("A can use " + A.getM_Skills().get(i) + " this round.");}
                       JButton addMe = new JButton(A.getM_Skills().get(i).getM_Name());
                       final Skill s = A.getM_Skills().get(i);               //FIXME: Is there any way to do this without a final in a loop?
                       addMe.addActionListener(new ActionListener() {
                           public void actionPerformed(ActionEvent arg0) {
                               GUI.MainWindow.clearButtons();
                               A_SkillChosen = s;
                               GUI.MainWindow.MAINBUTTONPANEL.updateUI();
                           }
                       });       
                       GUI.MainWindow.MAINBUTTONPANEL.add(addMe);
                    }
     }
 
Last edited:

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
42
Tracking down this NPE is hard.

EDIT:

The answer was :

C. The combat provided to tick is null at the time of the NPE.

The Addiction should be access and processed differently outside of combat.

More weird bugs I found:

- While testing at low stats, I would surrender and end up not being able to use anything but Nothing or "worship blah". May have something to do with Surrender or Fetishes, but I think it has more to do with getting drained and not having Struggle, Escape, or Wait.
- Encounters still may double up in terms of decision then getting to a fight. You can get double jeopardized this way after dealing with someone in any given kind of encounter.
 
Last edited:

dndw

Well-Known Member
Aug 27, 2015
456
20
@DarkSinfulMage
I'm not sure if those problems are specific to your version or if they've carried over from mine. Surrender shouldn't limit your choice of skills, so that would be weird. I am aware that there is still something off with the encounters. I've only seen it with threesomes, though.

A suggestion for that code you posted:
Code:
// Instead of your loop:
A.getM_Skills().stream().filter(s -> s.checkIfUsable(A, B))
                                       .map(this::buildButton)
                                       .forEach(GUI.MainWindow.MAINBUTTONPANEL::add);
  

// Somewhere in the same class:
private JButton buildButton(Skill s) {
   JButton btn = new JButton(s.getM_Name());
   btn.addActionListener(e -> {
       GUI.MainWindow.clearButtons();
       A_SkillChosen = s;
       GUI.MainWindow.MAINBUTTONPANEL.updateUI();
   });
}
(Add
Code:
.peek(s -> if (GUI.MainWindow.DATA.isM_isDebugEnabled()) System.out.println(...))
between the .filter and .map if you want the same prints)

Or even better:
Code:
// Instead of your loop:
charA.getSkills().stream().filter(s -> s.checkIfUsable(charA, charB))
                                       .map(this::buildButton)
                                       .forEach(GUI.MainWindow.mainButtonPanel::add);
  

// Somewhere in the same class:
private JButton buildButton(Skill s) {
   JButton btn = new JButton(s.getName());
   btn.addActionListener(e -> {
       GUI.MainWindow.clearButtons();
       lastChosenSkill = s;
       GUI.MainWindow.mainButtonPanel.updateUI();
   });
}
 

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
42
@dndw

I am pretty sure the skills loss thing was due to low stats and being drained. Nevermind that one.

I got a lot of progress today regardless (works perfectly now!), but that's my thing and for NGMod I'd like to focus in on fixing existing bugs and planning improvements and cleanup. For the time being I'd like to identify bugs and do pull requests so they get fixed a bit faster and easier.

As for my fork - It's not for any drastic improvements or changes, yet. I'd rather get the lay of the land before deciding what to try to fix.
I forgot how to do this, but I made a pull request for you. Nothing drastic.
 
Last edited:

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
42
It's been pretty quiet, and I assume it's because of real life circumstances.

Keeping the conversation going, I'm taking requests for dealing with some reported issues but I'd like to get a good list of them before proceeding. If anyone has anything that got lost or is long-standing, let me know and I'll see if it can be fixed or adjusted.

Dealing with the Addiction NPE may require rebuilding it (Not something I wanna touch, as I consider it impolite to just change things on people), as it seems to happen once a combat c has garbage collected and tick() is called to update the addiction. Restructuring that requires some redesign of the system, so I'd like to report what I have on my end as a suggestion.

It seems that the maps' areas and objects and its characters and combats are currently linked in ways that makes them hard to search, process and control. I would recommend that we think of the map as a game board and use tokens to represent logical entities that need to be processed. There are different types (Treasure, traps, characters, and encounters that are running), and every tick of our choosing we should be processing all of the tokens on the board. This also cleans up all the implementation for alternate game types and areas that they use.
 

Sacredferro

Well-Known Member
Aug 26, 2015
510
45
Well, I don't know if it was ever fixed, or was just a problem only I ever experienced, but last time I played the team fights were still causing my appearance to default to what it would be at the beginning of the game assuming a vanilla start (not one of the advanced starts). What I mean is I would be described as male with male body parts and be wearing the default starting clothing regardless of whether or not that much is true. I don't recall it ever affecting what actions I could make during a fight, but the status panel and such would still say I was wearing t-shirt, jeans, and pair of sneakers for instance. Just FYI.

Sadly, I've recently done a reinstall of my system on a new HDD and forgot to back-up some things...all my flash game saves being one of those things. Sad panda. Doesn't help that Windows 10 is a bit of a dummy dumb and likes to do weird shit without letting you know. Anyways, that's the last issue I remember running into a lot since last I played.
 

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
42
From the sound of it, it's possible that the player's character data might be lost because of circumstances between Global and how the game loads information from save into that team fight. I can investigate later.
 

atar

Active Member
Oct 16, 2015
33
6
Airi I think is the bugged character. I pulled her out of fight rotations and the lockups stopped happening for me.
 

hiiamaguest

New Member
May 23, 2017
1
0
40
Playing first RC2 in Sacredferro's post at start of this page. My addictions are not degrading, and the option to treat them has dissappeared. Specifically, dominance and magic milk addiction. I had the option once, but didnt have the money. Info broker doesnt have anything to say either.

Tried fast-forwarding through 4 nights, hoping that the 25% daily decay would kick in. They never go away. How do I fix this? How does the 'reenformcement' mechanic work?
 

pepe

Member
Feb 22, 2017
7
0
33
There's a release candidate for 2.6 out (two RC's actually).

https://mega.nz/#!BR5ETIpC!OV8-iDelbC9Osjn6sAvQzs7dhsfJBcEZfv6y8X9cWfw is RC1
https://mega.nz/#!BMRUSS5Y!Wp_F5NsTiLcg7r9qxnxP9g-0E9UcyGkcQk20nAALkjc is RC2
https://mega.nz/#!xFIRgRAS!EBovAmFL0-5Zn_H6u7JAwW7axAEEwPvuNbRFeQ1mdC8 is RC2 with a couple test starts that may or may not be that stable according to dndw.

Hi,

I´m playing RC1 version.. And everytime after teammatch its tilt.. Theres come empty blank... What i can do?
 

Sacredferro

Well-Known Member
Aug 26, 2015
510
45
Asking again: how to initiate the buttslutt quest?

Not quite sure, but I think you have to manually add the flag to your save game to actually force it to work. The game won't normally trigger it like it should, though hopefully that will be fixed in a later build. So, that means saving your game at some point, opening your save with a text editor (regular notepad works just fine), and adding the flag at the bottom of the file. Beyond that, I don't know, but it was just talked about a page or two back I think. I'll try to find any earlier posts with further instructions from others, but no promises.

Edit: Nvm, you actually have to add the flag to one of the Start files, if I read one of the posts correctly. So, open one of the advanced save files and look towards the bottom of the file where it says

"flags":[]

...and insert the flag "ButtslutQuesting" with the quotation marks included in between the brakets. Should end up looking like this...

"flags":["ButtslutQuesting"]

Then you need to start a new game using that start type.

Hi,

I´m playing RC1 version.. And everytime after teammatch its tilt.. Theres come empty blank... What i can do?

Yeah, team fights are pretty buggy right now. My advice to you, unless you want to help bug test it, is to avoid team fight nights until it's more stable. When the night sequence starts, you should have the ability to save your game before proceeding. Save your game and reload the save. Since team fight nights are not a guaranteed event and whether it's a normal fight night or not is random and you are technically still saving before starting the fight, it should shuffle up the fight type and give you a normal fight night when you reload your game. If it doesn't, keep reloading until it does.
 
Last edited:

BobTheBuilder

New Member
May 26, 2017
2
0
50
I've seen one of the original copies of this game (without the mods) and there was a lot more artwork, including figures for most of the girls and outfits, etc. Did those have to be removed when it became the new modded version? Or should I be seeing those and am just doing something wrong when I play? Sorry if this is an old question, but tried to search this thread.
 

dndw

Well-Known Member
Aug 27, 2015
456
20
I've been quiet for a while, sorry about that.

@zufield The quests don't really work yet, so you're probably better off waiting for now.
@hiiamaguest There's something a little wonky with addictions in RC2. This has been partially fixed since, but it still needs some work.
@pepe As Sacredferro said team matches were very broken in RC1, and still slightly broken in RC2.

Considering the above, I would advise people to just play the 2.5.1.2 release in the first post unless it's specifically for testing purposes; it's much more stable.

@BobTheBuilder The images were added after the two versions 'split'. The code has diverged to such an extent that copying any feature from one to the other would basically mean rebuilding it from scratch using the original as a guide. The images could be added more easily, but since they were funded by The Silver Bard's Patreon campaign, I wouldn't count on those ever making it into the mod. Besides, with the amount of transformations going on, we'd need many more sprite components and even then it would probably look like shit. Remember the CoC character viewer?
 

Pazz

Active Member
May 27, 2016
36
6
Hi. A few bugs and typo's:

1# In the reverse (futa) drain challenge; "Angel gives you an intense kiss as the familiar feeling of your strength flowing into her rips through your body..."
You mean "lips"?

2# "Angel uses Reverse Threesome. While Angel is holding you down with her ass, Mei mounts you and pierces herself with your cock. As soon as you penetrate Angel, you realize it was a bad idea."

3# In reverse (futa) drain challenge; When Angel summons one of her pets and you are in a reverse threesome with Angel on your face, as soon as you lose the fight, Angel wants to use level drain in cowgirl position. However, the pet is still there. This results in a crash.

" With you defeated, Angel doesn't stop her greedy hips, she is determined to extract all the power she can get! Something very weird happened, please make a bug report with the logs."
Does the log change after each new game? I have a log, but I don't know if it contains this bug. But you can test it out for yourself, just make sure Angel can use pets.

4# "You're sitting on top of Jewel with your ass squeezing her cock.
You use Pull Out.
You try to pull out of Jewel's lustrous ass, but she squeezes her asscheeks tightly around your phallus, preventing your extraction..."

Jewel had an effect that caused her to be dominated/mindcontrolled by Mara, while Mara wasn't participating in the fight. This causes Jewel to change position while also maintaining her original position. Sorry if this sounds confusing. :p


Is there a way to increase team match probability from 20 to 100%? So I can test more team battles.
When I add the ButtSluttQuest flag to reverse (futa) drain challenge, al my saves from that game won't load. When I add that flag to a save of mine, that save won't load. What am I doing wrong or should I just leave it at that?
What do I need to edit that all NPC's start as futa? So far the only start with all futa's is Futa++ 20, but that has a premade character which I don't like. And it's a bit tedious to save edit this all the time.

Thanks for al the updates.
 

witchlook

Member
Mar 4, 2017
12
4
45
I have a Quest system implemented, with tests. The ButtSlutQuest has been implemented, but I need to do a test / bugfix cycle before making it public. If I get too busy I'll leave it on my repo and others can polish it up.
 

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
42
I have a Quest system implemented, with tests. The ButtSlutQuest has been implemented, but I need to do a test / bugfix cycle before making it public. If I get too busy I'll leave it on my repo and others can polish it up.

I'd like to clean up Global, so if that's something you can keep in mind, that'd probably go a ways towards organizing the data of the game into manageable, self-contained parts.
 

Sariel876

New Member
Sep 5, 2016
3
0
I have a Quest system implemented, with tests. The ButtSlutQuest has been implemented, but I need to do a test / bugfix cycle before making it public. If I get too busy I'll leave it on my repo and others can polish it up.

Does the quest give you some type of flavor text after you have been trained by one of the contestants? From what I've noticed you just see it in your stats menu, but some type of flavor text would help the player know what happened a bit better imo.
 

BobTheBuilder

New Member
May 26, 2017
2
0
50
I tried a number of different searches before asking, but don't see much discussion of walkthrough or hints. I found the wiki online, but it tends to be more high level info. Specifically curious if the next Benefactor step is in the game (I basically got the call saying the next time we talked I would meet them in person by figuring it out). Haven't found a way to advance the story past that. But in addition to my specific question, would be interested if there are any walkthrough type things out there besides the wiki.
 

The Silver Bard

Well-Known Member
Sep 2, 2015
207
23
I tried a number of different searches before asking, but don't see much discussion of walkthrough or hints. I found the wiki online, but it tends to be more high level info. Specifically curious if the next Benefactor step is in the game (I basically got the call saying the next time we talked I would meet them in person by figuring it out). Haven't found a way to advance the story past that. But in addition to my specific question, would be interested if there are any walkthrough type things out there besides the wiki.

I can answer this one. I've planned a bunch of content around gathering clues to find out more about the Benefactor and confront him, but most of that hasn't been implemented yet. I'm holding off on that content since it leads to the neutral ending, which I have no idea if anyone cares about. Is this just self-indulgent on my part, basing the most obvious ending on a lore dump on a shadowy mastermind? I think it might be, so I'm going to try to focus on the character specific endings first.
 

Sacredferro

Well-Known Member
Aug 26, 2015
510
45
Just checking in to see how everyone's doin'.

Just theory crafting here 'cause I'm bored, but was curious if it could be possible to add ways to directly interact your pets, as if to target them instead of your opponent, in a bold attempt to ware down your opponent's willpower. Was thinking about it in a sort of, "If I were actually in one of these fights, what would I do that I can't in game," way and thought it'd be interesting to be able to throw a summoned pet under the bus for a risky move. An even more out there idea of mine was for the ability of summoning pets to have the added risk that they could on occasion turn on you to sate themselves, potentially turning a fight in one's favor upside-down for the other.
 

Vasin

Well-Known Member
Aug 27, 2015
66
0
Just checking in to see how everyone's doin'.

Just theory crafting here 'cause I'm bored, but was curious if it could be possible to add ways to directly interact your pets, as if to target them instead of your opponent, in a bold attempt to ware down your opponent's willpower. Was thinking about it in a sort of, "If I were actually in one of these fights, what would I do that I can't in game," way and thought it'd be interesting to be able to throw a summoned pet under the bus for a risky move. An even more out there idea of mine was for the ability of summoning pets to have the added risk that they could on occasion turn on you to sate themselves, potentially turning a fight in one's favor upside-down for the other.

I can see directly interacting with your pets as a sort of evolved tease attack. Maybe perform something sexual with them to arouse your opponent further? Or were you thinking of something else?

As for the risky attack, I'm actually a fan of that idea. Something about your summon turning on you, even for an instant, is an insanely hot idea to me. I can particularly see that of the goblin or imp. . .
 

Sacredferro

Well-Known Member
Aug 26, 2015
510
45
You nailed it. The image in my head is like this: The player unexpectedly turns to face their summoned pet and starts making out with them, all the while the opponent watches in stunned belief. If the idea works, the opponent gets the effect of a strong tease attack, perhaps becoming stunned and unable to do anything but masturbate (like being enthralled but the only option is masturbate rather than obey). The risk is that in the very same way that you can mess with your own pet, your pets can wind up turning their attention on you instead of your opponent, turning the 2v1 in your favor into a 2v1 in your opponent's. Essentially, the idea in general is for summoning to be more of a high-risk, high-reward system. It would also make pets less mechanical and more organic in nature, in a way less mindlessly obedient and more dynamic.

Don't know how hard that would be to code, or later on, debug and optimize, but there it is anyways. It just feels like pets are more like robotic drones that would never betray their owner, making them somewhat boring to me. Making them possibly, even if rarely, more damning than beneficial to bring to the fight just seems more exciting I guess.
 

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
42
- There's too many sources of tease/tempt damage as is and tease damage ramps out of control.
- Pets are currently messing up Action Economy.
- Pets currently bugging out temporary traits and effects.
- Stuns and other disables are also messing up action economy.

I don't mind pets as is but I think that it's high time we stopped tacking on new features and fixed the game's mechanical and programmatic spaghetti problems.
 

Sacredferro

Well-Known Member
Aug 26, 2015
510
45
Can't really say I disagree with you on that. You're right in fact that balance and stability, while not as sexy or exciting, are critical and central to gameplay. Just bouncing ideas off the wall...a combination of having literally no coding experience myself and being bored.

That said, now I want spaghetti for dinner. Time to preheat the oven...
 

ThisIsMe

New Member
May 27, 2017
3
1
125
Created this account just to thank the people working on the game. It's tremendously enjoyable at the moment, even if quite a bit buggy (following dndw's advice, I reverted to version 2.512).

Since I'm here, I thought I could give you some feedback :

1/ It seems to be very (too?) easy to consistently reach a higher level than most girls, even if I switch on all the settings favoring NPCs : "Advanced Start/Disadvantaged" + "NPC bonuses" checked on start screen + "NPC bonuses" activated in options. Is there anything I can do to prevent that, to keep fights entertaining (the level gap really hurts the girls after a while) ?

2/ No matter what I do (win or lose), I also seem to often get highest money rewards at the end of the day. Not sure if this is right.

3/ Finally, if the game manages to keep things spicy with new traits and events as time goes by, I wonder if things couldn't be even more interesting with some kind of "tiers", adding floors and why not a complete "championship" with teams and duels. Right now, it's only one floor, with maybe 10 or so girls "parasiting" each other's opportunities at leveling and keeping up with the player (since only 4 can ever participate in one round).

4/ More ambushes, more traps, more sneaky stuff and devious surprises, from the girls and whoever organizes the game please!

5/ I absolutely loved there being "consequences" during the day for what happened during the night, like Mara's semi-persistent "enthralling/control", forcing the player to look up for new ways to get rid of it. I hope there will be more of that kind of stuff (perhaps there already is, sorry if I missed it, I still consider myself much of a newbie at the game).

Thank you again for your hard work, it's much appreciated.
 

Sacredferro

Well-Known Member
Aug 26, 2015
510
45
You guys have any recommendations for changing an image file's size? I'm trying to swap out some of the images with some of my own and I'm running into a scaling issue with some of them being too big to fit (obligatory Mr. Torgue voice, "Puns, mother f***er") properly in game. I've honestly never tried to modify an image file to resize it like that so I have no idea if Windows 10 comes equipped for it already or if I need to hunt down some software.
 

The Silver Bard

Well-Known Member
Sep 2, 2015
207
23
You guys have any recommendations for changing an image file's size? I'm trying to swap out some of the images with some of my own and I'm running into a scaling issue with some of them being too big to fit (obligatory Mr. Torgue voice, "Puns, mother f***er") properly in game. I've honestly never tried to modify an image file to resize it like that so I have no idea if Windows 10 comes equipped for it already or if I need to hunt down some software.

I use GIMP 2 for image manipulation. It's not nearly as versatile as photoshop, but it's free.