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

Posted

Decided to take a short break while organizing my thoughts to update progress in the thread.  A couple more code rewrites (of course).

 

Controlling Actors

Rewrote how choosing actor actions works.  Now, it's a lot better written for adding/modifying and there will not be the issues before of things not getting properly propagated between actor types.

 

Turn Order Evaluation

Rewrote turn order evaluation to more quickly skip through/ignore Incapacitated and stunned actors.  This should speed up later parts of combat.

 

Commands

Added the ability to issue "commands".  These are separate from Sexslave Orders and can be given to any eligible ally.  Currently they are automatically accepted, and the ally performs the command immediately rather than on their turn.  Current orders are: Strip, Bind Yourself, and Deal Sex Damage.  First two are pretty self explanatory, but the last one causes the actor to deal a round of sex damage to their partners.  

 

The "Wall of Meat" issue

This issue is basically that you can run the same encounter generator and get: A boss with 1K health, 5 allies between 25-150 health OR A boss with 1K Health, 5 allies with ~400 health.  It's a luck of the draw thing, currently, and the second one feels bad having to slog through so many bodies. I'm considering if there needs to be a way to limit the amount that you'd have to slog through.

 

NPC Ally Damage

A realization struck me during some testing earlier today that, since the NPCs don't get perks like the player, they are at a large, inherent disadvantage (at least where physical attacks are concerned) because the PC gets access to the 5 perks that each increase damage by 20%.  Since these are multiplicative with other bonuses, it means that, assuming the PC has them, they will likely be dealing 2X damage compared to an NPC follower/ally with similar levels/gear/skill.  Some monsters/enemies have perks that increase their damage, so there is some balance there, but it does remain a problem for the party.  

 

Classes?

Since one of the future goals of implementation is to add more specialized classes, how much balance needs to be done before that?  Part of the initial part of this is getting the mod into a state where the classes could be easily added, and anything that doesn't have a class uses the current generic.  Also, that the class system would be designed in a way that others could design and add their own classes as mod additions.  So, this leaves a question of how much to concern with the above damage type issues.  My gut feeling, though, is that it's important to still get a decent balance before adding any classes so it has a good feel and maybe even release initial versions of the mod without classes.  Maybe even going as far to not include any classes in the base mod, and making those all addons.  

 

Extra Actions and Number of Actions

I've been considering reworking the action system slightly.  Currently, you just get 1 action a turn (unless you're a slaver, at which point you can give 1 free over to a slave a turn), but there may be merit in doing a few things:

  1. Having "mooks" (i.e., low level enemies) have a chance not to act each turn (but be guaranteed to act at least every other turn) (And option to make them always act each turn)
  2. Have certain characters ("bosses", maybe characters with certain buffs) be able to act more than once
  3. Have certain actions as "support" or "minor" and have certain characters able to do an extra support or minor action a round
  4. Have "boss" actions that are more powerful abilities that only "boss" enemies can use and can only use every so often (maybe 1/turn. or 1/battle, or 1/3 turns, etc.)

I'm not going to commit to do any of these at the moment, but I've been thinking about them more and more.  Some of it feels right: Being able to assist an ally, make a command, or maybe pop into stealth if your skill is high enough, as a minor action.

 

 

Next Steps:
Run a few combats, see how things shake out, and try to get a feel for how extra actions would feel.

 

Posted

Honestly as ambitious as this project is, it sounds totally delightful, like this would be the ultimate mod to turn skyrim into Corruption of Champions lmao, keep it up, you're amazing!

Posted
2 hours ago, Nararanara said:

Honestly as ambitious as this project is, it sounds totally delightful, like this would be the ultimate mod to turn skyrim into Corruption of Champions lmao, keep it up, you're amazing!

 

Thanks! I'm definitely trying and we'll see how it goes.

 

A few more updates before I head off to bed:

 

Working With Error Logging

I've started going through the error log and finding all of the bad calls that the mod is making.  Most of them aren't really going to affect much, but it makes sense to make it not throw them either way (primarily a lot of calling "nones" where they shouldn't be called).

 

Redone Creature Stripping

Instead of stripping like a normal person, creatures now attempt to rend the armor off of you, attacking you for 50% damage and having a 50% chance to strip your armor on success.

 

Creature Damage

I added in some scaling for creature damage that is adjustable.  Basically, it looks at the creatures base unarmed damage, and compares it to its level.  If it's Damage is less than it's level, it will add ((Lvl-Dam) * (Scaling Factor/100)) damage to it's attacks.  This was due to seeing like level 24 wolfs, about as high level as they come, hitting for like 10 damage.

 

Global and Player Damage Mod

New global mod for increasing/decreasing damage all actors deal and a specific mod for increasing/decreasing player damage. I'm thinking this might be usable to provide a bit better balance in the fights of increasing ALL damage but slightly scaling down player damage.

 

Encounter Fought
I went ahead and fought through a full encounter while testing things and timed it.  It was 18 minutes to beat through a bandit boss, A Bandit, 2 Sabertooths, and 2 wolfs. And that was without much sex happening that would have made things slower.  I'm planning to adjust some of the damage mods and maybe try a few more tomorrow to see how they go.  I am definitely thinking that 18 minutes is far too long, and want the timing to be potentially on the other side of half of that (Excusing, of course, Sex Shenanigan's).  

 

More Things I'm considering Adding (Maybe Tomorrow if I decide to add them):

  1. Stacking bonus to struggle for each previous failed struggle (Up to maybe 4 failed attempts)
  2. Stacking bonus to strip for each previously failed time someone tried to strip a target (Up to a number of failed attempts)
  3. A way to lock up and "throw away the key" for Actors that has them treated as Incapacitated (unable to struggle) until they are rescued by an outside force
  4. Some bonuses/penalties for Heavy/Light to help correct for Heavy Armor being high Armor and resulting in more damage reduction (can be very noticeable)

