Jump to content

[mod] [CK2] Herring's Stuff for CK2


Recommended Posts

Changelog:

Added new Mod/Resource: Herring's Math Stuff

Think that calculating the the 3rd root of 40 or 25-4 is impossible in CK2 engine since we only have +, -, * and / ?

Well you are wrong and so was I.

It includes the scripted effects NthRoot and NthPower. For more information see the OP.

I also hope that nobody has done this before, because I wasted way to much time on this thing.

Ā 

On 2/16/2018 at 7:03 PM, NoxBestia said:

I would like to add more preferences to NDPA, so I am interested in at least making our stuff cross-compatible.Ā  If you are interested/willing, I'd be glad to fully work together with you on this endeavour.Ā Ā 

I appreciate your concern for compatibility, but the problem with that is that the mod is more of a test to see if I could write a sex mod/framework completely from scratch and what it would include. As such you would have to rewrite huge chunks of your mod to make it work.

It also is NOWHERE near done, mostly because of the time spent on the math functions. The only thing I currently have is a PenisLength variable that grows until a random certain age and takes puberty growth-spikes into account, a lot of game-rules to fit what the user wants to see and an event-chain to calculate characters attributes (like PenisLength) on startup.

Ā 

Also sorry that I didn't find time to do the oral elasticity sizes. I spent way more time than I thought I would on the math functions. I had to re-do them like four times, once I just couldn't find a way to really convert the procedure into CK2 scripting engine and the other three times some temporary variables of those procedures always got turned into Zeroes since CK2 engine only supports three decimal places.

So I hope you don't mind or at least can find some use in the functions. I will hopefully have time for the icons next weekend.

Ā 

On 2/17/2018 at 7:45 PM, penzor said:

To be honest i think the icons dont really fit with ck2 at all

If you are referring to the size icons then I kind of agree, but the reason they look like this is because they're also supposed to be used as a background (like the simple circle or the shield in vanilla icons) for other icons sprites (Which I completely forgot for the circumcision, so I also have to re-do those). Otherwise please say what is off about them, because I do want to keep them quite close to the vanilla icons' style.

Link to comment

Interesting.Ā I don't quite understant why would you need to call a root calculation inside a power calculation, so any clarification you could make in that would be appreciated. BTW, this is the code I can come up with to calculate exponentiation. It's very similar to yours, so if you could point the disadvantages you see in my version I'd be very grateful

Ā 

x_to_yth_power = {
	#requires variables: local_x, local_y. local_y must be a natural number, and will be floored before starting the actual calculation
	if = { #case: Y = 0
		lmit = { check_variable = { which = local_y value == 0 } } 
		set_variable = { which = local_power_result value = 1 } # we assume X^0 = 1 even when X = 0
	}
	else = {
		set_variable = { which = local_loop which = local_y } #remove decimal part from exponent
		divide_variable = { which = { local_loop value = 1000 } }
		multiply_variable = { which = { local_loop value = 1000 } }
		if = { #case X = 0 or X = 1, return X
			limit = { 
				OR = {
					check_variable = { which = local_x value == 1 } 
					check_variable = { which = local_x value == 0 } 
				}
			}
			set_variable = { which = local_power_result which = local_x }
		}
		else_if = { # case positive exponent
			limit = {
				check_variable = { which = local_loop value > 1 }
			}
			set_variable = { which = local_power_result which = local_x }
			while = {
				limit = { check_variable = { which = local_loop value > 1 } }
				multiply_variable = { which = local_result which = local_x }
				change_varable = { which = local_loop value = -1 }
			}
		}
		else = { # case negative exponent.
			set_variable = { which = local_result value = 1 }
			divide_variable = { which = local_result which = local_x }
			while = {
				limit = { check_variable = { which = local_loop value < -1 } }
				divide_variable = { which = local_result which = local_x }
				change_varable = { which = local_loop value = 1 }
			}
		}
	}
}

Additionally, could I maybe ask you to put the root algorithm in an easier-to-read-than-ck2script language? I'm trying to understand it, but the verbose syntax of the game is not really lenient to that.

Link to comment

Changelog:

  • Herring's Math Stuff
    • Fixed the NthRoot function not converting -1 into 1 for x

@ngppgn

