Shorter descriptions throughout
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
5898e2006f
commit
61d8b2fce3
2 changed files with 146 additions and 153 deletions
124
game.py
124
game.py
|
|
@ -281,14 +281,14 @@ def describe_potion(skill: str, effect: dict) -> str:
|
|||
if "speed" in effect:
|
||||
return f"{name.title()} {round(effect['speed'] * 100)}% faster"
|
||||
if "double" in effect:
|
||||
return f"{name.title()}: {round(effect['double'] * 100)}% chance of double yield"
|
||||
return f"{name.title()}: {round(effect['double'] * 100)}% double yield"
|
||||
if "keep" in effect:
|
||||
return f"{name.title()}: {round(effect['keep'] * 100)}% chance to keep your materials"
|
||||
return f"{name.title()}: {round(effect['keep'] * 100)}% save materials"
|
||||
if "bones" in effect:
|
||||
return f"+{round(effect['bones'] * 100)}% prayer points and devotion from bones"
|
||||
return f"+{round(effect['bones'] * 100)}% from bones"
|
||||
if "power" in effect:
|
||||
return f"+{effect['power']} combat power"
|
||||
return f"-{round(effect['reduce'] * 100)}% damage taken in fights"
|
||||
return f"+{effect['power']} power"
|
||||
return f"-{round(effect['reduce'] * 100)}% damage taken"
|
||||
|
||||
|
||||
for _id, _name, _icon, _level, _time, _xp, _value in HERBS:
|
||||
|
|
@ -328,31 +328,31 @@ CLASSES = {
|
|||
"miner": {
|
||||
"name": "Miner", "icon": "⛏️", "fast": ["mining", "smithing"], "craft": ["smithing"],
|
||||
"bonus": "Mining and smithing 20% faster",
|
||||
"masterwork": "Masterwork: 1 in 10 smithing crafts make double",
|
||||
"signature": "Prospector: 1 in 10 mining trips bring back double",
|
||||
"combat": "Warhammer: +15% damage with one. Slow, heavy, crushes golems",
|
||||
"masterwork": "Masterwork: 10% double smithing crafts",
|
||||
"signature": "Prospector: 10% double ore",
|
||||
"combat": "Warhammer: +15% damage",
|
||||
},
|
||||
"builder": {
|
||||
"name": "Builder", "icon": "🏗️", "fast": ["woodcutting", "construction"], "craft": ["construction"],
|
||||
"bonus": "Woodcutting and construction (masonry included) 20% faster",
|
||||
"masterwork": "Masterwork: 1 in 10 construction crafts make double",
|
||||
"signature": "Foreman: +1 labour every time you work a building site",
|
||||
"combat": "Sword and shield: +15% damage with a sword. The shield blocks, and trolls fall to blades",
|
||||
"bonus": "Woodcutting and construction 20% faster",
|
||||
"masterwork": "Masterwork: 10% double construction crafts",
|
||||
"signature": "Foreman: +1 labour per site action",
|
||||
"combat": "Sword: +15% damage",
|
||||
},
|
||||
"homesteader": {
|
||||
"name": "Homesteader", "icon": "🌾", "fast": ["cooking", "herblore"], "craft": ["cooking", "herblore"],
|
||||
"bonus": "Cooking and herblore 20% faster. Two plots: farm one crop 30% faster, or two crops at once",
|
||||
"masterwork": "Masterwork: 1 in 10 cooking and herblore crafts make double",
|
||||
"signature": "Steady hand: potions you drink last 25% longer",
|
||||
"combat": "Staff: +15% damage with one. Rarely misses, ignores armour, and spirits fear it",
|
||||
"bonus": "Cooking and herblore 20% faster, two farm plots",
|
||||
"masterwork": "Masterwork: 10% double cooking and herblore crafts",
|
||||
"signature": "Steady hand: potions last 25% longer",
|
||||
"combat": "Staff: +15% damage",
|
||||
},
|
||||
"ranger": {
|
||||
"name": "Ranger", "icon": "🏹", "fast": ["hunting", "fishing", "leatherworking", "cooking"],
|
||||
"craft": ["leatherworking", "cooking"],
|
||||
"bonus": "Hunting, fishing, leatherworking and cooking 20% faster",
|
||||
"masterwork": "Masterwork: 1 in 10 leatherworking and cooking crafts make double",
|
||||
"signature": "Pathfinder: your scouting gathers 50% more reconnaissance",
|
||||
"combat": "Bow: +15% damage with one. Fast, strikes first, and brings down flyers",
|
||||
"masterwork": "Masterwork: 10% double leatherworking and cooking crafts",
|
||||
"signature": "Pathfinder: +50% recon",
|
||||
"combat": "Bow: +15% damage",
|
||||
},
|
||||
}
|
||||
# Classes from before the trades, as a starting point until their player re-picks.
|
||||
|
|
@ -639,7 +639,7 @@ BUILDINGS = {
|
|||
"advanced": {"oak_logs": 100, "leather": 80, "rope": 40, "iron_nails": 150},
|
||||
"late": {"willow_logs": 80, "oak_plank": 35, "hide_glue": 50, "steel_hinges": 20},
|
||||
"final": {"maple_logs": 50, "willow_plank": 30, "hard_leather": 60, "mithril_brackets": 15},
|
||||
"effect": "Room for 20 more people per level",
|
||||
"effect": "+20 homes per level",
|
||||
},
|
||||
"walls": {
|
||||
"name": "Walls", "icon": "🏰", "max": 5, "gold": 300,
|
||||
|
|
@ -647,7 +647,7 @@ BUILDINGS = {
|
|||
"advanced": {"cut_stone": 150, "beam": 20, "rope": 50, "iron_nails": 200},
|
||||
"late": {"steel_bar": 60, "oak_plank": 25, "hide_glue": 50, "steel_hinges": 30},
|
||||
"final": {"mithril_brackets": 60, "maple_plank": 20, "hide_glue": 60, "adamant_chain": 10},
|
||||
"effect": "+20 defence per level, and raiders carry off less",
|
||||
"effect": "+20 defence per level, less plunder lost",
|
||||
},
|
||||
"barracks": {
|
||||
"name": "Barracks", "icon": "⛺", "max": 5, "gold": 300,
|
||||
|
|
@ -655,7 +655,7 @@ BUILDINGS = {
|
|||
"advanced": {"iron_bar": 60, "hard_leather": 40},
|
||||
"late": {"steel_bar": 40, "oak_plank": 30, "hide_glue": 40},
|
||||
"final": {"mithril_bar": 25, "willow_plank": 25, "bear_leather": 40},
|
||||
"effect": "Trains townsfolk as militia: more defence per citizen",
|
||||
"effect": "More defence per townsperson",
|
||||
},
|
||||
"smithy": {
|
||||
"name": "Smithy", "icon": "⚒️", "max": 5, "gold": 250,
|
||||
|
|
@ -663,42 +663,42 @@ BUILDINGS = {
|
|||
"advanced": {"iron_bar": 180, "leather": 70},
|
||||
"late": {"steel_bar": 100, "oak_plank": 25, "hide_glue": 40},
|
||||
"final": {"mithril_bar": 70, "maple_plank": 20, "bear_leather": 35},
|
||||
"effect": "Smithing 8% faster per level; each level unlocks a metal: iron, steel, mithril, adamant, rune",
|
||||
"effect": "Smithing 8% faster and one more metal per level",
|
||||
},
|
||||
"temple": {
|
||||
"name": "Temple", "icon": "⛪", "max": 3, "gold": 300,
|
||||
"base": {"stone": 700, "bricks": 200, "cut_stone": 60, "provisions": 60},
|
||||
"advanced": {"beam": 15, "rope": 40, "iron_nails": 150},
|
||||
"late": {"willow_logs": 80, "oak_plank": 35, "hide_glue": 40, "steel_hinges": 20},
|
||||
"effect": "Offerings ward the city in raids; +1 prayer point per bone buried and +25% devotion per level",
|
||||
"effect": "Per level: +1 prayer point per bone, +25% devotion",
|
||||
},
|
||||
"granary": {
|
||||
"name": "Granary", "icon": "🌾", "max": 3, "gold": 150,
|
||||
"base": {"logs": 200, "bricks": 100, "plank": 40, "thatch": 300, "provisions": 50, "copper_rivets": 40},
|
||||
"advanced": {"cut_stone": 40, "rope": 40, "iron_nails": 100},
|
||||
"late": {"oak_plank": 35, "hide_glue": 35, "steel_hinges": 15},
|
||||
"effect": "Protects a quarter of the food from locusts and rats per level",
|
||||
"effect": "Guards 25% of food from pests per level",
|
||||
},
|
||||
"lumber_shed": {
|
||||
"name": "Lumber shed", "icon": "🪵", "max": 3, "gold": 120,
|
||||
"base": {"logs": 200, "stone": 250, "plank": 50, "thatch": 180, "provisions": 40, "copper_rivets": 40},
|
||||
"advanced": {"oak_plank": 40, "rope": 40, "iron_nails": 100},
|
||||
"late": {"willow_plank": 25, "hide_glue": 35},
|
||||
"effect": "Keeps a quarter of the stored wood safe from rot per level",
|
||||
"effect": "Guards 25% of wood from rot per level",
|
||||
},
|
||||
"well": {
|
||||
"name": "Well", "icon": "🪣", "max": 3, "gold": 120,
|
||||
"base": {"stone": 500, "bricks": 80, "rope": 50, "provisions": 40},
|
||||
"advanced": {"cut_stone": 40, "leather": 60, "iron_nails": 125},
|
||||
"late": {"oak_plank": 25, "hide_glue": 35, "steel_hinges": 15},
|
||||
"effect": "Each level cuts fire losses by a quarter and may save the building",
|
||||
"effect": "Fire damage -25% per level",
|
||||
},
|
||||
"spymaster": {
|
||||
"name": "Spymaster's guild", "icon": "🕵️", "max": 3, "gold": 400,
|
||||
"base": {"logs": 200, "bricks": 150, "hide": 120, "feathers": 300, "provisions": 60},
|
||||
"advanced": {"cut_stone": 80, "hard_leather": 40, "iron_nails": 100},
|
||||
"late": {"bear_leather": 50, "oak_plank": 25, "steel_hinges": 15},
|
||||
"effect": "+25% reconnaissance per level, and its agents gather some every hour on their own",
|
||||
"effect": "+25% recon per level, plus some each hour",
|
||||
},
|
||||
"storehouse": {
|
||||
"name": "Storehouse", "icon": "📦", "max": 5, "gold": 200,
|
||||
|
|
@ -706,7 +706,7 @@ BUILDINGS = {
|
|||
"advanced": {"oak_logs": 150, "cut_stone": 100, "rope": 50, "iron_nails": 150},
|
||||
"late": {"willow_logs": 120, "oak_plank": 45, "hide_glue": 45, "steel_hinges": 25},
|
||||
"final": {"yew_logs": 40, "yew_plank": 20, "bear_leather": 40, "rune_lock": 6},
|
||||
"effect": "+3 bank slots and +250 per stack for everyone, per level",
|
||||
"effect": "Per level: +3 bank slots, +250 stack size",
|
||||
},
|
||||
}
|
||||
# Buildings rise by labour: players working the site, and a slow trickle from
|
||||
|
|
@ -1285,9 +1285,9 @@ def describe_prayer(prayer: dict) -> str:
|
|||
if prayer.get("power"):
|
||||
parts.append(f"+{prayer['power']} power")
|
||||
if prayer.get("regen"):
|
||||
parts.append("HP recovers twice as fast while fighting")
|
||||
parts.append("HP recovers twice as fast")
|
||||
if prayer.get("wind"):
|
||||
parts.append("once per outing, a retreat becomes a second wind: back to half health")
|
||||
parts.append("once per outing, revive at half HP")
|
||||
return ", ".join(parts)
|
||||
|
||||
|
||||
|
|
@ -2269,7 +2269,7 @@ def event_view(world: dict, event: dict, now: float) -> dict:
|
|||
view["sabotage"] = round(event["sabotage"] * 100)
|
||||
view["requests"] = council_requests(world, event)
|
||||
elif event["kind"] == "merchant":
|
||||
view["headline"] = "A merchant caravan is on its way. Everything sells for half again as much while it's here."
|
||||
view["headline"] = "A merchant caravan is on its way. Sell prices +50% while it's here."
|
||||
else:
|
||||
view["headline"] = f"About {event['people']} refugees are walking towards the city, hoping for a roof."
|
||||
return view
|
||||
|
|
@ -2481,15 +2481,15 @@ SEASON_DAYS = 7
|
|||
# `speed` multiplies action time (below 1 is faster), `yield` multiplies output,
|
||||
# `food` multiplies what the townsfolk eat, `firewood` is logs per person per hour.
|
||||
WEATHER = {
|
||||
"clear": {"name": "Clear skies", "icon": "🌤️", "text": "No effect on work or the city"},
|
||||
"clear": {"name": "Clear skies", "icon": "🌤️", "text": "No effects"},
|
||||
"rain": {"name": "Rain", "icon": "🌧️", "speed": {"farming": 0.9}, "text": "Farming 10% faster"},
|
||||
"heat": {"name": "Heat wave", "icon": "🥵", "speed": {"farming": 0.85}, "food": 1.15,
|
||||
"text": "Farming 15% faster, but food spoils: the city eats 15% more"},
|
||||
"text": "Farming 15% faster, city eats 15% more"},
|
||||
"storm": {"name": "Storm", "icon": "⛈️", "speed": {"fishing": 1.25}, "text": "Fishing 25% slower"},
|
||||
"fog": {"name": "Fog", "icon": "🌫️", "speed": {"reconnaissance": 1.3, "hunting": 1.1},
|
||||
"text": "Scouting 30% and hunting 10% slower"},
|
||||
"snow": {"name": "Snow", "icon": "🌨️", "speed": {"hunting": 1.2}, "firewood": 0.05,
|
||||
"text": "Hunting 20% slower, and the city burns firewood"},
|
||||
"text": "Hunting 20% slower, burns firewood"},
|
||||
}
|
||||
SEASON_WEATHER = [
|
||||
{"clear": 35, "rain": 40, "storm": 10, "fog": 15},
|
||||
|
|
@ -2504,23 +2504,23 @@ WOOD = FIREWOOD + tuple(plank for plank, _name in PLANKS)
|
|||
# either by working a special action (`work` completions) or by donating (`need`).
|
||||
PROBLEMS = {
|
||||
"collapse": {"name": "Mine collapse", "icon": "⛰️", "need": {"plank": 30},
|
||||
"block": {"mining": "The mine has collapsed: shore it up with planks"}, "allow": ["mine_stone"],
|
||||
"text": "A shaft caved in. Ore can't be mined until the mine is shored up with planks."},
|
||||
"block": {"mining": "Mine collapsed"}, "allow": ["mine_stone"],
|
||||
"text": "No ore until it's shored up with planks."},
|
||||
"wolves": {"name": "Wolves at the farms", "icon": "🐺", "yield": {"farming": 0.5}, "work": 10, "action": "clear_wolves",
|
||||
"text": "A pack is harrying the fields. Farming yields are halved until fighters drive them off."},
|
||||
"text": "Farming yield halved until fighters drive them off."},
|
||||
"bear": {"name": "Bear in the woods", "icon": "🐻", "speed": {"woodcutting": 1.5}, "work": 8, "action": "drive_bear",
|
||||
"text": "Woodcutters won't go near it. Woodcutting is much slower until hunters drive it off."},
|
||||
"text": "Woodcutting much slower until hunters drive it off."},
|
||||
"goblins": {"name": "Goblin thieves", "icon": "👺", "steal": 0.01, "work": 10, "action": "catch_goblins",
|
||||
"text": "Goblins raid the stockpile every hour until fighters catch them."},
|
||||
"text": "Steal from the stockpile hourly until fighters catch them."},
|
||||
"rockslide": {"name": "Rockslide on the quarry road", "icon": "🪨", "work": 25, "action": "clear_rockslide",
|
||||
"block": {"mining": "The quarry road is blocked by a rockslide"}, "only": ["mine_stone"],
|
||||
"text": "No stone can be quarried until builders clear the road."},
|
||||
"block": {"mining": "Quarry road blocked"}, "only": ["mine_stone"],
|
||||
"text": "No stone until builders clear it."},
|
||||
"flood": {"name": "Flooded fishing grounds", "icon": "🌊", "speed": {"fishing": 1.5}, "need": {"plank": 20}, "lasts": 36,
|
||||
"text": "The river burst its banks. Fishing is slow until it drops in a day and a half, or a dam of planks holds it back."},
|
||||
"text": "Fishing slow for 36h, or until dammed with planks."},
|
||||
"boars": {"name": "Boars trampling the crops", "icon": "🐗", "yield": {"farming": 0.6}, "work": 10, "action": "cull_boars",
|
||||
"text": "A herd is trampling the fields. Farming yields are down until hunters cull them."},
|
||||
"text": "Farming yield down until hunters cull them."},
|
||||
"rats": {"name": "Rats in the granary", "icon": "🐀", "steal_food": 0.03, "work": 12, "action": "catch_rats",
|
||||
"text": "Rats eat into the city's food every hour until someone catches them."},
|
||||
"text": "Eat city food hourly until hunters catch them."},
|
||||
}
|
||||
MINOR_THREATS = ("collapse", "wolves", "bear", "goblins", "rockslide", "flood", "boars")
|
||||
PROBLEM_ACTIONS = [
|
||||
|
|
@ -2547,15 +2547,15 @@ ACTION_BY_ID[_barrel["id"]] = _barrel
|
|||
# id, name, building, building level, construction level, inputs, effect, glyph, tint
|
||||
FITTINGS = [
|
||||
("grain_bins", "Grain bins", "granary", 1, 15, {"oak_plank": 20, "iron_nails": 25},
|
||||
"The city eats 10% less food", "grain-bundle", "#e3c060"),
|
||||
"City eats 10% less", "grain-bundle", "#e3c060"),
|
||||
("saw_benches", "Saw benches", "lumber_shed", 1, 15, {"oak_plank": 20, "iron_nails": 40},
|
||||
"Sawing planks is 20% faster", "hand-saw", "#8f5e30"),
|
||||
"Planks 20% faster", "hand-saw", "#8f5e30"),
|
||||
("shelving", "Shelving", "storehouse", 2, 20, {"oak_plank": 40, "iron_nails": 40},
|
||||
"+1 bank slot for everyone", "bookshelf", "#8f5e30"),
|
||||
"+1 bank slot", "bookshelf", "#8f5e30"),
|
||||
("map_table", "Map table", "spymaster", 1, 30, {"willow_plank": 25, "hard_leather": 10, "steel_hinges": 4},
|
||||
"Scouting gathers one more point of reconnaissance", "treasure-map", "#a3b86c"),
|
||||
"+1 recon per scout", "treasure-map", "#a3b86c"),
|
||||
("well_pump", "Well pump", "well", 2, 30, {"willow_plank": 25, "steel_hinges": 10},
|
||||
"Half of all fires are put out before they spread", "water-tank", "#5aa0d8"),
|
||||
"Stops half of all fires", "water-tank", "#5aa0d8"),
|
||||
("furniture", "Furniture", "houses", 2, 35, {"willow_plank": 40, "leather": 30, "steel_hinges": 10},
|
||||
"Population grows 25% faster", "sofa", "#a3b86c"),
|
||||
("weapon_racks", "Weapon racks", "barracks", 2, 40, {"willow_plank": 30, "steel_hinges": 16},
|
||||
|
|
@ -2563,13 +2563,13 @@ FITTINGS = [
|
|||
("hoardings", "Hoardings", "walls", 3, 45, {"maple_plank": 40, "mithril_brackets": 20},
|
||||
"+25 defence", "palisade", "#d0663a"),
|
||||
("bellows", "Great bellows", "smithy", 3, 50, {"maple_plank": 30, "bear_leather": 15, "mithril_brackets": 6},
|
||||
"Smithing another 10% faster", "bellows", "#d0663a"),
|
||||
"Smithing 10% faster", "bellows", "#d0663a"),
|
||||
("carved_altar", "Carved altar", "temple", 2, 60, {"yew_plank": 30, "cut_stone": 60, "adamant_chain": 4},
|
||||
"+1 prayer point per bone buried, and offerings can ward 15 more", "star-altar", "#6f9a4a"),
|
||||
"+1 prayer point per bone, ward +15", "star-altar", "#6f9a4a"),
|
||||
("enchanted_chests", "Enchanted chests", "storehouse", 4, 75, {"magic_plank": 40, "rune_lock": 6},
|
||||
"+500 per bank stack for everyone", "open-treasure-chest", "#a77be8"),
|
||||
"+500 stack size", "open-treasure-chest", "#a77be8"),
|
||||
("enchanted_hearths", "Enchanted hearths", "houses", 4, 80, {"magic_plank": 50, "red_dragon_leather": 5, "adamant_chain": 6},
|
||||
"Everyone recovers HP twice as fast", "fireplace", "#a77be8"),
|
||||
"HP recovers twice as fast", "fireplace", "#a77be8"),
|
||||
]
|
||||
# Builders' shields, homesteaders' staves and rangers' bows, after each skill's other tabs.
|
||||
for _weapon in _weapon_actions():
|
||||
|
|
@ -2748,7 +2748,7 @@ def _hardship(world: dict, now: float, rng: random.Random, kind: str | None = No
|
|||
if kind == "sickness":
|
||||
hours = 72 * (1 - 0.2 * building_level(world, "temple"))
|
||||
_add_effect(world, now, hours, kind="sickness", name="Sickness", icon="🤒", food=1.5,
|
||||
text="The sick need more food: the city eats half again as much")
|
||||
text="City eats 50% more")
|
||||
_record(world, now, "hardship", kind, "🤒", "Sickness is spreading through the city",
|
||||
[f"For about {round(hours)} hours the townsfolk eat half again as much.",
|
||||
"A bigger temple shortens it."])
|
||||
|
|
@ -2795,7 +2795,7 @@ def _hardship(world: dict, now: float, rng: random.Random, kind: str | None = No
|
|||
_record(world, now, "hardship", kind, "🔥", "Fire swept through part of the city", lines)
|
||||
elif kind == "winter":
|
||||
_add_effect(world, now, 48, kind="winter", name="Harsh winter", icon="🥶", firewood=0.1,
|
||||
text="The city burns firewood from the stockpile every hour; without it, people go cold and hungry")
|
||||
text="Burns stockpile logs hourly")
|
||||
_record(world, now, "hardship", kind, "🥶", "A harsh cold snap has set in",
|
||||
["For two days the city burns logs from the stockpile to keep warm.",
|
||||
"Without firewood, the cold makes everyone eat half again as much."])
|
||||
|
|
@ -2828,27 +2828,27 @@ def _fortune(world: dict, now: float, rng: random.Random, kind: str | None = Non
|
|||
skill = rng.choice([s for s in SKILL_IDS if s != "reconnaissance"])
|
||||
name = next(s["name"] for s in SKILLS if s["id"] == skill)
|
||||
_add_effect(world, now, 12, kind="master", name=f"A master of {name.lower()}", icon="🎓",
|
||||
xp={skill: 1.5}, text=f"{name} earns 50% more XP")
|
||||
xp={skill: 1.5}, text=f"{name} +50% XP")
|
||||
_record(world, now, "fortune", kind, "🎓", f"A travelling master of {name.lower()} is visiting",
|
||||
[f"For 12 hours, {name.lower()} earns 50% more XP. Learn while you can."])
|
||||
elif kind == "harvest":
|
||||
_add_effect(world, now, 12, kind="harvest", name="Bountiful harvest", icon="🌾", **{"yield": {"farming": 2}},
|
||||
text="Farming yields doubled")
|
||||
text="Farming yield doubled")
|
||||
_record(world, now, "fortune", kind, "🌾", "The fields are bursting: a bountiful harvest",
|
||||
["Farming yields are doubled for 12 hours."])
|
||||
elif kind == "rich_vein":
|
||||
_add_effect(world, now, 12, kind="rich_vein", name="Rich vein", icon="💎", **{"yield": {"mining": 1.5}},
|
||||
text="Mining yields 50% more")
|
||||
text="Mining yield +50%")
|
||||
_record(world, now, "fortune", kind, "💎", "Miners struck a rich vein",
|
||||
["Mining yields 50% more for 12 hours."])
|
||||
elif kind == "salmon":
|
||||
_add_effect(world, now, 12, kind="salmon", name="Salmon run", icon="🐟", **{"yield": {"fishing": 2}},
|
||||
text="Fishing yields doubled")
|
||||
text="Fishing yield doubled")
|
||||
_record(world, now, "fortune", kind, "🐟", "The salmon are running",
|
||||
["Fishing yields are doubled for 12 hours."])
|
||||
elif kind == "festival":
|
||||
_add_effect(world, now, 24, kind="festival", name="Festival", icon="🎉", growth=2, favour=1.5,
|
||||
text="The population grows twice as fast, and giving to the city earns 50% more favour")
|
||||
text="Growth doubled, +50% favour from donations")
|
||||
_record(world, now, "fortune", kind, "🎉", "The city is holding a festival",
|
||||
["For a day, the population grows twice as fast and donations earn 50% more favour."])
|
||||
elif kind == "noble":
|
||||
|
|
@ -2870,7 +2870,7 @@ def _fortune(world: dict, now: float, rng: random.Random, kind: str | None = Non
|
|||
elif kind == "mercenaries":
|
||||
cost = 150 + 30 * season(world, now)["index"] + int(city["population"]) * 5
|
||||
_add_effect(world, now, 24, kind="mercenaries", name="Mercenaries for hire", icon="🗡️", offer=True,
|
||||
cost=cost, defence=25, text=f"A sellsword company offers +25 defence for the coming threat for {cost:,} gold from the treasury")
|
||||
cost=cost, defence=25, text="+25 defence for the coming threat")
|
||||
_record(world, now, "fortune", kind, "🗡️", "A sellsword company is camped outside the walls",
|
||||
[f"For a day they'll join the next defence for {cost:,} gold from the treasury."])
|
||||
else:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue