Bug fixes:
here're some other bugs I actually came up with fixes for if you haven't already yourself
1) New hybrid (pureblood) bonuses were not applying to starting servant or MC properly. The below fixes the MC, for the starting slave I just zero'd out the str_mod and other attributes in expansionsetup.gd func setRaceBonus() after the var declarations near the beginning:
[person.gd]
func playercleartraits():
spec = null
while !traits.empty():
trait_remove(traits.back())
for i in ['str_base','agi_base', 'maf_base', 'end_base']:
stats[i] = 0
for i in ['str_mod','agi_mod','maf_mod','end_mod']:
stats[i] = 0
skillpoints = 2
level = 1
xp = 0
[mainmenu.gd]
#Connect virgin option
get_node("TextureFrame/newgame/stage6/virgin").connect("pressed", self, '_virgin_press')
#Initialize newgame variables
player = globals.newslave(playerDefaults.race, playerDefaults.age, playerDefaults.sex, playerDefaults.origins) #Prefer to use a constructor/builder
#ralph
#player.cleartraits()
player.playercleartraits()
#/ralph
...
if stage >= 6: #If backtracking after reaching player specialization stage
var spec = player.spec
#ralph
#player.cleartraits()
player.playercleartraits()
#/ralph
...
func regenerateplayer():
var imageportait = player.imageportait
player = globals.newslave(player.race, player.age, player.sex, 'slave')
globals.player = player
#ralph
#player.cleartraits()
player.playercleartraits()
#/ralph
2) Nereid was missing and Dragonkin was duplicated (fixed below)
[constructor.gd]
func set_baby_type(person):
if person.race == 'Dragonkin' || person.race == 'Nereid' || person.race == 'Lamia' || person.race == 'Harpy' || person.race == 'Arachna' || person.race == 'Scylla':
3) changed order so correct race bonuses are subtracted before slime race bonuses are added later in the if statement
[globals.gd]
if rand_range(0,100) + conversionstrength > strongestgenes:
expansionsetup.setRaceBonus(baby, false)
baby.race = 'Slime'
baby.race_type == 4