The idea behind the NthRoot algorithm is that we start at result = 0 and then use power(x=result,n=n given to NthRoot) to give us the powered result and look if it's smaller or bigger than x given to NthRoot.
If it's smaller we add 1 to the result and calculate again, otherwise we know that we overshot the desired NthRoot's x and subtract 1 from the result. Once we get the bigger result we then do the same with result + 0.1, result + 0.01 and finally result + 0.001

Ā 

So the procedure for square root of 5 looks like this:

Spoiler

02 = 0 - smaller
12 = 1 - smaller
22 = 4 - smaller
32 = 6 - bigger
2.12 = 4.41 - smaller
2.22 = 4.84 - smaller
2.32 = 5.29 - bigger
2.212 = 4.8841 smaller
2.222 = 4.9284 smaller
2.232 = 4.9729 smaller
2.242 = 5.0176 bigger
.
.
.

A problem with this algorithm is that it's going to take a lot longer to calculate something like 2nd root of 50000, but I could make it start at something different than + 1. We'll see.

Ā 

The only disadvantage that I could see is that because your code doesn't have a NthRoot function you can't compute the decimal places. As for example the remaining 0.2 of 42.2 can be converted to 1/0.2=5 and then we can just use NthRoot(4,5). Overall the multiplication process then looks like this. 4*4*(40.2) or 4*4*(NthRoot(4,5)). Although my function isn't that good at calculating them either, as for example everything between 0.7 and 1 is just NthRoot(x,1) as the decimal places get cut off on NthRoot.

Though I noticed that your function has a problem. The while in the negative exponent case multiplies. If we have the case 4-5 then what your function does is 1/4*4*4*4*4, which returns 64. The actual result ofĀ 4-5 is 0,0009765625 though. As such you also have to divide in the while, which would be 1/4/4/4/4/4, this returns 0,0009765625.

Unless I do misunderstand something about your algorithm of course.

Ā 

I actually coded some C# before implementing it into CK2, it isn't as complete as the CK2 version, but it has the basic gist of it.

Spoiler

static double Nthroot(double x,int n)
{
Ā Ā Ā  double result = 0;
Ā Ā Ā  double toAdd = 1;
Ā Ā Ā  while(toAdd != 0.0001)
Ā Ā Ā  {
Ā Ā Ā Ā Ā Ā Ā  double added = 0;
Ā Ā Ā Ā Ā Ā Ā  double power = 0;
Ā Ā Ā Ā Ā Ā Ā  while (power <= x && (added <= 9 || toAdd == 1) )
Ā Ā Ā Ā Ā Ā Ā  {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā  result += toAdd;
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā  power = NthPower(result, n);
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā  added++;
Ā Ā Ā Ā Ā Ā Ā  }
Ā Ā Ā Ā Ā Ā Ā  result -=toAdd;
Ā Ā Ā Ā Ā Ā Ā  toAdd /= 10;
Ā Ā Ā  }
Ā Ā Ā  return result;
}

Ā 

Link to comment
On 19/2/2018 at 11:29 PM, Herring said:

Changelog:

  • Herring's Math Stuff
    • Fixed the NthRoot function not converting -1 into 1 for x

@ngppgn

The idea behind the NthRoot algorithm is that we start at result = 0 and then use power(x=result,n=n given to NthRoot) to give us the powered result and look if it's smaller or bigger than x given to NthRoot.
If it's smaller we add 1 to the result and calculate again, otherwise we know that we overshot the desired NthRoot's x and subtract 1 from the result. Once we get the bigger result we then do the same with result + 0.1, result + 0.01 and finally result + 0.001

Ā 

So the procedure for square root of 5 looks like this:

Ā  Reveal hidden contents

02 = 0 - smaller
12 = 1 - smaller
22 = 4 - smaller
32 = 6 - bigger
2.12 = 4.41 - smaller
2.22 = 4.84 - smaller
2.32 = 5.29 - bigger
2.212 = 4.8841 smaller
2.222 = 4.9284 smaller
2.232 = 4.9729 smaller
2.242 = 5.0176 bigger
.
.
.

A problem with this algorithm is that it's going to take a lot longer to calculate something like 2nd root of 50000, but I could make it start at something different than + 1. We'll see.

Ā 