If you have any thoughts on what sort of encounter timing the mod should be aiming for, I'm all ears.  I feel like a lot of it will be playing by feel.  Depending on how things go, I might try to record a video tomorrow of an encounter to show how the mod is currently rolling.

 

 

 

Posted

Another update as I take a break in the middle of working on this ...

 

I've decided to do another fairly major code rewrite, and I'm in the middle of it, in order to hopefully improve the AI controller and make it better for future proofing.

 

Currently/Previously, what it would do is when an actor ran, it would:

  1. Pull up the Actors base chance to do all 22 different available actions
  2. Check what actions it can do based on the battlefield state/Actor State
  3. Weight those actions based on the battlefield state
  4. Weight those options based on the actors personalities
  5. Roll to see what action it takes

Now, I'm changing the system to instead have action categories.  These categories are, currently: Attack, Support, Sex, Battlefield, Defend, Pass.  The order of operations, is somewhat similar to before, except essentially run twice but on smaller sets.  For example:

 

  1. Pull up the actors base chance to choose a category
  2. Check what categories it currently has access to
  3. Weight those categories based on battlefield state
  4. Weight those categories based on personalities
  5. Roll to see what category it uses
  6. Pull up the actors base chance to do the different actions in the category
  7. Check what of those actions are available
  8. Weight those actions based on battlefield state
  9. Weight those actions based on Personality
  10. Roll to see what action it takes

Now, you might look at this and think, "Wait, but that's twice as many functions", and you are partially right, but, running each of these functions on 6 categories and then 2-8 actions is still less processing than running all categories on all 22 action types, so it should improve processing speed/load.

 

However, the big thing isn't the improved processing, it's twofold:

 

Better control over how often NPCs choose to use attacks, sex, etc., based on them being in categories vs having to muck with individual weights on each one.

 

Significantly improved future support/readability.  When classes are eventually made a thing, this will be a much simpler template to provide because things are broken up much more logically than incredibly large single case structures.  Similarly, when you want to add a new sex option or attack in the future, it goes into the relevant category subfunction instead of some large singular behemoth of a function.

 

I know most people probably don't care too much about these sort of back end updates, but they provide a basis for how I am currently thinking about and approaching the mod.

 

There's still a fairly significant amount of work to do rewriting several (and making several new) functions for this, but I'm hoping to finish it up tonight to get it back to a "playable" state.

  • 1 month later...
  • 2 weeks later...
Posted

It's been a while, so I figured I'd make a quick post/update.  I got busy while working on the previously mentioned code base update, and had to set the mod aside for a while.  After getting a little bit of time, I went back to work on updating the mod again only to find that my checklist that I had made of "next steps" for getting all of the code changes in place didn't get saved.  

So, I'm trying to figure out exactly where in the process I was and what needs to change.  Hoping to get the mod back into a playable state after the last update in the next week or two.

  • 2 weeks later...
Posted

Figured I would make another relatively short update post.  

 

Between finding time and motivation, I have finally gotten the mod back to a loadable state and am not tracking down some bugs in the latest update.  However, the majority of the tedious and time consuming set up for using Action Category types for AI has been finished (The only thing I still need to do is set up a "Battlefield Condition Category Check" function that looks at the battlefield state to weight use of categories, but that isn't too important at the moment).

 

I am still trouble shooting lots of little things to get everything back to working smoothly, but it's at least making progress.

Posted

Another small update.  I think I have tracked down the last of the major breaks in the last update of the code, so everything is properly going through paces again (though more testing still required).  

 

I think I've figured out the next things I want to add and will likely work on here or there as I have time:

1) More damage handling for special abilities (i.e., multi-strike, armor piercing, etc.)

2) Ability for multi-target or AOE damage (i.e., hitting multiple enemies at once)

3) A Pheromones debuff (buff?) that may force valid enemies to try and harass the target

 

Special abilities and AoE damage are definitely form a perspective of time in combat vs just having "attack with weapon" as options.  I am currently thinking that:
Abilities will either be linked to classes or skill levels with weapons
Abilities will consume Stamina, which is also your defense against sex attacks

 

Sadly, progress is slow as I just don't currently have much time, but at least it is not non-existent.

 

Also, compared to previously, the AI seems to run much quicker now, where previously it could definitely get to parts where it would take an appreciable amount of time to chug through it's move, so everything is moving in the right direction.

  • 2 weeks later...
Posted (edited)

Ok, time for another update and something that may (or may not) be of interest to some people.  I've made a decent bit of progress that I'll update and I've made a demo video of one of the test fights (though the recording seems to have gotten screwed up, so it only recorded like the top left 2/3 of the screen.  Damn you OBS).

 

New Additions:

Pheromone system:

So far only implemented for the player side, a pheromone system has been added that changes targeting priority for sex moves (but not their chance of occurring).  When using a valid move that could target a character that has the Pheromones buff (debuff?) they will be added a "Preferred Target".  For example, if there are two targets that can be stripped, but one has pheromones and the other does not, the one with pheromones will always be chosen.  If there are multiple valid pheromones targets, it will choose between them.

 

Gang Up:

Enemies now choose to Gang Up on you if their chances of succeeding on a check are particularly low.  The choice to Gang Up, and how it works, are configurable (hopefully #SoonTM in the MCM menu).  The things that can be configured are:
1) If Ganging Up is Enabled

2) How Much bonus per actor Ganging Up Provides
3) If Bosses get to freely gang up with their friends

4) If an actor can gang up multiple times per turn 

5) If an actor can take their turn after ganging up

6) What the maximum threshold they will gang up to is (i.e., if they want to always try to get to 100% chance, then if there are allies to gang up, they will gang up until they hit the 100%.  If you choose 80%, then while they are under 80% chance they will find allies to gang up with, etc.)

Currently, ganging up doesn't change any of the actions, it just changes their likelihood of succeeding.

 

Deal Magic Damage:

Now there's a script for doing magic damage so spells can actually deal damage.  Woo.

Oh, I also added a Fireball spell that's an AoE.

Splash Damage/Multi-Target:

