Jump to content

Turn Based H-Combat (Mod Development)


What actions should be universal among classes?  

91 members have voted

  1. 1. What actions should be universal among classes? Note: Abilities that are NOT universal would STILL be part of some classes.

    • Struggle - Struggle out of bindings, furniture, attackers, etc.
      63
    • Free - Free an ally from Bindings, furniture, attackers, etc.
      44
    • Hamper - Debuff an enemy, making their actions less likely succeed.
      6
    • Help - Buff an ally, making their actions more likely to succeed.
      9
    • Defend - Protect yourself, taking less damage or being more evasive
      36
    • Spawn Furniture - Create a furniture object that an actor can be placed inside of
      8
    • Lock in Furniture - Place another actor inside a piece of spawned furniture.
      14
    • Seduce - Female actor charm male/creature actor into having sex
      39

This poll is closed to new votes


Recommended Posts

  • 4 weeks later...
Posted

Did some more work in preparation of a potential beta release.  There were a lot of options that I had built into the mod that I'd use and change via console command, but most people don't really want to learn a bunch of different values you can set via console command.

 

So, I made an MCM.  And it took quite a while, but you can see some of the options that I had set up ahead of time as configurable.

 

Basic Options:

Spoiler


20220202172437_1.jpg.61b8ab086b67124471e43e54fef64d07.jpg

 


 

Base Chances and Modifiers: 

 

Spoiler

20220202165117_1.jpg.739fdd0b9be4f414e27e9632006bddbd.jpg

 

 

And ... what's this? A return of the personalities and the ability to set allied personality keywords via the MCM?

 

Spoiler

20220202220252_1.jpg.580097aed82e09a87783319985259ba3.jpg

 

At this rate, who knows, maybe I will finish getting this into a playable/distributable state eventually.  The MCM was one of the parts I was dreading getting done (due to combination of not needing it myself and it just being a lot of boring work), so glad that that is done.

 

Some things still remaining to be finished:

 

  • Implementation of casting outside of the singular test spell
  • Finish Implementation of Sex Slaves as a combat class (Think of them as your tanks, but for Sex)
  • Finish implementation of Seduction (I think it should be working, but isn't quite working right)
  • Implement ability for a character to attempt to repair their armor/re-armor
  • Fix/Modify implementation of Surrender and Betrayal (Including Player or Enemies rejecting someone trying to defect to their side, whether you/enemies will accept surrender from an enemy, etc.)
  • Implement Bargain/Diplomacy/Bribery (Sometimes you should be able to throw gold or other favors at a problem to make it go away)
  • Fix up Battle Zone
  • Find a good spot for alt outfit mannequins
  • Add additional Battle Zones
  • Create a set up for starting combat (i.e., choosing enemies, moving to zone, etc.)
  • Create a set up for closing out combat (i.e., getting everyone moved back to their original position, getting loot, gear, etc.)

 

There's probably other things and other bugs that will come up, and looking at the list, it's actually quite a bit more for a release than I was expecting/thinking.  It is, more or less, in a state where I don't think you need to console command anything to go anymore, but it's definitely still pretty rough around the edges.

Posted

After messing around with things a little more tonight, I think I can see some changes that would really help how things feel/play:

 

One of my main issues at the moment is that combats take a long time, particularly if there are a lot of enemies.  Right now it supports up to 8 enemies, and that's what I'm testing with just to see some things, and oh boy, does 8 enemies and 5 allies take a while for anything to resolve.

 

For enemies in particular, I think I need to look into adding a status for like "mook"/"henchmen" and "boss".  Basically:

 

Mooks should be more inclined to do assisting things, and helping out the boss.  Also, when a mook is disabled in a strong disable (Currently this would be like being locked in furniture) they don't get a chance to escape and count as disabled/defeated unless rescued.

 

Bosses should spend their time doing impactful things and not waste time doing things like assisting allies, putting down preparatory items, etc.

 

This could also assist in later having better tools for dealing with "boss encounters" (i.e., dragons) where balancing out action economy becomes a question.

 

Some more things to add:

 

I need to potentially add another setting for preventing the ability to attack individuals having sex for physical damage, both on the attacker and victim sides.  Toggleable for people who may want that, but it feels better to avoid it in general for balance issues.

 

A "Re-dress" option needs to be made, but it'll require some tedious code for tracking outfits of stripped characters.

 

I'm back and forth on reworking stripping/binding.  Right now, they are simple and straight forward, check to strip and check to bind, if succeed target is stripped or bound.  It's quick and somewhat straight forward, but I'm back and forth on whether or not it's good to have the single check for full effect.  You can struggle out or have an ally assist you to remove your bindings, but this feels like it quickly bog down combats.  Similarly, right now you have to strip -> bind, and the ability to try to (potentially with a penalty) strip and bind with the same action feels appealing.  It's definitely possible to do it like stripping 1 item + 1 for every X points you succeed the check (similar for applying restraints), but I'm back and forth if that's actually good/better than just the simple full checks.  Simple full checks really primarily hurt the player, I think.

 

I'll get some sleep and think on it, but curious if anyone has any thoughts.

Posted

I'm back looking at some things and trying to make some changes/modifications to what I have, and looking for some feedback/thoughts.  There are some things that do fit nicely into predetermined skills in Skyrim, and I like the idea of trying to tie as much as possible back to the base game skills (including potentially having the player take actions result in the player getting xp towards a skill, so that the player keeps leveling/building skills in turn based combats).

 

There are some obvious tie ins below:

 

All Magic -> Corresponding magic spells.

Heavy Armor -> Provides damage reduction when wearing heavy armor, Skills when hit wearing heavy Armor

Light Armor -> Provides damage reduction (maybe increase evasion chance?) when wearing light armor, Skills when hit wearing light armor.

Block -> I currently don't have shield support, but this would be it.  Might be a change where having a shield gives you block for increased damage reduction, but you can't get the normal double/triple strike chance with 1 handed weapon.

Two Handed -> Two handed weapon damage/etc.

One Handed -> One handed Weapon damage/etc.

Archery -> Bow damage/etc.

Sneak -> Likelihood of successful stealth, Stealth bonus scaling

Lockpicking -> Increases chance to break out from being bound or break someone else out, maybe checks Lockpicking vs 2hand vs 1hand to determine whether you are using finesse or strength

Pickpocket -> Currently nothing that really makes sense (you could make arguments for stripping/binding, maybe), but it's also an out of combat skill anyways.

Speech -> This would be diplomacy/bribery/etc., options

 

Enchanting/Smithing/Alchemy -> Likely will leave these out of combat as well.

 

As you may notice, this leaves basically all of the sex related skills (Stripping, Binding, Taking/Dealing sex/stamina damage, etc.) basically unaccounted for and there doesn't, to me, seem to be a good way to add them in.  I know that there exist other mods that have either added sex related skill trees or let you build your own, but I'd rather not make those mods a requirement.  This leaves a couple of options:

 

1) Leave it as it is

PROS: Easy, doesn't require additional work

CONS: Doesn't scale, doesn't work too well, everyone is equally good at everything sex related, doesn't add any framework for doing this that can be used later

2) Add Sex related abilities for the mod to the various skill trees

PROS: Relatively easy to implement, Skills can give explicit bonuses

CONS: Incompatibility issues with other mods that affect skill trees, applies primarily/only to player without significant extra work, decentralizes skills, adds little in the way of future compatibility/updates

3) Make some random equivalency/close enough up for existing skills

PROS: Does not require new knowledge/changes on player end, "good enough" equivalencies aren't too difficult to invent