The only disadvantage that I could see is that because your code doesn't have a NthRoot function you can't compute the decimal places. As for example the remaining 0.2 of 42.2 can be converted to 1/0.2=5 and then we can just use NthRoot(4,5). Overall the multiplication process then looks like this. 4*4*(40.2) or 4*4*(NthRoot(4,5)). Although my function isn't that good at calculating them either, as for example everything between 0.7 and 1 is just NthRoot(x,1) as the decimal places get cut off on NthRoot.

Though I noticed that your function has a problem. The while in the negative exponent case multiplies. If we have the case 4-5 then what your function does is 1/4*4*4*4*4, which returns 64. The actual result ofĀ 4-5 is 0,0009765625 though. As such you also have to divide in the while, which would be 1/4/4/4/4/4, this returns 0,0009765625.

Unless I do misunderstand something about your algorithm of course.

Ā 

I actually coded some C# before implementing it into CK2, it isn't as complete as the CK2 version, but it has the basic gist of it.

Ā  Hide contents

static double Nthroot(double x,int n)
{
Ā Ā Ā  double result = 0;
Ā Ā Ā  double toAdd = 1;
Ā Ā Ā  while(toAdd != 0.0001)
Ā Ā Ā  {
Ā Ā Ā Ā Ā Ā Ā  double added = 0;
Ā Ā Ā Ā Ā Ā Ā  double power = 0;
Ā Ā Ā Ā Ā Ā Ā  while (power <= x && (added <= 9 || toAdd == 1) )
Ā Ā Ā Ā Ā Ā Ā  {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā  result += toAdd;
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā  power = NthPower(result, n);
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā  added++;
Ā Ā Ā Ā Ā Ā Ā  }
Ā Ā Ā Ā Ā Ā Ā  result -=toAdd;
Ā Ā Ā Ā Ā Ā Ā  toAdd /= 10;
Ā Ā Ā  }
Ā Ā Ā  return result;
}

Ā 

Nice catch on the error of my code, I had an erroneous "multiple" instead of a "divide" command. And yeah, my code doesn't support decimal exponents -I need to study yours further.

Ā 

Regarding the nth root algorithm, I foundĀ thisĀ and tried adapting the CoffeScript version. The result is dirty, untested (possibly rid with errors) and monstruous, as any arithmetic in paradoxLand tends to be, but maybe you can find some use to it:

Ā 

# math
# Some mathematical functions by Herring
# Version - 1.0
# Newest: https://www.loverslab.com/topic/92975-ck2-herrings-stuff-for-ck2/


# You can't copy and paste one function to another file, as some functions require other functions
# code on for nth-root in coffe-script and coffe-script with ck2script-like var names and idioms
	#nth_root = (A, n, precision=0.001) ->
	#  	x = 1
	#	x_new = (1 / n) * ((n - 1) * x + A / Math.pow(x, n - 1))
	#	return x_new if Math.abs(x_new - x) < precision
	#	x = x_new
	#  	while true
	#	    x_new = (1 / n) * ((n - 1) * x + A / Math.pow(x, n - 1))
	#	    return x_new if Math.abs(x_new - x) < precision
	#	    x = x_new
	#
	# yth_root = (local_rx, lo1cal_ry)
	# 	local_1 = 1
	# 	local_2 = local_ry - 1 #constant
	# 	local_3 = 1 / local_ry #constant
	#  	local_0 = local_3 * (local_2 * local_1 + local_rx/Pow(local_1, local_2))
	#  	local_4 = Abs(local_0 - local_1) #variable
	# 	if local_4 < 0.001
	# 		local_root_result = local_0
	# 	local_1 = local_0
	# 	while local_root_result != 0
	#	 	local_0 = local_3 * (local_2 * local_1 + local_rx/Pow(local_1, local_2))
	#  		local_4 = Abs(local_0 - local_1) #variable
	#	 	if local_4 < 0.001
	#	 		local_root_result = local_0
	#	 	local_1 = local_0