Now there's functionality adding spells (and potentially weapon attacks once I do some minor rework there) that either have splash radius or bounce to additional enemy targets.  You can see this in play in the demo video with the player casting (and totally not spamming because it's currently the only AoE) fireball.

 

Bug Fixes:

Feels like I've been cranking away at more bug fixes for a while now, but making progress.

 

Demo Video:

See demo video in the second spoiler.  Some notes:

Spoiler

1) For this video, I had random damage turned off

2) Some of the strip and redress actions have issues with player characters (which is expounded a bit by me using PA, one of my other mods, hence you see me fiddling with inventory)

3) Similarly to above, casting a spell de-equips weapon and there's currently not an automatic "equip normal player weapon on attack"  feature (because I hadn't been doing too much testing with magic, so it wasn't too needed)

4) Yes, I am aware that the video didn't capture the full screen.  I don't have time at the moment to re-record another combat, so that will have to wait for another day

5) The set up was Player (level 80+), Aela (Lvl 50), and Risa (Lvl 25) vs a Bandit Boss spawned with a "normal difficulty" encounter

6) Before you start asking, due to this being a relatively cleaner testing type save, none of the actors have any sex experience, so I didn't try to defeat any NPCs with sex since without any experience in it you don't deal much sex damage.

7) The video is about 11 and a half minutes long, because the fights take a little while (particularly at the end where I was trying to grind away at the heavily armored boss with a ton - by Skyrim Standards - of HP).

 

The (Somewhat Messed up) Video:

 

Spoiler

 

 

As always, curious for any feedback coming from the community.  It may not be as hot as I want it to be, yet, but hopefully it'll get there.

Edited by fingerscrossed
Posted

Some more updates (though no new video):

 

I've made a few more implementations, including:

 

More spell options

I've added most of the easy to implement Destruction spells under the Attack -> Magic option.  The spells are currently split into submenus for Fire, Frost, and Shock.  I've made the balance decision currently that:

Fire Deals 150% Base Damage to Health

Frost deals 100% base damage to Health and Stamina/Endurance (What you use to tank sex attacks until it's depleted)
Shock deals 100% Base Damage to Health and Magicka

 

Currently there is no limitation on what spell you can use, but I plan to implement that you have to have the base form of the spell to cast it in combat (I.e., you have to know chain lightning to use it in a TBC match).

 

Currently, magicka damage doesn't do anything, though I anticipate adding magicka stats in the future that are what will be used to cast spells and use special abilities.  Speaking of which ...

 

Weapon Special Abilities:

I've added the first set of Weapon special abilities.  This first set is for the bow and there are 4 special abilities that can be used if your skill is >=20/35/50/65 respectively.  These are:

Double Shot (Shoots two arrows that both deal 80% damage)

Piercer (Shoots and Armor Piercing Arrow)

Headshot (Reduces hit rate by 20, but deals double damage)

Splitting Arrow (An attack made with Splash 2)

 

I'm looking to add similarly leveled abilities for other weapon types (Specifically, Sword, Mace, War Axe, Dagger, Great Sword, Warhammer, Battle Axe) with each set of abilities being slightly different.  For the most part, these are intended to be just kind of some basic abilities to add a little variety to what the player can do.

 

Currently, the NPCs do not use any of these special abilities.  I am still deciding how to handle that in the future.

 

Magic Expanded

After finishing up the basic weapon abilities, next will be adding more to magic.  This is where things get a bit tricky for me at the moment.  There are 5 schools of magic and I would ideally like to have some representation for each school, but most of the schools are not as easy to implement/work with as Destruction.  This is my current thoughts:

 

Destruction: Mostly implemented already, with 4 tiers of each flame/frost/shock spells available, though not including certain spells that would be more difficult to deal with (such as runes or walls).  Master spells not included.

 

Restoration: This one should be relatively straight forward to implement.  It'll likely include regular healing spells that you find in the game, as well as additional group healing and stamina/endurance healing.  Undead damaging spells should be implementable as I believe you can check for undead targets as a condition with relative ease.

 

Conjuration:  The concept behind the implementation of Conjuration is simple:  Summon an ally for the summoner.  The practicality of that gets ... messy.  Maybe.  This feels like something where either I have to rewrite a bunch of things or with like just a few lines of code it just slots in like nothing ever happened.  The idea behind the spells is also pretty simple, as it's primarily just summoning spells.

 

Alteration: Alteration spells are mostly used outside of combat, with the exceptions of the armor boosting spells and the paralyzing spells.  If the idea was to not extend alteration past that, it should be a fairly easy implementation (Since armor is already used in damage calcs and Paralyze would just be the stun effect), but in terms of what Alteration could/would/should do in combat outside of that, I don't really have any good leads/ideas.

 

Illusion:  Here we get to one of the harder ones to implement.  Probably.  There are certain spells or types of Illusion spells that may not be too hard to implement but a lot of them could make a lot of things wonky.  In terms of things I think I could implement with Illusion without too much difficulty:
Charm - Have a target treat Enemies as Allies and Allies as Enemies for a round

Flee/Fear - Have a target leave combat (Not currently implemented, but I don't think would be too hard). Alternatively, just have a target "cower in place" for a turn.

Invisibility - Could just be an improved version of stealth

Fury (where it attacked anything instead of swapping sides) would likely be more difficult to program than just charm. 

 

Classes


Once I've finished up with Weapon based special abilities and Base Magic Spells, I want to do a bit of work on implementing the classes I'd mentioned previously.  The idea for this actually becomes a bit simplified with the weapon and base magic spells.  Classes will basically have some number of other special abilities that only a member of that class has access to.  Maybe an Assassin gets poisoned strike, backstab, hide in plain sight, and assassinate as special abilities that only they can use and could be used in addition to any weapon abilities or spells that they know.

 

Similarly, while any appropriate character may be able to attempt to seduce a target, it may only be the Whore class who can make money off of a successful seduction.  Maybe they could even get enemies to back down after being satisfied.

 

I've moved towards this kind of paradigm for development for two main reasons:  
1) By having a large amount of magic/skills outside of classes, players will feel like they have more options like in the base game

2) This will potentially allow a split for NPC AI scripting between "Class based" vs "Skill based".  For example, depending on how I end up going about it, rather than NPCs having to choose between every possible skill they could use and any class abilities, it might be that they only have 1 or the other.  For example, There may be a Bandit class who's class abilities all focus around ganging up on targets, using numbers instead of skill.  Maybe there's multiple bandit classes (Bandit Slaver, Bandit Lackey, Plain Old Bandit, etc.) and they all have a few different special abilities.  Maybe part of what makes bosses scary is that they have access to the same powerful weapon skills PCs do.  Part of the idea of having a larger base and then a smaller specialization is to limit options and make it easier for additions.

 

