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

12centDime

Active Member
Mar 16, 2017
41
5
long to write out and explain, but i'll try. I'll say that i typically find that it helps to look at multiple skills at a time and compare them to each other when trying to understand them, rather than taking one apart and trying to understand it.

evaluate from left to right, parenthesis first, then &&, then ||. so, this can be more clearly described as

*target is fuckable(see the Fuck skill for that. Ass Fuck extends Fuck)

*user is mobile(see position.java. every position will tell whether the top and bottom are mobile or not. typically, the bottom is not mobile while the top may or may not be depending on the position)

*user is behind OR (target is prone AND the target is not mobile)

*user canAct

*user can reachBottom

*target's Ass isReady OR target is a buttslut OR user has lubricant OR user's arousal is > 50% OR user has alwaysready OR user has assmaster

*target does not have a pussy OR user's pullout is not blocked by an addition (I don't actually know what this line is for exactly. it has to do with the Breeder addiction, how it can block certain actions, and how not all NPCs are guaranteed to actually have a pussy given all circumstances.)

if each of those points is true, you can use Ass Fuck
------------------------------------------------------------------------------------

on damage, you get 3 damage more if you're using Strapon2, which is an upgrade that can be bought from the guy you can learn Science from

the 5 extra damage comes from the user being Eve rather than the target being Eve. Eve is special like that

in this case, otherm is specifically the damage dealt as modified by the insertion trait. this is important because, on the next line:

the next line relating to strapons means that if you are -not- wearing a strapon, you take 50% of the damage you deal as pleasure damage to your cock. this damage is not modified by the increased damage you deal if you have Insertion

the traits after that point don't have an effect on damage, but instead to the duration of the flat-footedness characters can suffer after being hit with Ass Fuck, self induced Frenzing that can be achieved with traits, enthralling due to the as-yet not officially unimplemented ButtSlut quest, and characters emotions
 

Bronzechair