CONS: Unintuitive since it will be hidden in backend what effects what, People may have conflicting thoughts on what should affect different things, still requires coming up with what the "good enough" equivalency is, adds little in the way of future compatibility/updates

4) Add in, essentially, a sex skills tree/training using likely some combination of sexlab stats and tracking built into the mod

PROS: Most robust solution, gives the ability to really feel as though a character is specializing, ability for performing sex/bondage actions would be directly related to stats for sex/bondage, Would create a framework for expanding this aspect in the future

CONS: Longest upfront development time, Would likely require building a small framework for tracking related information/stats.

 

 

I'm a bit back and forth on this, as #4 seems like the way that I'd really like to ideally do this, but is also kind of just another subcomponent that I'd be putting more time into.  I think part of the issue is that there's a relatively large amount of work left in the undertaking, so it's balancing out fixing things I'm unhappy with vs adding things that are needed and there's only one person working on it.  Curious what everyone's thoughts are.

 

Also, if there is anyone interested in helping (And I mean actually interested, not just looking to get an early copy to try out themselves), send me a message.  There are several things that are relatively straightforward that having help with would allow me to focus more the scripting/framework side of the project.  Some examples are: Setting up Battlezones, Setting up Turn Based versions of spells, etc.  Note that this is not a call for beta testers to do bug testing.  That'll come later when I have everything in a better shape.

Posted

Another update, as there was quite a bit done today.

 

Large Additions/Updates:

Beginning of automatic personality assignment: This is another major update to personalities.  I have some notes earlier in the thread on how personalities work, but essentially you can think of them as modifiers that help decide what an AI is going to do.  Originally, they were assigned manually via a pop up box at the start of combat.  Then, I added some MCM capability for adding some personalities.  Finally, I have the start of a function that looks at an actor and randomly/automatically assigns personalities.  Currently, I have it set up to try and make some choices pending on whether the target is male, female, bandit, etc.  Still needs some work, but the initial framework is at least now in place.

Orders: I've started implementation of Orders.  Orders are a way that an actor can attempt to order another actor to do ... something.  It's somewhat limited right now, but see below for relevance.

Slavers, Sex Slaves, and Orders: I had mentioned adding some of this previously, and I wanted to go ahead and flesh it out some.  Actors can now be flagged as a Slaver or a Sex Slave (or neither, but never both).  In the current implementation, what this does is that Slavers are allowed on their turn to give an allied sex slave 1 order each turn without taking their normal action (i.e., in addition to their normal action).  Sex Slaves with orders (who aren't otherwise preoccupied/unavailable) have to follow the orders given to them.  However, Sex Slaves can follow ALL orders they have in a stack, meaning that they can potentially do multiple actions in a turn by being ordered to do so.  Right now, though, the only actions are Strip, Tie yourself up, and try and seduce someone.

More options added to MCM configuration: MCM is getting more and more of the options/backend I had previously set up added as well as a few new ones to handle some new cases.  One of the big things added is a "Combat Sex" page where you can control/modify several of the options for combat sex, such as damage victims and aggressors take, whether or not excess Endurance damage from sex should bleed over to HP damage, etc.

 

Smaller Additions/Updates:

Ability for Female/Female to overtake as victim: I decided I wanted to add this as an option because it amused me and seemed thematic.  If there is a sex event going on, and there are only two females involved, the female in the "victim"/"receiver" position can attempt to "overtake" the other, changing their positions and who is considered the "victim".  Currently NPCs won't try and do this, but it's an option players can choose.

Fixed Seduction: It had been bugged for a little while resulting it always failing.  Females can now once again try and seduce their enemies.  (In the future, I plan to add the ability for enemies that passed/rejected the seduction to offer the opportunity for a "Only if .." response - such as "Only if you strip naked" or "Only if you let me tie you up" etc. For the player, this is planned to give a prompt and let the player choose whether or not to accept)

Fixed more misdirected/old packages: What it sounds like, trying to clean up and streamline things some more as well as decrease time between things.

 

Thinking about it, a good bit done but still quite a bit more to go.

Posted

Mid day update as I take a moment to rest my brain from working on a rewrite.


I know what you're thinking: "Uh oh, rewrite? How much further away did we get?" But don't worry, it's not nearly as bad as it sounds.

 

Personality Handling Rewrite

With the mod the mod is set up, there are (at least intended to be) three main things that impact what choices an NPC makes: Base Chances for actions, "battlefield situation" and personalities.  Personalities are intended to give a bit more flavor/spice to combats, making it so NPCs behave differently depending on what their, well, personalities are. 

 

See spoiler below for the more technical side:

Spoiler


In the original implementation, this was all hard coded, so for example a line might look like this:

 

BindChance = (BindChance + ((EnemyInfo[4]-EnemyInfo[5])*5) + ((TurnTaker.HasSpell(_TBCPersonalityHorny) as int)*5) + ((TurnTaker.HasSpell(_TBCPersonalityDomineering) as int)*10) -((TurnTaker.HasSpell(_TBCPersonalityVicious) as int)*5) + ((TurnTaker.HasSpell(_TBCPersonalityVindictive) as int)*5) )

 

So, you can see that this is a specific example for deciding whether or not to bind.   BindChance represents the Chance as a value that the actor will choose to bind a target, TurnTaker is the actor whose turn we are evaluating, and the _TCBPersonality effects represent personalities that may be assigned to the Actor.  This function looks at the base chance someone wants to bind an enemy, then looks at how many unbound (but viable to be bound) targets there are, then modifies it based on several different personalities (either increasing or decreasing the odds).  For some personality/Action combos, there may also be a multiplier instead of a base amount (typically this is used as 0 for personalities that prohibit doing something).

 

As you might notice, this means that all of this is hardcoded into the back end and not adjustable at all.

 

In the current rewrite I am working on, this would instead look like:

 

BindChance = PersAux.ReturnAdjustedOdds(BindChance, "Bind", TurnTaker)

 

PersAux is the Personality Auxiliary functions scripts where handling of personality related matters is conducted and the Input "BindChance" represents a initial/base chance based on settings and battlefield awareness.  TurnTaker is once again the actor we are evaluating.  It uses the string "Bind" to determine which of the personality arrays it's looking for.

 

You might be wondering, why is this a big deal if I'm just offloading this elsewhere to another script to clean one up, and you'd be right if I wasn't adding additional functionality.  These exist primarily in the manner of:
 

bool Function UpdatePersonalityValue(Spell Personality, String Type, Float NewBonus, Float NewMult = 1)

 

and 

 

bool Function AddNewPersonality(Spell Personality, String Type, Float NewBonus, Float NewMult = 1)

 

With the change in how I am storing and calling variables, it enables me to add the ability for changing the effects of a personality and even adding new personalities to a action type.  This new personality could even, potentially, be a brand new personality added by another mod instead of one of the base personalities included.  It also, potentially, let's me create new MCM control for modifying personality effects so that there is more control.

 

Bottom Line:

Personalities are being removed from being hard coded effects to scalable and modifiable additions.  It's a bit of time consuming change over, but one that I feel is important for future proofing current work.  It will both make new, future implementations easier, add framework that other modders could use to add their own content in the future, and cleans up a lot of currently hard coded effects.  

 

Posted

Nice to see some decent progress on this. I can't really commit to helping with development (in a timely manner at least) but may be able to give opinions on implementation details, and once you reach a beta stage I can probably test things.

 

I'm probably missing a few, but a couple issues I have comments/ideas for are combats taking too long, and feeding sexual actions back into some form of statistic/advantage

 

For combat taking too long, you might be able to do some kind of a 'swarm action' where multiple actors do the same thing at once, as one turn, with elevated success chances. Or, and probably easier to implement, is a limit as to how many actors can take a turn per side, maybe with a bonus for having extra actors (or maybe just having to defeat more actors in order to win would give the side with fewer members a significant enough disadvantage).


As for doing something with sexual stats, I probably wouldn't try to create a system for it, yet at least. Imo there should be a check against level or stamina or something to determine success, but unless you have an abundance of time it may not be worth it to add permanent advantages from success. Most likely the immediate outcome of one of those actions is enough to make the player want to take them on their own, if that's what they have the mod for.

The slaver/slave feature especially sounds nice to have. Will the player be able to be marked as a slave and commanded as such by an NPC?

Posted

An update on the earlier Personality Handling Rewrite:

Rewrite on the Personality framework side is pretty much complete.  Each action type can have up to 16 assigned personalities with Bonuses and Multipliers.

Integration into MCM is also complete (See fancy pictures below)

Integration into AI Controller is next step but should be simple since there are now simplified call functions.  Will probably do some work on this tonight or tomorrow.

 

Pictures of new fancy MCM Options:

 

Spoiler

20220204184426_1.jpg.44761b1a116225b6c4619ffe328cbd4b.jpg

 

20220204184432_1.jpg.b3182280ca172683deeebb40d01dbb26.jpg

 

 

 

A lot getting done, even if it's not necessarily much closer to release yet (most of the boxes that need checking for that still unticked).  In hindsight, I could have likely gone for a less feature rich version to get an earlier release in, but, well, that's part of what happened with Riding Styles which resulted in me later rewriting the code and having to push out a second version because the code shared so little overlap (And that got released buggy too). 

 

Also these are mostly features I wanted for myself for my own play through.

 

Next To-Dos:
1) Update AI script to use new Personality options