Beta?

I've mentioned it several times already, at various moments that it always feels like I'm so close to a beta.  The current main consideration is whether or not to put out a small closed beta for people actually interested in bug testing and getting me feedback after I finish implementing magic, but before I implement classes.  Other than finishing up those two things (which I now have, I believe, most of the workflow/back end for), the only other big thing would be updating the MCM with the multitude of new options.  I've been, for my own use because I know them, setting these when they need to be changed via the console, but for even a beta, I'd want to have these as options that players can see/set because there may be something broken, buggy, or unenjoyable. 

If I get feedback that there are people actively interested in this, I might try to get a beta build before I leave town for a few weeks again (during which time I won't be able to work on the mod).  It could be useful to have feedback/bug reports for when I am back and get back to working on the mod, though.

Posted

Two posts in one day because appreciable progress is actually being made?  Unbelievable. 

 

Weapon Skills

 

All base weapon types now have 4 special attacks (each in spoiler below weapon type).  These are all now in game though not all of them have been tested.  You can check out what all of the special abilities are (copied directly from what I have in the description in game).  As a reminder, these should be unlocked at Skill 20/35/50/65 currently.  They are likely not all balanced/good, but they work for an initial attempt I think.

 

Bow:

Spoiler

Double Shot (2 Attacks, -20 percent damage Each)
Piercer (Attack Ignores Armor)
Headshot (-20 Hit Rate, +100 percent damage)
Splitting Arrow (Deals damage in Splash 2)

Battleaxe:

Spoiler

Exhausting Blow ( +25 percent of damage dealt at stamina damage)
Cleave (Attack with splash 1)
All or Nothing (Reduce stamina to 0, +1 base damage per 10 stamina expended)
Brutal Hew (+20 base damage)

Dagger:

Spoiler

Bleed Magic (50 percent physical damage, 50 percent magicka damage)
Fan of Knives (Hit all enemies for 50 percent damage)
Hack and Slash (Hit 5 times)
Pinpoint Vitals (-15 to hit, +20 to damage, pierce armor)

Greatsword:

Spoiler

Wide Swing (-25 to hit, +50 percent damage)
All Out Swing (+20 to hit, +50 percent damage, hamper self after attack)
Backswing (Attack Bounces to 1 extra target)
Set Up Strike (+20 to hit, -10 base damage, apply assist to self)

Mace:

Spoiler

Clobber (+5 Base Damage)
Crush (-10 to Hit, +50 percent damage and pierce against Heavy Armored Enemies)
Smash Shield (Disarm Target shield before damage)
Concuss (-25 hit, -50 percent  damage, stun)

Sword:

Spoiler

Sure Strike (+25 Hit Rate)
Slice the Seams (-15 hit, -30 percent damage, Strip if Able)
Tri-Slash (Attack 3 times with -5 base damage)
Parrying Slash (Attack and gain defend buff)

War Axe:

Spoiler

Hack (+25 percent damage)
Forceful Strike (-100 Percent Base Health Damage, +100 Percent Stamina Damage)
Rending Blow (-10 to hit, +10 damage)
Dismember (-10 hit, -20 percent damage, hamper target)

Warhammer:

Spoiler

Crushing Blow (Pierce Armor)
Great Impact (-50 percent damage, stun target and self)
Measured Blow (+10 hit, +10 base damage)
Seismic Slam (Hits two times.  First Splash 2 for -30 percent damage. Second Splash 4 for -80 percent damage)

 

 

Summons
 

I had a few ideas/thoughts and went to try them out and found out that, surprisingly, they actually seem to work!  An initial summoning capability (Right now just Flame Atronach) is in the game and working.  The main caveat to summoning at the moment is that the summon can not exceed the unit cap per side (5 for player side, 8 for Enemy side).    However, upon a bit of initial rework, I was able to have the player, or an ally, summon in the Flame Atronach and then have the Flame Atronach join the battle (seemingly at the end of the initiative count).  I will need to work on dismissing the summons, but I'd say this bodes pretty well for that being a capability.

 

As another note, this uses the normal Summon magic effect (Well, it's a modification of it, but for those familiar, I mean the Magic Effect archetype for Summon Creature), so it should behave as a regular summoned creature (Though, for this purpose, with a really long duration and then intended to be dismissed via script).

 

General Progress

Overall, I'd say very good progress made today. I'll likely look to finish up the summoning aspect next (making sure dismissal/death/etc. for the summons all works) and add the other summons in (though, likely no raise dead as with the way things are currently done I could only see that adding a lot of complication).  

 

Following that, next on the docket would probably be: 1) Get Experience Implemented (so that the player gains XP for doing things in turn based combats so that you can actually level your combat skills.  This shouldn't be too hard), 2) Implement Restoration (Finally, some good heals), 3) Determine if I'm doing any Alteration/Illusion, 4) Implement any AI updates (if I want them to use any new goodies), 5) Start the larger scale testing.

 

 

Posted

Saturday night progress update.  I ended up doing a lot today, but I never actually ended up booting up Skyrim to test if any of it works (though the code compiles in CK and all the packages/scenes/formlists/etc. are made, so, hey, good enough).  Brain's a bit jumbled, so hopefully everything is coherent enough for anyone actually still reading this development log.

 

Magicka

 