yth_root_of_x = {
	set_variable = { which = local_1 value = 1 } #
	#local_2 = local_ry - 1
		set_variable = { which = local_2 which = ry }
		change_variable = { which = local_2 value = -1 }
	#local_3 = 1 / local_ry
		set_variable = { which = local_3 which = local_1 }
		divide_variable = { which = local_3 which = local_ry }
	#local_0 = local_3 * (local_2 * local_1 + local_rx/Pow(local_1, local_2))
   		set_variable = { which = local_4 which = local_rx }
   		set_variable = { which = local_px which = local_1 }
   		set_variable = { which = local_py which = local_2 }
   		x_to_yth_power = yes
   		divide = { which = local_4 which = local_power_result }

   		set_variable = { which = local_5 which = local_2 }
   		multiply_variable = { which = local_5 which = local_1 }
   		change_variable = { which = local_5 which = local_4 }

   		set_variable = { which = local_0 which = local_3 }
   		multiply_variable = { which = local_0 which = local_5 }
   	#local_4 = Abs(local_0 - local_1)
		set_variable = { which = local_4 which = local_0 }
		substract_variable = { which = local_4 which = local_1 }
		if = { 	
			limit = { check_variable = { which = local_4 value < 0 } }
			multiply_variable = { which local_4 value = -1 }
		}
	#if local_4 < 0.001: local_root_result = local_0
   		if = { 
			limit = { check_variable = { which = local_4 value < 0.001 } }
   			set_variable = { which = local_root_result which = local_0 }
   		}
 	#local_1 = local_0
   		set_variable = { which = local_1 which = local_0 }

   	while = {
		limit = { 
			NOT = { check_variable = { which = local_root_result value == 1 } }
		}
		#local_0 = local_3 * (local_2 * local_1 + local_rx/Pow(local_1, local_2))
	   		set_variable = { which = local_4 which = local_rx }
	   		set_variable = { which = local_px which = local_1 }
	   		set_variable = { which = local_py which = local_2 }
	   		x_to_yth_power = yes
	   		divide = { which = local_4 which = local_power_result }

	   		set_variable = { which = local_5 which = local_2 }
	   		multiply_variable = { which = local_5 which = local_1 }
	   		change_variable = { which = local_5 which = local_4 }

	   		set_variable = { which = local_0 which = local_3 }
	   		multiply_variable = { which = local_0 which = local_5 }
	   	#local_4 = Abs(local_0 - local_1)
   			set_variable = { which = local_4 which = local_0 }
   			substract_variable = { which = local_4 which = local_1 }
   			if = { 	
   				limit = { check_variable = { which = local_4 value < 0 } }
   				multiply_variable = { which local_4 value = -1 }
   			}
   		#if local_4 < 0.001: local_root_result = local_0
	   		if = { 
				limit = { check_variable = { which = local_4 value < 0.001 } }
	   			set_variable = { which = local_root_result which = local_0 }
	   		}
	 	#local_1 = local_0
	   		set_variable = { which = local_1 which = local_0 }
	}
}

Ā 

Link to comment

Changelog:

  • Herring's Math Stuff
    • Bugfixes
      • NthPower now actually calculates the right number if n is a decimal number. ( I forgot to set a variable to local_ )
    • Additions
      • LogisticFunction
      • Factorial
    • Changes
      • Made it into an actual mod instead of a resource. As mods using it would overwrite the main file, which could result in an older version being the final one to not be overwritten.
      • Changed name to "CK2 Math Library"

@ngppgn

I tried your implementation of the algorithm with some changes, sadly it seems that while it is pretty accurate it is also slower than the NthRoot algorithm I already have. Thank you for trying to help though.

Link to comment

Changelog:

  • Trait Icon Replacements
    • Template & Premade only update
    • Added the oral elasticity / mouth size icons

News:

Ā 

As for news of the framework, the penis length growth is completely implemented for startup ( though it still produces way too many average sizes ) and I also added game rules for genital growth multipliers for each vanilla ethnicity (graphical culture), in case someone likes each "race" having different dong size averages. For sub-mods I also added empty scripted effects for culture, culture group, religion & religion group genital multipliers, if a sub-mod wants to give multipliers for being certain ones. Will also add multipliers for general growth, butts and breasts. There's still a lot to be done, but I'm slowly chipping away at it.

ck2_2.png.00e67680df8b71ce5dec7858e9f23f3a.png

( If you want to ask why it's called both "below average" and "average": I have a few additional adjectives depending on how close the size of it is to the next or previous size border, that aren't yet implemented into the description )

Ā 

Ā 

On 2/26/2018 at 11:17 AM, rhipeen said:

I just noticed, isnt the heterosexual trait also in the original ck2 but developers for some reason didn't include it in the game so it stayed onlyĀ in code? it also has its own icon

