Hybrid Species Recognition

Night

Well-Known Member
Aug 26, 2015
195
19
So i'v given it some thought and decided to forgo my usual "pick starting race and stick with it" routine and decided to mash up different aspects of different race. Not trying to makes some twisted disgusting looking chimera, but something akin to the often used ausar-kaithrit mix like Seandra. But after getting my finalized cosmetics down i noticed the game still mentions me as a singular race rather than a hybrid of sorts. I get that making a dialog mashing up every different race in TiTs would be a long and grueling process and may not happen at all one would want to write or code it. My question is, Is something like that possible?


Side Note: at the moment i am a freshman college student majoring in computer science and arts and technology and my basic entry level course is the fundamentals of coding. I'v got a friend who's a junior helping me learn how to code a little faster than my class so hopefully sometime in the future i'd like to volunteer as a coder/writer for future content (if i'm allowed)
 
Last edited by a moderator:

Etis

Well-Known Member
Creator
Aug 26, 2015
2,497
258
The creature bohy has set of parts, which can have one of int states, which are named constants and associated with races. They usually used for basic description.


public static const TYPE_HUMAN:int = 0;
public static const TYPE_EQUINE:int = 1;
public static const TYPE_BOVINE:int = 2;
public static const TYPE_CANINE:int = 3;
public static const TYPE_FELINE:int = 4;
public static const TYPE_VULPINE:int = 5;


Also, some parts have flags. They used for extended specifications, also for some common things between races.


public static const FLAG_LONG:int = 1;
public static const FLAG_PREHENSILE:int = 2;
public static const FLAG_LUBRICATED:int = 3;
public static const FLAG_FLUFFY:int = 4;
public static const FLAG_SQUISHY:int = 5;
public static const FLAG_SMOOTH:int = 6;


So each part can be descripted by one type variable and anyamount of flags. And race detection works like this:

Code:
		public function race(): String {
			if (foxScore() >= 4) race = faceType == GLOBAL.TYPE_VULPINE ? "fox-morph" : mf("fox-man", "fox-girl");
			if (kitsuneScore() >= 5 && (race.indexOf("fox") == -1 || tailCount > 1)) race = "kitsune";
			if (kaithritScore() >= 3 && race == "human") race = "half-kaithrit";
			if (kaithritScore() >= 6) race = "kaithrit";
			if (felineScore() >= 5 && race != "kaithrit") {
				if (hasTail(GLOBAL.TYPE_FELINE) && tailCount > 1) race = "nekomata";
				else if (dragonScore() >= 4)  race = "dragonne";
				else if (faceType == GLOBAL.TYPE_FELINE) race = "cat-morph";
				else race = rawmfn(mfn("cat-man", "cat-girl", "cat-boy"), "cat-girl", "feline");
			}
			if (race == "human" && humanScore() < 4) race = "alien hybrid";
			return race;
		}
Code:
		public function kaithritScore(): int {
			var counter: int = 0;
			if (earType == GLOBAL.TYPE_FELINE) counter++;
			if (tailType == GLOBAL.TYPE_FELINE && tailCount == 1) counter++;
			if (tailType == GLOBAL.TYPE_FELINE && tailCount == 2) counter += 2;
			if (counter > 0 && faceType == GLOBAL.TYPE_HUMAN) counter++;
			if (counter > 1 && armType == GLOBAL.TYPE_FELINE && !hasArmFlag(GLOBAL.FLAG_FURRED)) counter++;
			if (counter > 2 && legType == GLOBAL.TYPE_HUMAN && legCount == 2 && hasLegFlag(GLOBAL.FLAG_PLANTIGRADE)) counter++;
			if (counter > 3 && eyeType == GLOBAL.TYPE_FELINE && faceType == GLOBAL.TYPE_HUMAN) counter += 2;
			if (counter > 5 && hasCock(GLOBAL.TYPE_FELINE)) counter++;
			if (femininity < 75) counter--;
			if (femininity < 50 && !hasBreasts()) counter--;
			return counter;
		}
		public function felineScore(): int {
			var counter: int = 0;
			if (earType == GLOBAL.TYPE_FELINE) counter++;
			if (hasTail(GLOBAL.TYPE_FELINE)) counter++;
			if (faceType == GLOBAL.TYPE_FELINE || faceType == GLOBAL.TYPE_NALEEN_FACE) counter++;
			if (armType == GLOBAL.TYPE_FELINE && hasArmFlag(GLOBAL.FLAG_FURRED)) counter++;
			if (legType == GLOBAL.TYPE_FELINE && hasLegFlag(GLOBAL.FLAG_DIGITIGRADE)) counter++;
			if (eyeType == GLOBAL.TYPE_FELINE && faceType == GLOBAL.TYPE_FELINE) counter++;
			if (counter > 1 && cockTotal(GLOBAL.TYPE_FELINE) == cockTotal()) counter++;
			return counter;
		}
 