Added a Magicka stat that gets tracked.  Unlike Health and Endurance/Stamina, currently Magicka does get a Current and Max value tracked, just a current.  Actors enter with Magicka equal to their Max magicka, but it would be possible currently to increase magicka over your normal maximum (temporarily storing mana for a spell, maybe?).  Special abilities and spells use Magicka, and if a character doesn't have enough magicka available, they can't use them.  Currently, for the special abilities this is kind of arbitrary numbers I put in.  For spells, it's close to their costs.  The addendum/issue to that is, currently, I don't have a sleek/easy way of including perk discounts for spells, so I am trying to decide how I want to handle that.

 

Experience

 

The Player should now get experience towards skills/levels for doing most relevant actions.  Attacks with a weapon (including special attacks) should grant exp equal to the relevant weapon stat equal to the damage dealt.  Casting damaging spells adds experience equal to the damage to the spell school, and same with healing.  Spells that don't heal/do damage have to manually have the line for generating exp added so I am trying to make sure I keep up to include that in those spots where it doesn't get caught.  In those cases, the player should earn exp based off the magicka cost of what they casting.

 

Summons

 

Did a bit more work on summoning, fixing a bug or two I noticed last night and adding a few (hopefully) failsafe catches to make sure summons get handled properly for dying/combat ending/etc.  Additionally, added summon spells for Frost Atronach, Storm Atronach, and Familiar.

 

Defend Options

 

Finally added a generic defend option, Defensive Stance, which adds defended which increases your evasion vs negative attacks.  There is another defend option, raise shields, available if you have a shield equipped.  In addition to the defensive stance bonuses, this adds a bit more evasion and doubles your shields benefits to armor for the next turn.  Defending and Shielded are removed at the start of an actors turn.

 

Defense Spells

 

There are two lines of defensive spells added.  The first is the ward line.  These function slightly different from the normal ward spells at the moment as they do not grant the bearer any bonuses to their armor.  Instead, until the bearers next turn, they absorb a certain amount of spell damage (20/40/80 for lesser/steadfast/greater) from each magic attack.

 

The second type, the flesh line, should function nearly identical to the regular XFlesh spells. The only exception being that they should last "indefinitely" through the battle (~1 hr duration, so maybe there's a case where they wear off, but I'd call it more unlikely).  Due to being able to pretty easily copy the existing spells, these should also get any perk bonuses.

 

Healing

 

Four different lines/options for healing were added.  These are: Healing Pots, Stamina Pots, Magicka Pots, and Healing Spells.  For the potions, it checks to see what potions of that type the actor has on them and then let's them use one, either on themselves or on an ally (technically maybe an enemy too if you really wanted to?)  What these do should be pretty straight forward: Healing heals health, Stamina heals stamina, magicka heals magicka, etc.  These use the base restore potions in game, and without a really fancy piece of code I don't have, don't know exactly how to write, and don't currently feel like figuring out how to write, it won't find/let you use custom alchemical potions.

 

Healing Spells

 

Added all of the basic healing spells from the game (Healing, Fast Heal, Healing Hands, Close Wounds, Heal Other, Grand Healing).  Using these spells should increase your restoration skill.  Additionally, the healing provided should scale in the same way that damage scales, using essentially the same variables as magic damage scaling (To theoretically make healing not just get outclassed), but that will likely need a little playtesting to see how it feels.

 

Missing Magic

 

With the addition of the defensive spells, healing spells, and more summons, this means the only school of magic without any real representation at the moment is Illusion.  I'm still pretty uncertain what I want to do with Illusion magic, though if anyone has any thoughts I'd be interested to hear them.

 

AI Integration

 

The majority of what I've implemented doesn't effect any enemies.  This may not even be a bad thing overall, but some of these should be added to the NPC capability (For example, NPCs defending is just empty right now, while they should use Defensive Stance or Raise Shield if they have a shield).  For most of the other options, I may leave them out of general NPC capability.  Maybe they'll be allowed to cast damaging spells they know, but only specific NPC classes/Types would be able to summon sort of thing.  I'm not sure NPCs need to be able to, or along those lines should be able to, do everything a player can.  I'll have to think on that a bit more.

 

Overall State

 

