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

ThatOneJester

Well-Known Member
Nov 14, 2015
386
23
32
@The Silver Bard
Ahhhh, thanks for the input!

@Anybody else who gives a damn.
I could maybe divvy up every month for 1 commission, that is if everything go's well financially next month.
So sadly everyone would need to wait for January to be about a week in?
I could put up maybe 30-40$ to help get some art (lowest at 20-25$).
Anybody know any good artists?
Since this is supposed to be a mod of the game, we wouldn't want to break any bounds by having similar art or something.
Although I really love the art currently being used for most of the main leads in version 2.5.1.2?
Hopefully that artists work would be alright, and they would be willing.


Hopefully this mod is updated/reworked!
I'm actually a big fan~~ xD
 

generalr

Active Member
Aug 14, 2016
28
1
I mean, I'm sure we could get some artists, but it's absurdly expensive - especially with SilverBard getting his main branch going again, this mod is better off adding content that it has specialized in and getting the code they have debugged and in good working order while they wait for another good explosion of content to come out for this game.

'Course, maybe the mod has run out of steam and it's already finished. If that's the case, we need to find a way to open up further customization. But it seems people want to work on background stuff instead for right now.
 

lightningshifter

Well-Known Member
Aug 27, 2015
120
12
I mean, I'm sure we could get some artists, but it's absurdly expensive - especially with SilverBard getting his main branch going again, this mod is better off adding content that it has specialized in and getting the code they have debugged and in good working order while they wait for another good explosion of content to come out for this game.

'Course, maybe the mod has run out of steam and it's already finished. If that's the case, we need to find a way to open up further customization. But it seems people want to work on background stuff instead for right now.

It is a shame. The main appeal to the mod was it took a slightly different approach to things and splashed transformation elements into it which the original game does not contain to my knowledge. I will admit that the original game is a lot more stable to play. But it was still kinda fun to play the mod. We'll just have to wait until they finally get the code in working order to merge in the latest changes and hope that the code can be cleaned up enough that there are not nearly so many game breaking glitches that kinda stop the play on the spot due to things not running right and then the game's ui locking out on you.
 

ThatOneJester

Well-Known Member
Nov 14, 2015
386
23
32
:p *Waits patiently (if you could call this comment being patient) for mod devs to post something* :p
 
  • Like
Reactions: aattss

Ryplinn

Well-Known Member
Jun 13, 2016
61
14
You can follow the progress of my rewrite at my Github fork: https://github.com/Ryplinn/nightgamesmod/tree/stable

The overall game loop, the nighttime match loop, and the combat loop are now untangled into explicit loops with clear entry and exit points. I'm currently tackling the daytime loop, and once I'm done with that, the loop portion of my rewrite will be complete.

I'll put up a build to be tested then, but you can always pull and compile whatever's up there. I try not to push unless the code is in a nominally playable state.

Once the loop refactoring is done and related bugs have been stomped out, I'll be working on the event system that will underpin trait centralization.

I hope this morsel of information tides you over for a bit. I know progress is slow, but it is happening!
 

Ryplinn

Well-Known Member
Jun 13, 2016
61
14
For those wishing to contribute to my rewrite, I'm not yet at a point where how to divvy up tasks is obvious. However, if you look at my Github fork, you might see something I don't (I am explicitly bad at project management). Feel free to file an issue or pull request, or DM me here.
 
  • Like
Reactions: kuschelpuh

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
Kinda unfortunate that a task of this size and shape usually ends up being one person's thing. Gotta hand it to Ryplinn for having the endurance for this part.

The program will be very different but much more manageable at the end of this. Then a lot of things will be able to work cleanly and we'll have to open discussions about choosing how things will work.

It's possible a lot of existing things will need to be tweaked to function.
 

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
@Ryplinn Currently looking at your branch to see what I can expect in terms of conversion work and redesign now that many things are not going to be half-broken. I have some questions/comments for you:

1. Can you explain how we're now keeping time between effects that last some amount of turns while the player is in and/or out of combat?
2. Game tracked a lot of things between both Traits, status effects, and flags for characters. We should clearly differentiate what is used for what. We might wanna discuss rearranging each character's stuff.
3. "When provided with a save file argument, nightgamesmod launches directly into that game" - List this as feature, especailly via Drag and drop save file into JAR.
4. "I want to work out why the main text window is so stuttery/flickery now. I'd like to figure out a way to only paint the text when the player is about to be presented with an interactable prompt."

componentFoo.updateUI(); should work after adding buttons or whatever to a panel or component. I'd end the relevant method with textPaneFoo.updateUI() and see if that gives the result.

5. Glad to see you fixed the two largest issues during the games. Lemme know if you have problems with winning and looking like you were defeated by someone and vice versa.

Okay, We might be nearing the time where we will want to open a discussion about how to standardize all characters now that we are organizing information/feautres about them - they are likely to be rewritten to work properly in the game.
 

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
Character Design Stuff

Character Name
Character Type (Fundamental style.)
Associated Stat
Tier 0-3 descriptions: Total of 4 required. Can happen at various levels, but these levels determine lots of things.
Any Alternate descriptions: For variations when transformed.
Standard Growth: For stat growth

Unique skills:
Each character can have unique skills, usually gained at each tier.

Unique traits:

Each character has Unique traits at start, at each Tier (each tier may be reached at different level but there are 4 or 5 total)
Each character has a choice between 1 or 2 OTHER unique traits at reaching tier - the player chooses, If they choose HARD, they get both. (and/or a third.)
Each character will earn other traits as per their growth plan.

Addiction:
Each character can inflict their unique addiction on other characters upon reaching Tier 2 (the third tier)

Each Addiction is a status effect that must decay or be purged to be removed.

Addictions are gained/advanced only through being successfully hit enough from specific opponent's abilities.

Every addiction can be avoided by avoiding those skills hitting the victim.

Addictions typically force the victim to lose control of themselves in and out of combat. This involves using a worship skill or something else.
Advanced addiction might benefit the Causer in combat, as well.
Addictions DO NOT trigger when the character that caused it is not in the games that night. (New feature.)
Being addicted will open up a unique scene series in each character during the daytime - it increases intensity and satisfies the victim. (Needs work, as do many scenes that are PH)
NPC victims can Satisfy themselves the same way, they can also cleanse themselves the same way. (new feature)
There needs to be equal value in the effects of each unique addiction. Either measured in actions lost, parts transformed, or stats gained.

Scenes:

Every character has standard scenes and quotes for various situations. Variations and addition scenes may be added, but Each character should have a standard set that must be written and implemented.

Taunt, tempt, ballbust, Drainstat, Drainlevel, various self orgasm and see orgasm quotes, etc.
Games, Spar, Sex, Addiction, PartModification screen and its scenes, first meeting, advanced meetings. After-Night encounter. Daytime random encounters.
Aesop description/getinfo text.
Aesop addiction description/advice text
Tier trait choice scenes.
and so on. Take a look at current files for examples.

It's a little soon to talk about individual characters now, but we'll be going one at a time after we settle on standardizing traits, addictions, and status effects.
 

Ryplinn

Well-Known Member
Jun 13, 2016
61
14
@Ryplinn Currently looking at your branch to see what I can expect in terms of conversion work and redesign now that many things are not going to be half-broken. I have some questions/comments for you:

1. Can you explain how we're now keeping time between effects that last some amount of turns while the player is in and/or out of combat?
2. Game tracked a lot of things between both Traits, status effects, and flags for characters. We should clearly differentiate what is used for what. We might wanna discuss rearranging each character's stuff.
3. "When provided with a save file argument, nightgamesmod launches directly into that game" - List this as feature, especailly via Drag and drop save file into JAR.
4. "I want to work out why the main text window is so stuttery/flickery now. I'd like to figure out a way to only paint the text when the player is about to be presented with an interactable prompt."

componentFoo.updateUI(); should work after adding buttons or whatever to a panel or component. I'd end the relevant method with textPaneFoo.updateUI() and see if that gives the result.

5. Glad to see you fixed the two largest issues during the games. Lemme know if you have problems with winning and looking like you were defeated by someone and vice versa.

Okay, We might be nearing the time where we will want to open a discussion about how to standardize all characters now that we are organizing information/feautres about them - they are likely to be rewritten to work properly in the game.

1. I haven't affected status effects or timers. The concept of combat rounds, match turns, and day/night cycles remains the same. IIRC, each relevant cycle type has an upkeep method when relevant timers count down.

I did introduce the concept of initiative for out-of-combat turn order. Before my changes, turn order within a match round was not explicitly defined.

