*label advance_time *set age +1 *gosub advance_karol *gosub advance_ulrich *gosub reset_variables *set year +1 *if (squire != "") and (squire != "Karol Hardanich") *set squire_age +1 *comment *if (squire_age > 17) and (squire = "Javand Pasterich") *comment *gosub_scene squire javand_knighted Year: ${year} *set log & "[n/]In the year ${year}, you turned ${age} years old." *if (fresh_drill = 0) and (unit_skill > 0) *set unit_skill -1 *set fresh_drill 3 *if fresh_drill > 0 *set fresh_drill -1 *set annual_focus "none" *set calamity_season 1 *set sowLitterSize 4 *set thornes_age +1 *set years_since_outlaw_from_neighbor +1 *set deadLeather 0 *if knight_hired *set knight_tenure +1 *gosub auto_check_households *gosub auto_check_acreage *comment *gosub set_live_animals *gosub auto_check_vetches *gosub mortality_check *gosub confirmation_check *gosub birth_check *gosub rejigger_houses *if unassigned_acreage > 0 *gosub assign_acreage *gosub calamities_updates *return *label advance_karol *set karol_age +1 *if karol_status = "squire_ulmheit" *set karol_warrior +1 *set karol_adm +0.5 *set karol_net +0.5 *if karol_status = "macron" *set karol_scholar +0.5 *set karol_adm +0.5 *set karol_net +0.5 *if karol_status = "squire" *if knight *set karol_warrior +0.5 *set karol_warrior +0.5 *set karol_adm +0.5 *if karol_status = "page" *if (knight or ((combat + tactics) >= 3)) *set karol_warrior +1 *if (knight = false) and ((combat + tactics) < 3) *set karol_warrior +0.5 *if karol_status = "student" *set karol_scholar +1 *if karol_support = 15 *set karol_warrior +0.5 *if karol_support = 10 *set karol_adm +1 *if karol_status = "squire" *set karol_warrior +1 *if (karol_status != "squire") and (karol_support = 0) *set karol_adm +0.5 *if (squire = "Karol_delayed") and (karol_age >= 12) Karol is now old enough to become your squire. Over dinner one night, you inform him of his new duties. His eyes go wide as you describe his new responsibilities. *set squire "Karol Hardanich" *set squire_him "him" *set karol_support 0 *set karol_status "squire" *set squire_support 60 *set ridinghorse +1 *set manor_liquid -round(150 / trade_efficiency) Of course, a squire is not a squire without a horse; you take him out to the stables, where you introduce him to the palfrey you purchased for him from Ulmheit. *if manor_liquid < 0 (You had to borrow the capital to do so, but no matter.) *set manor_debt -(manor_liquid) *set manor_liquid 0 You leave the boy trying out names for the new horse. *if (karol_age = 14) and (squire != "Karol Hardanich") *gosub_scene family karol_aged_out *return *label advance_ulrich *set ulrich_age +1 *set ulrich_majority false *return *label reset_variables *set annual_manor_morale 0 *label calamity_rand *rand calamity 1 26 *return *label end_harvest *if swore_fealty = false *rand nym_angry_over_fealty 1 100 *if angry_letter_from_nym and (swore_fealty = false) *rand nym_arrives 1 100 *if swore_fealty and ((knight = false) and (knight_hired = false)) *rand betrayed_pledge_hire_knight 1 100 *set winter_wheat_failure false *set spring_wheat_failure false *set wheat_failure false *return *label set_live_animals *set sheep rams + ewes *comment *set sheep + lambs *set sheep + wethers *set cattle bulls + oxen *set cattle + cows *set cattle + yearlings *set swine boars + sows *set swine + piglets *return *label check_fealty *if (angry_letter_from_nym = false) and (year > 566) *if (year = 567) and (nym_angry_over_fealty < 15) *label quick_letter *gosub angry_letter_from_nym *return *elseif (year = 568) and (nym_angry_over_fealty < 15) *goto quick_letter *elseif (year = 569) and (nym_angry_over_fealty < 30) *goto quick_letter *elseif (year = 570) and (nym_angry_over_fealty < 40) *goto quick_letter *elseif (year = 571) and (nym_angry_over_fealty < 60) *goto quick_letter *elseif (year = 572) and (nym_angry_over_fealty < 75) *goto quick_letter *elseif year > 572 *goto quick_letter *else *return *if angry_letter_from_nym *set years_since_angry_letter +1 *if (years_since_angry_letter = 2) and (nym_arrives < 15) *label quick_arrival *gosub nym_arrives_for_fealty *return *elseif (years_since_angry_letter = 3) and (nym_arrives < 30) *goto quick_arrival *elseif (years_since_angry_letter = 4) and (nym_arrives < 40) *goto quick_arrival *elseif (years_since_angry_letter = 5) and (nym_arrives < 60) *goto quick_arrival *elseif (years_since_angry_letter = 6) and (nym_arrives < 75) *goto quick_arrival *elseif (years_since_angry_letter > 6) *goto quick_arrival *else *return *return *label min_sheep_count *set minSheep round((serf_pop + serf_households) + demense_sheep_needs) *return *label min_sheep *set woolNeeded (minSheep * 3.3) *temp sheepNeeded (minSheep - sheep) *set sheepNeeded round(sheepNeeded) *if minSheep > sheep You don't have enough sheep to satisfy the manor's wool needs for the year. You should really acquire ${sheepNeeded} more. *comment *line_break *comment MinSheep: ${minSheep} *comment *line_break *if (wool >= (woolNeeded - incomeWool)) Thankfully, you have enough wool in your stores to cover the production gap. *if (wool < (woolNeeded - incomeWool)) You also don't have the stores to fill the gap. *set manor_morale %-5 *set woolDeficit +(woolNeeded - incomeWool) *set woolNeeded -woolDeficit *set incomeWheat +(woolNeeded / woolPrice) *set incomeWool -woolNeeded *if incomeWool < 0 *set wool -woolDeficit *set incomeWool 0 *return *label auto_check_households *set serf_households (fisher_households + (hv_households + (villein_households + cottar_households))) *set freeholder_households (yeoman_households + trade_households) *if households != (fisher_households + (hv_households + (trade_households + (yeoman_households + (villein_households + cottar_households))))) *bug households don't match *return *label auto_check_acreage *temp totalAcreage 0 *set totalAcreage (unassigned_acreage + (forest_acreage + (fen_acreage + (farmland_acreage + (pasture_acreage + (meadow_acreage + (unusable_acreage + (demense_acreage + gleb_acreage)))))))) *if manor_acreage != (unassigned_acreage + (forest_acreage + (fen_acreage + (farmland_acreage + (pasture_acreage + (meadow_acreage + (unusable_acreage + (demense_acreage + gleb_acreage)))))))) *comment to check total acreage amount; added one manor acre to balance. Total Acreage: ${totalAcreage} *line_break Manor Acreage: ${manor_acreage} *line_break Farmland Acreage: ${farmland_acreage} *line_break Forest Acreage: ${forest_acreage} *line_break Fen Acreage: ${fen_acreage} *line_break Pasture Acreage: ${pasture_acreage} *line_break Meadow Acreage: ${meadow_acreage} *line_break Unassigned Acreage: ${unassigned_acreage} *line_break Unusable Acreage: ${unusable_acreage} *line_break Demense Acreage: ${demense_acreage} *line_break Gleb Acreage: ${gleb_acreage} *line_break Tot_farmland: ${tot_farmland} *line_break Wheat Acres: ${wheatAcres} *page_break *bug total acreage doesn't match *if farmland_acreage != (cottar_acreage + (hv_acreage +(villein_acreage + (trade_acreage + yeoman_acreage)))) Farmland Acreage: ${farmland_acreage} *temp farm_subtotal (cottar_acreage + (hv_acreage +(villein_acreage + (trade_acreage + yeoman_acreage)))) *line_break Farm Subtotal: ${farm_subtotal} *page_break *bug farmland acreage doesn't match *if tot_farmland != ((farmland_acreage + demense_acreage) + gleb_acreage) *comment to check total farmland acreage *comment Total Farmland Acreage: ${tot_farmland} *comment *page_break *bug tot_farmland acreage doesn't match. *return *label birth_check *comment HV pop: ${hv_pop} HV child pop: ${hv_child_pop} *set pending_births 0 *temp actualBirthRate birthRate *if population_stifled *set actualBirthRate * 0.85 *if annual_focus = "health" *set actualBirthRate + (medicine * 0.015) *set pending_fisher_births + round((fisherAdults / 2) * actualBirthRate) *set pending_cottar_births + round((cottarAdults / 2) * actualBirthRate) *set pending_hv_births + round((hvAdults / 2) * actualBirthRate) *comment Pending HV Births: ${pending_hv_births} *set pending_villein_births + round((villeinAdults / 2) * actualBirthRate) *set pending_trade_births + round((tradeAdults / 2) * actualBirthRate) *set pending_births (pending_hv_births + (pending_cottar_births + (pending_villein_births + (pending_trade_births + pending_fisher_births)))) *comment Pending Births: ${pending_births} *set fisher_pop + pending_fisher_births *set fisher_child_pop + pending_fisher_births *set pending_fisher_births 0 *set cottar_pop + pending_cottar_births *set cottar_child_pop + pending_cottar_births *set pending_cottar_births 0 *set hv_pop + pending_hv_births *comment HV Pop: ${hv_pop} *set hv_child_pop + pending_hv_births *comment HV Child Pop: ${hv_child_pop} *set pending_hv_births 0 *set villein_pop + pending_villein_births *set villein_child_pop + pending_villein_births *set pending_villein_births 0 *set trade_pop + pending_trade_births *set trade_child_pop + pending_trade_births *set pending_trade_births 0 *comment *set yeoman_pop + pending_yeoman_births *comment *set yeoman_child_pop + pending_yeoman_births *comment *set pending_yeoman_births 0 *temp actualChildMortalityRate childMortalityRate *if annual_focus = "health" *set actualChildMortalityRate -(medicine * 0.01) *temp fisherInfantDeaths (fisher_child_pop * actualChildMortalityRate) *temp cottarInfantDeaths (cottar_child_pop * actualChildMortalityRate) *temp hvInfantDeaths (hv_child_pop * actualChildMortalityRate) *comment HV infant deaths: ${hvInfantDeaths} *temp villeinInfantDeaths (villein_child_pop * actualChildMortalityRate) *temp tradeInfantDeaths (trade_child_pop * actualChildMortalityRate) *temp infantDeaths ((((cottarInfantDeaths + hvInfantDeaths) + villeinInfantDeaths) + tradeInfantDeaths) + fisherInfantDeaths) *set displayInfantDeaths round(infantDeaths) *set fisher_pop - fisherInfantDeaths *set fisher_child_pop - fisherInfantDeaths *set cottar_pop - cottarInfantDeaths *set cottar_child_pop - cottarInfantDeaths *set hv_pop - hvInfantDeaths *comment HV pop post infant deaths: ${hv_pop} *set hv_child_pop - hvInfantDeaths *comment HV child pop post infant deaths: ${hv_child_pop} *set villein_pop - villeinInfantDeaths *set villein_child_pop - villeinInfantDeaths *set trade_pop - tradeInfantDeaths *set trade_child_pop - tradeInfantDeaths *set serf_pop (villein_pop + (hv_pop + (cottar_pop + fisher_pop))) *set serf_child_pop (villein_child_pop + (hv_child_pop + (cottar_child_pop + fisher_child_pop))) *return *label birth_check_display *if pending_births > 0 *line_break There were ${pending_births} births this year. *if displayInfantDeaths > 0 *line_break Additionally, ${displayInfantDeaths} children died this year. *return *label confirmation_check *set fisher_grads (fisher_child_pop * gradRate) *set displayFisherGrads round(fisher_grads) *set cottar_grads (cottar_child_pop * gradRate) *set displayCottarGrads round(cottar_grads) *set hv_grads (hv_child_pop * gradRate) *set displayHvGrads round(hv_grads) *set villein_grads (villein_child_pop * gradRate) *set displayVilleinGrads round(villein_grads) *comment Trade Children: ${trade_child_pop} *set trade_grads (trade_child_pop * gradRate) *comment Trade Grads: ${trade_grads} *set displayTradeGrads round(trade_grads) *set landless_grads 0 *set fisher_child_pop -fisher_grads *set cottar_child_pop -cottar_grads *set hv_child_pop -hv_grads *set villein_child_pop -villein_grads *set trade_child_pop -trade_grads *return *label confirmation_check_display *temp v_loss 0 *temp hv_loss 0 *if population_stifled *if (villein_grads > 1) and (villein_pop > 100) *set villein_grads -1 *set landless_grads +1 *set villein_pop -1 *set landless_pop +1 *set v_loss +1 *if (hv_grads > 1) and (hv_pop > 135) *set hv_grads -1 *set landless_grads +1 *set hv_pop -1 *set landless_pop +1 *set hv_loss +1 *if (displayCottarGrads + (displayHvGrads + (displayVilleinGrads + displayTradeGrads))) > 0 Some youths have joined the ranks of the adults. *if landless_grads > 0 *if v_loss > 0 *line_break One Villein child is now a Landless adult. *if hv_loss > 0 *line_break One Half-villein child is now a Landless adult. *if displayFisherGrads > 0 *line_break ${displayFisherGrads} Fisher children are among the new adults. *if displayCottarGrads > 0 *line_break ${displayCottarGrads} Cottar children are among the new adults. *if displayHvGrads > 0 *line_break ${displayHvGrads} Half-villein children are among the new adults. *if displayVilleinGrads > 0 *line_break ${displayVilleinGrads} Villein children are among the new adults. *if displayTradeGrads > 0 *line_break ${displayTradeGrads} Trades children are among the new adults. *if tradeAdults > (trade_households * 3.45) *comment Trade Adults: ${tradeAdults} *comment Trade Households: ${trade_households} Unfortunately, @{(displayTradeGrads > 1) one of these|this individual} has left the manor to seek their fortune in Ulmheit. *set trade_pop -1 *return *label calc_adults *set peasant_pop (landless_pop + (fisher_pop + (cottar_pop + (hv_pop + (villein_pop +(trade_pop + yeoman_pop)))))) *set fisherAdults (fisher_pop - fisher_child_pop) *set cottarAdults (cottar_pop - cottar_child_pop) *set hvAdults (hv_pop - hv_child_pop) *set villeinAdults (villein_pop - villein_child_pop) *set tradeAdults (trade_pop - trade_child_pop) *set totAdults (fisherAdults + (cottarAdults + (hvAdults +(villeinAdults + tradeAdults)))) *return *label mortality_check *gosub calc_adults *temp actualAdultMortalityRate adultMortalityRate *if annual_focus = "health" *set actualAdultMortalityRate -(medicine * 0.001) *if landless_pop > 12 *set landlessDeaths (landless_pop * actualAdultMortalityRate) *set displaylandlessDeaths round(landlessDeaths) *set fisherDeaths (fisherAdults * actualAdultMortalityRate) *set displayFisherDeaths round(fisherDeaths) *set cottarDeaths (cottarAdults * actualAdultMortalityRate) *set displayCottarDeaths round(cottarDeaths) *set hvDeaths (hvAdults * actualAdultMortalityRate) *set displayHvDeaths round(hvDeaths) *set villeinDeaths (villeinAdults * actualAdultMortalityRate) *set displayVilleinDeaths round(villeinDeaths) *set tradeDeaths (tradeAdults * actualAdultMortalityRate) *set displayTradeDeaths round(tradeDeaths) *return *label mortality_check_display *if displayLandlessDeaths > 0 ${displayLandlessDeaths} Landless died this year. *set landless_pop -landlessDeaths *if landless_pop < 1 *bug landless died *if displayFisherDeaths > 0 ${displayFisherDeaths} Fisher@{(displayFisherDeaths <= 1) |s} died this year. *set fisher_pop -fisherDeaths *line_break *if displayCottarDeaths > 0 ${displayCottarDeaths} Cottar@{(displayCottarDeaths <= 1) |s} died this year. *set cottar_pop -cottarDeaths *if displayHvDeaths > 0 *line_break ${displayHvDeaths} Half-villein@{(displayHvDeaths <= 1) |s} died this year. *set hv_pop -hvDeaths *if displayVilleinDeaths > 0 *line_break ${displayVilleinDeaths} Villein@{(displayVilleinDeaths <= 1) |s} died this year. *set villein_pop -villeinDeaths *if displayTradeDeaths > 0 *line_break ${displayTradeDeaths} Trades@{(displayTradeDeaths <= 1) person|people} died this year. *set trade_pop -tradeDeaths *comment *gosub pop_display *return *label houses_check *set totAdults (landless_pop + (fisherAdults + (cottarAdults + (hvAdults +(villeinAdults + tradeAdults))))) *temp actualHouses (houses - yeoman_households) *if population_stifled *if actualHouses >= (totAdults / 3.5) *set population_stifled false *set manor_morale %+5 The manor has enough houses again; the peasants are thankful. *if (totAdults / 3.5) > actualHouses *set population_stifled true *set manor_morale %-5 *temp housesNeeded ((totAdults / 3.5) modulo actualHouses) *set housesNeeded round(housesNeeded) *if housesNeeded > 0 There aren't enough houses for your population to expand. You need ${housesNeeded} more house@{(housesNeeded = 1) |s}. *if (peasant_pop > (houses * 5)) and (landless_pop > 8) In fact, one landless serf seems to have fled the manor. *set landless_pop -1 *set outlaws +1 *if housesNeeded = 0 There isn't really room for your population to expand further. You should build more houses. *return *label rejigger_houses *comment Cottar Adults: ${cottarAdults} *comment HV Adults: ${hvAdults} *if fisherAdults > (fisher_households * 4) *if cottarAdults < (cottar_households * 4) *set fisher_pop -1 *set cottar_pop +1 *set pending_cottar_births +1 *comment *line_break *comment One fisher move to cottar. *if cottarAdults > (cottar_households * 3.2) *if (hvAdults < (hv_households * 3.2)) *set hv_pop +1 *set cottar_pop -1 *set pending_hv_births +1 *comment *line_break *comment One cottar moved to HV. *if cottarAdults > (cottar_households * 3.2) *if villeinAdults < (villein_households * 3.2) *set villein_pop +1 *set cottar_pop -1 *set pending_villein_births +1 *comment *line_break *comment One cottar moved to villein. *if cottarAdults > (cottar_households * 3.2) *if hvAdults < (hv_households * 3.2) *set hv_pop +1 *set cottar_pop -1 *set pending_cottar_births +1 *comment *line_break *comment One cottar moved to HV. *if tradeAdults < (trade_households * 2.8) *set villein_pop -1 *set trade_pop +1 *set pending_trade_births +1 *comment HV marry up! *if (villeinAdults < (villein_households * 3)) and (cottarAdults > 15) *set villein_pop +1 *set cottar_pop -1 *set pending_cottar_births +1 *comment Cottar marry up! *if (hvAdults < (hv_households * 2.8)) and (cottarAdults > 15) *set hv_pop +1 *set cottar_pop -1 *set pending_hv_births +1 *comment Cottar marry up! *if (landless_pop > servant_pop) and (fisher_pop < (fisher_households * 3)) *set landless_pop -1 *set fisher_pop +1 *set pending_fisher_births +1 *return *label multiply_flocks *set lambs (round(((sheep / 2) * 0.9) * lambMortalityRate)) *set calves (round(cows * cowBirthRate)) *set piglets (round((sows * sowLitterSize) * pigMortalityRate)) ${lambs} lambs were born this year. *line_break ${piglets} piglets were born this year. *line_break ${calves} calves were born this @{deadCalf year, but one of them died.|year.} *if deadCalf *set calves -1 *set deadCalf false *line_break You have ${yearlings} yearlings from last @{deadYearling year; this reflects the yearling you had to slaughter|year}. *return *label collect_taxes *set tempWheatTax (cottar_acreage * 1.5) + (hv_acreage * 1.5) *set tempWheatTax +(villein_acreage * 1.5) *set tempWheatTax +(trade_acreage * 1.5) *set tempWheatTax +(yeoman_acreage * 1.5) *set tempEggsTax ((cottar_households * 5) * 0.25) *set tempEggsTax +((hv_households * 5) * 0.25) *set tempEggsTax +((villein_households * 15) * 0.25) *set tempEggsTax +((trade_households * 25) * 0.25) *set tempEggsTax +((yeoman_households * 25) * 0.25) *set tempEggsTax round(tempEggsTax) *set tempPigsTax (hv_households) + (villein_households * 2) *set tempPigsTax +(trade_households * 2) *set tempPigsTax +(yeoman_households * 2) *set tempWheelTax (villein_households * 2) *set tempWheelTax +(trade_households * 2) *set tempWheelTax +(yeoman_households * 4) *set tempCheeseTax (villein_house * 40) *set tempCheeseTax +(trade_house * 40) *set tempCheeseTax +(yeoman_house * 80) *set tempLambsTax (((yeoman_households * 20) * 0.9) * 0.2) *set tempLambsTax +(((trade_households * 5) * 0.9) * 0.2) *set tempLambsTax round(tempLambsTax) *set tempWoolTax (((yeoman_households * 40) * 3.3) * 0.2) *set tempWoolTax +(((trade_households * 10) * 3.3) * 0.2) *set tempWoolTax round(tempWoolTax) *set tempFishTax (fisher_households * 750) *return *label assign_acreage You have ${unassigned_acreage} undeveloped acres. *if notEnoughOats Remember, you had to buy oats to feed your warhorses, palfreys, and oxen through the winter, so you should plant more. On the current acre: *choice *selectable_if (notEnoughOats = false) #I want to plant cabbages. *set log & " You planted a new acre of cabbage." *set tot_farmland +1 *set demense_acreage +1 *set unassigned_acreage -1 *set cabbageAcres +1 One acre has been planted with cabbages. *if unassigned_acreage > 0 *goto assign_acreage *else *return #I want to plant oats. *set log & " You planted a new acre of oats." *set notEnoughOats false *set tot_farmland +1 *set demense_acreage +1 *set unassigned_acreage -1 *set oatAcres +1 *if oats < 1 *set manor_liquid -1 *if oats >= 1 *set oats -1 One acre has been planted with oats. *if unassigned_acreage > 0 *goto assign_acreage *else *return *selectable_if (notEnoughOats = false) #I want to plant root vegetables. *set log & " You planted a new acre of root vegetables." *set tot_farmland +1 *set demense_acreage +1 *set unassigned_acreage -1 *set vegetableAcres +1 One acre has been planted with root vegetables. *if unassigned_acreage > 0 *goto assign_acreage *else *return *selectable_if (notEnoughOats = false) #I want to plant wheat. *set log & " You planted a new acre of wheat." *set tot_farmland +1 *set demense_acreage +1 *set unassigned_acreage -1 *set wheatAcres +1 *if wheat < 1 *set manor_liquid -2 *if wheat >= 1 *set wheat -1 One acre has been planted with wheat. *if unassigned_acreage > 0 *goto assign_acreage *else *return *selectable_if (notEnoughOats = false) #I want to plant winter squash. *set log & " You planted a new acre of winter squash." *set tot_farmland +1 *set demense_acreage +1 *set unassigned_acreage -1 *set winterSquashAcres +1 One acre has been planted with winter squash. *if unassigned_acreage > 0 *goto assign_acreage *else *return *label auto_check_vetches *if (vetchAcres < (((demense_acreage - appleAcres) - chestnutAcres) / 3)) and (unassigned_acreage > 0) *set unassigned_acreage -1 *set vetchAcres +1 *set demense_acreage +1 *set tot_farmland +1 In keeping with the principle of crop-rotation, you have to keep at least a third of your non-orchard acreage planted with vetches. Therefore, you have to plant vetches in one of your new, unassigned acres. You direct ${eorwald_inf} to do so. *page_break *return *label taxes_owed Just as you receive taxes from your tenants, so too must you pay taxes to the thorne. *if at_war = false Because you have not been marshalled to military service this year, you owe one-quarter of a bushel per acre of the manor. *set incomeWheat -(manor_acreage / 4) *if swore_fealty = false (When you remit your taxes, you make no mention of your failure to appear and swear fealty to the thorne.) *return *else Because you were at war this year, you owe one sixth of a bushel per acre of the manor. *set incomeWheat -(manor_acreage / 6) *return *label angry_letter_from_nym During the month of the Lamb, you receive a messenger from Ulmheit. It seems the thornet's mother has noticed your failure to appear before her. She urges you to attend her son with all due haste. *set angry_letter_from_nym true *set log & " You received an angry letter from Lady Ulrich, demanding your immediate declaration of fealty to her son." *return *label nym_arrives_for_fealty *set calamity_event true *set log & " Lady Ulrich arrived unannounced at ${thurnet}, demanding succor and your declaration of fealty." The horns are the first notice you have of her arrival. You stand up straight and put your hand to your forehead to block out the sun. The banners are of the phare Ulrich; the thorne—or his mother—has finally come calling. *page_break The experience of being chastised by the Lady Ulrich is excruciating. Under the watchful gaze of her thordain, Osa Fenich, you listen attentively. Before the day is over, you find yourself agreeing to an exorbitant fee for your inheritance. *set manor_liquid -(manor_acreage / 3) *set swore_fealty true *set tone_down_living_expenses true *if manor_liquid < 0 *set manor_debt -manor_liquid *set manor_liquid 0 *set interest_rate +0.05 Even though you do not have enough credit with the Mercer's Guild to satisfy the Lady Ulrich's demands, she has conveniently brought you loan papers to sign sufficent to the needs at hand. *if oxen > 2 *set oxen -1 *set ox_slaughtered true Additionally, you are compelled to slaughter an ox, *if (oxen <= 2) and (cows > 4) *set cows -2 *set cow_slaughtered true Additionally, you are compelled to slaughter two dairy cows, to lay out an appropriate feast for your guests. *set wheat -100 *if wheat < 0 *set salter_debt -wheat *set wheat 0 Unfortunately, you don't have the resources to lay out an appropriate feast on such short notice. You consult with Barl Danasich, the salter, and contract a loan for the food that you will need. Of course, he charges you a higher rate of interest than the Mercer's Guild, but the Mercers aren't here with the foodstuffs you need to satisfy a host of hungry men-at-arms. None of this answers the question of your obligation to furnish the phare Ulrich with a knight when called to do so. *gosub_scene ulmheit resolve_knight You watch as Nym Pappernodich and her retinue stuff themselves silly. You think you even see the Lady Ulrich's personal attendant egging on the soldiers, challenging them to eat more. All the more to put the screws to you. The only moment of relief comes when one of Lady Ulrich's retinue steps forward. *gosub_scene ulmheit phare_history The feast goes late into the night. You do your best to enjoy it, all-to-aware of the bill that will come due. The next day, though you are now the legal thornet of ${thurnet}, it has come at great cost. One particular advantage comes of it, though. As the recognized thornet, you may now raise your phare's banner. *gosub raise_banner You order the ${banner_short} raised over the manor house, the first time since your father's body was lain to rest. *return *label raise_banner What is the banner of your phare? *fake_choice #A silver tower on a green field. *set banner "silver tower on a green field" *set banner_short "silver tower" #A red ram on a blue field. *set banner "red ram on a green field" *set banner_short "red ram" #[something else, to be discussed on the forums!] *set banner "undefined" *set banner_short "undefined" *return *label check_pledge_betrayal *if (years_since_pledge_knight = 2) and (betrayed_pledge_hire_knight <= 10) *label pledge_betrayed *set calamity_event true The Lady Ulrich has found your refusal to retain a proxy intolerable. TODO face the consequences *set years_since_pledge_knight 0 *set knight_hired true *set knight_support 200 *set warhorse +1 *set knight_name "Aodhan Krodzwinich" TODO meet Aodhan Krodzwinich *line_break TODO multiple options for knights? *return *elseif (years_since_pledge_knight = 3) and (betrayed_pledge_hire_knight <= 20) *goto pledge_betrayed *elseif (years_since_pledge_knight = 4) and (betrayed_pledge_hire_knight <= 40) *goto pledge_betrayed *elseif (years_since_pledge_knight = 5) and (betrayed_pledge_hire_knight <= 80) *goto pledge_betrayed *elseif (years_since_pledge_knight > 5) *goto pledge_betrayed *else *return *label calamities_updates *set calamity_event false *set weather_index 1 *set rat_calamity_index 1 *if swore_fealty = false *gosub check_fealty *if (pledge_employ_knight) and (knight_hired = false) *set years_since_pledge_knight +1 *if years_since_pledge_knight > 1 *gosub check_pledge_betrayal *gosub drunk_boar_check *set newBarn false *return *label drunk_boar_check *if drunk_boar *set years_since_drunk_boar +1 *if years_since_drunk_boar >= 6 *set drunk_boar false *return *label pop_display *line_break Landless: ${landless_pop} *line_break Fishers: ${fisher_pop} *line_break Cottar: ${cottar_pop} *line_break HV: ${hv_pop} *line_break Villein: ${villein_pop} *line_break Trades: ${trade_pop} *line_break Houses: ${houses} *line_break Households: ${households} *return *label randname *temp firstrand 0 *rand firstrand 1 10 *temp lastrand 0 *rand lastrand 1 10 *temp descrand 0 *rand descrand 1 13 *params randgender which *if randgender = "male" *if firstrand = 1 *set malename[which] "Hor" *goto lastname *elseif firstrand = 2 *set malename[which] "Mor" *goto lastname *elseif firstrand = 3 *set malename[which] "Jarl" *goto lastname *elseif firstrand = 4 *set malename[which] "Barl" *goto lastname *elseif firstrand = 5 *set malename[which] "Wren" *goto lastname *elseif firstrand = 6 *set malename[which] "Colm" *goto lastname *elseif firstrand = 7 *set malename[which] "Hardan" *goto lastname *elseif firstrand = 8 *set malename[which] "Gorm" *goto lastname *elseif firstrand = 9 *set malename[which] "Sóren" *goto lastname *elseif firstrand = 10 *set malename[which] "Eoman" *goto lastname *elseif firstrand = 11 *set malename[which] "Eomarr" *goto lastname *elseif firstrand = 12 *set malename[which] "Eddarn" *goto lastname *else *set malename[which] "Tórin" *goto lastname *else *if firstrand = 1 *set femname[which] "Cora" *goto lastname *elseif firstrand = 2 *set femname[which] "Mura" *goto lastname *elseif firstrand = 3 *set femname[which] "Loone" *goto lastname *elseif firstrand = 4 *set femname[which] "Wrenna" *goto lastname *elseif firstrand = 5 *set femname[which] "Joon" *goto lastname *elseif firstrand = 6 *set femname[which] "Nym" *goto lastname *elseif firstrand = 7 *set femname[which] "Verre" *goto lastname *elseif firstrand = 8 *set femname[which] "Syndal" *goto lastname *elseif firstrand = 9 *set femname[which] "Monod" *goto lastname *else *set femname[which] "Mockin" *goto lastname *label lastname *if lastrand = 1 *if randgender = "male" *set malepatronym[which] "Horich" *if randgender = "fem" *set fempatronym[which] "Horich" *goto desc *elseif lastrand = 2 *if randgender = "male" *set malepatronym[which] "Siridich" *if randgender = "fem" *set fempatronym[which] "Siridich" *goto desc *elseif lastrand = 3 *if randgender = "male" *set malepatronym[which] "Pappernodich" *if randgender = "fem" *set fempatronym[which] "Pappernodich" *goto desc *elseif lastrand = 4 *if randgender = "male" *set malepatronym[which] "Eddarnich" *if randgender = "fem" *set fempatronym[which] "Eddarnich" *goto desc *elseif lastrand = 5 *if randgender = "male" *set malepatronym[which] "Morich" *if randgender = "fem" *set fempatronym[which] "Morich" *goto desc *elseif lastrand = 6 *if randgender = "male" *set malepatronym[which] "Barlich" *if randgender = "fem" *set fempatronym[which] "Barlich" *goto desc *elseif lastrand = 7 *if randgender = "male" *set malepatronym[which] "Jarlich" *if randgender = "fem" *set fempatronym[which] "Jarlich" *goto desc *elseif lastrand = 8 *if randgender = "male" *set malepatronym[which] "Loonich" *if randgender = "fem" *set fempatronym[which] "Loonich" *goto desc *elseif lastrand = 9 *if randgender = "male" *set malepatronym[which] "Murich" *if randgender = "fem" *set fempatronym[which] "Murich" *goto desc *elseif lastrand = 10 *if randgender = "male" *set malepatronym[which] "Corich" *if randgender = "fem" *set fempatronym[which] "Corich" *goto desc *elseif lastrand = 11 *if randgender = "male" *set malepatronym[which] "Eomanich" *if randgender = "fem" *set fempatronym[which] "Eomanich" *goto desc *elseif lastrand = 12 *if randgender = "male" *set malepatronym[which] "Eomarrich" *if randgender = "fem" *set fempatronym[which] "Eomarrich" *goto desc *elseif lastrand = 13 *if randgender = "male" *set malepatronym[which] "Bendich" *if randgender = "fem" *set fempatronym[which] "Bendich" *goto desc *else lastrand = 14 *if randgender = "male" *set malepatronym[which] "Rolich" *if randgender = "fem" *set fempatronym[which] "Rolich" *goto desc *label desc *temp who "desc"&randgender *if descrand = 1 *if randgender = "male" *set descmale[which] "snot-nosed" *if randgender = "fem" *set descfem[which] "snot-nosed" *return *elseif descrand = 2 *if randgender = "male" *set descmale[which] "rosy-cheeked" *if randgender = "fem" *set descfem[which] "rosy-cheeked" *return *elseif descrand = 3 *if randgender = "male" *set descmale[which] "gap-toothed" *if randgender = "fem" *set descfem[which] "gap-toothed" *return *elseif descrand = 4 *if randgender = "male" *set descmale[which] "squinty-eyed" *if randgender = "fem" *set descfem[which] "squinty-eyed" *return *elseif descrand = 5 *if randgender = "male" *set descmale[which] "one-eared" *if randgender = "fem" *set descfem[which] "one-eared" *return *elseif descrand = 6 *if randgender = "male" *set descmale[which] "green-eyed" *if randgender = "fem" *set descfem[which] "green-eyed" *return *elseif descrand = 7 *if randgender = "male" *set descmale[which] "snub-nosed" *if randgender = "fem" *set descfem[which] "snub-nosed" *return *elseif descrand = 8 *if randgender = "male" *set descmale[which] "thin-lipped" *if randgender = "fem" *set descfem[which] "thin-lipped" *return *elseif descrand = 9 *if randgender = "male" *set descmale[which] "toothless" *if randgender = "fem" *set descfem[which] "toothless" *return *elseif descrand = 10 *if randgender = "male" *set descmale[which] "rheumy-eyed" *if randgender = "fem" *set descfem[which] "rheumy-eyed" *return *elseif descrand = 11 *if randgender = "male" *set descmale[which] "broad-shouldered" *if randgender = "fem" *set descfem[which] "broad-shouldered" *return *elseif descrand = 12 *if randgender = "male" *set descmale[which] "red-bearded" *if randgender = "fem" *set descfem[which] "red-haired" *return *else *if randgender = "male" *set descmale[which] "sharp-tongued" *if randgender = "fem" *set descfem[which] "sharp-tongued" *return *label check_pilgrimages *if manor_liquid > 500 *set can_pil_hisbroke true *if manor_liquid <= 500 *set can_pil_hisbroke false *if completed_pil_hisbroke *set can_pil_hisbroke false *if completed_pil_donel_amerlich *set can_pil_donel_amerlich false *return *label feastConsumpCalc *set smallFeastWheat (peasant_pop / 30) *set smallFeastAle (peasant_pop / 3) *set smallFeastChestnut (peasant_pop / 57) *set smallFeastCider (peasant_pop / 8) *set smallFeastVegetables (peasant_pop / 60) *set smallFeastWinterSquash (peasant_pop / 60) *set smallFeastCabbage (peasant_pop / 60) *set smallFeastEggs (peasant_pop * 2) *set smallFeastWheels (freeholder_households / 5) *set smallFeastPork (peasant_pop / 3) *set smallFeastMutton (peasant_pop / 3) *set smallFeastBeef (peasant_pop / 3) *set smallFeastCheese (peasant_pop / 4) *if dovecote *set smallFeastSquab freeholder_households *return *label feastPermissions *set canHaveThree true *if wheat_failure or (winter_wheat_failure or spring_wheat_failure) *set canHaveThree false *if manor_debt > 1750 *set canHaveThree false *return