Assuming that everything I coded up and implemented in CK today is working, which is quite an assumption to make, I think the progress is moving along quite well.  I would actually say well enough that, once I finish bug testing on the above and handling 1-2 other things (A few scripts that just need additional entries for types of enemies in addition to creatures and bandits, which is basically all I've been testing with), I'm thinking I'll test it out in the best way I can think of:  Loading up a new game, enabling the mod, and just playing.  Hopefully it'll be the payoff I've been waiting for with all of the work put in.

 

Community Feedback

 

One thing I haven't focused on in my development is what happens if/when the player's team loses.  I'm thinking about a few options (Some kind of defeat with post fight grace period, maybe warp back to a last registered safe spot (or closest "safe spot) such as an inn, player house, etc.).  I don't personally (currently) use any of the mods on LL for being defeated and having things (usually bad things) happen, but if there is a lot of interest in this and integration with one of those mods is relatively simple, I'm not opposed to adding it as an option.  If there's not a large amount of interest, then I'll probably just stick with one of the above for simplicity.

  • 4 months later...
  • 3 weeks later...
Posted
On 12/17/2022 at 7:32 AM, eddantes, said:

any updates on the development of this mod? premise sounds astonishing, can't wait for it!

 

I don't have any major updates on this mod at the moment.  I had been unable to work on it for a few months due to other commitments (and working on a few other things), but I am trying to review the mod and finish getting at least the initial version up and going.

 

Currently, the main issue that I have marked was that there was a logical inconsistency somewhere in the mod that was causing a bit of trouble with determining what enemies were doing and who were valid targets.  This isn't the first time I've had one of these inconsistency issues, and they are always a pain to track down (since there's a multiple checks at multiple stages and it can be hard telling which check is the one messing up).  I'm looking to, once I sit down to focus on this, add some new pretty significant logging to the external papyrus logs so that it'll output at each stage what values/information are relevant, so that I can more easily track down these inconsistencies here and in the future. 

 

I'd been working on some other modding stuff that was a bit less time consuming/focus intensive, but, fingers crossed, I'll have an opportunity to get out a beta version of this soon (Honestly, expect for the inconsistency I mentioned earlier, I think everything is working).  When I do, I'll probably make a post in the thread that I have a closed beta version and see if anyone wants to volunteer (particularly those who will be willing to provide feedback and have some experience either modding or dealing with mods).  

 

I'm honestly a bit upset that I missed getting this out before 2023, but just schedule and other things going on removed my ability to have the 6-10 hour chunks of time I was dedicating to working on this originally during the weekends.  With how close it is, I would really like to get a version of it pushed out soon.

Posted

I ended up taking some time today to work on this, so first change log/update in a couple of months ...

 

Healing

 

Fixed healing bug so that you can actually heal your allies instead of your enemies.  Oops.

 

Seduction Inconsistencies

 

Fixed individuals trying to seduce when they should be aiming for a much more heavy handed and aggressive approach.

 

Magic Use and Selection

 

Updated so that now you can only select spells to cast with an actor if that actor knows that spell.  Primarily destruction, restoration, and buff spells.  Still no legendary spells due to constraints.

 

Creature Casting (untested)

 

Added an additional set of spells that creatures (not playable races) should be able to cast so they can magic things up.

 

Menu Updates (Mostly tested)

 

Two major updates to the menu.  Update to the initial action selection menu that now tells you all of the actors names and their current status in the order of:

 

Incapacitated - Can't be acting

Getting Fucked - Victim in a sexual interaction

Fucking - Having sex, not a victim

Bound - Locked up in restraints

Stripped - Naked and missing armor

Normal - None of the above

 

Additionally, when looking at a list of allies/enemies, it will tell you what sex they are being treated as, from options of Male, Female, and Creature.

 

Loss Scenario (Partially Tested)

 

In order to do broader testing, I needed a basic loss situation, so one has been added.  If the player party loses, they will receive the following penalties:

 

Female: Actors are Stripped, Bound, and receive a penalty "Locked Up Tight".  Locked Up Tight causes any attempts to struggle out of bindings during combat to fail (though the actor can still attempt to struggle out of sex).

 

Others: Non-Female actors receive the penalty "Grievous Wounds".  This causes the actor to always count as Incapacitated in combat.

 

Additionally, a quest starts for the purpose of getting free and/or healed for the players allies.  Currently, Guards and Blacksmiths can free females from the Locked Up Tight debuff (allowing them to redress as well) for coin or another form of payment (I bet you can't guess what).  I haven't implemented it yet, but the plan is for Priests and Restoration trainers to be able to heal Grievous Wounds debuff for coin or other payment. 

 

Once all actors in the party have been healed, the quest completes. Currently, there's no stolen gear/etc., and the payment scales with the level of the actor you are trying to get healed/freed (overall pretty cheap currently, I think, and will probably make adjustable).

 

This is mostly a kind of quick and easy stop gap to make losses actually have something happen without needing any sort of big questlines.  Might look for integration into other mods for losses later, but didn't want that for testing.

 

Allies following Player

 

You can now talk to your allies and tell them to follow you so you can keep them close.  Additionally, if they have any major debuffs (Locked Up Tight or Grievous Wounds) they will always follow you until it's taken are of.

 

 

Closed Beta

 

Everything seems to be working well enough, though it's likely to still be buggy.  I've decided that regardless of my feelings of imperfection, closed beta will start this weekend for people looking to give feedback, bug test, etc.  I can get you either LE or SE, and will be sending via PM for anyone participating rather than posting the beta in thread to hopefully keep the beta version from getting out in the wild.

 

How Much Effort have you actually put into this?

 

There's no one good metric for anything in relation to this, but I just wanted to give you all a couple of ideas:

 

The 8 main scripts that the mod uses are over 15,000 lines of code (And this doesn't count the 200+ script Fragments).

There's more than 1,000 different forms from this mod in the creation kit, between Globals, Spells, Packages, Quests, NPCs, Messages, etc.

There are a ton of options in the MCM that can be used to tweak the majority of the mod, from everything between what the basic odds of an action succeeding are, to damage scalars, to which actions a personality effects and by how much.

 

I could probably keep going, but I'll leave it there as a way of basically trying to say, while the wait has been really long, and this has been a whole lot of work, hopefully it'll all be worth it in the end.

 

There's still more I want to add to this in the future, but I want to go ahead and get a playable version out so it's no longer sitting here eating at me.

Posted

This mod looks cool!!

 

If you could remove many features of this mod except essential features and could make it like a lightweight framework, many people could make different and diverse styles of turn-based mods.

 

And I think Making a turn based H-combat framework is as promising as this mod.

 

It might be tough to make it after a lot of work of this mod, but I hope one day it could.

Posted (edited)

A quick update:

 

The night I made my previous post wishing that I would have a break from regular work to work on and get this finished up, the monkey's paw curled and I was able to take a break from work.  Except, that was because I had caught COVID and got ill.  I've been primarily resting the past week but have done a little bit of work on getting the mod ready for a closed beta, particularly testing a few things that I was unsure of if they were properly implemented (they weren't, primarily just implemented for me testing and knowing how to use console commands).  I'm working on an update to this, hopefully this weekend.

 

 

 

On 1/9/2023 at 7:19 AM, ally9201 said:

This mod looks cool!!

 

If you could remove many features of this mod except essential features and could make it like a lightweight framework, many people could make different and diverse styles of turn-based mods.

 

And I think Making a turn based H-combat framework is as promising as this mod.

 

It might be tough to make it after a lot of work of this mod, but I hope one day it could.

 

I think that there is a bit of misunderstanding in this, so I wanted to make a response to it.  First, to an extent, as much as this is a mod, it will hopefully also serve as a framework.  I have a methodology designed, but not fully implemented, for how other mods could interact and add their own styles/classes/etc to the mod.  It's not been the primary focus of initial development, as both getting a working version with basic skills and abilities has been viewed as important, as well as no one has directly reached out and said to me "I really want to start working on designing classes/etc. now".

 

(Please don't take the below as any sort of personal attack or targeted criticism, but I wanted to take the time to lay out and explain on the concept of Lightweight and difficulty here in terms of making something that feels "right")

 

One of the big things here I want to address is the concept of "lightweight".  Lightweight is a strange thing, because I completely understand what you are trying to get at, but the reality of the implementation is pretty difficult because it comes down to what you view as being essential and there is not really anything in the base game that supports doing turn based combat in Skyrim (if anything, the base game is actively opposed to this).  Let me give a fairly quick example of what's viewed as "essential" and how it impacts complexity using enemy AI:

 

You can start off simple with only having every enemy attack.

But then, you want them to do more than that, so you add them more moves that they can randomly choose to use.

But, now they are rarely actually attacking, so you add some weighting to make them more likely to attack.

Now, you can add more abilities to give them more options.

But, now you have enemies using things that don't seem right, full plate fighters with greataxes casting fireball, wizards coming into brawl with their fists, etc., so we need to restrict who's doing what.

Okay, looking a bit better, but we want to start considering the target for some of these things.  Maybe there are only certain things you should to do a target if they meet certain conditions.

Well, we've started conditioning things, and we need to keep going.  After all, the rogue is just sitting there stealthing every turn and not doing anything and they keep trying to strip a naked target.  Guess we need to add a bit more to natively track conditions on targets we can check against.

Ok, we've got some more conditioning set up, but with a lot of the just basic weights in place it feels pretty weird.  After all, for H-attacks, the enemy is just as likely to make an H-attack whether it's 1 female target and 4 fighters trying to bash their heads in, or 3 female targets all nice bound up and unable to resist.  So, we should probably add some dynamic weightings that take into account what the battlefield looks like to make it feel better.

 

And so on, and so forth.  Some of this comes back to the game not really natively supporting doing any of this.  What this means is that, if you have a boss bandit to interact/perform differently in any way from a regular bandit, it's not just like the base game where you can go "Okay, here's the Boss Bandit actor.  Let me give them a one handed axe, left hand fireball, and change their combat style to Sword Mage" and the game will take care of the rest.  The backend of the framework needs to be able to go "Okay, this enemy is tagged as "boss", what elevated privileges/abilities does this give them". 

 

Similarly, how do you determine what constitutes a "boss"?  It's not like there's a native flag on Actors that denotes they are a boss.

 

From another example, how do you determine what all NPCs should be in a battle? Is it only NPCs that exist in the real world?  Potentially going to be a lot of single enemy encounters, and that's not really going to be interesting.  So, we're spawning allies in? Cool, how do you decide what allies to spawn for a given enemy?

 

So, where do you stop for a "lightweight" framework?  For the most part, most of what I have done and worked on, I consider to be fairly "core" to the framework/mod itself.  There are definitely a couple of things (such as personalities) which you could easily argue aren't needed, but for the most part I think that a lot of what I have been working on is core to the concept of doing turn based combat in Skyrim, while also trying to make what you get and track from the base game matter.

 

As a Framework, while I haven't focused on implementation of 3rd party/additional mods, it's not that I haven't thought about them.  I have given consideration to and sketched out, essentially, how 3rd party content could be added hopefully non-disruptively.  I don't think it's particularly difficult, and would only require minor backend changes and the addition of some functions to handle registering third party mods.  In fact, once I had finished with the "basic" features, this was part of how I was intending to add "classes" myself, rather than have them as part of the base mod.

 

Anyways, this post has rambled a bit, but I did want to address the issue, in my opinion, of there not really being any such thing as "lightweight" for doing something like this properly in Skyrim.

Edited by fingerscrossed
Posted

Doing a bit more work on mod.  A coupe of updates:

 

Combat Starter

Combat Starter for auto starting combats has been improved, and a few options related to difficulty and turning it on/off added to MCM (No longer needs to be repeatedly started from console).

 

Item Disappearance Bug

So, I had started building/designing in LE and then testing in SE as this helps for a few reasons (helps me make sure I am getting all scripts transferred, my SE save is more stable, etc).  I came across a really weird bug playing with a lower level SE character that I hadn't seen before:  When being stripped in combat by enemies, my armor would disappear and get removed from my inventory!  I have removed from the mod any gear destruction, as that can really quickly mess up a lot of enjoyment, so this was quite perplexing.  Taking a deeper look into things, I couldn't find any reason that this was happening, and it only appeared to be happening on my SE game.

 

More testing, and I come to find out that not all gear is getting removed, and sometimes gear I don't even have equipped is disappearing!  More testing, more investigation, and I come to a realization that it looks like only unique/quest reward type gear is getting kept.  More investigation into the functions, and I pinpoint what is causing the issue:

 

During scripting for stripping an actor, I nominally go through the following steps:

1) Take whatever outfit they are wearing for their main outfit and store for pulling up later

2) Store the actor's sleep outfit for later retrieval

3) Go through the actor's worn gear and (if using regular setting) strip the pieces of gear that fall in traditional/non-jewelry armor slots while also storing them so that they can be later grabbed for a redressing function.  For each slot, check if it's worn, and if it is, store it then unequip it.

4) Set the actors regular outfit to an empty outfit (so that NPCs in particular don't randomly redress to their gear when they are supposed to be naked)

5) The same as above, except with their sleep outfit

6) Add the "stripped" effect to the actor

 

So, for whatever reason, at least in SE (I haven't done testing on this yet in LE), when I set the player's outfit/sleep outfit to the empty outfit, it removes certain armor items from their inventory (appears to remove all but key armors like Archmage's robes).  This is, to me, a really bizarre behavior.  I need to do a bit of investigation with it on three fronts: 1) Does LE do the same? 2) Do NPCs also get extra armor they are carrying nuked? 3) Does it only remove a single of each armor, or if you have like 5 leather armors does it only remove 1?

 

This is definitely one of the things that needs to be addressed before closed beta, as people tend not to like when their inventories disappear (though, hopefully, all of the beta folks will know well enough to keep back up saves ...)

 

Additional Fixes/Changes/Additions

Once I get the above finished working out, and make sure that the combat auto starter is working as intended, there's only a few more things on a punch list:

1) Make magic cost Magicka

2) Make magic impacted by failure

3) Add in magicka regen per turn