Night

Well-Known Member
Aug 26, 2015
195
19
You can just save edit, like when i change my race to Zerg.

I do save edit but mostly when i was trying to either reverse a decision or event, because like i say i either pick half ausar or plain human and play through with very little changes through out. But i am curious, can you manually set your race to say zerg in the appearance tab or are you talking about just modding your body to look like one.
 

NEET-Hime

Well-Known Member
Aug 27, 2015
379
9
I mad my body look Zerg-ish then changed my race to say Zerg. Here is an except from the last character I played.


MwHEDKz.png
 

Etis

Well-Known Member
Creator
Aug 26, 2015
2,497
258
I do save edit but mostly when i was trying to either reverse a decision or event, because like i say i either pick half ausar or plain human and play through with very little changes through out. But i am curious, can you manually set your race to say zerg in the appearance tab or are you talking about just modding your body to look like one.

Starting race can be anything (it is a String field), but current one is one of race detection function returns.
 

treatedfae

Well-Known Member
Dec 19, 2015
81
0
you can be marked as an "alien hybrid," I'm not totally sure what mix or racial scores you need to achieve this but the description is possible if that's what you're asking. 
 

Xeivous

Well-Known Member
Sep 21, 2015
2,456
1,396
you can be marked as an "alien hybrid," I'm not totally sure what mix or racial scores you need to achieve this but the description is possible if that's what you're asking. 

half-human scores are different from full-blooded scores. So presumably you could have a mixed-race score by having a half-breed score in two different races. So 2 points in Ausar and 3 points in Kaithrit would make you a Kaithrit-Ausar hybrid. Or however one wants to label such racial options.
 

Night

Well-Known Member
Aug 26, 2015
195
19
you can be marked as an "alien hybrid," I'm not totally sure what mix or racial scores you need to achieve this but the description is possible if that's what you're asking. 

I was talking specific types or hybrids adopting the 2 dominant race scores and properly combining them such as  having a ausar score of 3 and a kaithrit score of 3 specifically labels you as an ausar-kaithrit hybrid not "alien hybrid".
 

Etis

Well-Known Member
Creator
Aug 26, 2015
2,497
258
I was talking specific types or hybrids adopting the 2 dominant race scores and properly combining them such as  having a ausar score of 3 and a kaithrit score of 3 specifically labels you as an ausar-kaithrit hybrid not "alien hybrid".

N² complexity of all races amount.
 

Couch

Scientist
Creator
Aug 26, 2015
1,628
933
At present the race naming code works nothing like this.  It goes down a list of qualifications and changes the race if it meets the qualifications.  A system that could detect every race you belonged to would be much more than N^2 complex, it would mean a complete gutting and rewriting of the foundational code for determining race.
 

Ormael

Well-Known Member
Aug 27, 2015
6,623
1,786
Not to meantion that sometimes with system meantioned above PC CAN technicaly be enough similar to two different species at once and so what then? Which one species to show game need to pick? And the deeper into game progress we will get the more races will be added adding even more possible hybrid crossovers/offshots/dead ends/etc. you should get a picture, right? :D


Maybe adding system something to akin new option in appearance which would list all possible races/hybrid races PC is atm and then give him/her option to pick which one would be show could be some to OP liking. Not ideal but well we got something similar with gender variation already that we can set for our PC (and same with races unlike majority of npc ingame PC could change many times race during one gameplay ^^).