2) Finally implement Re-dress, maybe?

3) Decide that it's only fair that, since Personality chance options got their own separate function script that battlefield chance options get the same treatment

4) Continue procrastinating working on implementing magic in earnest

Posted
9 minutes ago, Visio Diaboli said:

Nice to see some decent progress on this. I can't really commit to helping with development (in a timely manner at least) but may be able to give opinions on implementation details, and once you reach a beta stage I can probably test things.

 

I'm probably missing a few, but a couple issues I have comments/ideas for are combats taking too long, and feeding sexual actions back into some form of statistic/advantage

 

For combat taking too long, you might be able to do some kind of a 'swarm action' where multiple actors do the same thing at once, as one turn, with elevated success chances. Or, and probably easier to implement, is a limit as to how many actors can take a turn per side, maybe with a bonus for having extra actors (or maybe just having to defeat more actors in order to win would give the side with fewer members a significant enough disadvantage).


As for doing something with sexual stats, I probably wouldn't try to create a system for it, yet at least. Imo there should be a check against level or stamina or something to determine success, but unless you have an abundance of time it may not be worth it to add permanent advantages from success. Most likely the immediate outcome of one of those actions is enough to make the player want to take them on their own, if that's what they have the mod for.

The slaver/slave feature especially sounds nice to have. Will the player be able to be marked as a slave and commanded as such by an NPC?

 

I appreciate any feedback/ideas on this, as it's still very developmental and I've already had a lot of "Oh crap, that's a way better way of handling X" moments.

 

On the note of combats taking too long, one of the thoughts I did have is that I might need to stop and reevaluate some settings/options and play more combats to get a better idea.  Part of it is, also, determining fair/appropriate levels (X vs X).  This was on my list for future implementation, but part of the idea was that there will be different levels of fights.  It'd generate fights for difficulty based off of either some base level modifiers or the combined levels of the PC party, and choose a number of enemies based off the difficulty and level.

 

So, an easy fight for a level 30 Player with 2 Level 30 companions might have a level 25 Bandit and 3 level 5-10 bandits.

 

Meanwhile, a hard fight for the same group might be a Level 45 bandit, 2 level 25s, and 4 level 5s (or something).

 

Think of this like if you were in a dungeon, the Boss of the dungeon would be the only "hard" encounter, with others being either like easy or medium.

 

Now, my test encounter I play big to test a lot of things.  It's currently:

Level 80 Player Char
Level 50 Aela
Level 25 Ria

2  X Level 50 Guard

 

vs

 

Level 100 Bandit (The eponymous "Big Bad Bandit Boss")

 2 X Level 20 Bandits

2 X Level 25 Trolls

3 X Leveled Actor Bandits (ranges from like 5-50ish)

 

 

This is a lot of individuals to fight through already, and especially the level 100 bandit.  One of the other things I was thinking about, though, is that in the testing I'm not currently using smithed weapons/etc, and there's no magic, so a lot of big damage sources are gone.  The sex actions take a while to knock anyone out, but that is definitely in part tuning.  It might be that, HP wise/damage wise, fighting appropriately leveled enemies with appropriate gear with HP damage isn't that bad.  It'll honestly just require a lot more playing and looking into encounter balance.

 

So, long summary short, this may be more the test case than a real, serious issue.

 

I've thought about and kind of like the idea of a Swarm Action, but it's definitely a bit harder to implement in the system with how it's currently designed.  I think part of it is potentially looking at ways to speed up certain actions.  I might think about it a bit more.

 

Right, so, for sex.  Currently there's some checks, and a few different stats (Your endurance/Stamina is your stat for tanking sex damage/fatigue).  I think that it's likely I'll release, at least for beta testing, a first version without any sex skills system because as mentioned it'll probably take a bit of time (even outside of the brainstorming ideas of what should be in it stage).  

 

The Slave/Slaver feature seems fun so far, and yes, the player can be marked as a slave and commanded as such by an NPC!  In this case, when the players turn rolls around, the only options they are given (if they have orders) are "Follow Orders" and "Pass Turn".  You can still make some choices (For example, if you were ordered to try and seduce an enemy, you can still choose which one) but you do have to follow your orders.

 

 

Posted

Also, to make a note on Sex in combats and how it currently works:

When Sex is started, it creates a new managed sex event. This is so the mod controls how quickly (or not) the sex progresses.

 

Every time ANY actor in the sex event has a turn, sex damage is dealt to ALL actors in the event.  Base, this is 2 per turn per aggressor and 5 per turn to the victim.  Part of what this means is that if there are several individuals involved in the event, it can trigger damage several times a turn.  Also, that the more aggressors a victim is tending to, the more damage that they split out (So, if you have enough aggressors you are entertaining, you could be kind of net positive on dealing more damage than taking, just spread out).

 

Each actor has the option to either Advance the stage or pass turn (And the victim can also attempt to struggle free).

 

If the event finishes by going through all the stages, each actor takes climax damage (20 for aggressors, 50 for victim in current base settings).  

 

It's kind of fine for rough numbers, but getting more options on ways to start, things to do, maybe options to try and seduce an enemy into the gangbang, etc., and getting ways that you can skill up to potentially increase/decrease your damage dealt/taken, and I think it would be a lot more interesting.  As mentioned, right now, at high levels, it just takes a good while to sex someone unconscious.

Posted

One more update for the night as I put a bit more work in to getting closer.

 

As I started to work on updating the AI Function to use the updated personalities, I realized that having come this far there was only one reasonable thing to do:

 

Parameterize all of the base chances for choosing certain actions/behaviors, for Males, Females, and Creatures.  So, for the 17 or so different types of actions I currently have in some form, you can see below for the ability to set them in the MCM as to what the "base chance" is.

 

Spoiler

20220204234026_1.jpg.1f68d6bf3212b8da221a90730c584ce6.jpg

 

