Open ElTyranos opened 3 years ago
Allow one to give conditions to AI usage per model via the entity and not per portrait modifier only.
One has to define two groups + 2 portraits modifiers. Yet, those two categories bellow use the exact same portrait modifier (conditions for AI to use), the second category simply has has_cultural_era_or_later = culture_era_high_medieval
on top, but it can also be tied to an innovation, innovation_plate_armor
for example.
iranian_war = {
index = 116
male = { 1 = male_headgear_secular_iranian_cfp_war_mail_coif_01 }
female = { 1 = female_headgear_secular_iranian_cfp_war_mail_coif_01}
boy = male
girl = female
}
iranian_war_high_medieval = {
index = 117
male = { 1 = male_headgear_secular_iranian_cfp_war_khud_01 }
female = { 1 = female_headgear_secular_iranian_cfp_war_khud_01 }
boy = male
girl = female
}
This leads to
This sample code bellow would allow an era lock system [or any other simple condition] that doesn't require new genes groups to be coded (= accessory_gene group + barbershop + portrait_modifier).
An asset-per-asset control is deeply needed as the number of available models grows.
male_headgear_secular_mywonderfulasset_01 = {
set_tags = "no_hair"
entity = {
required_tags = ""
shared_pose_entity = head
entity = male_headgear_secular_iranian_cfp_war_quilted_01_entity
is_valid_custom = { has_cultural_era_or_later = culture_era_high_medieval }
}
}
Allow portrait modifiers to be computed from external files as when two mods both edit 01_headgear.txt
or 01_clothes.txt
they become incompatible and many characters become naked.
if the first headgear = { }
is used in a new file, it will overwrite the entire data contained in the class with the one from the latest loaded file.
headgear = { }
is used in another file than 01_headgear.txt
, then its content is simply added to the existing class.headgear = { }
keeps overwriting but headgear:headgear = { }
means the following classes are to be merged to base headgear
classAllow the “decal” parameter from “morph_genes” in “accessory_genes” so they can be called in the barbershop, and controlled as portrait modifiers
accessory_genes = {
special_headgear_head_bandage = {
head_bandage = {
index = 0
male = {
setting = { attribute = "bs_warpaint" value = { min = 1.0 max = 1.0 } }
decal = {
body_part = head
textures = {
diffuse = "gfx/models/portraits/decals/visual_traits/warpaint_diffuse.dds"
normal = "gfx/models/portraits/decals/visual_traits/warpaint_normal.dds"
properties = "gfx/models/portraits/decals/visual_traits/warpaint_properties.dds"
}
blend_modes = { #overlay/replace/hard_light/multiply
diffuse = hard_light
normal = overlay
properties = overlay
}
priority = 10
}
}
female = male
boy = male
girl = female
}
}
}
This won't work as "accessory_genes", when it works as "morph_genes". Yet the code structure is exactly the same between the two. The barbershop simply won't read it ("decal" value is unexpected).
Allow animations props to be changed like accessories (random + trigger based + can be called in the barbershop). Currently, one can only copy paste animations only to change one line, when the props code is structured as any “accessory_genes”.
in \common\genes\07_genes_special_accessories_misc.txt
marshal_swords = {
index = 5
male = {
1 = western_sword_02
}
female = {
1 = western_sword_02
}
boy = male
girl = female
}
One can't :
\gfx\portraits\portrait_modifiers\01_animation_props.txt
Props should be assigned as any portrait accessory (headgear, clothes) to allow new models and more cultural specificity.
HIGH PRIO :
MEDIUM PRIO :
LOW PRIO :