"Original" as in an older version? If so I should probably try to look through a few older versions. (If steam still allows one to choose the version of a game)

Link to comment

Really nice looking icons. I may take a look at incorporating them in DWR and crediting you.

Ā 

Also - I like what you've done with the filter to give the images a more CK2 look. I'm always wrestling with how I want the images to look personally.

Link to comment

Thank you for your work, it's really good.
I had a request: could you be a bit more specific when you make an update. I feel a little lost, if the last update is v1.03 or v1.04. I do not know what my version is. :-(

Can you create a txt file, containing the "changelog". Or can you put a date after an update? :-)

Link to comment
12 hours ago, dewguru said:

Really nice looking icons. I may take a look at incorporating them in DWR and crediting you.

Thank you! Go ahead, I'm happy to see them being used.

12 hours ago, dewguru said:

I'm always wrestling with how I want the images to look personally.

Yeah, it is kind of hard to find images that fit the tone of CK2's vanilla event pictures, especially since they're often somewhat sketch-like and not extremely detailed. Otherwise you could just use realistically drawn stuff, but there just doesn't exist much of that when it comes to porn ( atleast from what I know ) and usually the existing stuff is quite softcore.

Ā 

Ā 

16 minutes ago, Charli said:

Thank you for your work, it's really good.
I had a request: could you be a bit more specific when you make an update. I feel a little lost, if the last update is v1.03 or v1.04. I do not know what my version is. :-(

Can you create a txt file, containing the "changelog". Or can you put a date after an update? :-)

Thank you.

Ā 

The current version for the main download (the one without "Templates" or "Premade" in the name) is 1.03, since no mod actually uses the new icons currently ( @NoxBestia's & @Abominus' mods are going to add them in future updates ) and as such the main download didn't require an update to 1.04.

Though I thought it was a bad idea to not just upload a renamed 1.03 main download as 1.04 main download since it would confuse people, going to do that from now on.

Ā 

There is a changelog in the first post of this thread for every mod and in every post I make in this thread if I changed something since the last post. Though you can forget the changelog in the description on the actual download page, since it screws up every time I upload a new version or edit the first post.

Link to comment
On 3/5/2018 at 6:27 AM, Herring said:

The current version for the main download (the one without "Templates" or "Premade" in the name) is 1.03, since no mod actually uses the new icons currently ( @NoxBestia's & @Abominus' mods are going to add them in future updates ) and as such the main download didn't require an update to 1.04.

FYI - The current version of NDPA (0.0.2.1) that I uploaded last month has them in it.

Link to comment
29 minutes ago, NoxBestia said:

FYI - The current version of NDPA (0.0.2.1) that I uploaded last month has them in it.

I was talking about the new oral elasticity icons. I do know that you use the other icons, which is why I'mĀ probably going to remove the overwrite for your mod in the next update, if I don't have anything new to overwrite for it until then, since you use all icons I've created at this point anyway.

Link to comment

Changelog:

  • Trait Icon Replacements 1.05
    • Main download only update, so no new icons
    • Updated Dark World Reborn's overwrite to newest DWR's version
    • Removed Noxbestia's Darkest Perversion's overwrite, as all icons are currently in use
  • Trap & Futa Genes
    • Fixed removal of traits.
    • Added version check on startup, so the user is warned if he uses an older version on a save heĀ previously used a newer version

News:

Calculating initial penis girth at startup & monthly growth event-chain for framework is done.

Ā 

2 things:

First, I wanted to ask if I actually should try to continue to make the framework. I just got done testing it for how much of a difference it is to vanilla in memory usage and the results are not that dandy. A normal vanilla game uses about 1.5 GB of RAM after about twoĀ in-game months. With the mod it comes out at about 2 GB. About 250 MB from the actual current framework & 250 MB from the current monthly growth event-chain (which is still in another mod folder to test).

The event-chain can just be turned into an event that is called on_yearly_pulse with a gamerule, but the main problem is that the mod is nowhere near finished and the character variables are going to triple if not quadruple and maybe some other stuff is also going to take more memory. So at it's worst it could end up at something like 3.5 GB, which is too close to the 4 GB limit for my taste, but I also don't want to cut out a lot of stuff since I want it to be rather extensive.

Since I can't add a poll to this thread: https://strawpoll.com/38x7g5er

Ā 

Secondly, I actually started to work on some documentation for the framework, to not make it into/more of a mess & to have a manual for modders, and wanted to ask if the current documentation of variables & flags for penises & artifactsĀ (since those are the only ones I would consider finished) lacks anything that would be interesting or useful, if something in their is just not possible/useful with the CK2's engine, or if something should just be changed in general.

Here's a snippet of the document as a PDF: COCK2 Manual.pdf

Yes, the name of the framework is currently COCK2, which stands for "Copulations of Crusader Kings 2", I know it's stupid, but it's also too funny to me to change it.

Ā 

Also, a little tip:

If you're writing a mod where a lot of events call themself a bunch of times (In my case the monthly growth event-chain) actually use the repeat_event command like the wiki suggests to, instead of being lazy like me at first and using the character_event command. It saved me another 250 MB of RAM.

Link to comment

Hello, and thank you for a magnificent set of icons!

Ā 

I am using them for my homebrew mod (which is too rough to be offered for the community right now). While coding for the traits I've got some thoughts that I wanted to share with you in case you had some ideas or comments:

- while breast, butt, penis, and testes traits could represent endowment and could be paired (penis/testes, breasts/butt) for attraction and fertility (or mixed in feminine case), this IMHO is not really applicable to anus, vagina, or mouth;

- in case of anus, mouth, and (arguably) vagina the 'levels' should, perhaps, represent a level of experience ranging from 'virgin' to some goatsy-deepthroaty extreme :smile:

- if so, I am not sure the same nine-step approach in labeling them is necessary - four or five levels (say, gray-yellow-orange-pink-crimson) would be enough. This, however, can be left for modder discretion as you generously provide templates to make any changes necessary;

- do you have any ideas how 'experience levels' could be better distinguished from endowment icons? Using the same colors that are used for 'sizes' could lead to confusion (what is tiny in sizes could represent extreme in experience -- for exampleĀ color 'red')

Ā 

