Herblore rework: tiered potion ladders per skill
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
632a12e8bc
commit
f810e16eb8
4 changed files with 125 additions and 51 deletions
13
README.md
13
README.md
|
|
@ -44,11 +44,14 @@ Alpha. One season, bandit raids plus two friendly events, six buildings.
|
|||
fight while their points last, and praying trains Prayer too. A Temple adds
|
||||
points per bone and lets players offer bones as devotion, which wards the
|
||||
city in the next raid.
|
||||
- **Herblore:** farmers grow six herbs (guam to snapdragon); herblore brews
|
||||
them with a secondary into potions of 50 uses. One potion per skill at a
|
||||
time: faster gathering, a chance to keep materials or double ore, more
|
||||
prayer from bones, or combat power, armour and healing. An empty potion is
|
||||
replaced from the bank automatically.
|
||||
- **Herblore:** farmers grow six herbs (guam to snapdragon), one per tier.
|
||||
Every potion is a ladder of up to six tiers (I–VI): the tier's herb plus
|
||||
the matching rung of the skill's own resources (copper ore → runite ore,
|
||||
logs → enchanted logs, copper bar → rune bar…), at Herblore 1, 15, 30, 45,
|
||||
60 and 75. Gathering and Construction potions are 10–35% faster, crafting
|
||||
potions a 10–35% chance to keep materials, Prayer more points from bones,
|
||||
and combat has Strength and Defence ladders. Potions last 50 uses, one per
|
||||
skill at a time; an empty one is replaced from the bank automatically.
|
||||
- **Events:** raids are announced a day or two ahead. Reconnaissance from
|
||||
scouts, informants and the spymaster's guild narrows down when, how strong,
|
||||
and finally where their camp is, so fighters can sabotage it. Fighters can
|
||||
|
|
|
|||
101
game.py
101
game.py
|
|
@ -186,7 +186,7 @@ for _raw, _cooked, _level, _action_id, _verb in FISH:
|
|||
|
||||
# id, name, icon, farming level, seconds, xp, value
|
||||
HERBS = [
|
||||
("guam_leaf", "Guam leaf", "🍀", 5, 45, 12, 3),
|
||||
("guam_leaf", "Guam leaf", "🍀", 1, 45, 12, 3),
|
||||
("marrentill", "Marrentill", "🌼", 15, 50, 20, 5),
|
||||
("tarromin", "Tarromin", "🌺", 25, 55, 30, 8),
|
||||
("harralander", "Harralander", "🌻", 35, 60, 42, 12),
|
||||
|
|
@ -194,24 +194,50 @@ HERBS = [
|
|||
("snapdragon", "Snapdragon", "🌸", 60, 70, 75, 28),
|
||||
]
|
||||
POTION_CHARGES = 50
|
||||
# id, name, herblore level, herb, secondary, skill, effect
|
||||
POTIONS = [
|
||||
("trackers_tincture", "Tracker's tincture", 1, "guam_leaf", "feathers", "hunting", {"speed": 0.2}),
|
||||
("lumberjacks_tonic", "Lumberjack's tonic", 6, "guam_leaf", "logs", "woodcutting", {"speed": 0.2}),
|
||||
("strength_potion", "Strength potion", 10, "guam_leaf", "bones", "combat", {"power": 6}),
|
||||
("anglers_brew", "Angler's brew", 15, "marrentill", "raw_shrimp", "fishing", {"speed": 0.2}),
|
||||
("prospectors_draught", "Prospector's draught", 18, "marrentill", "copper_ore", "mining", {"double": 0.15}),
|
||||
("growth_potion", "Growth potion", 20, "marrentill", "wheat", "farming", {"speed": 0.2}),
|
||||
("defence_potion", "Defence potion", 25, "tarromin", "iron_ore", "combat", {"reduce": 0.15}),
|
||||
("chefs_spice", "Chef's spice", 28, "tarromin", "vegetables", "cooking", {"keep": 0.15}),
|
||||
("bonedust_tonic", "Bonedust tonic", 30, "tarromin", "big_bones", "prayer", {"bones": 0.5}),
|
||||
("smiths_focus", "Smith's focus", 35, "harralander", "coal", "smithing", {"keep": 0.15}),
|
||||
("masons_patience", "Mason's patience", 38, "harralander", "cut_stone", "masonry", {"keep": 0.15}),
|
||||
("tanners_oil", "Tanner's oil", 40, "harralander", "raw_meat", "leatherworking", {"keep": 0.15}),
|
||||
("regeneration_potion", "Regeneration potion", 45, "ranarr", "cooked_trout", "combat", {"heal": 4}),
|
||||
("super_strength", "Super strength", 50, "ranarr", "dragon_bones", "combat", {"power": 14}),
|
||||
("super_defence", "Super defence", 60, "snapdragon", "blue_dragonhide", "combat", {"reduce": 0.30}),
|
||||
# Potions come in tiers like everything else: tier n is brewed from the nth herb
|
||||
# and the nth rung of the skill's own ladder, needs the tier's Herblore level
|
||||
# (none for tier I), and is stronger the higher it goes. Ladders stop where the
|
||||
# skill runs out of higher things to do.
|
||||
ROMAN = ["I", "II", "III", "IV", "V", "VI"]
|
||||
SPEEDS = [0.10, 0.15, 0.20, 0.25, 0.30, 0.35]
|
||||
_ores = ["copper_ore", "iron_ore", "coal", "mithril_ore", "adamantite_ore", "runite_ore"]
|
||||
# id, name, skill, effect, strength by tier, secondary by tier
|
||||
POTION_LINES = [
|
||||
("mining", "Mining potion", "mining", "speed", SPEEDS, _ores),
|
||||
("woodcutting", "Woodcutting potion", "woodcutting", "speed", SPEEDS, [tree[0] for tree in TREES]),
|
||||
("fishing", "Fishing potion", "fishing", "speed", SPEEDS, [fish[0][0] for fish in FISH]),
|
||||
("farming", "Farming potion", "farming", "speed", SPEEDS,
|
||||
["wheat", "vegetables", "guam_leaf", "marrentill", "tarromin", "harralander"]),
|
||||
("hunting", "Hunting potion", "hunting", "speed", SPEEDS[:4], ["feathers", "raw_meat", "boar_hide", "bear_pelt"]),
|
||||
("construction", "Construction potion", "construction", "speed", SPEEDS, [plank for plank, _name in PLANKS]),
|
||||
("smithing", "Smithing potion", "smithing", "keep", SPEEDS, [f"{metal[0]}_bar" for metal in METALS]),
|
||||
("cooking", "Cooking potion", "cooking", "keep", SPEEDS, [fish[1][0] for fish in FISH]),
|
||||
("leatherworking", "Leatherworking potion", "leatherworking", "keep", SPEEDS,
|
||||
[leather[1][0] for leather in LEATHERS]),
|
||||
("masonry", "Masonry potion", "masonry", "keep", SPEEDS[:3], ["stone", "bricks", "cut_stone"]),
|
||||
("prayer", "Prayer potion", "prayer", "bones", [0.25, 0.5, 0.75], ["bones", "big_bones", "dragon_bones"]),
|
||||
("strength", "Strength potion", "combat", "power", [4, 7, 11, 15, 20, 26], [leather[0][0] for leather in LEATHERS]),
|
||||
("defence", "Defence potion", "combat", "reduce", [0.10, 0.14, 0.18, 0.22, 0.26, 0.30],
|
||||
[f"{metal[0]}_shield" for metal in METALS]),
|
||||
]
|
||||
# id, name, herblore level, herb, secondary, skill, effect
|
||||
POTIONS = []
|
||||
POTION_TIER = {}
|
||||
for _line, _name, _skill, _key, _strengths, _seconds in POTION_LINES:
|
||||
for _tier, (_strength, _second) in enumerate(zip(_strengths, _seconds)):
|
||||
_id = f"{_line}_potion_{_tier + 1}"
|
||||
POTIONS.append((_id, f"{_name} {ROMAN[_tier]}", TIER_LEVELS[_tier], HERBS[_tier][0], _second, _skill,
|
||||
{_key: _strength}))
|
||||
POTION_TIER[_id] = _tier
|
||||
# Potions from before the tiers, and what they became.
|
||||
OLD_POTIONS = {
|
||||
"trackers_tincture": "hunting_potion_3", "lumberjacks_tonic": "woodcutting_potion_3",
|
||||
"strength_potion": "strength_potion_2", "anglers_brew": "fishing_potion_3",
|
||||
"prospectors_draught": "mining_potion_2", "growth_potion": "farming_potion_3",
|
||||
"defence_potion": "defence_potion_2", "chefs_spice": "cooking_potion_2", "bonedust_tonic": "prayer_potion_2",
|
||||
"smiths_focus": "smithing_potion_2", "masons_patience": "masonry_potion_2", "tanners_oil": "leatherworking_potion_2",
|
||||
"regeneration_potion": "defence_potion_3", "super_strength": "strength_potion_4", "super_defence": "defence_potion_5",
|
||||
}
|
||||
|
||||
|
||||
def describe_potion(skill: str, effect: dict) -> str:
|
||||
|
|
@ -226,9 +252,7 @@ def describe_potion(skill: str, effect: dict) -> str:
|
|||
return f"+{round(effect['bones'] * 100)}% prayer points and devotion from bones"
|
||||
if "power" in effect:
|
||||
return f"+{effect['power']} combat power"
|
||||
if "reduce" in effect:
|
||||
return f"-{round(effect['reduce'] * 100)}% damage taken in fights"
|
||||
return f"Heals {effect['heal']} HP every fight"
|
||||
|
||||
|
||||
for _id, _name, _icon, _level, _time, _xp, _value in HERBS:
|
||||
|
|
@ -348,7 +372,7 @@ ACTIONS = [
|
|||
*[_action(f"grow_{herb}", "farming", f"Grow {name.lower()}", level, seconds, xp, outputs={herb: 1})
|
||||
for herb, name, _icon, level, seconds, xp, _value in HERBS],
|
||||
*[_action(f"brew_{potion}", "herblore", name, level, 30 + level // 3, round(4 + level * 1.6),
|
||||
{herb: 1, second: 1}, {potion: 1}, group="Combat potions" if skill == "combat" else "Skill potions")
|
||||
{herb: 1, second: 1}, {potion: 1}, group=f"Tier {ROMAN[POTION_TIER[potion]]}")
|
||||
for potion, name, level, herb, second, skill, _effect in POTIONS],
|
||||
_action("hunt_birds", "hunting", "Snare birds", 1, 25, 6, outputs={"feathers": 3}),
|
||||
_action("hunt_deer", "hunting", "Hunt deer", 8, 40, 13, outputs={"raw_meat": 2, "hide": 1}),
|
||||
|
|
@ -499,7 +523,7 @@ RAID_TRAITS = ["lightly armoured, heavy on archers", "mounted and fast, few bows
|
|||
|
||||
# --- world ---------------------------------------------------------------
|
||||
|
||||
WORLD_VERSION = 10
|
||||
WORLD_VERSION = 11
|
||||
|
||||
|
||||
def new_world(now: float, speed: float = 1.0) -> dict:
|
||||
|
|
@ -606,9 +630,32 @@ def migrate(world: dict, now: float | None = None) -> dict:
|
|||
for building in world["city"]["buildings"].values():
|
||||
building.setdefault("fittings", [])
|
||||
world["version"] = 10
|
||||
if world["version"] < 11:
|
||||
_migrate_potions(world)
|
||||
world["version"] = 11
|
||||
return world
|
||||
|
||||
|
||||
def _migrate_potions(world: dict) -> None:
|
||||
"""Potions from before the tiers become their tiered equivalents, uses and all."""
|
||||
def renamed(stock: dict) -> None:
|
||||
for old, new in OLD_POTIONS.items():
|
||||
if old in stock:
|
||||
stock[new] = stock.get(new, 0) + stock.pop(old)
|
||||
renamed(world["city"]["stockpile"])
|
||||
for player in world["players"].values():
|
||||
renamed(player["bank"])
|
||||
for active in player["potions"].values(): # regeneration was combat too, so slots still match
|
||||
if active["item"] in OLD_POTIONS:
|
||||
active["item"] = OLD_POTIONS[active["item"]]
|
||||
action = player["action"]
|
||||
if action:
|
||||
for key in ("id", "resume"):
|
||||
old = (action.get(key) or "").removeprefix("brew_")
|
||||
if old in OLD_POTIONS:
|
||||
action[key] = f"brew_{OLD_POTIONS[old]}"
|
||||
|
||||
|
||||
def _sell_useless_stock(world: dict, now: float) -> None:
|
||||
"""The council sells what the city can't use, into the treasury."""
|
||||
city = world["city"]
|
||||
|
|
@ -2742,11 +2789,11 @@ def _assign_glyphs() -> None:
|
|||
ITEMS[f"{prefix}_{suffix}"].update(glyph=glyph, tint=tint)
|
||||
for herb, tint in HERB_TINTS.items():
|
||||
ITEMS[herb].update(glyph="herbs-bundle", tint=tint)
|
||||
for potion, *_rest, skill, _effect in POTIONS:
|
||||
if skill == "combat":
|
||||
ITEMS[potion].update(glyph="potion-ball", tint="#e05a5a")
|
||||
else:
|
||||
ITEMS[potion].update(glyph="round-bottom-flask", tint=SKILL_GLYPHS[skill][1])
|
||||
flasks = ["round-bottom-flask", "round-bottom-flask", "standing-potion", "standing-potion",
|
||||
"bubbling-flask", "bubbling-flask"]
|
||||
for potion, *_rest, skill, effect in POTIONS:
|
||||
tint = "#e05a5a" if "power" in effect else "#8fa8c8" if "reduce" in effect else SKILL_GLYPHS[skill][1]
|
||||
ITEMS[potion].update(glyph=flasks[POTION_TIER[potion]], tint=tint)
|
||||
for skill in SKILLS:
|
||||
skill["glyph"], skill["tint"] = SKILL_GLYPHS[skill["id"]]
|
||||
for key, spec in CLASSES.items():
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
<symbol id="brick-pile" viewBox="0 0 512 512"><path fill="currentColor" d="m233.986 85.262l-63.37 21.11L334.32 160.9l63.373-21.11l-163.707-54.53zm-82.85 33.593v58.088l174.184 58.02v-58.086l-174.183-58.022zm-18 50.215l-53.71 17.89l162.63 54.175l22.417-7.467l-125.18-41.7a9 9 0 0 1-6.156-8.536zm-73.19 30.375v58.088l122.286 40.733v-30.71a9 9 0 0 1 .018-.357l.01-.192a9 9 0 0 1 .07-.697l.03-.205a9 9 0 0 1 .134-.66l.06-.236a9 9 0 0 1 .19-.616l.092-.248a9 9 0 0 1 .238-.567a9 9 0 0 1 .135-.282a9 9 0 0 1 .265-.488a9 9 0 0 1 .197-.32a9 9 0 0 1 .28-.41a9 9 0 0 1 .26-.342a9 9 0 0 1 .288-.344a9 9 0 0 1 .318-.342a9 9 0 0 1 .3-.29a9 9 0 0 1 .374-.33a9 9 0 0 1 .3-.237a9 9 0 0 1 .438-.315a9 9 0 0 1 .286-.182a9 9 0 0 1 .502-.29a9 9 0 0 1 .26-.133a9 9 0 0 1 .59-.262l.21-.082a9 9 0 0 1 .317-.122l25.18-8.387zm364.847 27.352l-87.63 29.19l-.247.07a9 9 0 0 1-.355.1a9 9 0 0 1-.443.1a9 9 0 0 1-.47.085a9 9 0 0 1-.4.05a9 9 0 0 1-.49.038a9 9 0 0 1-.423.007a9 9 0 0 1-.48-.01a9 9 0 0 1-.397-.03a9 9 0 0 1-.504-.06a9 9 0 0 1-.38-.07a9 9 0 0 1-.52-.117a9 9 0 0 1-.31-.087a9 9 0 0 1-.268-.077l-38.526-12.834l-73.23 24.395l63.368 21.11l163.707-54.532zm-224.56 53.242v58.085l73.85 24.602v-36.225l.005.002V304.63l-2.752-.915l-.014.004l-71.09-23.68zm-85.174 14.82L58.57 313.68l63.373 21.11l56.485-18.817l-63.37-21.11zM39.095 326.17v58.088l73.85 24.6V350.77zm390.207 9.816l-63.375 21.112l36.283 12.086l63.374-21.112l-36.28-12.086zM219.03 363.36v21.86l174.183 58.022v-58.088L337.45 366.58l-51.516 17.162l-.19.053a9 9 0 0 1-.467.133a9 9 0 0 1-.332.074a9 9 0 0 1-.588.107l-.253.03a9 9 0 0 1-.674.053l-.196.004a9 9 0 0 1-.693-.013l-.206-.016a9 9 0 0 1-.723-.09l-.122-.02a9 9 0 0 1-.795-.18l-.025-.007a9 9 0 0 1-.432-.122l-61.207-20.39z"/></symbol>
|
||||
<symbol id="brick-wall" viewBox="0 0 512 512"><path fill="currentColor" d="m494 18.02l-101 .103V119h101zm-119 .12l-238 .247V119h238zm-256 .266L18 18.51V119h101zM18 137v110h229V137zm247 0v110h229V137zM18 265v110h101V265zm119 0v110h238V265zm256 0v110h101V265zM18 393v100.98l229-.236V393zm247 0v100.727l229-.237V393z"/></symbol>
|
||||
<symbol id="broken-bone" viewBox="0 0 512 512"><path fill="currentColor" d="m301.486 20.37l-33.19 134.755l15.306 49.895l43.55-103.81zM161.324 43.46l2.03 110.69l90.68 36.516zm180.358 126.73l-29.532 40.572l85.268-39.008l-55.736-1.563zm-99.346 39.134c-59.628 41.982-124.36 74.982-199.207 81.297c-13.185 1.113-21.704 8.3-26.302 15.185c-13.788 20.652 8.285 51.02 54.332 33.37c-55.518 33.324-8.274 81.184 25.113 43.495c34.24-38.648 74.95-74.53 117.74-91.58l12.696-28.235l-32.81 6.272l48.436-59.803zm59.62 21.973l120.356 61.736l-8.443-53.13zm-19.214 25.398l5.78 34.688l-40.055-13.627c70.405 49.457 118.18 111.73 161.883 190.79c22.65 40.976 71.903 6.46 34.275-34.278c41.4 33.974 78.094-24.99 40.883-40.883c-63.653-27.187-118.033-62.682-150.73-109.434h-.003l-52.033-27.255zm-53.697 46.844v.003l.002-.004zm0 .003l-60.248 79.27l46.773-10.303zm18.963.934l18.996 118.392l36.414-19.62z"/></symbol>
|
||||
<symbol id="bubbling-flask" viewBox="0 0 512 512"><path fill="currentColor" d="M186.22 21.25c1.304 7.696 2.775 14.91 4.436 21.625h-24.999l10.53 14.78s13.66 19.322 21.75 43.814c4.047 12.245 6.576 25.603 5.595 38c-.98 12.394-5.132 23.72-15.093 33.718c-20.252 20.325-47.89 40.234-70.968 64.406c-23.08 24.17-41.844 53.534-41.845 91.656c0 2.038.002 39.462-.03 76.813c-.018 18.675-.04 37.337-.064 51.593c-.01 7.13-.017 13.167-.03 17.53c-.013 4.366-.07 7.62-.063 7.345l-.28 9.564l9.562.062l312.53 2.28l9.75.064l-.344-9.75c.007.21-.043-3.14-.062-7.594s-.046-10.56-.063-17.78c-.033-14.443-.068-33.324-.092-52.188c-.05-37.73-.063-75.526-.063-77.938c0-38.97-19.523-68.73-43.53-93.03c-24.01-24.302-52.733-44.122-73.75-64.407c-9.965-9.617-13.824-20.463-14.408-32.563s2.526-25.324 7.188-37.5c9.003-23.515 23.025-42.038 24-43.313l15.53-15.562h-32.53c1.647-6.712 3.142-13.924 4.438-21.625zM217 99.78c14.52 15.522 31.15 15.58 45.656.064c-4.346 12.522-7.3 26.29-6.625 40.312c.764 15.827 6.586 32.085 20.064 45.094v.03c22.692 21.903 51.186 41.51 73.47 64.064c22.28 22.555 38.123 47.073 38.123 79.906c0 2.55.014 40.232.063 77.97c.024 18.867.06 37.73.094 52.186c.016 6.595.045 11.937.062 16.28l-293.719-2.155c.013-4.24.02-9.396.032-15.842c.023-14.266.044-32.948.06-51.625c.035-37.356.032-74.663.032-76.813c0-32.095 15.238-56.318 36.657-78.75c21.417-22.432 48.81-42.17 70.686-64.125c13.238-13.287 19.274-29.548 20.53-45.438c1.135-14.317-1.343-28.396-5.186-41.156zm34.47 98.782c-17.31 0-31.532 14.224-31.532 31.532c0 17.307 14.223 31.53 31.53 31.53S283 247.401 283 230.094s-14.224-31.53-31.53-31.53zm0 18.688c7.206 0 12.843 5.636 12.843 12.844s-5.637 12.844-12.844 12.844c-7.21 0-12.845-5.637-12.845-12.844c0-7.208 5.636-12.844 12.844-12.844zM131.5 277.625c-10.615 14.95-18.094 31.583-18.094 52c0 5.323-.142 119.566-.344 124.72l256.094 3.81c-.304-6.364-.53-121.892-.53-128.53c0-20.39-7.51-37.15-18.126-52h-37a37.8 37.8 0 0 1 5.03 18.844c0 20.968-17.215 38.186-38.186 38.186c-20.97 0-38.156-17.217-38.156-38.187a37.84 37.84 0 0 1 5.03-18.845H131.5zm144 0c-8.475 2.115-14.625 9.648-14.625 18.844c0 10.87 8.597 19.5 19.47 19.5c10.87 0 19.5-8.632 19.5-19.5c0-9.197-6.175-16.73-14.658-18.845zM211.344 319.5c18.92 0 34.437 15.518 34.437 34.438c0 18.918-15.516 34.468-34.436 34.468s-34.47-15.55-34.47-34.47c0-18.918 15.55-34.436 34.47-34.436zm0 18.688c-8.82 0-15.78 6.93-15.78 15.75s6.96 15.78 15.78 15.78s15.75-6.96 15.75-15.78s-6.93-15.75-15.75-15.75m92.97 10.125c25.53 0 46.436 20.905 46.436 46.437c0 25.53-20.905 46.438-46.438 46.438c-25.532 0-46.437-20.906-46.437-46.438s20.905-46.438 46.438-46.438zM304.31 367c-15.433 0-27.75 12.317-27.75 27.75s12.317 27.75 27.75 27.75s27.75-12.32 27.75-27.75c0-15.433-12.316-27.75-27.75-27.75"/></symbol>
|
||||
<symbol id="candle-holder" viewBox="0 0 512 512"><path fill="currentColor" d="M290.75 14.625c-14.073 0-47.344 43.993-47.344 79.97c0 26.674 11.15 44.41 38.375 46.81c3.648-21.18 3.137-42.01-3-62.874l17.908-5.28c6.65 22.616 7.458 45.273 4.093 67.625c27.623-3.88 37.283-20.537 37.283-46.28c0-35.977-33.655-79.97-47.313-79.97zm-45.188 140.063v11.843l-.187-3.905c.774 26.386-17.415 28.686-17.125 48.156c.227 15.365 12.172 20.084 17.313 12.69v145.75h97.156v-83.5c6.51 7.5 19.83 1.552 20.092-16.22c.31-20.772-16.87-25.295-20.093-48.22v-66.593c-32.392 10.276-65.8 9.795-97.158 0zM113.625 285.344c-19.435.005-37.23 10.322-48.094 26.125c-14.485 21.068-17.477 52.02-.81 81.405c7.814 13.78 4.407 25.93-2.126 32.28c-6.533 6.352-15.494 8.594-27.563-2.53l-12.655 13.72c17.56 16.183 40.3 14.805 53.25 2.217s16.81-34.69 5.344-54.906c-13.474-23.753-10.43-46.47-.032-61.594s27.313-22.524 45.968-15.593c23.738 8.82 34.46 29.795 32.813 48.124c-1.355 15.062-9.978 28.618-30.095 33.437h-25.688c3.313 6.736 7.145 13.262 11.407 19.533l.03 1c.213-.006.415-.025.626-.032c10.88 15.772 24.687 29.972 41.063 42.158H443c23.286-17.327 41.907-38.453 53.75-62.657H164.28c8.205-9.01 13.02-20.162 14.064-31.78c2.414-26.863-13.754-55.694-44.938-67.28c-6.646-2.47-13.303-3.628-19.78-3.626z"/></symbol>
|
||||
<symbol id="carrot" viewBox="0 0 512 512"><path fill="currentColor" d="M228.063 16.72a9 9 0 0 0-2.47.5c-16.076 5.625-27.55 10.77-36.155 21.81c-6.477 8.313-10.984 18.854-16.063 34.407c-11.313-12.292-26.732-22.486-43.875-30.812c-23.817-11.568-51.083-19.46-76.156-22.78a9 9 0 0 0-6.282 16.343c21.685 14.934 40.525 29.268 53.407 43.687c9.964 11.155 16.21 22.01 18.436 33.53c-32.89-3.705-62.75 3.47-99.406 23.25a9 9 0 0 0 5.125 16.907c34.352-3.265 69.484-3.808 96.563.625c13.54 2.217 25.007 5.723 33.218 10.25c3.168 1.747 5.82 3.57 8 5.532c5.365-8.13 12.033-15.638 19.438-22.22c13.09-11.637 28.792-20.638 45.03-24.094c-11.326-18.24-14.138-30.23-12.843-41.5c1.588-13.813 10.567-28.893 22.564-52.344a9 9 0 0 0-8.53-13.093zm13.906 123.436c-.527-.003-1.062.016-1.595.03c-14.925.428-32.515 8.518-46.594 21.033c-16.088 14.3-26.977 33.817-26.78 50c.39 32.175 18.688 67.77 47.344 102.124c28.655 34.354 67.3 67.31 106.375 94.72c39.073 27.406 78.66 49.316 108.78 61.936c15.06 6.31 27.857 10.275 36.313 11.5c3.958.574 6.797.448 8.187.188c.065-.798.153-1.837.063-3.22c-.205-3.113-.814-7.504-1.844-12.75c-2.06-10.49-5.772-24.554-10.97-40.812c-10.397-32.516-26.75-73.9-47.688-114.937c-13.56-26.58-29.085-53.016-46.093-76.814c-14.193 17.317-12.034 17.985-49.72 36.72l-7.125-14.313c39.43-19.6 30.222-15.247 47.063-35.594c-6.235-8.066-12.65-15.74-19.22-22.907a286 286 0 0 0-9.937-10.344c-24.116 33.382-44.493 41.374-76.436 55.124l-7.125-16.53c32.963-14.19 47.585-18.322 70.218-50.814c-21.94-18.66-45.057-30.964-68.594-34.03a37 37 0 0 0-4.625-.314z"/></symbol>
|
||||
<symbol id="castle" viewBox="0 0 512 512"><path fill="currentColor" d="M254.25 15.344c-132.537 0-240.188 107.62-240.188 240.156c0 132.537 107.65 240.188 240.188 240.188S494.406 388.038 494.406 255.5S386.786 15.344 254.25 15.344m0 18.687c122.436 0 221.47 99.034 221.47 221.47c0 65.65-28.465 124.583-73.75 165.125V238.75l14-22.78h-7.595L364 101.5l-43.813 114.47h-8.156l14.595 22.78v33.875h-36.813v-88.188l14.625-22.78h-7.593l-44.406-114.47l-44.375 114.47h-7.594l14.03 22.78v123.22h-37.375v-18.094l14.594-22.782h-8.19l-43.78-114.467L95.344 266.78H87.75l14.03 22.783V416.25C59.25 375.9 32.75 318.83 32.75 255.5c0-122.436 99.064-221.47 221.5-221.47zm1.094 160.532h18.687v36.344h-18.686v-36.344zm110.156 87.97h18.688v36.312H365.5V282.53zm-246.656 22.03h18.687v36.344h-18.686v-36.344zm50.875 29.407h18.686v36.342H169.72V333.97zm170.81 30.5h18.69v36.342h-18.69z"/></symbol>
|
||||
|
|
@ -72,7 +73,6 @@
|
|||
<symbol id="palisade" viewBox="0 0 512 512"><path fill="currentColor" d="m112 144.836l-9 48V279h18v-86.164zm36 0l-9 48V279h18v-86.164zm216 0l-9 48V279h18v-86.164zm36 0l-9 48V279h18v-86.164zm-360 64l-9 48V279h18v-22.164zm36 0l-9 48V279h18v-22.164zm108 0l-9 48V279h18v-22.164zm36 0l-9 48V279h18v-22.164zm36 0l-9 48V279h18v-22.164zm36 0l-9 48V279h18v-22.164zm36 0l-9 48V279h18v-22.164zm108 0l-9 48V279h18v-22.164zm36 0l-9 48V279h18v-22.164zM18 297v16h138.96v-16zm156.96 0v16h162.005v-16zm180.005 0v16H494v-16zM31 331v156h18V331zm36 0v156h18V331zm36 0v156h18V331zm36 0v156h18V331zm36 0v156h18V331zm36 0v156h18V331zm36 0v156h18V331zm36 0v156h18V331zm36 0v156h18V331zm36 0v156h18V331zm36 0v156h18V331zm36 0v156h18V331zm36 0v156h18V331z"/></symbol>
|
||||
<symbol id="planks" viewBox="0 0 512 512"><path fill="currentColor" d="M360.602 74.52L63.272 349.44h54.5l42.94-37.573l2.683 37.572h13.468l113.14-123.354c.983-12.407 6.178-21.43 13.087-26.443c6.91-5.017 13.84-6.686 19.08-8.633l62.687-68.35l13.266 12.168l-65.516 71.434l-1.826.76c-7.4 3.094-13.675 4.69-17.116 7.19c-3.44 2.497-5.765 5.124-5.875 15.702l-.036 3.447l-106.467 116.08h33.736L471.098 74.52h-72.37l.637.644l-193.668 191.188c-1.248 8.702-6.653 15.696-12.613 20.435c-6.888 5.477-14.79 9.182-21.656 12.89l-8.555-15.835c7.352-3.972 14.477-7.54 19.008-11.143c4.532-3.603 6.167-6.01 6.102-10.253l-.058-3.843L374.394 74.52zm99.843 40.25L243.357 367.58H225.13l-47.71 49.975l-13.02-12.43l35.846-37.545h-53.742l-1.287-18.05l-20.63 18.05h-18.04l-73.12 69.89h29.778c12.26-14.002 18.418-24.828 27.223-34.67c9.07-10.14 21.11-18.166 41.988-23.89l4.76 17.36c-18.702 5.126-26.09 10.433-33.332 18.53c-5.058 5.653-10.032 13.24-17.342 22.67H210.28l271.43-322.7zM129.97 403.682a9 9 0 0 1 8.202 13.287c-1.728 3.296-3.94 7.49-8.033 11.182c-4.094 3.692-10.005 6.357-17.07 7.06a9 9 0 1 1-1.78-17.913c4.02-.4 5.47-1.32 6.792-2.513c1.32-1.192 2.576-3.18 4.147-6.176a9 9 0 0 1 7.74-4.928z"/></symbol>
|
||||
<symbol id="pointy-sword" viewBox="0 0 512 512"><path fill="currentColor" d="M45.95 14.553c-19.38.81-30.594 11.357-30.282 30.283l19.768 30.78c4.43-1.213 9.36-3.838 14.248-7.335l42.474 59.935c-17.018 20.83-31.258 44.44-42.71 70.836l26.55 26.552c11.275-23.6 24.634-44.826 39.918-63.864l210.82 297.475l166.807 33.213L460.33 325.62L162.78 114.745c19.907-16.108 41.842-29.91 65.652-41.578l-26.553-26.55c-27.206 11.803-51.442 26.576-72.735 44.292L69.39 48.56c3.443-4.823 6.062-9.735 7.342-14.242l-30.78-19.765zm400.84 86.933v.008l.003-.008zm0 .008l-28.028 124.97l-25.116-80.593l-18.105 70.667l-26.862-49.64l-.584 57.818l128.484 91.69l15.184 87.017l-1.168-186.885l-34.457 39.713l-9.346-154.756zm-300.95 27.98l222.224 196.368l25.645 66.75l-66.75-25.645L130.6 144.734a309 309 0 0 1 15.238-15.26zm32.305 196.274v.004h.005zm.005.004l28.028 22.775l-36.21 4.088l57.82 19.272l-105.706 4.09l115.05 27.45L136.1 422.114l127.316 25.696l-67.164 43.803l208.494 1.752l-87.017-15.185l-104.54-150.676l-35.037-1.752z"/></symbol>
|
||||
<symbol id="potion-ball" viewBox="0 0 512 512"><path fill="currentColor" d="M94.055 21.9L18.998 96.96l42.727 23.6l-26.98 26.952L142.35 212.39c-40.443 70.148-30.72 161.07 29.2 220.958c71.605 71.606 187.737 71.587 259.356 0c71.62-71.587 71.642-187.654.037-259.22c-59.915-59.878-150.896-69.57-221.084-29.177L144.95 37.415l-8.44 8.432l-18.588 18.57zm47.224 45.598l62.337 103.275l8.098-5.248c44.21-28.663 99.014-34.044 147.166-16.078q-1.74-.04-3.503-.04c-38.988 0-70.594 14.807-70.594 33.073c0 18.27 31.606 33.075 70.594 33.075c31.53 0 58.225-9.684 67.287-23.05c15.942 17.34 27.492 37.224 34.65 58.253c-7.76-3.387-18.28-6.706-30.902-9.563c-31.383-7.1-75.547-11.615-124.305-11.615c-48.757 0-92.92 4.514-124.304 11.615c-13.71 3.102-24.997 6.75-32.893 10.438a164 164 0 0 1 18.018-37.383l5.263-8.104l-103.33-62.3l13.894-13.88l46.937 25.923l27.914-27.915l-26.18-46.635l13.855-13.842zm-1.087 201.287q.722.42 1.506.84c7.89 4.22 20.41 8.487 36.103 12.037c31.383 7.1 75.547 11.615 124.304 11.615s92.922-4.514 124.305-11.615c15.687-3.55 28.203-7.813 36.094-12.033a164 164 0 0 1 2.746 17.643c-9.432 4.277-21.204 7.893-35.074 11.032c-33.205 7.513-78.27 12.037-128.07 12.037c-49.802 0-94.866-4.524-128.07-12.037c-14.67-3.32-27-7.17-36.69-11.776a165 165 0 0 1 2.845-17.745z"/></symbol>
|
||||
<symbol id="prayer" viewBox="0 0 512 512"><path fill="currentColor" d="M261.78 18.063c-52.004 0-94.686 45.7-94.686 103.156c0 57.455 42.682 103.155 94.687 103.155c52.007 0 94.72-45.7 94.72-103.156s-42.713-103.157-94.72-103.157zM203 159.655c13.276 3.67 26.394 6.046 39.375 7.22v18.75c-14.674-1.21-29.464-3.85-44.375-7.97zm117.375 0l4.906 18.03c-14.452 3.938-29.08 6.583-43.874 7.845v-18.718c13.085-1.223 26.055-3.638 38.97-7.156zM160.22 175.344c-75.308 50.797-110.604 125.208-116.282 220h.218a25 25 0 0 0-.562 5.28c0 13.808 11.19 25 25 25c.22 0 .436-.025.656-.03v.22l179.438-.002V302.406c-25.58 4.82-45.22 28.49-45.22 62.594v9.344H103.096v-18.688h12.718c3.664-35.178 26.522-77.998 45.343-101.344l14.53 11.72c-15.618 19.373-36.603 61.664-40.905 89.624h50.47c4.04-42.08 35.168-72.875 73.22-72.875c34.98 0 68.653 28.958 73.905 72.876h55.75c-5.412-28.305-26.53-70.32-42.094-89.625l14.564-11.717c18.885 23.424 41.643 66.485 46.562 101.343h10.563v18.688H314.593l-.25-9.094c-1.02-35.656-23.57-58.234-46.97-62.875v123.438H448.03v-.22c.22.006.436.032.658.032c13.81 0 25-11.193 25-25c0-2.092-.266-4.12-.75-6.063c-5.566-92.605-39.022-165.662-111.032-216.218c-19.026 38.355-56.592 64.72-100.125 64.72c-44.662 0-83.047-27.74-101.56-67.72zM140.374 444.5l9.188 47.5h220.562l8.47-47.5z"/></symbol>
|
||||
<symbol id="rat" viewBox="0 0 512 512"><path fill="currentColor" d="M433.5 31.6c-8.5 0-15.1 6.58-15.1 14.81s6.6 14.81 15.1 14.81s15.1-6.58 15.1-14.81S442 31.6 433.5 31.6M267 59.05c6.6 15.84 17.1 18.03 31.1 24.77c-11.2 20.98-23.2 51.08-43.5 59.28c-64.7 26.1-98.7 58.3-112.3 98.7c-13.1 39-7 87.2 13.3 145.4c61.8 4.9 127.3 9.2 159.4 2.8c-1.3-4.4-5.8-7.5-8.6-9c-28.5-9.8-45.2-10.9-71.5-12l1.1-9.6c2.2-19.6.4-44.3-7.7-61.3c-4.1-8.5-9.5-14.9-16.5-18.8s-15.8-5.7-28.4-3.3l-3.2-17.8c13.5-2.4 29.4-.6 40.4 5.4c10.9 6.1 18.7 15.8 23.9 26.7c9.1 18.9 11.1 41.6 9.9 61.8c10 .6 18.9 1.6 26.8 2.9c19.2-30.7 37-60.4 39.5-90.7c-13.8-4-32.4-10.7-34.3-24.4c-2.7-19.6 3.6-45 19.3-55.5c-1 27.8-4.3 43.9-2.3 49.7c5.8 10.9 30.3 15.2 40.1 17.4v.1c17.4 4.8 31.9 7 34.8 25.6c18.2-29.5-14.4-45-36.2-54.5l-.1-5.8c-.3-23.5 5.5-39.4 13.5-53.1c8-13.6 17.7-25 26.9-43.2v-.1c-9.4-1.3-19.4-.1-27.1 1.3c5.7-19.9 23.2-23.73 38.6-16.1c5.9-8.3 13.4-18.83 24.9-29.96c-12.7-9.39-19.9-20.4-18.1-33.92c-28-3.4-57.4-4.45-78.6 9.84l-4-3.72c-15.7-17.87-60.9-12.3-51.1 11.11m67.9-4.17c4 7.92 14.9 12.95 29.2 13.88c-8 6.49-20.7 11.42-30.3 5.24c-7.3-4.71-3.7-13.07 1.1-19.12M129.4 364.6c-14.6 3.2-38.77 7-49.63 16c-8.5 7.4-15.03 19.8-16.19 31.4c-1.17 11.6 1.99 21.6 12.85 28.8C120 469.7 165 466.4 205.4 454.9c40.4-11.6 75.4-32.6 119.4-22.8c8.4 2.5 15.7 6.5 14.5 15.9c-.4 2.8-1.5 4.8-2.7 6.5c-9.7 10.8-30.9 17.7-33.6 21.5c-6.4 9.2 34.2 2.8 45-7.6c4.2-4.2 8.1-13 8.9-21.3s-1.3-15.3-4.9-18.3c-11.2-9.6-24.1-15.1-39.8-15.1c-15.7-.1-34 1.7-53.5 6.5c-39.1 9.6-83.6 27.5-127.4 18.6c-17-3.4-27.4-6.8-33.77-14.9c-3.22-4-4.39-10.6-2.48-15.4c7.45-15.2 28.15-17.8 40.95-20.5c-2.4-7.2-4.6-16.4-6.6-23.4"/></symbol>
|
||||
<symbol id="rolled-cloth" viewBox="0 0 512 512"><path fill="currentColor" d="M165.446 34.793c-23.17.023-45.634 12.97-54.612 36.323l-83.67 326.167c-12.673 94.537 81.04 88.742 137.957 65.396c81.422-33.396 181.723-29.213 263.244-8.26l6.45-17.218c-7.38-2.638-15.334-5.988-22.252-8.039c.473-4.364.955-8.72 1.437-13.074l23.038 4.118l3.234-18.1l-24.221-4.328a4817 4817 0 0 1 1.87-16.189l22.134 3.278l2.693-18.186q-11.323-1.68-22.647-3.355c.456-3.765.91-7.53 1.375-11.29q11.423 1.638 22.847 3.273l2.607-18.2l-23.164-3.316c.46-3.593 1.29-9.988 1.76-13.577l22.781 2.55l2.045-17.57a56813 56813 0 0 1-22.402-2.508c.783-5.767 1.917-11.182 2.728-16.943q11.505 1.681 23.012 3.368l2.31-17.139q-11.524-1.69-23.05-3.374c.792-5.415 1.252-10.129 2.071-15.542q10.611 1.897 21.223 3.79l3.232-18.1l-21.654-3.866c.736-4.676 1.473-9.35 2.23-14.026q10.467 2.51 20.932 5.022L465.276 208l-22.204-5.33a2809 2809 0 0 1 2.132-12.477q10.47 2.375 20.942 4.746l4.064-17.93q-10.907-2.475-21.815-4.946q1.154-6.4 2.342-12.805l20.742 5.151l4.431-17.843l-21.751-5.405q1.113-5.77 2.254-11.548l20.28 5.014l4.413-17.849l-21.057-5.207a2445 2445 0 0 1 2.571-12.374c8.386 2.41 13.13 2.364 21.41 4.99L486 88.456c-83.808-26.776-179.25-33.22-244.192-6.453c-24.337 114.036-37.305 221.4-68.032 338.64c-3.407 13-14.47 21.89-27.342 28.064c-27 11.608-64.033 13.778-84.63-4.91c-10.971-10.34-16.174-27.036-12.467-47.579c2.303-12.762 10.883-21.986 20.834-26.378c19.749-7.074 43.492-4.25 58.893 7.95c12.463 9.302 12.318 38.283-3.882 31.82c-9.639-6.17-1.964-11.851-8.615-17.378c-11.6-7.428-26.42-10.872-38.972-5.57c-5.564 2.455-8.887 5.737-10.166 12.822c-2.94 16.29.685 24.996 6.985 30.933c18.333 13.49 45.279 10.495 64.068 1.712c10.045-4.82 16.277-11.436 17.511-16.147c30.538-116.518 43.443-224.123 68.293-339.964c-11.796-28.344-35.67-41.247-58.84-41.225"/></symbol>
|
||||
|
|
@ -87,6 +87,7 @@
|
|||
<symbol id="sparkles" viewBox="0 0 512 512"><path fill="currentColor" d="M237.4 20.73c-6.1 42.1-26.8 64.2-63.9 64c31.6 4.5 63.8 8 63.9 64.07c-.6-46.1 24.5-63.07 64.1-64.07c-38-1.5-64.9-16.3-64.1-64m127.8 11.58c-9.1 14.25-20.8 21.29-38.9 10.28c14.9 11.79 18.6 24.76 10.2 38.97c8.9-11.18 17.5-22.73 39-10.27c-17.8-10.06-18.8-23.57-10.3-38.98M59.68 41.69c-2.7 18.8-12 28.6-28.5 28.5c14.1 2 28.4 3.6 28.5 28.52c-.3-20.5 10.9-28.12 28.5-28.52c-16.9-.7-28.9-7.3-28.5-28.5M431 66.28c-2.7 18.8-12 28.6-28.5 28.5c14.1 2 28.4 3.6 28.5 28.52c-.3-20.5 10.9-28.12 28.5-28.52c-16.9-.7-28.9-7.3-28.5-28.5M120.3 116.4c-15.8 53.7-47.76 48-79.35 43.4C76.6 170 90.3 197.1 84.28 239.2c12.66-46 42.62-52.6 79.42-43.4c-37.6-12.1-56.9-35.4-43.4-79.4m187 5c-8.8 61.6-39.3 94-93.6 93.7c46.2 6.5 93.6 11.7 93.6 93.7c-.8-67.3 35.9-92.2 93.8-93.7c-55.5-2.2-94.9-23.9-93.8-93.7m136.8 38.3c-13.1 21.6-29.5 28.8-49.7 20.1c16.3 9.7 33 19.1 20.1 49.6c10.3-25.2 27.9-28.7 49.7-20c-20.3-9.7-31.6-23.9-20.1-49.7M50.7 243.2c9.16 16.7 7.63 30.1-5.61 40c12.46-6.9 24.85-14.3 39.91 5.6c-12.57-16.2-8.2-29 5.61-40c-13.92 9.7-27.47 11.6-39.91-5.6m137.2.3c11.4 26.8-.5 41.3-21.7 50.9c22.7-8.5 40.8-4.5 50.9 21.7c-12.7-31.8 4.8-41.2 21.7-50.9c-21 8.5-37.8.9-50.9-21.7m228 12.6c-26.6 64.7-68.7 91.7-127.8 76.4c48.6 19.8 98.8 38.5 76.4 127.9c17.5-73.7 64.4-90.7 127.9-76.5c-59.9-17.5-96.9-52-76.5-127.8M99.94 295.5c15.66 57.8.86 98.1-47.32 118.5c43.46-11.8 87.38-25.2 118.68 47.4c-26.4-59.3-3.4-95.4 47.3-118.8c-50 19.2-93.1 15-118.66-47.1m169.36 61c-21.8 20.6-43 23.6-63.2 7.3c15.5 16.3 31.6 32.4 7.2 63.3c19.8-25.6 41.2-24.1 63.3-7.3c-20.2-17.4-28.6-37.5-7.3-63.3M443.2 404c-2.7 18.8-12 28.6-28.5 28.5c14.1 2 28.4 3.6 28.5 28.5c-.3-20.5 10.9-28.1 28.5-28.5c-16.9-.7-28.9-7.3-28.5-28.5m-169.7 36c-2.7 18.8-12 28.6-28.5 28.5c14.1 2 28.4 3.6 28.5 28.5c-.3-20.5 10.9-28.1 28.5-28.5c-16.9-.7-28.9-7.3-28.5-28.5"/></symbol>
|
||||
<symbol id="spears" viewBox="0 0 512 512"><path fill="currentColor" d="m433.877 19.855l-78.62 158.668l47.82 53.934l-15.673 260.824h38.79l15.697-261.233l51.04-45.25l-59.053-166.942zm-130.48 20.598L216.073 152.55l28.397 49.186l-28.616 106.387l-.102-.176l-9.545 35.62l.076.134l-40.234 149.58h32.68l29.676-111.186l.026.045l9.527-35.556l-.054-.09L274.56 209.15l48.415-27.95L303.4 40.452h-.002zM111.632 153.21l14.48 116.54l44.42 11.904L193 320.648l9.555-35.66l-9.256-16.1l12.022-44.87l-93.69-70.81zm-49.357 74.31l-42.68 79.31l23.57 28.455L30.786 493.28h18.746L61.83 336.26l27.608-22.865zh-.002zm257.06 10.878l-22.354 87.248l29.686 21.932L345.04 493.28h18.84l-18.823-149.235l21.293-28.824zm175.103 28.614l-40.108 226.27h18.98l21.128-119.188zm-339.903 38.886l-55.35 71.05l18.618 32.247l-20.41 84.086h19.233l19.51-80.385l30.81-17.788l-12.408-89.21h-.002zm96.623 63.645l-9.517 35.516l50.837 88.22h29.8z"/></symbol>
|
||||
<symbol id="spyglass" viewBox="0 0 512 512"><path fill="currentColor" d="M84.438 20.78c-.414.005-.824.01-1.25.032c-2.273.113-4.742.477-7.376 1.094C65.28 24.373 52.858 31.236 42.094 42C31.33 52.763 24.467 65.186 22 75.72c-2.467 10.532-.738 18.23 3.75 22.718c3.93 3.93 10.33 5.763 18.938 4.5c-1.82-5.496-1.757-11.592-.407-17.282c2.182-9.194 7.5-18.247 15.314-26.062s16.836-13.13 26.03-15.313c2.3-.544 4.695-.876 7.064-.968c3.515-.135 7.022.307 10.312 1.407c1.3-8.664-.52-15.082-4.47-19.032c-3.154-3.156-7.896-4.97-14.093-4.907zm9.937 41.126c-.332-.006-.694.01-1.063.032c-.98.06-2.08.23-3.343.53c-5.057 1.2-11.542 4.728-17.157 10.344c-5.616 5.617-9.145 12.1-10.344 17.157c-1.2 5.054-.25 7.718 1.03 9l.344.343l.312.406l41.344 51.25c4.423-9.226 10.846-18.254 19.03-26.44c8.186-8.183 17.214-14.607 26.44-19.03L99.72 64.156l-.407-.312l-.344-.344c-.84-.84-2.273-1.552-4.595-1.594zm85.22 55.344a31 31 0 0 0-2.376.03c-2.168.115-4.54.465-7.064 1.064c-10.095 2.394-22.042 9.042-32.406 19.406s-17.012 22.31-19.406 32.406s-.727 17.367 3.5 21.594l.344.375l.312.375l3.75 4.625c.046-.207.076-.418.125-.625c3.576-15.268 12.593-30.935 26.125-44.47c13.467-13.468 29.05-22.452 44.25-26.06l-4.25-3.44l-.375-.343l-.375-.343c-2.774-2.775-6.828-4.448-12.156-4.594zm31.186 25.656c-2.895-.01-6.086.374-9.56 1.188c-11.122 2.604-24.185 9.838-35.5 21.156c-11.318 11.318-18.552 24.378-21.157 35.5c-2.117 9.036-1.316 16.178 1.656 21.125l.093.156l48.375 59.94c6.217-18.252 17.894-36.74 34.218-53.064c16.332-16.33 34.835-28.003 53.094-34.22L219.75 144.5c-2.557-1.017-5.562-1.583-8.97-1.594zm99.25 65.344c-.697.007-1.41.027-2.124.063c-3.814.188-7.85.798-12.125 1.812c-17.098 4.056-36.72 15.005-53.686 31.97c-16.965 16.963-27.913 36.586-31.97 53.686c-4.055 17.102-1.384 30.74 6.94 39.064l.342.344l.313.406l.31.406a93 93 0 0 1 1.907-11c5.25-22.406 18.652-45.87 38.907-66.125s43.718-33.658 66.125-38.906c3.702-.87 7.4-1.513 11.06-1.907l-.436-.344l-.406-.314l-.344-.344c-5.853-5.852-14.346-8.918-24.813-8.812zm35.22 27.97c-4.95-.034-10.325.6-16.03 1.936c-18.262 4.278-39.118 15.898-57.158 33.938s-29.66 38.896-33.937 57.156c-3.19 13.618-2.38 25.28 1.97 34.063l55.874 69.28c.46-3.185 1.058-6.378 1.81-9.593c6.32-26.98 22.565-55.408 47.126-79.97c24.56-24.56 52.96-40.773 79.938-47.092c2.055-.482 4.108-.89 6.156-1.25l-67.53-54.5h-.033c-5.132-2.575-11.256-3.924-18.187-3.97zm103.094 75.5c-.947.005-1.907.017-2.875.06c-5.166.236-10.637 1.008-16.345 2.345c-22.832 5.348-48.686 19.78-71.03 42.125c-22.347 22.345-36.778 48.2-42.126 71.03c-5.35 22.833-1.77 41.703 9.905 53.376c7.86 7.862 18.996 12.047 32.406 12.313a47 47 0 0 1-2-1.876c-13.45-13.452-16.224-33.735-11.5-53.906c4.726-20.172 16.757-41.163 34.908-59.313c18.15-18.15 39.172-30.213 59.343-34.938c5.044-1.18 10.086-1.898 15.033-2.093c14.84-.586 28.754 3.505 38.843 13.594a43 43 0 0 1 1.938 2.062c-.245-13.438-4.44-24.595-12.313-32.47c-8.207-8.207-19.98-12.4-34.186-12.31zm8.28 47.717c-.65.005-1.3.032-1.968.063c-3.564.167-7.37.687-11.375 1.625c-16.024 3.754-34.44 14.003-50.374 29.938c-7.822 7.822-14.263 16.238-19.25 24.687a91 91 0 0 1 5.438-5.938c17.012-17.01 38.125-24.96 53.22-21.5c-5.877 2.765-11.803 6.865-17.158 12.22c-16.19 16.19-21.17 37.454-11.125 47.5c7.735 7.733 22.152 6.587 35.75-1.75c-3.07 4.568-6.748 9.03-10.967 13.25c-18.512 18.51-41.876 26.32-57.063 20.343c7.814 6.11 19.617 7.906 34.156 4.5c16.025-3.754 34.44-14.003 50.375-29.938s26.185-34.35 29.94-50.375c3.752-16.024 1.195-28.71-6.5-36.406c-5.413-5.41-13.32-8.293-23.095-8.22z"/></symbol>
|
||||
<symbol id="standing-potion" viewBox="0 0 512 512"><path fill="currentColor" d="M257.95 17.127c-19.323.186-39.152 5.737-49.462 16.437l4.494 25.288l-18.836.13l3.756 12.04l12.84 41.165c1.466 31.346-8.624 56.45-23.828 79.997c-18.854 29.198-45.987 55.144-67.662 83.957c-11.56 15.367-15.767 33.277-13.285 50.57c2.48 17.29 11.322 33.89 24.795 48.257c26.945 28.736 72.624 49.044 128.345 48.654c52.815-.366 98.06-21.347 125.3-50.313c13.62-14.484 22.82-31.095 25.603-48.434c2.78-17.34-1.278-35.385-13.15-50.678h.003c-22.132-28.513-49.724-54.076-69.088-83.01c-15.9-23.76-26.513-49.206-25.107-81.374l15.228-51.68l-17.6.12l4.09-25.357c-8.29-10.77-27.11-15.952-46.435-15.766zm34.905 59.863l-6.582 22.336c-22.502 10.67-41.278 9.862-59.775.617l-7-22.447zm-8.765 43.49c1.27 31.477 12.715 58.028 28.152 81.096c7.37 11.013 15.604 21.332 24.076 31.254c-20.758-5.694-49.388-9.355-80.85-9.355c-28.173 0-54.063 2.94-74.077 7.64c7.483-9.18 14.71-18.707 21.223-28.793c14.953-23.156 25.9-49.698 26.768-80.96c17.122 5.656 35.656 5.724 54.71-.882zm75.58 138.756c4.275 4.785 8.483 9.543 12.516 14.285c-7.27 4.73-16.44 8.51-27.293 11.732c-23.45 6.96-54.792 11.053-89.426 11.053s-65.977-4.094-89.426-11.053c-8.803-2.613-16.478-5.602-22.95-9.158c3.992-4.87 8.175-9.76 12.424-14.672c4.372 2.06 9.703 4.094 15.843 5.916c20.964 6.22 50.975 10.28 84.11 10.28c33.136 0 63.146-4.06 84.11-10.28c8.31-2.466 15.157-5.314 20.093-8.102zM102.04 364.234c-50.154 13.628-82.55 33.813-82.55 56.204c0 41.017 106.522 74.35 237.696 74.35s237.697-33.333 237.697-74.35c0-22.31-32.12-42.578-81.965-56.204c17.23 8.88 27.518 19.25 27.518 30.444c0 32.13-82.31 58.545-183.248 58.545c-100.94 0-182.663-26.418-182.663-58.545c0-11.255 10.11-21.535 27.518-30.444z"/></symbol>
|
||||
<symbol id="star-altar" viewBox="0 0 512 512"><path fill="currentColor" d="m256 25.61l-97.8 36.67L256 86.72l97.8-24.44zM136.1 75.3L105.9 407h300.2L375.9 75.3l-119.9 30zM256 128l30 72.7l78.3 6l-59.8 51L323 334l-67-41.2l-66.9 41.3l18.4-76.5l-59.8-50.9l78.4-6zM70.09 425l-24.8 62H237.3l-49.6-62zm140.61 0l45.3 56.6l45.3-56.6zm113.6 0l-49.6 62h192l-24.8-62z"/></symbol>
|
||||
<symbol id="stone-block" viewBox="0 0 512 512"><path fill="currentColor" d="m209.875 44.156l-182 106.47l119.625 54.31l148.344 11.72l41.97-24.312l17.342 11.562L309 230.656V379.53l53.563-14.624l-64.625 51.97l-110.875-59.626l-2.157-1.53l-71.28 6.56l75.936-31.967l100.75 52.125v-147.5l-145.906-11.5l-1.625-.125l-1.5-.688l-121.093-55V391.47L44 423.186l82 20.97l21.875-21.282l11.156 29.72l131.282 33.592V434l4.25 2.28l5.47 2.94l4.812-3.908L309 431.97v52.155L491.375 377.78v-96.405L466.78 269.47l24.595-38.75V125l-90.25 52.28l-1.094 34.095l-88-58.688l84.97 5.375L476.5 112L291.562 64.937l1.625.563l-64.406 5.78l5.345-20.936l-24.25-6.188z"/></symbol>
|
||||
<symbol id="stone-stack" viewBox="0 0 512 512"><path fill="currentColor" d="M278.735 112.385c-6.45-.022-13.001.204-19.541.683c-26.16 1.918-52.24 7.912-71.295 17.338c-19.054 9.426-30.102 21.32-31.21 35.473c-.491 6.258 1.674 12.378 6.886 18.9s13.484 13.055 23.86 18.725c20.75 11.34 49.723 19.217 77.925 20.578s55.456-3.89 73.447-16.592c17.992-12.701 28.163-31.942 23.477-64.853c-.647-4.546-3.149-8.605-8.393-12.748c-5.244-4.144-13.144-7.946-22.834-10.828c-14.534-4.324-32.974-6.611-52.322-6.676m-58.385 27.773a15.021 30.242 71.137 0 1 16.541 7.426a15.021 30.242 71.137 0 1-23.646 24.008a15.021 30.242 71.137 0 1-33.557-4.356a15.021 30.242 71.137 0 1 23.647-24.006a15.021 30.242 71.137 0 1 17.015-3.072m41.203 101.729c-37.759-.033-75.243 5.18-102.252 16.006c-13.504 5.412-24.3 12.2-31.423 19.904c-7.123 7.703-10.792 16.021-10.834 26.406c-.027 6.585 2.827 11.537 10.013 16.832c7.187 5.295 18.653 9.967 32.887 13.277c28.467 6.621 67.726 8.057 106.684 5.051c38.957-3.005 77.792-10.437 105.572-20.668c13.89-5.115 24.986-11.006 31.701-16.691c6.715-5.686 8.59-10.002 8.066-14.201c-.602-4.834-4.196-10.34-12.113-16.06s-19.702-11.174-33.931-15.651c-28.459-8.955-66.61-14.172-104.37-14.205m-76.722 28a15.623 30.966 72.083 0 1 16.52 8.297a15.623 30.966 72.083 0 1-25.08 24.324a15.623 30.966 72.083 0 1-33.964-5.639a15.623 30.966 72.083 0 1 25.078-24.324a15.623 30.966 72.083 0 1 17.446-2.658m105.074 87.545a737 737 0 0 0-36.129.824c-48.367 2.29-96.637 9.383-132.682 20.898c-18.022 5.758-32.96 12.664-43.14 20.12c-10.181 7.455-15.225 14.927-16.135 22.431c-.771 6.358 2.69 13.296 12.693 21.38c10.004 8.086 25.876 16.155 45.407 23.048c39.06 13.786 92.694 23.167 145.267 24.806c52.574 1.64 104.231-4.626 139.022-20.488c17.395-7.93 30.393-18.095 37.974-30.289c7.582-12.194 10.317-26.587 6.166-45.414c-.984-4.464-5.912-10.175-16.506-15.58c-10.593-5.405-25.998-10.126-44.365-13.654c-27.55-5.292-61.777-8.017-97.572-8.082m-159.727 42.4a18.747 35.889 83.498 0 1 28.702 14.086a18.747 35.889 83.498 0 1-31.659 23.371a18.747 35.889 83.498 0 1-39.367-13.441a18.747 35.889 83.498 0 1 31.658-23.371a18.747 35.889 83.498 0 1 10.666-.645"/></symbol>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 164 KiB After Width: | Height: | Size: 167 KiB |
|
|
@ -820,44 +820,52 @@ class HerbloreTest(unittest.TestCase):
|
|||
|
||||
def test_herbs_to_potion(self):
|
||||
world, p = self.world, self.p
|
||||
p["xp"]["farming"] = game.XP_TABLE[5]
|
||||
game.start_action(world, p, "grow_guam_leaf", T0)
|
||||
game.process_player(world, p, T0 + 450, random.Random(1))
|
||||
self.assertEqual(p["bank"]["guam_leaf"], 10)
|
||||
p["xp"]["herblore"] = game.XP_TABLE[6]
|
||||
p["bank"]["logs"] = 3
|
||||
game.start_action(world, p, "brew_lumberjacks_tonic", T0 + 450)
|
||||
self.assertIsNone(game.start_action(world, p, "brew_woodcutting_potion_1", T0 + 450)) # tier I needs no Herblore
|
||||
game.process_player(world, p, T0 + 1000, random.Random(1))
|
||||
self.assertEqual(p["bank"]["lumberjacks_tonic"], 3)
|
||||
self.assertEqual(p["bank"]["woodcutting_potion_1"], 3)
|
||||
self.assertEqual(game.start_action(world, p, "brew_woodcutting_potion_2", T0 + 1000), "Needs level 15")
|
||||
|
||||
def test_potion_tiers_climb_the_ladders(self):
|
||||
mining = [potion for potion in game.POTIONS if potion[0].startswith("mining_potion")]
|
||||
self.assertEqual([(herb, second) for _id, _name, _level, herb, second, *_rest in mining[:2]],
|
||||
[("guam_leaf", "copper_ore"), ("marrentill", "iron_ore")])
|
||||
self.assertEqual([p[2] for p in mining], game.TIER_LEVELS)
|
||||
self.assertEqual([p[6]["speed"] for p in mining], game.SPEEDS)
|
||||
self.assertEqual(game.ITEMS["mining_potion_6"]["name"], "Mining potion VI")
|
||||
self.assertFalse(any("heal" in p[6] or "double" in p[6] for p in game.POTIONS))
|
||||
|
||||
def test_skill_potion_speeds_up_and_uses_charges(self):
|
||||
world, p = self.world, self.p
|
||||
plain = game.action_time(world, p, game.ACTION_BY_ID["cut_logs"])
|
||||
p["bank"] = {"lumberjacks_tonic": 1}
|
||||
self.assertIsNone(game.use_potion(p, "lumberjacks_tonic"))
|
||||
self.assertEqual(p["potions"]["woodcutting"], {"item": "lumberjacks_tonic", "charges": game.POTION_CHARGES})
|
||||
p["bank"] = {"woodcutting_potion_3": 1}
|
||||
self.assertIsNone(game.use_potion(p, "woodcutting_potion_3"))
|
||||
self.assertEqual(p["potions"]["woodcutting"], {"item": "woodcutting_potion_3", "charges": game.POTION_CHARGES})
|
||||
self.assertAlmostEqual(game.action_time(world, p, game.ACTION_BY_ID["cut_logs"]), plain * 0.8)
|
||||
self.assertEqual(game.action_time(world, p, game.ACTION_BY_ID["mine_stone"]), plain)
|
||||
game.start_action(world, p, "cut_logs", T0)
|
||||
summary = game.process_player(world, p, T0 + 16 * 60, random.Random(1))
|
||||
self.assertEqual(summary["potion_out"], ["lumberjacks_tonic"])
|
||||
self.assertEqual(summary["potion_out"], ["woodcutting_potion_3"])
|
||||
self.assertNotIn("woodcutting", p["potions"])
|
||||
|
||||
def test_empty_potion_is_replaced_from_the_bank(self):
|
||||
world, p = self.world, self.p
|
||||
p["bank"] = {"trackers_tincture": 2}
|
||||
game.use_potion(p, "trackers_tincture")
|
||||
p["bank"] = {"hunting_potion_1": 2}
|
||||
game.use_potion(p, "hunting_potion_1")
|
||||
p["potions"]["hunting"]["charges"] = 1
|
||||
game.start_action(world, p, "hunt_birds", T0)
|
||||
summary = game.process_player(world, p, T0 + 25, random.Random(1))
|
||||
self.assertEqual(summary["potions_drunk"], {"trackers_tincture": 1})
|
||||
self.assertEqual(summary["potions_drunk"], {"hunting_potion_1": 1})
|
||||
self.assertEqual(p["potions"]["hunting"]["charges"], game.POTION_CHARGES)
|
||||
self.assertNotIn("trackers_tincture", p["bank"])
|
||||
self.assertNotIn("hunting_potion_1", p["bank"])
|
||||
|
||||
def test_keep_chance_saves_materials(self):
|
||||
world, p = self.world, self.p
|
||||
p["bank"] = {"copper_ore": 100, "logs": 100, "smiths_focus": 1}
|
||||
game.use_potion(p, "smiths_focus")
|
||||
p["bank"] = {"copper_ore": 100, "logs": 100, "smithing_potion_2": 1}
|
||||
game.use_potion(p, "smithing_potion_2")
|
||||
p["potions"]["smithing"]["charges"] = 1000
|
||||
game.start_action(world, p, "smith_copper_bar", T0)
|
||||
summary = game.process_player(world, p, T0 + 20 * 100, random.Random(2))
|
||||
|
|
@ -868,15 +876,30 @@ class HerbloreTest(unittest.TestCase):
|
|||
world, p = self.world, self.p
|
||||
p["xp"]["combat"] = game.XP_TABLE[20]
|
||||
p["hp"] = game.max_hp(p)
|
||||
p["bank"] = {"defence_potion": 1, "bread": 500}
|
||||
game.use_potion(p, "defence_potion")
|
||||
p["bank"] = {"defence_potion_6": 1, "bread": 500}
|
||||
game.use_potion(p, "defence_potion_6")
|
||||
game.start_action(world, p, "fight_scouts", T0)
|
||||
scouts = game.ACTION_BY_ID["fight_scouts"]
|
||||
brewed = game.with_potion(game.NO_BLESSING, game.potion_effect(p, "combat"))
|
||||
self.assertAlmostEqual(game.fight_damage(p, scouts, brewed), game.fight_damage(p, scouts) * 0.85)
|
||||
self.assertAlmostEqual(game.fight_damage(p, scouts, brewed), game.fight_damage(p, scouts) * 0.70)
|
||||
summary = game.process_player(world, p, T0 + 75 * 10, random.Random(1))
|
||||
self.assertEqual(p["potions"]["combat"]["charges"], game.POTION_CHARGES - summary["done"])
|
||||
|
||||
def test_old_potions_become_their_tiers(self):
|
||||
world, p = self.world, self.p
|
||||
world["version"] = 10
|
||||
p["bank"] = {"lumberjacks_tonic": 4, "woodcutting_potion_3": 1, "regeneration_potion": 2}
|
||||
p["potions"] = {"mining": {"item": "prospectors_draught", "charges": 12}}
|
||||
p["action"] = {"id": "brew_anglers_brew", "start": T0, "resume": "brew_smiths_focus"}
|
||||
world["city"]["stockpile"]["super_strength"] = 1
|
||||
game.migrate(world, T0)
|
||||
self.assertEqual(p["bank"], {"woodcutting_potion_3": 5, "defence_potion_3": 2})
|
||||
self.assertEqual(p["potions"]["mining"], {"item": "mining_potion_2", "charges": 12})
|
||||
self.assertEqual((p["action"]["id"], p["action"]["resume"]), ("brew_fishing_potion_3", "brew_smithing_potion_2"))
|
||||
self.assertEqual(world["city"]["stockpile"]["strength_potion_4"], 1)
|
||||
for action in (p["action"]["id"], p["action"]["resume"]):
|
||||
self.assertIn(action, game.ACTION_BY_ID)
|
||||
|
||||
def test_v5_worlds_get_herblore(self):
|
||||
world = world_with(("fred", "pioneer"))
|
||||
world["version"] = 5
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue