Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 [2] 3

Author Topic: 2 hetero female dorfs...  (Read 9472 times)

Insert_Gnome_Here

  • Bay Watcher
  • Dosen't really care about anything anymore.
    • View Profile
Re: 2 hetero female dorfs...
« Reply #15 on: February 09, 2015, 01:23:28 pm »

My computer has the annoying tendency to crash after a world >10 years old genns.
Logged
Quote from: Max™ on December 06, 2015, 04:09:21 am
Also, if you ever figure out why poets/bards/dancers just randomly start butchering people/getting butchered, please don't fix it, I love never knowing when a dance party will turn into a slaughter.

pisskop

  • Bay Watcher
  • Too old and stubborn to get a new avatar
    • View Profile
Re: 2 hetero female dorfs...
« Reply #16 on: February 09, 2015, 01:49:34 pm »

shucks.  Well, my one test suggests they do not fare well at all.
Spoiler (click to show/hide)

For some reason,  a few kings did get a husband.  Not sure why.
« Last Edit: February 09, 2015, 01:53:45 pm by pisskop »
Logged
Pisskop's Reblancing Mod - A C:DDA Mod to make life a little (lot) more brutal!
drealmerz7 - pk was supreme pick for traitor too I think, and because of how it all is and pk is he is just feeding into the trollfucking so well.
PKs DF Mod!

Sanctume

  • Bay Watcher
    • View Profile
Re: 2 hetero female dorfs...
« Reply #17 on: February 09, 2015, 02:08:39 pm »

I have an experimental embark where I use DT to check for the blurb, "dreams of raising a family" as well as "values family" and gave those initial dwarves Flattery 6 skill points.
I gave everyone Conversationalist 6.  I have 3 married couples out of 18 pop (7 male hetero, 1 female bi, 1 female asexual, 9 female hetero)

Then I created a 3x4 dining room hall where the chairs adjacent to improve that chance of conversation / socializing.
Code: [Select]
  TTT  where T=table, C=chair
  CCC
  CCC
  TTT

I also did a shared bed area, but give individual coffer bedrooms.
Code: [Select]
 
  WWWWW  where W=Wall, H=coffer, .=floor, D=door, B=bed
  WHWHW  toggle door set as indoor before assigning bedroom
  W.W.W
  WDWDW
  WBWBW
  W...D
  WBWBW
  WDWDW
  W.W.W
  WHWHW
  WWWWW

NonconsensualSurgery

  • Bay Watcher
    • View Profile
Re: 2 hetero female dorfs...
« Reply #18 on: February 09, 2015, 04:19:44 pm »

Where is the data file that controls this behavior? Is there a way I can make all dwarfs hetero if I wanted to?

You can add orientation tags the raws for dwarves to make them 100% heterosexual.

FEMALE caste
[ORIENTATION:MALE:0:0:100]
[ORIENTATION:FEMALE:100:0:0]

MALE caste
[ORIENTATION:FEMALE:0:0:100]
[ORIENTATION:MALE:100:0:0]

If I do this in an existing world will migrants and newborns have adjustable gayness?
Logged
Never had a bat massacre people with an axe before.
EDIT2: Oh god, the bat has got a title now.

pisskop

  • Bay Watcher
  • Too old and stubborn to get a new avatar
    • View Profile
Re: 2 hetero female dorfs...
« Reply #19 on: February 09, 2015, 04:23:19 pm »

Where is the data file that controls this behavior? Is there a way I can make all dwarfs hetero if I wanted to?

You can add orientation tags the raws for dwarves to make them 100% heterosexual.

FEMALE caste
[ORIENTATION:MALE:0:0:100]
[ORIENTATION:FEMALE:100:0:0]

MALE caste
[ORIENTATION:FEMALE:0:0:100]
[ORIENTATION:MALE:100:0:0]

If I do this in an existing world will migrants and newborns have adjustable gayness?
It gets rolled only once, so I don't know.  Perhaps?  Give it a try.  Back up a save and turn everything ever gay.  If no more babies get born than thats the answer.
Logged
Pisskop's Reblancing Mod - A C:DDA Mod to make life a little (lot) more brutal!
drealmerz7 - pk was supreme pick for traitor too I think, and because of how it all is and pk is he is just feeding into the trollfucking so well.
PKs DF Mod!

Orange Wizard

  • Bay Watcher
  • mou ii yo
    • View Profile
    • S M U G
Re: 2 hetero female dorfs...
« Reply #20 on: February 12, 2015, 05:35:48 am »

Should be fairly easy to make a degayifier in DFHack. I know Putnam was contemplating making one.
Logged
Please don't shitpost, it lowers the quality of discourse
Hard science is like a sword, and soft science is like fear. You can use both to equally powerful results, but even if your opponent disbelieve your stabs, they will still die.

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile
Re: 2 hetero female dorfs...
« Reply #21 on: February 12, 2015, 06:05:33 am »

I suspect that the 'likes x' means that they can become lover status with gender x, not that they dislike the other gender.

Yeah, I'm pretty sure this is the case.

I wrote the script. This is the case. Being attracted to males is completely independent from being attracted to females and vice-versa, neither one is taken into account for the other. This is why gaydar doesn't say "gay" or "bi" in the descriptors; that's purely a descriptor that people are more familiar with, but it doesn't reflect the game's reality.

Should be fairly easy to make a degayifier in DFHack. I know Putnam was contemplating making one.

Not contemplating, refusing. But then again, I figure making people not-gay is about as bad as changing their personality entirely or killing them. It's kinda yucky, but bleh, here you go.

Code: [Select]
-- Allows arbitrary changing of orientation.

-- No lover settings because it's 3 am and I should be going to bed.

local utils = require('utils')

validArgs = validArgs or utils.invert({
 'gay',
 'straight',
 'bi',
 'citizens',
 'help'
})

local args = utils.processArgs({...}, validArgs)

if help then
    print([[some_horrible_name.lua
arguments:
    -help
        print this help message
    -gay
        make unit gay
    -straight
        make unit straight
    -bi
        make unit bi
    -citizens
        as above, but with all units instead of selected unit
    ]])
end

local function changeOrientation(unit,straight,gay)
    if not unit then qerror('You need a unit selected!') return false end
    local is_straight=not not straight
    local is_gay=not not gay
    if unit.relations.lover_id>-1 or unit.relations.spouse_id>-1 then return false end
    local orientation=unit.status.current_soul.personality.orientation_flags
    if unit.sex==0 then
        orientation.male_lover=false
        orientation.male_marry=is_straight
        orientation.female_lover=false
        orientation.female_marry=is_gay
    else
        orientation.male_lover=false
        orientation.male_marry=is_gay
        orientation.female_lover=false
        orientation.female_marry=is_straight
    end
end

if args.citizens then
    for k,v in ipairs(df.global.world.units.active) do
        if dfhack.units.isCitizen(v) then
            changeOrientation(v,args.straight or args.bi,args.gay or args.bi)
        end
    end
else
    changeOrientation(dfhack.gui.getSelectedUnit(true),args.straight or args.bi,args.gay or args.bi)
end
« Last Edit: February 12, 2015, 04:09:41 pm by Putnam »
Logged

Uzu Bash

  • Bay Watcher
    • View Profile
Re: 2 hetero female dorfs...
« Reply #22 on: February 12, 2015, 09:54:03 am »

I only have one pure homosexual, and he dreams of raising a family. Is this going to be possible for him, or will he lead a tragic life?
Logged

Grim Portent

  • Bay Watcher
    • View Profile
Re: 2 hetero female dorfs...
« Reply #23 on: February 12, 2015, 09:57:14 am »

I only have one pure homosexual, and he dreams of raising a family. Is this going to be possible for him, or will he lead a tragic life?

Tragic life I believe. But then that's also true for dwarfs who dream of raising a family but are only lover compatible with the opposite gender rather than marriage compatible, so it's not all that uncommon really.
Logged
There once was a dwarf in a cave,
who many would consider brave.
With a head like a block
he went out for a sock,
his ass I won't bother to save.

Badger Storm

  • Bay Watcher
    • View Profile
Re: 2 hetero female dorfs...
« Reply #24 on: February 12, 2015, 12:11:22 pm »

This is why I'd like to see adoption of orphaned kids by couples of both arrangements.  A little thing like orientation shouldn't get in the way of your dreams.
Logged

Grim Portent

  • Bay Watcher
    • View Profile
Re: 2 hetero female dorfs...
« Reply #25 on: February 12, 2015, 12:39:56 pm »

This is why I'd like to see adoption of orphaned kids by couples of both arrangements.  A little thing like orientation shouldn't get in the way of your dreams.

I'd prefer to see a loosening up of the 'who can have kids' stuff first, it makes no sense to me that married dwarfs can make kids and lovers can't.

As it is orphans essentially become wards of the fort with all citizens caring for them equally in their spare time, though of course none carry them around, so I consider adoption a lower priority.
Logged
There once was a dwarf in a cave,
who many would consider brave.
With a head like a block
he went out for a sock,
his ass I won't bother to save.

Eldin00

  • Bay Watcher
    • View Profile
Re: 2 hetero female dorfs...
« Reply #26 on: February 12, 2015, 02:42:40 pm »

Specifically because of the 'no children except from married couples' and 'dwarves get (at most) one romance in their lifetime', I modded my dwarves such that 'likes gender' almost never happens. They can still be hetero/homo/bi-sexual (at similar rates to vanilla dwarves), but 99% of my dwarves get either 'will marry' or 'uninterested' for each gender.
Logged

Badger Storm

  • Bay Watcher
    • View Profile
Re: 2 hetero female dorfs...
« Reply #27 on: February 12, 2015, 02:45:32 pm »

Don't be ridiculous.  Flinging children halfway across the map to land in magma is good, wholesome fun, but extramarital reproduction?  Why, that's just unseemly!
Logged

TheHossofMoss

  • Bay Watcher
  • "Man muss Heu machen, solange die Sonne scheint."
    • View Profile
Re: 2 hetero female dorfs...
« Reply #28 on: February 12, 2015, 03:10:33 pm »

Don't be ridiculous.  Flinging children halfway across the map to land in magma is good, wholesome fun, but extramarital reproduction?  Why, that's just unseemly!

"Where there's a will, there's a mod!"

-Urist McGoku
Logged
On the Fifth Day of Axemas, my love saved the fort from...
Five sieging Werebeasts, four Giant Dingoes, three sneaky Thieves, two drunken Black bears, and a Titan killing spree!

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile
Re: 2 hetero female dorfs...
« Reply #29 on: February 12, 2015, 04:10:41 pm »

Already made the script for extramarital reproduction.

Code: [Select]
-- Allows ectobiology.

-- where doing it man

-- where MAKING THIS HAPEN

local function getNumberOfChildren(unit)
    local children=0
    for k,v in ipairs(df.historical_figure.find(unit.hist_figure_id).histfig_links) do
        if df.histfig_hf_link_childst:is_instance(v) then children=children+1 end
    end
    return children
end

local function getSpouseOrLover(unit)
    local lover_unit=df.unit.find(unit.relations.lover_id) or df.unit.find(unit.relations.spouse_id)
    if lover_unit then
        return lover_unit.hist_figure_id
    else
        local hist_fig=df.historical_figure.find(unit.hist_figure_id)
        for k,v in ipairs(hist_fig.histfig_links) do
            if df.histfig_hf_link_spousest:is_instance(v) or df.histfig_hf_link_loverst:is_instance(v) then
                return v.target_hf
            end
        end
    end
end

local function getCitizenList(lovers_only)
    local citizenTable={}
    if lovers_only then
        for k,u in ipairs(df.global.world.units.active) do
            if dfhack.units.isCitizen(u) and (u.relations.spouse_id~=-1 or u.relations.lover_id~=-1) and u.military.squad_id==-1 then
                table.insert(citizenTable,{dfhack.TranslateName(dfhack.units.getVisibleName(u))..(getSpouseOrLover(u) and (df.historical_figure.find(getSpouseOrLover(u)).sex==u.sex and ' (gay)' or (' (straight)')) or (' (unknown)'))..' ('..getNumberOfChildren(u)..' children)',nil,u})
            end
        end
    else
        for k,u in ipairs(df.global.world.units.active) do
            if dfhack.units.isCitizen(u) then
                table.insert(citizenTable,{dfhack.TranslateName(dfhack.units.getVisibleName(u)),nil,u})
            end
        end
    end
    return citizenTable
end

local function getFemaleCasteWithSameMaxAge(unit)
    local curCaste=df.creature_raw.find(unit.race).caste[unit.caste]
    for k,caste in ipairs(df.creature_raw.find(unit.race).caste) do
        if caste.gender==0 and caste.misc.maxage_min==curCaste.misc.maxage_min and caste.misc.maxage_max==curCaste.misc.maxage_max then return k end
    end
end

local function ectobiologize(freeform)
    local script=require('gui.script')
    script.start(function()
    local citizens=getCitizenList(not freeform)
    if #citizens==0 then script.showMessage('Ectobiology',"Nobody is in a relationship! Best use freeform ectobiology.",COLOR_WHITE) return end
    if freeform then
        local ok1,name1,unit1_t=script.showListPrompt("Ectobiology","Choose first paradox ghost slime target.",COLOR_WHITE,citizens)
        local ok2,name2,unit2_t=script.showListPrompt("Ectobiology","Choose second paradox ghost slime target.",COLOR_WHITE,citizens)
        local unit1=unit1_t[3]
        local unit2=unit2_t[3]
        unit1.relations.pregnancy_timer=1
        unit1.relations.pregnancy_genes=unit1.appearance.genes:new()
        unit1.relations.pregnancy_spouse=unit2.hist_figure_id
        unit1.relations.pregnancy_caste=unit2.caste
        dfhack.run_script('modtools/add-syndrome','-syndrome','temp desterilize','-target',unit1.id)
        if unit1.sex==1 then
            local normal_caste=unit1.enemy.normal_caste
            unit1.enemy.normal_caste=getFemaleCasteWithSameMaxAge(unit1)
            script.sleep(1,'ticks')
            unit1.enemy.normal_caste=normal_caste
        end
    else
        local ok,name,unit_t=script.showListPrompt("Ectobiology","Choose first genetic material giver.",COLOR_WHITE,citizens)
        if not ok then return false end
        local unit=unit_t[3]
        local lover=getSpouseOrLover(unit)
        unit.relations.pregnancy_timer=1
        unit.relations.pregnancy_genes=unit.appearance.genes:new()
        unit.relations.pregnancy_spouse=lover
        unit.relations.pregnancy_caste=df.historical_figure.find(lover).caste
        dfhack.run_script('modtools/add-syndrome','-syndrome','temp desterilize','-target',unit.id)
        if unit.sex==1 then
            local normal_caste=unit.enemy.normal_caste
            unit.enemy.normal_caste=getFemaleCasteWithSameMaxAge(unit)
            script.sleep(1,'ticks')
            unit.enemy.normal_caste=normal_caste
        end
    end
    end)
end
local utils=require('utils')

validArgs = validArgs or utils.invert({
 'freeform'
})

local args = utils.processArgs({...}, validArgs)

ectobiologize(args.freeform)

It's completely egalitarian! Even males can give birth with it. If you use the argument -freeform, they don't even need to be lovers.
Pages: 1 [2] 3