Well-Known Member
Aug 30, 2015
150
6
Sidenote: Does anyone else not like the Counter skill? (And Mara's Trip sometimes IMHO) Ideally it's a skill the could be played around, but A: You have no idea when the opponent is going to use it, and B: There's only a handful of skills available that won't get countered (Tempt,Taunt,Wait ect.) I wonder if it'd be possible to buff the skill but make it a 2-turn action.

You can reliably predict and play around counter by keeping track of its Mojo cost and cooldown: I noticed that at least Mara, Jewel, and Eve will use it on cooldown, and the other opponents (if they're even different) likely have a pattern of their own, in addition to the move being less punishing when used by them due to their lower Power/Cunning. If you made counter into a 2-turn action, it would be useless against the PC except in situations where the player spams actions carelessly and misses the prompt. Why? Because any player that's paying attention will simply not trigger it; there's literally no reason to trigger it without some kind of time-pressure, and even then it wouldn't be useful to attack her during her counter because there's no possibility for the attack to go through. In order to make a multi-turn counter work, you would need to give the player both incentive to hurry things along and a chance of attacking into the counter being successful.

What's wrong with Trip? I'm guessing Mara's massive amount of Cunning makes it super reliable for her? It might be scaling too well with Cunning.
 

Yllarius

Member
Feb 26, 2018
6
0
31
on damage, you get 3 damage more if you're using Strapon2, which is an upgrade that can be bought from the guy you can learn Science from

the 5 extra damage comes from the user being Eve rather than the target being Eve. Eve is special like that

in this case, otherm is specifically the damage dealt as modified by the insertion trait. this is important because, on the next line:

the next line relating to strapons means that if you are -not- wearing a strapon, you take 50% of the damage you deal as pleasure damage to your cock. this damage is not modified by the increased damage you deal if you have Insertion

the traits after that point don't have an effect on damage, but instead to the duration of the flat-footedness characters can suffer after being hit with Ass Fuck, self induced Frenzing that can be achieved with traits, enthralling due to the as-yet not officially unimplemented ButtSlut quest, and characters emotions
This all makes sense, but I'm sure i've had assfuck do more than 10-15 or damage (I've seen it do 60+) this also doesn't reference anything like Anal Training 1/2/3. Which makes me wonder if it's not being changed somewhere else?

EDIT: Do you ever immediately post something and have realize your mistake? This is probably all in 'thrust' ect. instead of initial insertion.

EDIT2: Nevermind, it's just calculated elsewhere. Looking at game logs, the base skill damage gets multiplied by other things. (Which when I'm done with skills, I'll look at more indepth)

You can reliably predict and play around counter by keeping track of its Mojo cost and cooldown: I noticed that at least Mara, Jewel, and Eve will use it on cooldown, and the other opponents (if they're even different) likely have a pattern of their own, in addition to the move being less punishing when used by them due to their lower Power/Cunning. If you made counter into a 2-turn action, it would be useless against the PC except in situations where the player spams actions carelessly and misses the prompt. Why? Because any player that's paying attention will simply not trigger it; there's literally no reason to trigger it without some kind of time-pressure, and even then it wouldn't be useful to attack her during her counter because there's no possibility for the attack to go through. In order to make a multi-turn counter work, you would need to give the player both incentive to hurry things along and a chance of attacking into the counter being successful.

What's wrong with Trip? I'm guessing Mara's massive amount of Cunning makes it super reliable for her? It might be scaling too well with Cunning.
You definitely could do that, and I've done so before, but it feels a bit frustrating (to me) to have to keep track of that all the time or risk losing very quickly because even with high power or cunning it can sometimes be difficult to escape.
Reversal is a bit frustrating in the same regard. But I think maybe this has more to do with the nature of the system itself instead. I cranked everyone's willpower up and things seem to go back and forth a little better.
(If one wanted to change willpower growth/lvl for npcs, perhaps in a start, how would one do that? I tried adding "growth" Willpower: and bonusWillpower: but neither seemed to work even at ridiculous levels.)

Trip was a huge issue on my power/fetish jewel clone, I swear she hit me with that every time. But less so on my others.


Nother EDIT: Found a minor bug with Barrier. It costs 10 mojo, but the description says '3 mojo' for whatever reason.
 
Last edited:

12centDime

Active Member
Mar 16, 2017
41
5
Oh yeah, the damage in the skill itself is only the tip of the iceberg.

On counter: You can further play around it too though. Charm status leaves them unable to use Counter. Diversion can't be countered. Non-contact skills work, so ranged Bind skills are good. If they have low stamina you might risk the Counter anyway, since you can probably struggle/escape out of the pin
.
Fun fact: Reversal's accuracy is based on a check between the user's Cunning and the opposer's Cunning. If the user's Cunning is even 10 higher than the opposer's Reversal's base accuracy is 100. Depending on your character and who you are facing, you may just be entirely unable to beat that check, and have to play around the fact that the opponent can use it if they feel like it. Keep them Charmed or Enthralled or bound and if they aren't, be in a position that isn't too incredibly bad if you get reversal'd.

Trip, among other things, is also an opposed Cunning check, so the lower the character's cunning the more susceptible they are to it. That could possibly be one of the reasons your power/fetish character had trouble with it, especially if they were low or medium Perception too.

On willpower growth, i don't know where, but there appears to be a sanity check. growth.willpower = 1.7f, or whichever notation the character uses, does produce Willpower higher than if there were no mod to growth at all, but growth.willpower = 5.2f doesn't produce values all that much higher than that. You can mod each character's base Willpower and it will continue growing each level as though it were their normal Willpower if you want though.
 

Yllarius

Member
Feb 26, 2018
6
0
31
Yeah, maybe it's just my disconnect with how the game plays. There's a lot of ways to get a person down and keep them down. (Masochism + Stamina damage), (Cunning + Charm/ect). But as I said I was kinda hoping for a bit more back and forth.

I did mod their base willpower, but I wanted a smoother growth, without the hassle of changing my savefile every so often.
That said, has there been any though on the discussion for addictions about fetishes? I'd love to see fetishes be semi-persistent. Basically between rounds, maybe either simply as a decreasing value (So losing .5 fetish every 'day') or as a floor based on the highest fetish value. (Maybe like a third? So if you got their value to 2.0 it could never fall below .6)
Obviously some restrictions would need to be applied. But I'd love for a way to more permanently effect my opponents.



I'm doing alright going through the skills now I think, but there's a lot of little things IDK about that I'll come back to I think.
for example, when looking at usability for blowjob, it uses a boolean for part of it instead of return. I'm not sure why that makes a different.
In Breast smother it uses:

target.loseWillpower(c, Math.min(5, target.getWillpower().max() * 10 / 100 ));
When is * 10 / 100 ever NOT equal to / 10?

There's a lot of status effects i'm not 100% on, but I figure i'll go through a first pass of the skills, come back if I figure anything out, and then ask more questions later.

EDIT: I think I found another bug: Bunshin service SAYS it uses 4 mojo per clone
But
@Override
public int getMojoCost(Combat c) {
return numberOfClones(c) * 2;
}

@Override
public String describe(Combat c) {
return "Pleasure your opponent with shadow clones: 4 mojo per attack (min 2))";
}
The mojo cost displays #clones * 2

EDIT 2: I /think/ I found another bug: In Bunshin Service again.
if (target.roll(getSelf(), c, accuracy(c, target))) {
switch (Random.random(4)) {
case 0:
r = Result.weak;
target.tempt(Random.random(3) + getSelf().get(Attribute.Seduction) / 4);
break;
case 1:
r = Result.normal;
target.body.pleasure(getSelf(), getSelf().body.getRandom("hands"),target.body.getRandomBreasts(),
Random.random(3 + getSelf().get(Attribute.Seduction) / 2)
+ target.get(Attribute.Perception) / 2,
c, this);
break;
case 2:
r = Result.strong;
BodyPart targetPart = target.body.has("cock") ? target.body.getRandomCock()
: target.hasPussy() ? target.body.getRandomPussy()
: target.body.getRandomAss();
target.body.pleasure(getSelf(), getSelf().body.getRandom("hands"),targetPart, Random.random(4 + getSelf().get(Attribute.Seduction))
+ target.get(Attribute.Perception) / 2,
c, this);
break;
default:
r = Result.critical;
targetPart = target.body.has("cock") ? target.body.getRandomCock()
: target.hasPussy() ? target.body.getRandomPussy()
: target.body.getRandomAss();
target.body.pleasure(getSelf(),getSelf().body.getRandom("hands"), targetPart, Random.random(6)
+ getSelf().get(Attribute.Seduction) / 2 + target.get(Attribute.Perception), c,
this);
break;
}
From /my/ understanding, the 'weak' version of the skill does (0 - 3) + 1/4 seduction.
The 'normal' version does (0-3+1/2 seduction) (+ 1/2 perception but)
At 40 seduction 'weak' is doing 10-13 and 'normal' is doing 0-23.
Is this intentional? It seems I would prefer the 'weak'.
Especially because IMHO, tempt damage is better than pleasure damage ANYWAYS, because it's usually preferable to cause heavy overflow

EDIT: Weee, looking at more stuff. Going back to Armbar
public boolean usable(Combat c, Character target) {
return c.getStance().dom(getSelf()) && c.getStance().reachTop(target) && getSelf().canAct()
&& !getSelf().has(Trait.undisciplined) && !c.getStance().inserted();
}
This implies to me that:
User is in a dominant stance, can reach the targets upper body, user can act.
User must NOT have the undisciplined trait /AND/ not being penetrated.
Implying that (Requirements not withstanding) if the user is being penetrated but does not have the undisciplined trait they could use armbar. (Assuming the other values are correct)
Which is odd, because it seems like it should be an OR statement.

I bring this up because in Charm:
@Override
public boolean usable(Combat c, Character target) {
return getSelf().canRespond() && c.getStance().facing(getSelf(), target) && !(target.is(Stsflag.wary) || target.is(Stsflag.charmed)) ;
}
We get an or statement. The target cannot be wary or charmed.
 
Last edited:

12centDime

Active Member
Mar 16, 2017
41
5
I believe the most recent talk on a Player addiction was the idea of some sort of modular build-your-own-addiction thing, but I can't seem to find it atm. In any case, I think talk on it was mostly tabled until the coding rewrite is complete. I personally hope it doesn't take over fetishes entirely since I have my own ideas on what the Fetish skill could represent, but time will tell. It might be odd for Eve and the player to share addictions, but I do see how the current Fetish system plays similarly to how an addiction might function.
-----------------------------------------------------------
On Breast Smother and Blow, I -want- to say that those quirks in the code mean nothing at all and are just there due to a previous coder's idea of clarity or something, but I wouldn't take my word for it. I'm pretty inexperienced with code as far as such things go.
-----------------------------------------------------------
Ninjutsu: Yeah, Ninjutsu has issues, those among them. The skillset isn't the most obvious to learn, and the majority of it needs a good bit of work for the sake of balance and actually functioning, so I don't think anyone has looked too hard at it, especially because of the code rewrite thing.
-----------------------------------------------------------
On Armbar
You're seeing something incorrectly. The statement is all &&s. Both must be true or the statement is false.
c.getStance().dom(getSelf())

&&

c.getStance().reachTop(target)

&&

getSelf().canAct()

&&

!getSelf().has(Trait.undisciplined)

&&

!c.getStance().inserted()
The user must both not have undisciplined and not be inserted, or else this fails as every line must be true.
As opposed to
getSelf().canRespond()

&&

c.getStance().facing(getSelf(), target)

&&

!(target.is(Stsflag.wary) || target.is(Stsflag.charmed))
If the target is wary or charmed, one or both of the || is true and the ! will make the statement false. So, the target must be both not wary and not charmed for the statement to be true.

Also, c.getStance().reachTop(target) means that the target must be able to reachTop, not the user. That would be c.getStance().reachTop(getSelf())
 

Yllarius

Member
Feb 26, 2018
6
0
31
On Armbar
You're seeing something incorrectly. The statement is all &&s. Both must be true or the statement is false.
So what's the difference between this and the or statement in charmed?
In this one, if the user has undisciplined the statement evaluates to false, the skill can't be used.
or if the user is penetrated then the statement evaluates to false, and the skill can't be used.

If the target is wary or charmed, one or both of the || is true and the ! will make the statement false. So, the target must be both not wary and not charmed for the statement to be true.
Yes, if either evaluate to false the skilll fails.


Also, c.getStance().reachTop(target) means that the target must be able to reachTop, not the user. That would be c.getStance().reachTop(getSelf())
Stances still confuse me a bit on specifics, and looking through them didn't seem to clarify much, does it automatically assume that 'top' is the opposite user then? So c.getstance().reachtop(target) would be if the target could reach the user's top?
 
Last edited:

12centDime

Active Member
Mar 16, 2017
41
5
Its possible i explained that poorly, because I'm not sure what exactly you're asking now. When we're talking about booleans, an && statement might not be any different from an || statement if they are written that way.
We're working with booleans, so each value can be only true or false.
Our statement is !(target.is(Stsflag.wary) || target.is(Stsflag.charmed)). This is logically equivalent to !target.is(Stsflag.wary) && !target.is(Stsflag.charmed), just depends what looks better.

Evaluating, we get

True if !wary && !charmed;
because !(False || False) = !False = True
False if !wary && charmed
because !(False || True) = !True = False
False if wary && !charmed
because !(True || False) = !True = False
False if wary && charmed
because !(True || True) = !True = False

For Armbar, we have !getSelf().has(Trait.undisciplined) && !c.getStance().inserted(). This is logically equivalent to !(getSelf().has(Trait.undisciplined) || c.getStance().inserted()), Again it just depends on how it looks.

Evaluating, we get

True if !disciplined && !inserted
because True && True = True
False if !disciplined && inserted
because True && False = False
False if disciplined && !inserted
because False && True = False
False if disciplined && inserted
because False && False = False
I hope that helps since that was basically me rambling. >_>

Stances still confuse me a bit on specifics, and looking through them didn't seem to clarify much, does it automatically assume that 'top' is the opposite user then? So c.getstance().reachtop(target) would be if the target could reach the user's top?

Simple answer is if the user of the skill is the opponent of target, yes, c.getStance().reachTop(target) means "if the target could reach the user's top."

But 'top' in that case doesn't mean "the opposite user." It refers to the upper part of the opponent of target's body. Whether or not a given character can is detailed by the java of w/e stance they are in. (So like Mount.java if you just used Mount)

Looking at useable for Fondle Breasts, you get c.getStance().reachTop(getSelf())
This means if getSelf() could physically reach the upper part of their opponent's body given their relative positions, getSelf() can use Fondle Breasts. You can use Fondle Breasts if you're Pussy Grinding, but not if someone is Heel Grinding you(and thus behind you and their chest is pressed against you). If you were Heel Grinding them, you could use Fondle Breasts(because they are in front of you and their breasts are within easy reach).

also, in stances, top can also be used like BehindFootjob.java's
public boolean behind(Character c) {
return c == top;
}

where top refers to the dominant person in the position, the person more in control of the position, the person who is not losing willpower for remaining in the position. In this stance, only the person in the dominant position(the one doing the holding and pleasuring with their feet in this case) is behind someone else.
 
Last edited:

Yllarius

Member
Feb 26, 2018
6
0
31
I hope that helps since that was basically me rambling. >_>
It does, In fact I had pretty much the same thing written out, just with WXYZ for simplicities sake.
I guess the lesson here is that just because things are written differently doesn't necessarily mean they function differently.

Simple answer is if the user of the skill is the opponent of target, yes, c.getStance().reachTop(target) means "if the target could reach the user's top."

But 'top' in that case doesn't mean "the opposite user." It refers to the upper part of the opponent of target's body. Whether or not a given character can is detailed by the java of w/e stance they are in. (So like Mount.java if you just used Mount)

Looking at useable for Fondle Breasts, you get c.getStance().reachTop(getSelf())
This means if getSelf() could physically reach the upper part of their opponent's body given their relative positions, getSelf() can use Fondle Breasts. You can use Fondle Breasts if you're Pussy Grinding, but not if someone is Heel Grinding you(and thus behind you and their chest is pressed against you). If you were Heel Grinding them, you could use Fondle Breasts(because they are in front of you and their breasts are within easy reach).

also, in stances, top can also be used like BehindFootjob.java's
public boolean behind(Character c) {
return c == top;
}

where top refers to the dominant person in the position, the person more in control of the position, the person who is not losing willpower for remaining in the position. In this stance, only the person in the dominant position(the one doing the holding and pleasuring with their feet in this case) is behind someone else.

You said it doesn't necessarily mean the opposite person (I said user, but really there's only ever one 'user') so what would it read if the person needs to be able to reach their own top? Or does that case exist.

Because from what I understand by what your saying, Armbar could be used in a theoretical position where the user can't reach the target's top, but the target could reach the user's top?
 

12centDime

Active Member
Mar 16, 2017
41
5
You said it doesn't necessarily mean the opposite person (I said user, but really there's only ever one 'user') so what would it read if the person needs to be able to reach their own top? Or does that case exist.
The case doesn't exist, but checking if getSelf().canAct() && c.getStance().mobile(getSelf()) would probably be similar. It's what Strip Self uses.

Because from what I understand by what your saying, Armbar could be used in a theoretical position where the user can't reach the target's top, but the target could reach the user's top?
Yes.
But, since part of Armbar's useable is c.getStance().dom(getSelf()), the user also has to be the top in the stance. To my knowledge, there is no stance in which the dom cannot reach the top of the opponent, but the opponent can reach the top of the dom.
 

The Silver Bard

Well-Known Member
Sep 2, 2015
207
23
De Morgan's laws are important for evaluating some of the boolean expressions. Remember:
!( A || B) == !A && !B
!( A && B ) == !A || !B
 

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
This could be solved if we simply used more meaningful names. There's nothing I can't stand more than a bunch of nonsense that doesn't have associated documentation. There's no need for small symbols - especially when you're not working by yourself. Many methods in the code currently do not have standardized, recognizable, and meaningful names.

is, has, or can - followed by something for returning booleans, for example.

isFuckingMyAss()

hasAPartToFuckWith()

and so on. This also helps navigate classes as a whole, particularly in any IDE.
 

The Silver Bard

Well-Known Member
Sep 2, 2015
207
23
To be fair, most of those methods date back to when I was the only person who was ever going to be touching the source code, and the entire game was only a few thousand lines long.
Maintaining the code was much simpler back then.
 

Ryplinn

Well-Known Member
Jun 13, 2016
61
14
Be gentle with code criticism, y'all. While it is true that You Are Not Your Code™, there's no need to make anyone have to remember that. The Bard didn't have to allow access to the source (thank you!).

More descriptive names are a good idea, but they're not critical. They're the sort of thing that can be updated as we go, or worked around with comments and IDE features. Plus, what constitutes a good name varies from person to person (although DarkSinfulMage's suggestions are a good starting point).

In addition to making names more helpful, any time you find a complicated expression, it's worth writing a comment in plain English describing the intent (whether authorial or inferred), so that those who come after can verify if the current expression is fit for purpose. The explanations in the posts above are good examples of these sorts of code comments.
 

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
Just for clarity - Not insulting anyone here. I'm no saint, myself. I DO think we could use a few methods that break down and simplify obtaining information about a character's state or the state of a given thing in the game - and making it intuitive to find such a method through use of convention.
 

Ryplinn

Well-Known Member
Jun 13, 2016
61
14
I DO think we could use a few methods that break down and simplify obtaining information about a character's state or the state of a given thing in the game - and making it intuitive to find such a method through use of convention.
That would be nice. It may be worth thinking about the gamestate as a database we issue queries against, and designing an API around that (or embedding SQLite or something), since we look at so many sets of variables in different ways.
 

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
That would be nice. It may be worth thinking about the gamestate as a database we issue queries against, and designing an API around that (or embedding SQLite or something), since we look at so many sets of variables in different ways.

Well, what I think would help first is if every relevant ADT had the same things. No need for a database as long as an amateur can reasonably hit "." and do, get, set, is, has and so on show them the way to deeper access.

m_Name - If a character, token, Addiction effect or other thing owned or created by a player and attached to another, this should be the easiest thing to find it by when searching a data structure. getm_Name() would be known and recognizable.

that way, you can do getCharacterByName(String name), getTokenByName(String token), hasTrait(String name), getRelationshipByName(String name), and even getAddictionByCause(String effectName, String causer). (Most of these at the Character level of things, ofc.)

(of course, beware of string equality comparison.)

It's not really straightforward to get a particular character from the data, or to get a specific something from a specific character in the data someplace in any given class. Being able to access and get them by a name can help us make new stuff in the future.
 

The Silver Bard

Well-Known Member
Sep 2, 2015
207
23
There is a static Global.getNPC(String name) and static Global.getNPCByType(String type), depending on whether you want to search by character name or class name (which are usually the same).
 

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
Yup! Do stuff like that in Character and you can access things all the way down from anywhere.

IN other news. I started playing with level 200 stuff for laughs and gave myself 10000 willpower. Last Stand+Carnal Virtuoso makes fighting Angel absolutely hilarious by the time she's doing millions in damage back to you several times in a row. XD
 

Rob Clark

New Member
Mar 21, 2018
2
0
52
I'm a big fan of the game and all of the work done in the mod. I'm curious if there is a plan for a new stable or release candidate. I'm on a Linux box and I'm not sure how to get the latest playable version of the game. Again, I'm grateful for all of your work.
 

witchlook

Member
Mar 4, 2017
12
4
44
Hey there, checking back in. Glad to see the overhaul is coming along off and on. I'd like to help the project get to a more stable state and thought I'd reach out to ask how my time is best spent. I can design, write, and code, but my time is sporadic so I don't want to lay claim to any huge blockers. Ideas:
  1. Game design
    1. Are any systems in need of work or an overhaul (eg time)?
    2. Work on bringing the varied skills & attributes under the same balancing philosophy. This would help us answer questions like: what new gameplay does Attribute X offer? What makes skill X unique and why does it exist? How should attributes scale?
  2. Software engineering
    1. I could help with Ryplinn's overhaul if we can figure out something for me to work on that wouldn't step on any toes. I would love to get this wrapped up because I think it will enable the community to work on various stuff without worrying about wasting their time.
    2. Any misc code health issues people may have identified
    3. More & better testing
  3. Content creation
    1. Lots of content assumes gender. "Genderizing" the game is a huge project but I could hack away at it slowly.

Let me know if any of these sound reasonable or if there's something else that desperately needs doing.
 

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
@witchlook

I would say get with Ryplinn about tasks involved with the overhaul. They have their own project sub-tasks and stuff set up on their github. I'd leave content creation to just a word document or something - it's too early to implement content without understanding what we end up with and how it should be done. We might even have the means to implement new kinds of content.

Genderizing the game should probably be centered around the classes and methods that are currently working with pronouns and different words. It's a very complex situation that isn't very usable from an "implementing content" perspective.

Of course, documenting that so people can easily accommodate different body parts/gender/etc would be helpful.

I too want this to get done, but it's one of the hardest and most trying and expansive things to do - overhauling a game. If you are up for taking on subtasks, that's great, but it'll mean constant and close communication.

@Rob Clark
I'm not even sure how we're gonna work that out. We're contributing to something a bit decentralized, at this point. I'm supposing that, considering the depth and breadth of the overhaul we may consider a brand new fork to release on?
 
  • Like
Reactions: Rob Clark

witchlook

Member
Mar 4, 2017
12
4
44
Thanks for the response. I'll work on the overhaul for now, attempting to follow @Ryplinn's roadmap (let me know if there's something in particular that needs work). The next item is making the daytime loop explicit, and I can use previous work on the main and match loops as reference. This appears straightforward, but we immediately discover that Daytime events are broken. Currently when one triggers the game ends up kicked back to the main loop and blocked by the readyForNight latch. I'd like to use the opportunity to rewrite Daytime events- the current infrastructure is a little wonky. Since the system is fairly isolated and there's only one event it shouldn't have many side effects.

Sound good? Any features you'd like out of the rewrite?
 
  • Like
Reactions: Ryplinn

Rob Clark

New Member
Mar 21, 2018
2
0
52
@Rob Clark
I'm not even sure how we're gonna work that out. We're contributing to something a bit decentralized, at this point. I'm supposing that, considering the depth and breadth of the overhaul we may consider a brand new fork to release on?

Wish I could be of some help, but my programming/release management skills are about 10 years out of practice. I enjoy following the progress of the game in this thread, and it's exciting to see all the new ideas and progress. I'm grateful for all the work that has been done in this mod.
 

Ryplinn

Well-Known Member
Jun 13, 2016
61
14
I've pushed a few fixes I had, and the start of my work on the Daytime stuff. I don't foresee myself having the brainpower to work on the rewrite any time soon, so continue with my blessing. None of my toes will be stepped on right now.
 

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
A few things I would personally get back to doing once we get on the other side of this:
1. If traits and other things haven't been done, I'd do them.
2. All the balance stuff I've posted about, including addictions.
3. Eve and Maya stuff.
4. Depending on some things, content scenes for characters - new scenarios depending on some conditions.
 

ThirdEyeKage

Member
May 24, 2018
6
0
43
Hey guys, been following this for a while. I just wanted to know, how do I give a created character the ability to cause addictions? Specifically, Zeal, and the things that are associated with it (Pray, Prostrate, etc.)
Thanks!
 

dndw

Well-Known Member
Aug 27, 2015
456
20
Hey guys, been following this for a while. I just wanted to know, how do I give a created character the ability to cause addictions? Specifically, Zeal, and the things that are associated with it (Pray, Prostrate, etc.)
Thanks!
Giving the character the 'zealinspiring' trait should do the trick. Either:
  • Add it to the character's .json file
  • Edit it into a save, or
  • Go to the debug screen (accessible from the credits window) and type '***.addTrait zealinspiring' where *** is the character's type (for custom characters, the type is NOT`necessarily the same as the name, it's in the .json). Then hit enter.
Addictions are a little wonky, though