4) Make sure XP gain for using skills is working properly

 

Bugs currently not being addressed before beta:

1) I've noticed that there looks to be some issues in certain choice structures with actors flagged to be opposite gender.  I'm not going to try and delve in and fix this one before beta but it is tracked

2) Creatures binding female actors - need to make a work around, was only ever intended to be some "creatures" (i.e., like Draugr, or Falmer, which would theoretically make sense) and it's not really a game breaker so I haven't viewed as important yet

 

Beta

Assuming no other major bugs come up, I anticipate somewhere in the 4-8 hours of work to get above properly implemented and checked.  As mentioned, I've been testing in both LE and SE, so I'll have a beta version available for both, and when I have the SE version available, I might make a post over in the SE boards as well.  Hopefully next post will be that the Beta version is available.

Posted

Wanted to make another quick update:

 

Ran across a few more bugs I wanted to squash before putting out Beta, have gotten a few of them (Creatures not dealing damage on attack) sorted, but came across another one (battlefield monitor validity improperly updating) I am trying to quash right now (Looks like I may have not noticed previously due to party sizes and actions taken, but this may also explain some weirdness I have seen on occasion).   

 

The BF monitor is a bit complicated sometimes to re-wrap my head around, but hoping I can get it figured out in the next hour or two, test it, and then have beta (other fixes all seem to be working/implemented properly).