Do you plan to expand the icon set to include other sexy trait icons used or potentially used by adult CKII mods? A subset for kinks would be awesome (nox's mod has some of them, even though few are in actual use) as well as representations for fancier human sexual activities including group sex, insertions, piercing, BDSM stuff, etc. For some of them (say, spanking) existing icons could be modified (butt, in this case), but I am entirely unable to draw a nice fist ;)Ā to match the splendid graphical style of your iconset.

Ā 

Again, thanks for sharing with us your icons and other stuff!

Link to comment
53 minutes ago, vienastoks said:

Hello, and thank you for a magnificent set of icons!

Ā 

I am using them for my homebrew mod (which is too rough to be offered for the community right now). While coding for the traits I've got some thoughts that I wanted to share with you in case you had some ideas or comments:

- while breast, butt, penis, and testes traits could represent endowment and could be paired (penis/testes, breasts/butt) for attraction and fertility (or mixed in feminine case), this IMHO is not really applicable to anus, vagina, or mouth;

- in case of anus, mouth, and (arguably) vagina the 'levels' should, perhaps, represent a level of experience ranging from 'virgin' to some goatsy-deepthroaty extreme :smile:

- if so, I am not sure the same nine-step approach in labeling them is necessary - four or five levels (say, gray-yellow-orange-pink-crimson) would be enough. This, however, can be left for modder discretion as you generously provide templates to make any changes necessary;

- do you have any ideas how 'experience levels' could be better distinguished from endowment icons? Using the same colors that are used for 'sizes' could lead to confusion (what is tiny in sizes could represent extreme in experience -- for exampleĀ color 'red')

Ā 

Do you plan to expand the icon set to include other sexy trait icons used or potentially used by adult CKII mods? A subset for kinks would be awesome (nox's mod has some of them, even though few are in actual use) as well as representations for fancier human sexual activities including group sex, insertions, piercing, BDSM stuff, etc. For some of them (say, spanking) existing icons could be modified (butt, in this case), but I am entirely unable to draw a nice fist ;)Ā to match the splendid graphical style of your iconset.

Ā 

Again, thanks for sharing with us your icons and other stuff!

If it helps, my original intent of the anus, mouth, and vagina ratings was toĀ represent looseness or elasticity.Ā  As for the number of items, all of the endowments and flexibility ratings are on a 8 point scale (0-7 in code variables) for standardisation.Ā  The 9th trait (-1) is used by NDPA to represent that the actual trait size is hidden for pre-pubescent characters since most people don't want their newborns showing a 10" cock or DD breasts.Ā  :tongue:Ā 

Ā 

For example, here is the NDPA localisation text for the mouth traits:

  • Micro Mouth: This character's mouth can barely open, forcing them to live on a liquid diet. They sound as if they are speaking through clenched teeth all the time. They are unable to even stick their tongue out, let alone entertain any kind of oral sex.
  • Tiny Mouth:Ā This character's mouth is unbelievably tiny, but it does open enough to allow them to eat regular food, so long as it is finely diced. They sound as if they are speaking through clenched teeth all the time. They are able to stick their tongue out and can give limited oral sex performances.
  • Small Mouth:Ā This character's mouth is quite small, but no so small as to draw attention to it. Speech is not affected and they can perform oral sex for women and normal sized men.
  • Average Mouth:Ā This character has a regular mouth that functions as expected.
  • Big Mouth: This character has a large mouth, making it easy for them to orally service cocks of impressive girth. For a person like this, biting becomes a more effective combat option in cases of desperation.
  • Huge Mouth:Ā This character has a huge mouth that can open wide enough to stuff their own fist inside of it. In personal combat, biting is an effective tactic for them.
  • Enormous Mouth:Ā This character has an enormous mouth that appears unhinged when stretched open all the way. Even with their mouth closed, they often have an unnatural look to their face, making others somewhat uncomfortable around them. They were almost certainly ankle-biters as children.
  • Gigantic Mouth:Ā This character's gigantic, gaping mouth does not look natural at all, causing people serious discomfort in their presence. In many places such people are considered monsters.
Link to comment

News:

Got the event-chain almost down to nothing in memory by moving the variables from local_ to global_ (At most it's now 40 MB).

Also, thanks to everyone for their vote on the poll! It's nice to know that people are interested.

Ā 

56 minutes ago, vienastoks said:

- while breast, butt, penis, and testes traits could represent endowment and could be paired (penis/testes, breasts/butt) for attraction and fertility (or mixed in feminine case), this IMHO is not really applicable to anus, vagina, or mouth;

The paired thing sounds nice at first, but there are a few problems with them.

  1. If you would assume that both are always around the same size ( for example: big butt & big breasts or small butt & small breasts) it would just be somewhat boring as having the option for combinations of different sizes are more interesting. Also in case of penis & testicles it would be bad if a mod differentiates between an eunuch that lost just the testicles or an eunuch who lost just the penis, like one or two actually do on here.
  2. If we do have combinations of different sizes this would result in <different sizes>^<number of icons to combine>. Which would result currently in 9^2 = 82, 82 different icons would be, in my opinion, too many, if you can just do it in 18.
  3. I don't think there is enough space in a trait icon (24x24 pixels) to actually make them readable if they're combined, but I'm not sure of this.

Ā 

56 minutes ago, vienastoks said:

- in case of anus, mouth, and (arguably) vagina the 'levels' should, perhaps, represent a level of experience ranging from 'virgin' to some goatsy-deepthroaty extreme :smile:

- if so, I am not sure the same nine-step approach in labeling them is necessary - four or five levels (say, gray-yellow-orange-pink-crimson) would be enough. This, however, can be left for modder discretion as you generously provide templates to make any changes necessary;

I just made the icons, how people use them is up to them. Also see NoxBestia's post.

Ā 

58 minutes ago, vienastoks said:

- do you have any ideas how 'experience levels' could be better distinguished from endowment icons? Using the same colors that are used for 'sizes' could lead to confusion (what is tiny in sizes could represent extreme in experience -- for exampleĀ color 'red')

One of the distinguishing features is that size traits are just the rough outline of what it represents, while the elasticity/experience icons are more detailed. It is also pretty much agreed upon that the closer something is to red (or pink if a mod wants to include a micro size) the smaller it is, so I wouldn't worry about the color.

Ā 

1 hour ago, vienastoks said:

Do you plan to expand the icon set to include other sexy trait icons used or potentially used by adult CKII mods? A subset for kinks would be awesome (nox's mod has some of them, even though few are in actual use) as well as representations for fancier human sexual activities including group sex, insertions, piercing, BDSM stuff, etc. For some of them (say, spanking) existing icons could be modified (butt, in this case), but I am entirely unable to draw a nice fist ;)Ā to match the splendid graphical style of your iconset.

Of course, I'm currently just busy with the framework and want to work on it further before focusing on icons again, though in the process of making the framework I'm also going to create icons for it, which I'll also make available just like the current ones even before the framework is out.

As the combinations, it should not be a combination with the size, as it would result in the same problem as mentioned before. I originally made the -1 icon for something like this though to show different trait related to the bodyparts (without the -1 of course). I should probably make another color that is actually supposed to be used as a base.

Ā 

1 hour ago, vienastoks said:

Again, thanks for sharing with us your icons and other stuff!

You're welcome and thank you!

Link to comment
  • 4 weeks later...

Changelog:

  • Trait Icon Replacements
    • Download for users:
      • Updated dependencies string for DWR overwrite
    • Premades & Templates:
      • -1 size icons are now dark instead of light to make them contrast to the other bodypart icons
      • Added alternative to -1 icons with a questionmark
      • Updated male circumcision icons to use the penis base for Circumcision Mod
      • Added phimosis trait icon for Circumcision Mod
      • Added female circumcision icons for Circumcision Mod
      • Added GIMP script/plug-in that I use for icon shadows

New & Changed:

New.thumb.png.b900c3d6b201c4b7cd8784ebed757ceb.png

Ā 

Alternative icons for sewn shut:

Alts.png.8eff33e61f554174f46aac2d20f8dbd8.png

Ā 

News:

On one of the last news updates I mentioned that I did genital size multipliers for each graphical culture, it was the most boring things I have done for this mod, since it was mostly just copying & pasting and then editing the pasted text slightly.

I thought about how boring it would have to be for someone to do it for a huge overhaul like Warhammer: Geheimnisnacht or the Elder Kings to make it compatible and how I could make it not such a hassle.

Ā 

My first idea was to make a simple python program that would run other python scripts and would create a/multiple patch mod/s. The problems with that was:

  • It would not alert the user if a new mod is activated and that mod should also be looked at for the patch, if the user doesn't run it once in a while
  • settings.txt (The file in which you can find what DLCs and mods are activated) is only ever updated on launcher exit and game launch, which makes it harder to determine what DLCs and mods are currently activated
  • Non-GUI programs are not for everyone, even if it was just run it, wait till' it's finished & you're good to go and at that if I made it a GUI program I should just make it into a bigger thing than just a patcher

As such I'm currently making this, it is essentially a complete replacement for the launcher:

Manager.thumb.png.b40c64db48866b5cee22a23c68cc124b.png

Currently it only gets the mods and DLCs, loads them into their corresponding tables and gets the CK2 install directory and user directory both automatically and manually if it doesn't find it automatically, but you have to start somewhere.

Link to comment

@ngppgn

PyQt4 / Qt4 for python.

It's quite nice I guess, but I also don't have that much experience with GUIs so I really wouldn't know exactly.

Ā 

News:

After quite some time playing around with the commandline parameters "mod" & "exclude_dlc" the launcher now actually starts the game with the correct mods & DLCs.

Ā 

For those that want to know why this was difficult to find out:

Spoiler

The only example I could find for those parameters were from around 2013 for Linux were it was a single dash instead of double infront of them and with '/' to separate paths, instead of the standard '\' for Windows, which you would think it would be on Windows, but no, Paradox made them uniform so that it's always '/'.

Ā 

So the actual parameters to pass are something like this:

--mod=mod/Mod1.mod --mod=mod/Mod2.mod --exclude_dlc=dlc/dlc_001.dlc --exclude_dlc=dlc/dlc_002.dlc

Ā 

I will now move on to creating the profiles functionality so that activated mods & deactivated DLCs will now be saved to a profile when closing the program & then the patching function.

Link to comment
24 minutes ago, ngppgn said:

Interesting. Though I am pretty sure single-dash arguments still work

Huh, you are right. I guess I must have fucked something else up when trying it with just a single one.

It's still weird that it strays off from the usual convention of having longer parameters being exclusive to "--", then again, it's probably better to have it work both ways than having threads on the paradox forumsĀ from less experienced Linux/Mac users asking why "-mod=..." doesn't work.

Link to comment

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

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use