20220204234034_1.jpg.755ff2504f7494e3f137ba82a8c5f884.jpg

 

 

It continues to come together.

Posted

While I joked about it previously, major update at least so far today was actually creating a separate script for handling battlefield related behavior choices and then implementing some of those bonuses/checks into MCM to make them adjustable.  I know that people are likely tired of seeing pictures of MCM menus, but part of the reason I post them is that typically the workflow is:

Get the backend part related finished -> Implement the options into MCM

 

So, the MCM options represent things that are now done (at least more or less).  Also, in my opinion, it really shows to (hopefully) how incredibly configurable this mod will end up being.

 

Picture of the new MCM Page:

 

Spoiler

20220205170936_1.jpg.29d90f2ec489fc7b3ec1dabe7d0af13d.jpg

 

Technical Update on Why this is Good:

 

What will happen now in the AI script, compared to previously, is much more streamlined.  Previously in the AI script for actually evaluating an actors turn, there was this huge set of nested case structures looking at various things at various times for various types of enemies in various conditions.  Now, instead, ALL actors turns will have their "behavior weights" taken through the same path:

 

Step 1: Get Base Weights for that Actor Type (Male Vs Female Vs Creature)

The base weights for each of these types choosing to do a type of action is configurable via MCM

Step 2: Check Actor Conditions and remove invalid options

This will check to make sure the actor themselves can do something so, for example, a bound actor couldn't attack.

Step 3: Check Battlefield Conditions, Remove Invalid options and Weight

What today's work primarily has been.  Checks the battlefield, getting the state of what enemies/allies are alive, in what position, etc.  If an option is invalid (Say, you aren't allowed to betray, or everyone that could be stripped is stripped) then it removes that option.  Otherwise, it modifies weights based on settings and battlefield conditions.

Step 4: Check Personalities, Remove Invalid And Weight

Yesterdays work.  Does one final set of checks and weights.  Certain personalities can't take certain actions (Loyal individuals will never betray you, and unhelpful individuals will never help you, for example).

Step 5 : Determine Action Type

Now we roll from all of the weights and decide what our target action type should be.

Step 6: Determine Specific Action

This is a small change from previous versions.  I had a realization as I was working on this that rather than make types for each specific type of action, they'd continue to be in broader categories and then there'd be some choosing of actions within that category.  For example, while right now attack is hitting a nerd with your sword, in the future it will also encompass attack spells as an option.

 

I anticipate that this will be a MUCH more streamlined process for adding new abilities to enemy capability.

 

Other Goodies I worked on

 

Bosses/Mooks

Officially starting to add support for Bosses and Mooks. This isn't a binary, necessarily, of you are one or the other, but Mooks tend to act in more supportive ways, assisting their boss rather than trying to be the main star/damage dealer/etc.  (At least that's the plan.)  Note that, for the PCs party, if the Player is NOT a slave, they are counted as a Boss for how their allies view them.

 

Healing
New ability for "Can Heal". Without this, an individual can't use the heal action.  Everyone will start with at least 1 charge of "Can heal" representing access to a potion, or continual access if you have a healing spell available.  Currently NPCs will ONLY heal themselves or their Boss.

 

Updated Handling for More Cases

Better handling for cases such as the difference in reaction between an ally seducing a target and being raped by the target.

 

To Do:
1) Finish of AI Script Rewrite to account for new innovations above

2) Test out AI Script Rewrite

3) Create Encounter generator

4) Maybe Get some beta testers to test out stability/functionality while I work on adding other components.

 

A note of potential Help/Need from Beta Testers:
A LOT of the base values I have for weights/bonuses/etc. are VERY hand wavy "Close enough, let's move on".  Having some people who are willing to test and help tune a good set of base weights would be fantastically helpful and free me up to work on other aspects rather than feeling the need to sit here running combats (Combined with, I have a tendency to take control of at least allies, if not allies and enemies, to test out things being implemented).  

Posted

A lot of progress, but it's late so I'll keep it brief:

 

AI Script rework
Finished rework of the AI Script to take advantage of new functions. Definitely some things to adjust.  Like betrayal.  Giving everyone a base chance of betrayal was stupid and will be remedied. 

 

Battlefield Generation

New script, does several things.  Dynamically generates encounters with enemies based on A seed actor and a difficulty (Easy/Normal/Hard/Legendary).  Attempts to discern what type of actor it was passed from a fairly long list and then return an encounter pulled from that actors main faction and allies (Allies would be like Chaurus for Falmer, or dogs/wolves for bandits).  With the way I am pulling, it does look like it is threadsafe and friendly with other mods that modify leveled actor lists as I have seen a few non-base game creatures come out in initial testing.  Difficulty determines the maximum number of enemies that can be in the encounter (4/6/8/8) and what levels they can add up to.  

 

Sizes:

As part of battlefield generation, size categories were added.  These are 1x1, 1x2, 2x1, 2x2, and 4x2.  4x2 would be ~dragon size, while 2x2 would be ~mammoth size.  This was to make it better for allowing generated actors to partake in combat if they were large sized without it being a major space issue.  This also meant coming up with a "Where it fits" algorithm lol.

 

A LOT of bug fixes.  There's some issues with some of the new ways I'm doing things, but I'm working through them.  Mainly there are some actions that don't target right from the AI, and there are some fringe cases where the AI thinks it can do something it can't.

 

Enemy Types:

Overall, getting the battlefield generation stuff done was a lot of work but really worth it.  I need to finish setting up all of the form lists, but you give an idea I have the script back end set up to try and detect all of the following (And their allies):

 

Spoiler
  1. Bandit
  2. Guard
  3. Stormcloak
  4. Imperial
  5. Draugr
  6. Falmer
  7. Spider
  8. Troll
  9. Necromancer/Vampire
  10. Warlock
  11. Animal Predator
  12. Dwarven Automaton
  13. Forsworn
  14. Giant
  15. Werewolf
  16. Dragon 
  17. Hagraven
  18. Spriggan
  19. Dragon Priest

 

Not all of these have the leveled actor lists made up, and it's set up in a way that it's not too tricky to add more in the future for any missed categories, so I'm pleased with it.

 

There was definitely some other stuff I'm forgetting, but this is at least a decent cross section of what I've been up to.  May not have much time to work on this in the next few days (was hoping that by crunching over the weekend I could have a beta build ready) but I'll see when I've got my next batch of free time to work on it.  Who knows, it could be as early as tomorrow if other plans cancel.

 

Beta Checklist:

Actually getting close to a workable beta.
 

Posted

Haven't had as much time to work on this so far this week, but I have made a couple of updates/modifications.  Some of this in the backend.  

 

"Gender" Handling:

Added/Updated gender handling to be better and more manipulatable.  Primarily, you now have the ability to choose to treat an actor as either male or female (if never option is checked, it defaults to the base sex of the actor).

 

Enemy Formlists 

Finished making a first pass at filling out the Formlists for enemies based on the categories shown in Enemy Types in the above post.  For the most part, this was just using the in-game leveled actors present in game, but for some of them I had to make some judgement calls on what would be acceptable as an "ally".  I'll likely make a post at some point with what there is for allies looking for any feedback people may have.

 

New Test Encounters
Added new dialogue spawned test encounters.  There are now 5 different seed options (Big Bad Bandit Boss, Leveled Bandit Boss, Leveled Giant, Leveled Draugr, Leveled Falmer) and each you can start at any of the 4 difficulties (Easy, Normal, Hard, Legendary).  

 

To Do:

  1. Create ability to dynamically return to spot where encounter started from Battlezone
  2. Finish making redress option
  3. Add new options implemented in the past several days of working to MCM
  4. Create dynamic combat starter (Debug spell before an auto-start combat watch)