2. Agreed. The concepts as implemented seem to break down like this:
  • Traits are more-or-less permanent features of characters. They have a variety of sources. Some traits are feats, which can be selected during level-up.
  • Status effects are temporary modifiers applied to characters, usually with a time limit.
  • Flags are how the game tracks things like whether a character has been introduced, how far along in the story the player is, and such. They also track game options (fast combat text, pronoun preference), but I think those should be separated. Low priority, though.
3. Maybe? I'm not clear on what you mean. I mostly use it with the run configurations in my IDE. Haven't actually properly built a JAR and tried out drag-and-drop, although there's no reason it shouldn't work.

4. I have resolved this to my satisfaction. The flickering was caused by the text in the main panel being cleared and repainted several times between one prompt and the next. I cut down on those update calls and also made updating a bit smarter about clearing.

5. Haven't seen this bug, but if I do, it should be easier to find now.
 

Lazyrick

Member
Nov 19, 2017
15
3
25
I know this is a pretty random question, but will there be any weight gain related content at any point?
I wouldn't get your hopes up for it. I can't imagine many people asking for it, and new content is currently on the backburner, it seems. The few people (person?) who can code seem to be trying to untangle the mess this has ended up, so that it is actually feasible to add anything without a million and a half errors and bugs.
 

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
Kinda wondering how we should change timekeeping in and out of combat:

For example. If we assume every map action takes one unit of time, then what happens when you:

A. Interfere.
B. Get Interfered.
C. Enter and exit combat?

Maybe we should have A and B be 1 unit while NPC encounters last for some amount of time before resolving?

While we're at it - Any comments on how long things take during the day?
 

Lazyrick

Member
Nov 19, 2017
15
3
25
Kinda wondering how we should change timekeeping in and out of combat:

For example. If we assume every map action takes one unit of time, then what happens when you:

A. Interfere.
B. Get Interfered.
C. Enter and exit combat?

Maybe we should have A and B be 1 unit while NPC encounters last for some amount of time before resolving?

While we're at it - Any comments on how long things take during the day?
Rounds last for 3 hours, which if we broke down into 5 minute units, would give us 36 units of time per round. I agree that A and B should be 1 unit, and C should be 2, at most 3. Moving would also cost a unit, but I feel fleeing from combat should cost 2, as you had to shake them off your trail.

As for day time events, I feel the current hour is good, but if possible throwing in some conditions would be interesting. for example, you can only use exercise once or twice a day, and if you go over, you get a debuff for the round that night. Also, the girls all being ready to hang out at all times is weird. They should have a life outside of you and nightly humpings. You wouldn't lose the hour, you just wouldn't be able to interact with said character at the time.

Of course, having no knowledge of code, I don't know if this is difficult, but that's my two cents.
 

randomanon

Active Member
Oct 17, 2015
41
2
Having encounters cost multiple units of time feels like it would just clog up the game, unless movement was reworked somehow including it becoming far cheaper than it is now. More than simply changing how time works, I think the focus should be on to dissuade players from camping the Holy Trinity of the Dorms-Quad-Student Union and the changes to time simply arising as a result of that.

There already are incentives to explore the far corners of the map, of course, but that often just means wasting time you could have used to fight and earn experience as well as money to buy the same things and more during the day. Traps tend to be similarly frustrating in that while they can be powerful, it can take forever to get someone to show up.

Another change that could be useful might be a more clearer initiative in terms of map-movement, instead of what feels like a pseudo-everyone-moves-at-the-same-time-maybe system we have now.
 

Lazyrick

Member
Nov 19, 2017
15
3
25
Having encounters cost multiple units of time feels like it would just clog up the game, unless movement was reworked somehow including it becoming far cheaper than it is now. More than simply changing how time works, I think the focus should be on to dissuade players from camping the Holy Trinity of the Dorms-Quad-Student Union and the changes to time simply arising as a result of that.

There already are incentives to explore the far corners of the map, of course, but that often just means wasting time you could have used to fight and earn experience as well as money to buy the same things and more during the day. Traps tend to be similarly frustrating in that while they can be powerful, it can take forever to get someone to show up.

Another change that could be useful might be a more clearer initiative in terms of map-movement, instead of what feels like a pseudo-everyone-moves-at-the-same-time-maybe system we have now.
Understandable. If we are talking about map exploring, unique or rare items are a given. Another idea could be the location of the encounter having some effect on the battle. For example, stripping an opponent when in the quad could cause shame at the potential exhibitionism. Or potions lasting longer/more effective when used in the Chem. lab. As for traps, I agree they are relatively useless, as they take too long to catch in the beginning, and end game, everyone can dodge them easily.

But, what do you mean by "initiative in terms of map-movement"? Like people with higher speed would move before others?
 

The Silver Bard

Well-Known Member
Sep 2, 2015
207
23
Another idea could be the location of the encounter having some effect on the battle. For example, stripping an opponent when in the quad could cause shame at the potential exhibitionism. Or potions lasting longer/more effective when used in the Chem. lab.

This was actually part of the original design doc, but I couldn't think of anything good for most of the locations, so I gave up on it. If people have enough good ideas for special room effects, it should be feasible.
 

Ryplinn

Well-Known Member
Jun 13, 2016
61
14
But, what do you mean by "initiative in terms of map-movement"? Like people with higher speed would move before others?

Essentially, yes. The current movement order is arbitrary. In my branch I roll a d20 + speed at the start of every movement period, so that fast characters will usually but not always go before slow characters, but I'm not attached to the system.
 

Lazyrick

Member
Nov 19, 2017
15
3
25
I got some ideas but can't think of anything for tunnel and the union though.

· Engineering Building
Effect from simple traps stronger i.e. tripwire, decoy (so simple, they would never see it coming)

· Workshop
Effect from complex traps stronger i.e. spring trap, spider trap (Jett and Mara need to stop leaving trap parts lying around)

· Chemistry Lab
Potions effect are stronger (love is in the air, and by love, I mean potentially dangerous chemicals)

· Bridge
Random spot an enemies location (I can see my house from here!)

· Library
Mojo debuff or cunning buff (books are kinda boring)

· Liberal Arts Building
Seduction buff (art is pretty and stuff)

· Pool
Speed debuff (no running by the pool)

· Student Union

· Quad
Stripping causes shame (unless exhibitionist perk? Then arousal)

· Dining Hall
Power buff (Protein powder diet FTW)

· Kitchen
Potion buffs/debuffs last x2 longer (nothing satisfies like momma’s cooking)

· Storage Room
Free item after encounter, better if winner. (would ya look at what ‘a found.)

· Tunnel

· Laundry Room
Clothes are easier to remove (sucks that most of the machines are broken though)

· Dorm
Stamina decreases more (only way to get big and strong is proper sleep…)

· Showers
Start lubricated (ahh, now my clothes are wet…)

Another idea I just had would be, during combat, luring your foe into a trap setup in the room. There would also be a chance for them to lure you, or counter the trap somehow so it worked on you instead. This way, you can actually use traps without having to worry about the majority going untriggered.
 

randomanon

Active Member
Oct 17, 2015
41
2
I was thinking more along the lines of having everyone's turns happen at the same time, putting the focus on how then the system resolves conflicts- Diplomacy is a fairly well known example of a game with such a mechanic. It would mean a significant overhaul though, so I'm not expecting too much out of this one.

But really, anything that serves as an actual mechanic rather than the sheer whim of the code would be nice to have, I would think, including Ryplinn's version mentioned above. Even apart from simply making sense, playing around with adding an initiative value to specific actions that would modify the roll could be fairly interesting.
 
Last edited:

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
Wow - great responses - multiquote would be too much so I'll respond to all of that in order:

@Lazyrick
I agree with that for the most part, but I'd add that the fact we use a real-clock time makes this very difficult to understand in game terms because of the presentation. If we wanna fix things up I'd want us to understand the times very well and standardize them. Not sure how I feel about implementing NPC schedules because it removes your options during the traditional day - and this is hell if we want addictions to remain very consequential.

I love the idea of making more daytime stuff - my own game features daytime-specific features. That's a huge undertaking with Nightgames, though.

@randomanon
I absolutely agree that the map has three really strong places that demand we change it. Movement options are improved through Cunning and Ninjutsu. I would love to see ways to deny certain areas on the map and be able ot play the map, but this also means making it bigger, which means you can get lost and alone much more easily. Obviously the map and playing the map should be a big topic for later.

As for effects - the games are supposed to be secret or have a very exclusive audience. I'm not sure how well that would jive.