Posted

The monitor looks to have been fixed, but I have come across one more bug I am trying to solve that needs to be fixed prior to beta: Combat not starting/loading after combat had been previously triggered.  I don't recall seeing this issue previously, so I am trying to figure out what, if anything, I did that is causing the issue.  I'm thinking that the most likely scenario is that something isn't properly getting shut down and restart between encounters, which then passes some kind of bad data and causes the sequence to fail.  Going to try and take a look into this and test this afternoon when I can find some time.

  • 1 month later...
  • 3 months later...
  • 4 weeks later...
Posted

Looking at my previous post, I'm realizing it's been about 6 months since I updated anything here, so you can probably imagine what I'm about to say:  It's been too much effort and I've given up, abandoning this.  It truly was just a bit too much to handle.

 

.

 

.

 

.

 

.

 

 

Lol, just kidding, I've got a closed beta version.  It's still a bit buggy but most of the bugs seem pretty rare and outside the mod itself.  If you are someone who is familiar with dealing with potentially buggy mods and want to help me troubleshoot issues, send me a PM.  I want a bit of testing and a bit more work on a few fringe cases before I put out a public beta/version, but hey, a couple sentences back you probably thought this was dead.

 

If you are interested in doing closed beta testing and trouble shooting (not for people who just want to play it), send me a message and let me know which version you want, LE or SE.  I've been developing entirely in LE, and then testing entirely in SE, so both should probably work.  I'll try and check back in at least once a day for messages for anyone interested in helping. 

 

Once the mod seems to be relatively stable in closed beta, I'll put a public version out.

Posted (edited)

Also, while I don't plan on doing a full update description on what I've fixed/changed/added, because it was a lot and there was a lot of really weird esoteric bugs that came up because for some unknown reason Bethesda never seemed to plan for you to do something like this, I'll give a quick update on where the mod is at:

 

There is a fairly fleshed out MCM that contains values, sliders, options, and the ability to select options for your party members.  You can also discuss some things with your party members via dialogue.  The MCM contains adjustable values for everything from damage bonuses to weights for choosing categories to success chances to options you can toggle on or off.

 

There is an ability to have turn based combat auto start on basically the player getting into a fight.  You can actually win/lose these fights, and if you win them you can chose what to do with the enemies and loot them.  Based on the set difficulty, the fights will potentially generate extra enemies to make them more interesting.

 

There's a pretty wide range of actions that can be taken in combat.  You can attack with weapons (anyone) or magic (player only currently), use special weapon skills (player only), assist allies, hamper enemies, strip, bind, seduce, forcefully engage in sexual conduct, struggle out of a situation, and more.  Enemies can do much the same to you, and can do things like ganging up to improve their chance of hitting you. You can rescue allies, or tell them to suck it up, put out, and try to tire out the enemy.

 

Regular damage scales off of levels, skill with the weapon/magic, effects like enchantments, etc.  Sex damage, which drains stamina before health, takes stats from sexlab into account to scale up the damage based on how experienced you are.  

 

There are a few bugs.  Sometimes initiating sex really confuses sex lab and the controller script when something happens like an unexpected race enters (Though this usually recovers).  I have absolutely no idea why the script that equips restraints sometimes removes some armor from the players inventory that they had equipped at some point (There's no RemoveItem called, so why does it disappear?).  You also don't want to autostart a combat with  dragon (there's only one battlezone currently, and it's a bandit cave.  The dragon doesn't fit (a common problem Dragonborn's face)). 

 

There's a ton of things I haven't had the time to do and honestly would love if someone else wanted to.  There's only one line used by everyone when they strip someone, or miss an attack, etc., and while it wouldn't be hard to make more, and make some that are only said by certain types, I just have my hands full with the other parts of the mod.  Similarly, there's I suppose two battlezones, but one of them was just a debug/test one.  I'd love to have/make more, but priorities, but also I set it up so that this could be done in the future without needing to rewrite.

 

Overall, though, it's running much more stable than before and I think that's pretty great progress.

 

If there is interest, I might be able to post a demo of it in its current state (or maybe someone who reaches out for Closed Beta can).  Let me know if that's something you'd want to see.

Edited by fingerscrossed

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...