Beta:

There are a few bugs to fix but the mod looks to be just about stable enough to do a small beta release for those interested in helping with testing. I would anticipate sometime this weekend unless I lose my time to work on this.  If you are, please let me know.

Posted

A few updates and another "Of course you did."

 

Dynamically Start and Return from Battlezone

Check, mostly working now!  See point below for why I say "mostly" ...

 

Execute, Spare, Subdue At Combat End

System in progress for deciding what to do with enemies at the end of combat.  Currently, you can either Execute them all, Spare them all, or Subdue some and execute/spare the rest.  Execute kills them (Surprising, I know).  "Real" enemies (i.e., those pulled from the base game and not generated by the quest) have their bodies return to the real world.  Spared enemies have a "Spared" effect added to them, making them non-hostile to player/player allies.  Subdued much the same, except it also attempts to remove them from any problematic factions (i.e., bandit, predator, etc.) so that the player can take them with them.  Currently there's some issue with Subduing I need to figure out (factions not being properly assigned, or something).  Both Subdued/Spared last for 30 days, but each day it checks if the player is within a certain range and, if not, they revert back to their normal ways.  Spared/Executed real NPCs, and any subdued NPCs will return with the player.  Main issue remains the faction assignment.

 

End of Combat Loot:

At the end of combat, assuming the player won, enemy loot is combined into a chest for the player to choose what, if anything, they want from.  I'm looking to make this so only non-subdued enemies have their loot taken to the chest so that you don't have to try and redress/etc enemies you subdue.

 

Redress

Basic redress option added.  This is currently ONLY outfit storage.  This means it won't work on the player (Other than to remove stripped debuff) and won't work on NPCs that have custom/special armor assignments.  Handling that scenario is more difficult and time intensive than I currently want to devote to it.

 

Combat Damage

After looking into the combat damage more, I found some issues with the formulas I was using.  This was resulting in, for most higher level PCs/NPCs lower damage than expected.  Damage is higher than previous, but the question of "appropriate amounts of damage" is still to be determined.  For example, a level 80 PC, with a Daedric Bow and 100 Archery deals currently about 100 damage, times any Mods to their archery damage (currently not checking perks for bonus damage). A level 80 bandit boss has almost 1100 HP.  This means it'll likely take several shots to bring down the target, which somewhat makes sense since they are a boss, but if you have few allies (or your allies are acting stupid and doing everything but attacking) it can take quite a while to kill similarly leveled enemies.

 

Currently, there are three things not taken into account:

1) Perks (I haven't taken the time to implement perk checks for bonus damage)

2) Weapon Smithing Quality (I can't figure out any way to get this value to take into account, and the only weapon damage function I am seeing in papyrus or SKSE is to get the base damage with does NOT take into account any smithing upgrades.  Any advice on this highly appreciated).

3) Enemies Armor - We definitely want armor to mitigate damage similar to in game, but that would further reduce the already high number of attacks that it takes to drop someone.  If we are using Skyrims armor calculations for damage reduction, this caps at up to 80% damage reduction.  This would take a long time to kill a heavily armored, high HP target and may require some rebalancing.  Thinking on it, currently no good idea and simply ignoring armor for the time being.

 

Bow Attacks Implemented

As you may have picked up from the previous entry, you can now use a bow to attack! Previously you could only walk up and smack, but now, if you do have a bow equipped, it will check and have you shoot them instead.  This is a bit finicky on the player, since the crosshair needs to be in an appropriate place to fire the bow, meaning when the player attacks with a bow they may need to move the mouse up or down to find the spot that the game wants to shoot the bow at.

 

Updated Case Handling
Added in a few more checks in case handling to hopefully reduce more of the "null target" AI errors from an AI thinking they can do something, but actually can't.

 

Betray Not Working Properly
Somethings broken with Betrayal and I am struggling to figure out what.  Aela, even set to be loyal which should prohibit it, kept betraying me.  What a bitch.  I need to track down the issue and figure out why this is happening.  This was meant to be a rare/scripted thing that happened, so I need to figure out why it's like this.

 

 

 

Now, onto the "of course you did" ....

 

Rework of Rolling Successes

Currently, this area of the script is kind of a mess.  Lots of things hardcoded in, it's ugly, and I don't really like it.  So, when I was sitting there doing something else, I realized that there was a much better way of doing what I want to, and it's forward looking which I've been trying to make the mod.  This involves constructing sets of multiple formlists for each type of action (i.e., Attack, Strip, Bind, etc.).  See below for more in depth explanation and why this is good:

 

Spoiler


There are several formlists that will be created and associated with each type of action.  These are:

 

"Type"Bonus - Spell

"Type"Value - Global Variable
"Type"RemoveOnUse - Spell

"Type"Defend - Spell 
"Type"DefendValue - GlobalV ariable 
"Type"DefendRemoveOnUse - Spell

 

The structure/method for the top and bottom are the same, except the top are bonuses applied to the attack and the bottom are bonuses applied to the defender.  The Bonus/Defend represent the different spells that can be used to a modify a certain type of check.  For example, this could be assist and hamper.  For Attack Bonus, Assist would apply a positive bonus, set in the Global Variable located at the same index of the "Values" formlist, while hamper would apply a negative bonus, once again set by the global variable at the matching index.  RemoveOnUse is used to track which of these effects, that modify the check, should be removed upon making the check.  For example, Hampered is currently removed when making an action that uses it in a check, but it is not removed when it is applied as a penalty.

 

Why is this a particularly good way of doing things?  Other than making it straightforward at a glance what spells/abilities affect a check, it also gives me the ability to have modders add their own Spells/Abilities to modify combat resolution.  Since one of my goals is to make it so that other modders can add additional content to the mod, this seems like a much better way forward than how I was doing it and fits more with how I am working on the updated design of the framework.  Like a lot of similar things, though, it's more upfront work.

 

This does work towards the eventual goal of being able to add classes, including the ability for modders to add their own classes with unique abilities.

 

I'm getting a bit tired of rewriting code, especially when it feels like I could get a first version out for testing if I just ignored it, but it feels like it's better to get things done correctly and then put out a alpha/beta rather than put one out and feel like there are appreciable backend changes that need to be made.   A lot of the current work is more tedious than difficult.

 

Power Level
Not counting any smaller scripts or fragments, the code base for the project is almost over 9000 (lines)!  It might go down a bit with the upcoming rework, but any day now scouters will start breaking.  Honestly, at this point, I'm trying to push through to a beta version before burn out hits 

 

To Do:

  • Finish Success Rolling Rework 
  • Figure out why Subduing isn't working 
  • Add options to MCM
  • Dynamic Combat Starter
Posted

A lot of various updates from work over the weekend, etc.  Going to try and keep things brief and I know that I'm probably missing things.

 

Success Rolling Rework:
Now implemented and (mostly) working.  Had an issue where I realized that I needed to make a new save for things to properly populate, but that is now fixed.  A bunch of changes in what contributes to what and how, and how things are calculated.  

 

Subduing (Mostly) Working:
I seem to have fixed the issue, but I've had a few instances where it seems to break/have an issue (subdued actor returns to normal area and becomes hostile).  Still trying to trouble shoot this.

 

MCM Options:

Nearly all the options (including a few extras that I realized should be implemented as I working on this) implemented.  MCM provides a LOT of configuration to how you want things to go.

 

Dynamic Combat Starter:
Added 4 spells that start a combat with a target for either an easy, medium, hard, or legendary combat.

 