@Lazyrick
Bespoke effects for maps and areas, while easier to implement - make all the work put into the map and game-type system a waste. I have ideas for this, but I think that should be shelved for ideas for later. Save that list for a future date.

@randomanon
I like Speed influencing turn order. It's a dimension of strategy. I've implemented that myself elsewhere and it works very well as long as you structure a turn loop in terms of "Before player, player, After player". When you encounter someone, you trigger an encounter. All that's left is tracking who encountered already so there's no confusion as people arrive to a location.
 

Yllarius

Member
Feb 26, 2018
6
0
31
So, I really wanted (For personal benefit, but maybe for others) is to look into the skills and traits for specific numerical values/algorithms and do a write up for them. Potentially even a wiki-type thing. (But no promises there)

Now I've found the skills, but i'm not 100% on how to read the variables. So any help would be appreciated.

I'll start with what I think I've gleaned from Anilingus:

public Anilingus(Character self) {
super("Lick Ass", self);
addTag(SkillTag.usesMouth);
addTag(SkillTag.pleasure);
addTag(SkillTag.oral);
}

@Override
public Set<SkillTag> getTags(Combat c, Character target) {
if (isWorship(c, target)) {
Set<SkillTag> tags = new HashSet<>(super.getTags(c, target));
tags.add(SkillTag.worship);
return tags;
}
Simple, Anilingus is an Oral Pleasure skill that uses the users mouth. It can also be worshipped.

public boolean requirements(Combat c, Character user, Character target) {
return getSelf().has(Trait.shameless) || getSelf().get(Attribute.Seduction) >= 30 || c.getStance().en == Stance.facesitting;
}

@Override
public boolean usable(Combat c, Character target) {
boolean canUse = c.getStance().isBeingFaceSatBy(c, getSelf(), target) && getSelf().canRespond()
|| getSelf().canAct();
boolean titsBlocking = c.getStance().enumerate() == Stance.paizuripin
|| c.getStance().enumerate() == Stance.titfucking;
return target.crotchAvailable() && target.body.has("ass") && c.getStance().oral(getSelf(), target) && canUse
&& !c.getStance().anallyPenetrated(c, target) && !titsBlocking;
}
If the user has Shamless, their seduction is greath than thirty, or they're currently in a facesitting stance they can use the skill.
The second one I'm not 100% on. It looks to me like constraints. If you're the victim of facesitting and can act/respond.
The tits one confuses me, but after that it's just checking if the target:
Has an ass
Isn't blocked by clothes/other things
Same for victim's mouth.

@Override
public float priorityMod(Combat c) {
return getSelf().has(Trait.silvertongue) ? 1 : 0;
}

@Override
public boolean resolve(Combat c, Character target) {
AssPart targetAss = (AssPart) target.body.getRandom("ass");
Result result = Result.normal;
int m = 10;
int n = 0;
int selfm = 0;
if (isWorship(c, target)) {
result = Result.sub;
m += 4 + Random.random(6);
n = 20;
selfm = 20;
} else if (c.getStance().isBeingFaceSatBy(c, getSelf(), target)) {
result = Result.reverse;
m += Random.random(6);
n = 10;
} else if (!c.getStance().mobile(target) || target.roll(getSelf(), c, accuracy(c, target))) {
m += Random.random(6);
if (getSelf().has(Trait.silvertongue)) {
m += 4;
result = Result.special;
}
} else {
m = 0;
n = 0;
result = Result.miss;
}
The meat and potatoes. I've assumed 'm' is the pleasure damage, and 'n' is the mojo build?
Initially the skill does 10 pleasure to the target, 0 to self, and 0 mojo build.
Increased by 5-10 for worship
As well as 20 damage to the self
and 20 mojo build.
Otherwise it does
1-6 +4 if you have silvertongue
and builds 10 mojo.

If for whatever reason it does 0 damage/mojo it misses.

I'm pretty sketchy on the details so this is where I need the most help.

Small odds and ends:
The speed of the skill is '2', which I assume is a simply priority system.
The accuracy is odd 75 : 200 Is this supposed to be if the target can move or not?
 

The Silver Bard

Well-Known Member
Sep 2, 2015
207
23
There's some bastardization of my original code going on, so I may not be able to help 100%, but I'll give it a shot.
Requirements is suppose to check whether the skill can be learned, and Usable checks whether the skill can be used in the particular situation. The stance should only be checked in usable.
The titsblocking check ensure that it can't be used in paizuripin or titsfucking stance, even if all other prerequisites are met.

You're mostly correct on resolution (I think. I can't see what m and n are actually used for in this snippet), but being in facesat stance and generates 10 mojo. The +1d6 damage is the same in every case, so you can just calculate it in the beginning. Thus the final pleasure damage is 11-16 (+ 4 if worship or silvertongue, but not facesat). Damage doesn't scale with any user Attributes, which is pretty usual.
The only time it'll ever fall through to the miss case is if stance is not faceSitting, isWorship is false (I assume that's user is worshiping target), target is mobile (not in a restrained stance), and the accuracy roll fails. Result will eventually be checked to determine what text to display.

Speed is a scale from 1-10. Turn order is decided by an opposed roll of 1d10 + user's speed + skill's speed.
Accuracy used to be a 1-10 scale, but I have no idea what the mod has done with it.
 

12centDime

Active Member
Mar 16, 2017
41
5
I agree that traps in general could use some way to reliably use them...but at the same time, I feel traps are already -really- strong when used by players. Snare/Enthrall makes any other character a cake-walk and you just win. Tripwire is absurdly good until about level 20 where it's merely good. Mara trap is hilarious. I really don't know how i feel about making them even better without also nerfing them somehow.

Daytime events: Going to several different stores and picking stuff up feels like it shouldn't take multiple hours if done sequentially, but it's also not the hugest deal that it does.
It feels terrible to use the exercise and porn actions really. I feel like we could slightly nerf the other really good actions in some way to make the former more appealing. Like, make advancing special skills for money cost 2 hours instead of 1, which also might cut down on the every character has 6 Ki and 5 Fetish thing.
I hate the RNG on Attribute advancement when spending time with the girls. I really feel like it should just be standardized somehow. Like, every 4th time increment spent on Games with a girl increases Cunning or something.

----------------------------------------

Accuracy is mostly handled in Character.java atm i think
public int getChanceToHit(Character attacker, Combat c, int accuracy) {

int hitDiff = attacker.getSpeedDifference(this) + (attacker.get(Attribute.Perception)
- get(Attribute.Perception));
int levelDiff = Math.min(attacker.level - level, 5);
levelDiff = Math.max(levelDiff, -5);

// with no level or hit differences and an default accuracy of 80, 80%
// hit rate
// each level the attacker is below the target will reduce this by 2%,
// to a maximum of 10%
// each point in accuracy of skill affects changes the hit chance by 1%
// each point in speed and perception will increase hit by 5%
int chanceToHit = 2 * levelDiff + accuracy + 5 * (hitDiff - evasionBonus());
if (has(Trait.hawkeye)) {
chanceToHit += 5;
}
return chanceToHit;
}
Though that doesn't take into account counters and stuff i think?

Anyway, it's base chance to hit. 75% or 200% given equal circumstances. 200% is just alot of extra accuracy so you -really- don't miss.
public int accuracy(Combat c, Character target) {
return !c.getStance().isBeingFaceSatBy(c, getSelf(), target) && c.getStance().reachTop(target)? 75 : 200;
}
If you are not being facesat on and the target can reach the top of you, the accuracy is 75%. Otherwise, the accuracy is 200%.
 
Last edited:

Yllarius

Member
Feb 26, 2018
6
0
31
Man, looking at Anilingus this seemed much simpler than it does now.
That said, if my questions ever get obnoxious feel free to tell me to chill, I really wanted to do this so I knew what could be done with my characters. I always had the issue of (Can I make an anal receiving power character?) ect

Anyways, let's look at Assfuck.