Damage Reworks:

  • Added armor for damage reduction
  • Added perk search to check players and enemies for relevant damage boosting perks
  • Fixed some damage calculations
  • Pulls damage mods so enchantments an actor has equipped will apply to damage
  • Functions don't exist to get tempering level (fine, exquisite, flawless, etc.) of weapons, so a makeshift method is used.  The highest Smithing skill for all enemy and ally actors are calculated, then that side receive a bonus to the base damage based off of their smithing skill (the assumption that they would have upgraded their allies weapons).

With all of these changes made, my complaints and concerns about damage being low look to be (potentially) unfounded.  The numbers, for enemies, may actually be a bit high in some cases.  For example, a Bandit Boss clobbered one of my characters for over 300 damage in a single swing, which is quite  bit.  However, a random leveled Draugr reaper absolutely obliterated a character for over 600 damage in a single attack.  I might need to look into some adjustment in the other direction, but it's also possible that this is something that as players get more options isn't as much of an issue.  This also makes me think that implementing blocking on attack choice based on actor rank (i.e., have to attack front rank of targets before you can attack back rank with melee) may be an important thing to implement.

 

Betrayal:

Figured out part of the reason that cunt Aela kept betraying me (bad settings).  Seems to be better than it was and betrayal should be something that actors with specific traits will try to do (unless you set MCM options differently).

 

Stealth Rework:
A lot of actors kept rolling stealth and entering into it.  It's a nice, strong buff at the moment.  However, it didn't feel right.  Set up some back end checks so that any NPC who doesn't seem to be putting any stat points in stealth won't attempt to enter.  Also, needs a check as currently it is an auto-success to enter into stealth.

 

Outfit Storage:

Reworked dynamic outfit storage so that it will store the items that an actor has equipped when they are stripped and then re-equip them when they use the redress action.  This should also preserve player and player ally outfits stripped outfits outside of combat for redressing after combat is over.

 

Enemy Valid Targets Checking:
Added in some additional/better logic for NPCs choosing what to do, particularly to help them avoid choosing actions with no valid target.

 

Processing Rework:

Reworked some script flow that should get rid of strange double turns and similar issues.  Also makes shutdown of a combat better.

 

Player Options/Choices:

Added more/better options for choosing what to do with the player and moved options around some.  Attack now has Physical or Magical as choices, rather than cast being a base choice.  Prepare has actions such as Stealth or setting up furniture.  Support contains moves such as applying an assist bonus, hampering, and attempting to rescue an ally.

 

A lot of other things I can't think of off the top of my head.

I put a good amount of work in over the weekend, and things definitely seem to be chugging along.

 

Beta:

Very soon.  There are I think 1-2 bugs I need to track down (main one is primarily when one of the enemy actors sometimes doesn't end up in the battlezone) and then I will be ready for a small closed beta for testing.  

 

Questions for Community Feedback 1:

There are currently 9 Mannequins in the Battlezone that the player can equip outfits onto to have these custom outfits be used when equipping bondage/bind gear onto a target.  These need to be moved somewhere else, and I'm trying to think of where would be good but I haven't had any really good ideas.  Any recommendations would be appreciated.

 

Questions for Mod Developers 1:

As I have been working on this, I have been setting several things up so that other modders can actually add things to the mod in submods, get calls for mod events, or start combats through the mod.  My main question for any mod developers out there who may be interested is what sort of functionality you would want. I'll give a few quick examples:

Basic: Start a turn based combat with a specified target, in a specified area.

More Advanced: Get mod call from Turn Based Combat that says things like, "A battle completed, Player Won against XXX, Actor Was subdued, Player Lost against XXX" etc.  There are a lot of mods that do various things, so my thought is it would potentially be useful to be able to get a call like, "Player Lost against Guard" and be able to have that trigger a prison mod, for example.

More Advanced: Design of custom effects, abilities, and classes.  With the current implementation, I have a method where I believe that not only got you design custom buff/debuff abilities (within certain limitations, but they can have specific names/effects for elsewhere), but it could also lead to a method where you can develop custom classes.  The idea is for a custom class to have some, or all, of it's various abilities types replaced by a class specific ability.  I've got most of the back end set up for this, and I think it's imminently achievable in the future and even more reasonable than what I was previously planning for it.  This ties into how I am changing some of the decision making as previously mentioned in a way that I think helps and simplifies the issue.

So, with all of that in mod, for Mod Developers, what are things that you would want to see as features or be able to do to develop on this?

Posted

More Additions changes, problems, and needed upgrade:

 

Sex Damage:
Implemented some initial, minor scaling on sex damage.  It basically looks at and checks the experience of the Victims/Aggressors, as well as their level, and then does some scaling of the damage based off of that.  For the victim, this adds all of the aggressors together, making handling multiple aggressors more dangerous/damaging even though you are simultaneously dealing your damage back to all of them.  Trade offs and all that.  Very initial/preliminary.

 

True Dynamic Combat Start:

Wasn't originally planning this for battle release, but I wanted it for testing some various things.  There is not an ability to have an auto combat starter.  It monitors the player, and when the player enters into combat will basically propagate a number of enemies the player is currently in combat with into the Turn Based Combat, rather than just a single.  A bit experimental, but so far actually seems to be working well.  Spell options still available.

 

New Battlezone:

This was in part built as an experiment/test of the battlezone transferability.  The Battlezone is based off of the Halted Streams Camp boss room.  Construction was fairly simple to do, which is very encouraging for either personally adding, or having other modders add, new battlezones in the future to give a bit more spice.  Can show a picture if there is interest of what it looks like with player/NPCs inside.

 

Updated Chances and Choices:

Rescaled some of the chances and some of the choice options, and the combats seem to run a bit smoother and less silly with the rework, which is good.

 

Bug Fixes:

Several more bug fixes to a whole variety of different things.  A lot of things are running smoother, but there is currently one big outlier ....

 

Runtime and Potential Action Validation:

Ok, here is the next "Just one more code rewrite ..." for the day ....  Previously, I had rewrote some of the scripting to better take advantage and be able to weight NPC actions based both battlefield Gender Preferences, Battlefield Conditions, and Personalities.  Gender and Personalities run pretty well, however, Battlefield Conditions is very clunky.  Sometimes, it can take multiple seconds to chug through the script to test all of the conditions/etc.  As you can probably imagine, this is problematic for slowing things down.  I didn't strictly time it, but there were several times that it seemed to take close to the amount of time I had set as a "start of turn" buffer (5 seconds) to chug through.  This means that if you had 12 NPCs all take 5 seconds to chug, that's an extra minute of waiting each out of combat.  And the combat rounds already aren't terribly fast.

 

So, I think I know what I need to do, which is instead set up a battlefield monitor that dynamically tracks all instances of things like target validity, numbers, etc., that can then just be pulled from rather than rechecking each time.  For example, currently, the script would check validity of stripping a target looking something like (In pseudo-code):

 

 

while index < Targets.Length
  if !Targets[index].HasSpell(Stripped) && Targets[index].GetGender == Female && !Targets[index].HasSpell(Incapacitated) && !Targets[index].HasSpell(HavingSex)
      If !Targets[index].IsAlly(Attacker)
          Valid = true
      endif
  endif
  ind +=1
endwhile                          

 

This requires running several checks, multiple times, as it would check through each of the actors to see if they are a valid target to be stripped.  Then, the number of trues would be counted to determine a number of valid targets.  Comparatively, in the new way I'm looking to change, the script would instead grab a set of pre-allocated arrays from a monitor script rather than generate them themselves.

 

The monitor script, in turn, will initialize at quest start, and then I will modify the conditions, which are currently in the form of spells, to send modification events using on EffectStart.  This way, the monitoring of the battlefield will be handled in a separate thread and not need to be generated each time it is called.  In addition to this, the monitor script can maintain an int valids count, so the monitor script merely needs to pull in the number of valid targets rather than do any calculation itself.  This should hopefully greatly speed up the monitoring aspect and cut down the waiting.  However, it is one more monitor to get set up, so another batch of time to that.  

 

Turn Timing Bug:
There is some strange bug I am trying to track, where several turns are attempted to be taken in very rapid succession like there is some processing issue.  I think this may be due to a double call on running the turn evaluation somewhere on one of the actions, but I haven't been able to determine where yet.

 

Beta:

I gave contemplation to a beta release with what I have, but, since I would be about to make another sizable change in the Battlefield monitoring, I decided to hold off so that what would be tested would have the actual back end.  My goal for when I put out beta is that the framework itself is hopefully representational in its operation enough that all of the feedback I get would be valid and not "oh, I was planning to change that anyways".  But, I have been continually pounding away at this here and there as I have availability (I realized I've probably put over 100 hours into this by this point, and that number is actually probably quite a bit higher than that) so I am invested in actually getting the beta out.  IF the rewrite for battlefield monitoring works as anticipated, I should be able to get the initial beta build out for testing to those interested in providing feedback.

 

Post Beta Plans:
There are several things I am waiting until I have the beta out to work on (such as casting, more actions, Framework for other mods to hook in, etc.) until I have a workable beta out.  These are likely things that I will implement before a full, real release, but I am viewing them as lower priority than having a working engine in place that can be tested and get feedback on.

 

  • 1 month later...
Posted

Quick update:

 

Previous/Current Work:
I have not had time to work on this in the past probably 3-5 weeks.  Before I had to go on hiatus, I had partially finished working on a new monitoring script/method.  That works like:

1) There is a separate monitor script that keeps track of valid targets

2) That monitor script is updated by the magic effects that add different effects (I.e., stripped, bound, etc.)