@Override
public boolean usable(Combat c, Character target) {
return fuckable(c, target) && c.getStance().mobile(getSelf())
&& (c.getStance().behind(getSelf())
|| (c.getStance().prone(target) && !c.getStance().mobile(target)))
&& getSelf().canAct()
&& c.getStance().reachBottom(getSelf())
&& (getTargetOrgan(target).isReady(target) || target.has(Trait.buttslut) || getSelf().has(Item.Lubricant)
|| getSelf().getArousal().percent() > 50 || getSelf().has(Trait.alwaysready)
|| getSelf().has(Trait.assmaster))
&& (!target.hasPussy() || !PullOut.blockedByAddiction(getSelf()));
That's a lot of usability requirements.
So first the user has to be mobile. (IE: Not pinned?) AND is behind OR the target is prone and mobile?
Obviously you have to be able to act, and can reach their bottom.
If the target's ass is lubricated, OR they have the Buttslut trait, OR you have a lubricant
OR you are aroused 50% or more, OR you have always ready, OR you have assmaster.
AND the target does NOT have a pussy (??) OR you're not blocked from pulling out by addiction?

This all confuses me a bit, which leads me to believe i'm reading it wrong.

From there I'm not even sure what entirely i'm looking at in the damage calculations.
int m = Random.random(10, 15);
if (getSelf().has(Trait.strapped) && getSelf().has(Item.Strapon2)) {
m += 3;
}
if (getSelf().human()) {
c.write(getSelf(), deal(c, premessage.length(), Result.normal, target));
} else if (target.human()) {
if (!c.getStance().behind(getSelf()) && getSelf().has(Trait.strapped)) {
c.write(getSelf(), receive(c, premessage.length(), Result.upgrade, target));
} else if (getSelf().getType().equals("Eve") && c.getStance().behind(getSelf())) {
m += 5;
c.write(getSelf(), receive(c, premessage.length(), Result.special, target));
} else {
c.write(getSelf(), receive(c, premessage.length(), Result.normal, target));
}
} else if (c.isBeingObserved()) {
if (!c.getStance().behind(getSelf()) && getSelf().has(Trait.strapped)) {
c.write(getSelf(), receive(c, premessage.length(), Result.upgrade, target));
} else {
c.write(getSelf(), receive(c, premessage.length(), Result.normal, target));
}
}

boolean voluntary = getSelf().canMakeOwnDecision();
if (c.getStance().behind(getSelf())) {
if (getSelf().getType().equals("Eve")) {
c.setStance(new AnalProne(getSelf(), target), getSelf(), voluntary);
} else {
if (c.getStance().enumerate() == Stance.behindfootjob) {c.setStance(new BehindFootjob(getSelf(),target));}
else {c.setStance(new Anal(getSelf(), target), getSelf(), voluntary);}
}
} else {
c.setStance(new AnalProne(getSelf(), target), getSelf(), voluntary);
}
int otherm = m;
if (getSelf().has(Trait.insertion)) {
otherm += Math.min(getSelf().get(Attribute.Seduction) / 4, 40);
}
target.body.pleasure(getSelf(), getSelfOrgan(), getTargetOrgan(target), otherm, c, this);
if (!getSelf().has(Trait.strapped)) {
getSelf().body.pleasure(target, getTargetOrgan(target), getSelfOrgan(), m / 2, c, this);
}
getSelf().emote(Emotion.dominant, 100);
if (!target.has(Trait.analTraining1) && !target.has(Trait.shameless)) {
target.emote(Emotion.desperate, 50);
} else {
target.emote(Emotion.horny, 25);
}
if (!target.has(Trait.Unflappable)) {
target.add(c, new Flatfooted(target, 1));
}
if (getSelf().has(Trait.analFanatic) && getSelf().hasDick()) {
c.write(getSelf(),
String.format("Now with %s %s deeply embedded within %s ass,"
+ " %s mind clears itself of everything but fucking %s as hard as possible.",
getSelf().possessiveAdjective(), getSelf().body.getRandomCock().describe(getSelf()),
target.nameOrPossessivePronoun(), getSelf().nameOrPossessivePronoun(),
target.directObject()));
getSelf().add(c, new Frenzied(getSelf(), 4));
getSelf().add(c, new IgnoreOrgasm(getSelf(), 4));
}
return true;
So 10-15 Damage base, 3 damage more if you're wearing a strap-on. and 5 more if against Eve??
otherm I assume is used as 'secondary' damage?
So AFAIK math.min returns smaller numbers right? So IF you have Insertion (Master?) Trait, it does 1/4th of your Seduction UP TO 40 damage.
If you have a strap-on (And wearing it) you gain a 50% base damage increase ( m / 2?)
IDK about the rest of the traits mentioned, or if they even have an effect on damage calculations.

Again, if you feel that it'd be too much work to answer my questions feel free to let me know and I'll drop it.

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.