3) Other scripts simply retrieve or call mostly pre-generated targeting validity data from the monitor script

 

This should allow the validity checking to drastically cut down on timing.  However, because of these changes, I need to update basically everywhere else in the scripts that check for valid targets to use the new script, which is where I am at (Looking through where I left off, it looks actually using this new method to generate valid targets is in place).

 

Beta and Initial Release

Once I get this working, I'll try and get everything needed into a distributable for beta testing for those who have previously contacted me as being interested.  Based on other commitments, my hopeful timeframe is:

Beta Distribution by end of March

Bug fixing, initial release by end of April

 

But, we'll see how well that goes.

 

Mod in Action
Is there any interest in (once I have completed the above upgrade finish) seeing the mod in action (i.e., video of triggering and fighting a combat)?

Posted

I'll look to see if I can get one set up.  I've been working on this a bit today and the code changes have partially had the intended effect (No longer having really long run times on certain functions) but there are several things that with the updates changes aren't working properly yet.  As is to be expected, at the end of the day, with a fairly major code revision.

 

However, the increase in speed, once I get the other issues fixed, I think is definitely worth it.  Waiting an extra 3-6 seconds for the game to crunch numbers on each NPCs turn felt pretty bad and really slowed down the feeling.  

 

Current bugs to fix are looking like:

1) Invalid Targeting Bug

2) Potential Improper state update bug (This could be a result of #1)

3) Potential AI Odds Bug (The weight numbers for choosing actions didn't look correct, but I didn't actually look into them to check and see yet)

 

Happy that I was able to see the updated script running and it really did do a good job of cutting down run time.

  • 1 month later...
Posted

Finally had a bit of time to put in a bit of work on this again.  It's always rough coming back to something when you haven't worked on it in a little while and having to relearn what you were doing.  Some quick highlights before I go to bed:

Bug fixed a lot of issues with the new monitor script and got the scripts cleaned up more.  Combat seems to chug pretty nicely in terms of crunching AI now.  There are two issues I need to figure out, one of which is relatively minor (Actors being able to assist themselves) and one of which is pretty annoying (Males/Creatures having sex are being tagged as valid targets to be rescued).

 

Added the ability to, when already having sex with someone you seduced, try to seduce another individual to join in.  Also added in better seduction support in general.

 

Implemented a basic healing ability.

 

Found (and have yet to be able to fix) a navmesh issue in the newer/nicer battle zone.

 

Updated message logging a bit more so that more messages can be toggled on/off.

 

Fixed some improperly closing scripts.

 

Tweaked damage a bit more.  See damage below for a quick write up of how I am now calculating weapon damage attacks.

 

Damage:

 

Spoiler

The main issue with calculating damage is that there is no way to grab the damage that an actor should just be doing.  Also, you can't grab the upgraded smithing level (i.e., the Coarse, Fine, Legendary, etc.) of the weapon.  This results in the need to calculate damage based off a lot of different variables, trying to take as much of player/NPC progression into account as possible.  I've tried to set most of these variables to be configurable.  So far the variables for calculating damage are:

Base damage = Base damage of your weapon (not the damage shown in character screen, but the actual base damage of that weapon type). Unarmed damage is used if no weapon is equipped (primarily for creatures)

Bonus Damage = Bonus damage added to base damage is calculated based off of smithing skill for the player (for player/allies) or highest enemy (for enemies).  This is the best way I have currently found to do smithed weapon bonus

Level Multiplier = Variable you can set that determines how your level multiplies your damage (currently, base is 1 level = 1% bonus damage)

Skill Multiplier = Same as level multiplier except with relevant skill (currently, base is 1 skill level = 1% bonus damage)

Skill Mod Multiplier = Checks for any skills mod %damage increases you have equipped (stuff like "Bows Deal 20% more damage")

Perk Multiplier = Checks to see if you have relevant perks for 1h/2h/bow and gives you corresponding bonus damage for the perk (equivalent to what the perk says)

Attack Damage Multiplier = If you have any attack damage multipliers, more common for enemies

Extra Accuracy Bonus = Currently, if you are attacking with an accuracy of over 100% (such as coming out of stealth, being assist, etc), the excess %accuracy over 100 is added as a multiplier.

Hamper Bonus = If an enemy is hampered, they will take a % bonus damage (currently, the base is 20%)

Extra Damage Scalar = A flat % boost that you can set via mod options to just increase all damage dealt (Current 0% base)

Double Strike = 1 handed weapons (due to having lower base damage) have a chance to double or triple strike for extra damage

 

There is then an option to randomize damage between a range (Base is enabled, damage rolls between 50% and 150% of the value calculated above, though it's configurable and I think that gap may be too large and inconsistent)

 

Finally, damage is reduced by the damage resistance (essentially armor) of the target being attacked.  The amount of armor to damage (0.12% resist per point of armor base) and maximum amount of resistance (80% base) are both configurable.

 

Now, this might look like stacking tons and tons of modifiers, but honestly, it can still take a while to kill things because characters only get 1 attack a turn. 

 

 

Battles/AI:

I've been primarily running battles with either a 3 or 4 man team (High level player (80+) + Aela (lvl 50) + Ria (25) + (sometimes) Farkas (50)).  I've been controlling the player and letting the AI run the allies, since at the end of the day I need to debug that AI as well.  However, one of the things that has come up quite a bit is that player allies don't coordinate and some fights they spend the entire fight not really doing, well, much of anything.  Fights tend to drag on quite a while in part because of that.

 

I definitely think that the more random AI (though slightly more constrained now than what it was) is good for enemies, but it's pretty frustrating when you just want your allies to hit some things and stop wasting their time.  I need to try and run a few combats controlling both the player and allies, more like a traditional turn based RPG where you control the entire party, to get a better feel for how they run then.  Ideally, the combats (especially normal level combats) shouldn't be too time consuming if you are trying to beat them down.  

 

The one thing that I've been realizing would really help this, would be adding some special abilities that the player/allies can use depending on level/skill level (things like being able to shoot 2 enemies for 1/2 damage, etc.) that would give more options.  However, I'm trying not to start working on something like that until I can finish getting everything else stable enough to put out a closed beta and get some real feedback.

 

MCM

Needs an update with new options I've just been calling via console.

 

Beta

Still working towards and want to put one out.  My plan is to finish getting these last couple of bugs fixed, run like a smaller dungeon/bandit camp with auto battle start to verify bug status, then pack everything up, create an SE version, and test it on my SE (I've been primarily running LE) to verify I didn't miss anything packing it up.  Then I'll look to distribute it to those who've mentioned being interested in providing feedback for the closed beta version.

 

That's I think all I've got at the moment, but I'm sure there's more I'm forgetting.  Hopefully more time this week to work on it.

 

 

Posted

"only female characters can be the targets of H-attacks/sex attacks [...] I don't want to have to test it"
Shame. Doesn't sound like it'd be too much trouble to add though, I could add it to the bucket list of Operation "Femdomify the Sexlab universe" as a personal tweak.

By the way, have you ever played Karryn's Prison? My favourite H-combat game tbh. There's a lot to say about it, but one mechanic I like is the repression mechanic.
Not sure if it fits your design ideas, but if you want to support a "Pure" playstyle, it has a neat system of desire gauges per body part affected by enemy's actions and modified by your passives (passives are like long-term corruption perks acquired from sexual exposure, outside of the scope of this mod. Submod for the future, maybe), and those desire gauges determine which kind of sexual acts Karryn gives in to. These desires can be lowered in the first phase of combat using willpower. Implemented well (For which, tbh, the passive system is pretty important) It adds this interesting layer of fighting both your enemies and keeping your own desires in check, but having to decide at one point when giving in to a handjob stops things from going from bad to worse.
Might be a good source of inspiration, in any case.

Posted

This thread has been fun to keep tabs on and read. @fingerscrossed hopefully the project goes as smoothly as possible for you, I'm definitely keen to see how it develops over time, sounds amazing!

Posted
On 4/27/2022 at 6:47 AM, FusRoDah2 said:

"only female characters can be the targets of H-attacks/sex attacks [...] I don't want to have to test it"
Shame. Doesn't sound like it'd be too much trouble to add though, I could add it to the bucket list of Operation "Femdomify the Sexlab universe" as a personal tweak.

By the way, have you ever played Karryn's Prison? My favourite H-combat game tbh. There's a lot to say about it, but one mechanic I like is the repression mechanic.
Not sure if it fits your design ideas, but if you want to support a "Pure" playstyle, it has a neat system of desire gauges per body part affected by enemy's actions and modified by your passives (passives are like long-term corruption perks acquired from sexual exposure, outside of the scope of this mod. Submod for the future, maybe), and those desire gauges determine which kind of sexual acts Karryn gives in to. These desires can be lowered in the first phase of combat using willpower. Implemented well (For which, tbh, the passive system is pretty important) It adds this interesting layer of fighting both your enemies and keeping your own desires in check, but having to decide at one point when giving in to a handjob stops things from going from bad to worse.
Might be a good source of inspiration, in any case.

 

So, I'll make a couple comments on this post:

  1. As far as only female characters, when I've been working on the mod, I've been trying to be consistent in the way I use a mod specific GetSex function.  One of the perks of this is that theoretically I could add a setting fairly easily that would have males treated like females (or, potentially, add effects that cause a character to be treated as a different Sex).  If I add it, I probably just won't do much testing with it myself to find fringe cases.
  2. I've played Karryn's Prison, really good game.  A lot of those mechanics work very well for that game, but I'm not sure if they translate well to what I'm doing for a few reasons:
    1. There is only a single character to track in Karryn's Prison (the player) on the one side, and the UI has much better support for tracking relevant information. 
    2. I think in terms of items such as stripping, desire, etc., it becomes much more finicky when you really run into situations of lacking partial stripping (i.e., A cuirass is either on or off) and it also runs into the situation of then certain armors become very disadvantaged if you change to only like a single strip chance (i.e., an armor that includes Chest, gloves, and boots would be 1 strip vs if they were split they'd be multiple).
    3. Difficulty calling out specific and appropriate animations in Sexlab. While you can call by tags, let's say you wanted a Blowjob animation so you call "Oral".  Well, you might get a blowjob, or a cunnilingus, or maybe it's only blowjob in one stage and it's tagged "Oral, Vaginal" so even if you were resisting having vaginal that's what the tags would also hit.  The alternative would be to really classify all the animations strictly which would be a pretty rough effort.
    4. One of the things that works really well for Karryn's Prison, because of the 1 vs Many aspect, is that 1-2 Orgasms is typically all it takes to finish an enemy so it's much easier to tell when you are about to get rid of one (Also, due to the complication of handling tracking individual "pleasure" vs sexlab stages, particularly in orgy situations, I'm not sure there's a really practical implementation).
  3. There may be some good things, potentially later on in development, to take and add from concepts similar to Karryn's Prison (but these would be after I think a base is established):
    1. Ability to be more/less resistant to stripping/sexual attacks, being bound, maybe debuffs, maybe player experience level, etc. 
    2. Maybe the ability to deal pleasure/stamina damage in combat when you are involved in a sexual act as a way to help you turn the tables
    3. Similar to the above, a way for characters outside of a sex act (or not participating in a sex act) to deal stamina/sex damage.  In fact, now that I think about it, this may be something important to add sooner rather than later in order to be able to properly 
    4. Changing stamina/sex damage done as a function of type (and adding more ability to select type) could be a good/interesting addition
       

 

 

On 5/1/2022 at 4:35 PM, R34x said:

This thread has been fun to keep tabs on and read. @fingerscrossed hopefully the project goes as smoothly as possible for you, I'm definitely keen to see how it develops over time, sounds amazing!

 

Thanks! It's been a lot of work, trying to bits here and there when I can.

 

So, some updates from the last batch of testing:

Controlling Male Actors

Apparently when I was making changes, since I was only playing with a female character and an all female party initially, I didn't propagate necessary changes to male actors as well.  There's still a few things that need to be changed over/modified so that they work.

 

Wrong Action Targets

I need to take another pass through scripts to see where some of the action targets are being incorrectly passed (i.e., enemies appear to be attack enemies on some things at the moment).

 

Seduction
Still having some flagging issues with this and rescuing.  Basically, a character should only "rescue" another character if they're in a situation they don't want to be in, so seduction shouldn't result in rescue.

 

Rescuing Aggressors
Another one I'm still working on.  Character's that are aggressors in sex acts shouldn't be valid targets for rescue.

 

I'm trying to find time when I can to work through things, and keep hoping I'll get there sooner rather than later.  It feels like I'm always just a few bugs out from having a somewhat stable beta.

 

Interested in Thoughts

Per the above, it feels like in order to make it a more viable option, there would be merit to having things that an actor could either separate from, or outside of, sex to increase, decrease, and/or deal stamina/sex damage.  I'm curious for any thoughts anyone has on this.  Initial thoughts would be things like: Aphrodisiac drugs/spells, Spanking, orders.  Basically things other than "joining in".  Some ideas could work (things like groping) but there would be no way to do any animation for it due to ongoing sex acts.  I'm curious what, if any, ideas anyone has.

 

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...