Decompiled source of HaldorBounties v0.0.5

HaldorBounties.dll

Decompiled a week ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using Newtonsoft.Json;
using Splatform;
using TMPro;
using TraderOverhaul;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.Events;
using UnityEngine.UI;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyVersion("0.0.0.0")]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace HaldorBounties
{
	public class BountyEntry
	{
		public string Id = "";

		public string Title = "";

		public string Description = "";

		public string Type = "Kill";

		public string Target = "";

		public int Amount = 1;

		public int Reward = 50;

		public string RequiredBoss = "";

		public int SpawnLevel;

		public string Tier = "Easy";

		public int Gender;
	}
	internal class ConfigWrapper
	{
		public int Version;

		public List<BountyEntry> Bounties;
	}
	public static class BountyConfig
	{
		private struct KillDef
		{
			public string Id;

			public string Title;

			public string Desc;

			public string Target;

			public int Amount;

			public int Reward;
		}

		private struct MinibossDef
		{
			public string Id;

			public string Title;

			public string Desc;

			public int Reward;

			public int Gender;
		}

		private struct RaidDef
		{
			public string Id;

			public string Title;

			public string Desc;

			public int Amount;

			public int Reward;
		}

		private const int CurrentConfigVersion = 2;

		private static string _configPath;

		public static List<BountyEntry> Bounties { get; private set; } = new List<BountyEntry>();


		public static void Initialize(string configPath)
		{
			_configPath = configPath;
			if (File.Exists(_configPath))
			{
				try
				{
					ConfigWrapper configWrapper = JsonConvert.DeserializeObject<ConfigWrapper>(File.ReadAllText(_configPath));
					if (configWrapper != null && configWrapper.Version >= 2 && configWrapper.Bounties != null && configWrapper.Bounties.Count > 0)
					{
						Bounties = configWrapper.Bounties;
						ValidateEntries();
						HaldorBounties.Log.LogInfo((object)$"[BountyConfig] Loaded {Bounties.Count} bounties (v{configWrapper.Version}).");
						return;
					}
					int num = configWrapper?.Version ?? 0;
					HaldorBounties.Log.LogInfo((object)$"[BountyConfig] Config version {num} < {2}, regenerating.");
				}
				catch (Exception ex)
				{
					HaldorBounties.Log.LogWarning((object)("[BountyConfig] Failed to load config: " + ex.Message + ". Using defaults."));
				}
			}
			Bounties = BuildDefaultBounties();
			ValidateEntries();
			SaveToFile();
			HaldorBounties.Log.LogInfo((object)$"[BountyConfig] Generated {Bounties.Count} default bounties (v{2}).");
		}

		private static void ValidateEntries()
		{
			foreach (BountyEntry bounty in Bounties)
			{
				if ((bounty.Tier == "Miniboss" || bounty.Tier == "Raid") && bounty.SpawnLevel < 1)
				{
					HaldorBounties.Log.LogWarning((object)$"[BountyConfig] Entry '{bounty.Id}' is {bounty.Tier} but SpawnLevel={bounty.SpawnLevel}, fixing to 1.");
					bounty.SpawnLevel = 1;
				}
			}
		}

		private static void SaveToFile()
		{
			try
			{
				string contents = JsonConvert.SerializeObject((object)new ConfigWrapper
				{
					Version = 2,
					Bounties = Bounties
				}, (Formatting)1);
				string directoryName = Path.GetDirectoryName(_configPath);
				if (!string.IsNullOrEmpty(directoryName) && !Directory.Exists(directoryName))
				{
					Directory.CreateDirectory(directoryName);
				}
				File.WriteAllText(_configPath, contents);
			}
			catch (Exception ex)
			{
				HaldorBounties.Log.LogWarning((object)("[BountyConfig] Failed to save config: " + ex.Message));
			}
		}

		private static List<BountyEntry> BuildDefaultBounties()
		{
			List<BountyEntry> list = new List<BountyEntry>();
			AddKillBounties(list, "", "Easy", K("m_greyling_1", "Skogvættr's Brood", "The grey ones crawl from the earth like maggots from a wound. Haldor's caravans cannot pass.", "Greyling", 5, 25), K("m_greyling_2", "Scourge of the Glade", "Greylings swarm the meadow in numbers unseen. The roads must be cleared by steel.", "Greyling", 12, 50), K("m_neck_1", "Serpents of the Shallows", "Necks snap at wading travelers along every shore. Make the riverbanks safe again.", "Neck", 5, 30), K("m_neck_2", "Fang-Water", "Every stream and pond teems with Necks grown bold on easy prey.", "Neck", 12, 60), K("m_boar_1", "Tusks of the Wildwood", "Feral boars gore anyone who strays from the paths. Cull them before they breed further.", "Boar", 8, 40), K("m_boar_2", "Razorback Rampage", "The boars have gone berserk — tusks bloody, eyes wild. Something in the meadow drives them mad.", "Boar", 15, 75), K("m_deer_1", "Eikthyr's Offering", "Haldor craves fresh venison for his stores. Track the swiftest deer and bring them down.", "Deer", 5, 30), K("m_deer_2", "The Great Hunt", "A proper hunt worthy of song — enough deer to feast a warband.", "Deer", 12, 60), K("m_greyling_3", "Grey Tide Rising", "An enormous colony festers beneath the meadow roots. Burn them out.", "Greyling", 20, 80), K("m_neck_3", "Jaws of the Runoff", "The Neck swarms have grown beyond all reckoning. The waterways belong to them now — take them back.", "Neck", 20, 90));
			AddMinibossBounties(list, "", "HB_BountyNpc_T1", MB("mb_m_m1", "The Oath-Breaker", "A disgraced warrior haunts the crossroads, challenging travelers to holmgang they cannot refuse.", 200, 1), MB("mb_m_f1", "Grelka the Scavenger", "A scarred deserter raids supply caches by moonlight, leaving only bones and ash.", 220, 2), MB("mb_m_m2", "Bjolf Stone-Fist", "A hulking brute blocks the meadow crossing, demanding tribute in blood.", 210, 1), MB("mb_m_f2", "Runa Thorn-Heart", "An exile who fights like the wild creatures she lives among — without mercy.", 230, 2), MB("mb_m_m3", "The Nithing", "An outlaw branded with the mark of shame. He has nothing left to lose.", 200, 1), MB("mb_m_f3", "Ylva Grass-Viper", "She strikes from the tall grass and vanishes before the blood dries.", 240, 2), MB("mb_m_m4", "Vagn the Wanderer", "A drifting sellsword who cuts down anyone foolish enough to draw steel.", 210, 1), MB("mb_m_f4", "Sigrid Dawn-Stalker", "She hunts at first light when travelers are bleary-eyed and careless.", 250, 2), MB("mb_m_m5", "Keld Flint-Fang", "Armed with crude but wicked weapons shaped from the meadow's stones.", 200, 1), MB("mb_m_f5", "Inga Way-Finder", "A former merchant who knows every road — and the best places to ambush them.", 230, 2));
			AddRaidBounties(list, "", "HB_BountyNpc_T1", RD("rd_m_1", "Oath-Breakers' Warband", "A pack of disgraced warriors roam the meadow seeking plunder and redemption through blood.", 3, 350), RD("rd_m_2", "Outlaws of the Glade", "Desperate exiles have sworn a blood-oath and banded together. They answer to no jarl.", 4, 500), RD("rd_m_3", "Road-Wolves", "Bandits who prey on lone travelers, picking the roads clean like carrion birds.", 3, 400), RD("rd_m_4", "Camp-Burners", "Firebrands who torch camps and steal every scrap. Smoke marks their passing.", 4, 550), RD("rd_m_5", "Meadow Reavers", "A gang of marauders terrorizes the open fields, emboldened by their easy prey.", 3, 380), RD("rd_m_6", "The Landless", "Exiled warriors stripped of name and land, fighting with the fury of those who have nothing.", 4, 480), RD("rd_m_7", "Grey-Herders", "Outlaws who drive Greylings before them as scouts and distractions.", 3, 420), RD("rd_m_8", "Crossroad Kinsmen", "They control every crossroad in the meadows, demanding toll in steel.", 4, 520), RD("rd_m_9", "Dusk-Prowlers", "They strike at twilight when the shadows grow long and eyes grow dim.", 3, 400), RD("rd_m_10", "The Hunger-Sworn", "Starving raiders who have sworn to take what they need or die fighting.", 4, 500));
			AddKillBounties(list, "defeated_eikthyr", "Easy", K("bf_greydwarf_1", "Eyes in the Undergrowth", "Greydwarf scouts watch every road through the forest with hollow, hateful eyes.", "Greydwarf", 8, 50), K("bf_greydwarf_2", "Root and Ruin", "A Greydwarf horde gathers beneath the ancient roots. If left unchecked, the forest will be lost.", "Greydwarf", 20, 120), K("bf_brute_1", "The Trunk-Breakers", "Greydwarf Brutes have blockaded the crossings, smashing carts and travelers alike.", "Greydwarf_Elite", 3, 90), K("bf_brute_2", "Timber Crushers", "Packs of Brutes lumber through the forest, toppling trees and crushing all who flee.", "Greydwarf_Elite", 6, 160), K("bf_shaman_1", "Menders of the Dark", "Shamans knit wounds with foul sap-magic, making the hordes near-unkillable.", "Greydwarf_Shaman", 3, 80), K("bf_shaman_2", "Curse-Weavers", "Their poison magic sustains entire warbands. Cut down the shamans and the rest will follow.", "Greydwarf_Shaman", 6, 140), K("bf_skeleton_1", "The Restless Dead", "Skeletons wander far beyond their burial mounds, rattling through the darkened woods.", "Skeleton", 8, 60), K("bf_skeleton_2", "Crypt-Purge", "The burial chambers overflow with the risen dead. Someone must seal them back in.", "Skeleton", 15, 110), K("bf_troll_1", "Bridge-Breaker", "A Troll has claimed a vital forest bridge. Travelers detour for half a day to avoid it.", "Troll", 1, 90), K("bf_ghost_1", "The Barrow-Haunts", "Spirits of the ancient dead drift through the old burial sites, hungering for warmth.", "Ghost", 5, 120));
			AddMinibossBounties(list, "defeated_eikthyr", "HB_BountyNpc_T2", MB("mb_bf_m1", "Grimjaw the Brigand", "A cunning forest brigand who preys on miners hauling ore from the deep woods.", 500, 1), MB("mb_bf_f1", "Hild Iron-Maiden", "A shieldmaiden turned bandit queen. She takes what she wants and burns the rest.", 550, 2), MB("mb_bf_m2", "Torolf Deepwood-Warden", "He demands blood-tribute from anyone who sets foot in his claimed territory.", 580, 1), MB("mb_bf_f2", "Bodil Root-Witch", "Clad in living root-armor, she fights with a ferocity that is not entirely human.", 600, 2), MB("mb_bf_m3", "Ketill Copper-King", "A miner who found it easier to kill for ore than to dig for it.", 520, 1), MB("mb_bf_f3", "Alva Shadow-Fern", "She vanishes into the undergrowth after every kill. No tracker has found her camp.", 560, 2), MB("mb_bf_m4", "Ulf Troll-Tamer", "He fights alongside trained Greydwarves and knows every hollow in the forest.", 620, 1), MB("mb_bf_f4", "Svala Dark-Bark", "Covered in bark and moss, she has become one with the black forest.", 640, 2), MB("mb_bf_m5", "Hreidar Stone-Breaker", "A massive warrior who shatters shields with a single blow of his bronze mace.", 580, 1), MB("mb_bf_f5", "Jorunn Night-Shade", "She tips her blades in poison brewed from forest fungi. Death comes slowly.", 650, 2));
			AddRaidBounties(list, "defeated_eikthyr", "HB_BountyNpc_T2", RD("rd_bf_1", "The Iron Ambush", "Brigands with iron weapons lie in wait along the forest road, hungry for blood and bronze.", 3, 750), RD("rd_bf_2", "Root-Clad War Party", "A war party in root armor has fortified a ruin in the heart of the forest.", 4, 1000), RD("rd_bf_3", "Troll-Hide Gang", "Outlaws clad in troll leather who strike without warning and vanish into the trees.", 3, 850), RD("rd_bf_4", "Crypt-Plunderers", "Grave-robbers who kill any witness. They've grown rich — and dangerous.", 4, 950), RD("rd_bf_5", "Forest Kinslayers", "Reavers who know every path through the black wood and use them to deadly effect.", 3, 780), RD("rd_bf_6", "The Bronze Brotherhood", "Deserters bound by oath and bronze, they answer challenges with axe and shield.", 4, 900), RD("rd_bf_7", "Timber-Wolves", "They ambush loggers and steal their haul. The forest roads are theirs.", 3, 800), RD("rd_bf_8", "Flame-Sworn Cult", "Outlaws who worship the Surtling flame and carry cores as holy relics.", 4, 1050), RD("rd_bf_9", "The Undergrowth", "They hide in the brush and strike from below. You'll never see the blade that kills you.", 3, 820), RD("rd_bf_10", "Darkwood Huskarls", "A warband of hardened killers who take no prisoners and leave no survivors.", 4, 1100));
			AddKillBounties(list, "defeated_gdking", "Medium", K("sw_draugr_1", "The Walking Dead", "Draugr shuffle near the borders, testing the living with dead hands and rusty steel.", "Draugr", 8, 120), K("sw_draugr_2", "Dead Tide", "The swamp crawls with Draugr rising in numbers not seen since the old wars.", "Draugr", 18, 250), K("sw_elite_1", "Grave-Knights", "Draugr Elites clad in ancient iron lead raiding parties out of the sunken crypts.", "Draugr_Elite", 3, 180), K("sw_elite_2", "Wight Purge", "Draugr Elites have risen in alarming numbers. The dead outnumber the living.", "Draugr_Elite", 6, 320), K("sw_blob_1", "Bile-Cleansing", "Poisonous Blobs ooze through the bog, leaving trails of rot that kill the very earth.", "Blob", 8, 120), K("sw_wraith_1", "Fog-Wraiths", "Wraiths materialize from the mire-fog, their wailing a death-knell for the unwary.", "Wraith", 3, 220), K("sw_leech_1", "Blood-Drinkers", "Giant Leeches infest every body of stagnant water. Wading is a death sentence.", "Leech", 10, 130), K("sw_surtling_1", "Geyser-Flames", "Surtlings blaze near the fire geysers, scorching anyone who seeks their cores.", "Surtling", 8, 130), K("sw_abom_1", "Root-Horror", "An Abomination has torn itself free of the muck. The ground shakes with its fury.", "Abomination", 1, 180), K("sw_abom_2", "The Great Uprooting", "Multiple Abominations tear through the swamp. The land itself has turned hostile.", "Abomination", 3, 420));
			AddMinibossBounties(list, "defeated_gdking", "HB_BountyNpc_T3", MB("mb_sw_m1", "Halvard Bog-Stalker", "Born in the mire, he fights with ruthless cunning. The Draugr fear his iron.", 1000, 1), MB("mb_sw_f1", "Groa the Drowned Queen", "Even the walking dead give this one a wide berth. She rules the sunken places.", 1100, 2), MB("mb_sw_m2", "Vidar Crypt-Breaker", "His silver blade drips with undead ichor — he has slain many, and will slay you next.", 1200, 1), MB("mb_sw_f2", "Thora Mire-Witch", "She commands the swamp-fog itself as a weapon, blinding her prey before the kill.", 1150, 2), MB("mb_sw_m3", "Eindride Rot-Walker", "He wades through poison without flinching, armored in leather cured with grave-wax.", 1050, 1), MB("mb_sw_f3", "Hervor Iron-Widow", "She lost every shield-brother to the swamp. Now she seeks vengeance on all who live.", 1250, 2), MB("mb_sw_m4", "Gorm the Undertaker", "He buries his victims in the mud where they rise again to serve him.", 1100, 1), MB("mb_sw_f4", "Solveig Mire-Singer", "Her voice carries through the fog, luring travelers into the drowning-deeps.", 1300, 2), MB("mb_sw_m5", "Bjarke Leech-Lord", "The bloodsuckers seem to obey his whispered commands. He is more swamp than man.", 1150, 1), MB("mb_sw_f5", "Vigdis Guck-Weaver", "She crafts traps from swamp-filth that would make a Draugr recoil.", 1200, 2));
			AddRaidBounties(list, "defeated_gdking", "HB_BountyNpc_T3", RD("rd_sw_1", "Silver Marauders", "Silver-clad raiders stalk the mist-shrouded bogs, hunting for worthy prey.", 3, 1500), RD("rd_sw_2", "The Drowned Company", "Battle-hardened and half-mad from the swamp. They fight as if already dead.", 4, 2000), RD("rd_sw_3", "Mire-Reavers", "They use the fog like a war-cloak, striking from the murk and melting away.", 3, 1800), RD("rd_sw_4", "Crypt-Raiders", "Tomb raiders armed with grave-plunder. They kill any witness to their sacrilege.", 4, 1900), RD("rd_sw_5", "The Rotting Hand", "Warriors who have embraced the swamp's decay and wear it like battle-paint.", 3, 1600), RD("rd_sw_6", "Bog-Runners", "Fast and lethal, they vault across the muck while their prey sinks and drowns.", 4, 2100), RD("rd_sw_7", "The Iron Tide", "An iron-clad warband pushing through the swamp, crushing all in their path.", 3, 1700), RD("rd_sw_8", "The Sunken Ones", "They emerge from black water where no man should survive. No one knows how.", 4, 2200), RD("rd_sw_9", "Wraith-Pact Warriors", "Warriors who have sworn oaths to the swamp spirits. They do not die easily.", 3, 1650), RD("rd_sw_10", "Mire-Wolves", "A wolfpack of fighters who hunt in formation through the sucking bog.", 4, 2300));
			AddKillBounties(list, "defeated_bonemass", "Medium", K("mt_wolf_1", "Fenrir's Get", "A wolf pack descends on climbers with fangs bared and frost on their breath.", "Wolf", 5, 150), K("mt_wolf_2", "Blood on the Snow", "The mountain is overrun — wolves howl from every ridge and ravine.", "Wolf", 15, 350), K("mt_drake_1", "Ice-Wyrm Hunters", "Frost Drakes rain shards of ice on anyone below. The skies are not safe.", "Hatchling", 5, 190), K("mt_drake_2", "Storm of Wings", "The skies are thick with Drakes. They must be thinned before passage is possible.", "Hatchling", 10, 340), K("mt_golem_1", "Stone-Breaker", "A Stone Golem blocks the mountain pass, grinding boulders in its fists.", "StoneGolem", 1, 200), K("mt_golem_2", "Walking Avalanche", "Multiple Golems descend the slopes, crushing everything in their grinding path.", "StoneGolem", 3, 420), K("mt_fenring_1", "Moon-Hunters", "Fenrings emerge under the cold stars, their howls echoing off the peaks.", "Fenring", 3, 340), K("mt_ulv_1", "Ghost-Wolves", "Ulvs haunt the mountain caves, spectral and savage in equal measure.", "Ulv", 5, 280), K("mt_bat_1", "The Shrieking Dark", "Swarms of bats pour from mountain caves, blotting out the light.", "Bat", 10, 150), K("mt_wolf_3", "Howling Peaks", "Wolf packs grow dangerously large on the heights. The mountain belongs to them.", "Wolf", 10, 260));
			AddMinibossBounties(list, "defeated_bonemass", "HB_BountyNpc_T4", MB("mb_mt_m1", "Skallagrim Frost-Bitten", "His silver weapons have claimed lives beyond counting. The cold has made him merciless.", 2000, 1), MB("mb_mt_f1", "Astrid Summit-Huntress", "She commands the wolves of the peaks and hunts alongside them.", 2200, 2), MB("mb_mt_m2", "Thorvald Blizzard-Born", "He walks through storms that would bury other men, blade in hand.", 2100, 1), MB("mb_mt_f2", "Brynhild the Avalanche", "She has crushed more challengers than any golem on the mountain.", 2400, 2), MB("mb_mt_m3", "Egil Frost-Warden", "Self-proclaimed guardian of the high passes. He lets no one through alive.", 2050, 1), MB("mb_mt_f3", "Eira Ice-Whisper", "She moves silently through the snow. Her victims never hear the killing blow.", 2300, 2), MB("mb_mt_m4", "Hallbjorn Peak-Breaker", "He breaks through shield-walls with the force of a mountain gale.", 2500, 1), MB("mb_mt_f4", "Dagny Crystal-Edge", "Her crystal-tipped weapons cut through armor as if it were cloth.", 2600, 2), MB("mb_mt_m5", "Arne the Cold One", "He feels nothing — not frost, not pain, not mercy.", 2150, 1), MB("mb_mt_f5", "Sif Storm-Caller", "She fights hardest when the blizzard howls, as if the storm answers her will.", 2350, 2));
			AddRaidBounties(list, "defeated_bonemass", "HB_BountyNpc_T4", RD("rd_mt_1", "Frost-Reavers", "Black metal glints in the cold air. These warriors have slain dragons for their steel.", 3, 3000), RD("rd_mt_2", "Summit Warhost", "They hold the highest peaks and challenge any fool who dares ascend.", 4, 4200), RD("rd_mt_3", "Blizzard Fangs", "They attack only during storms, invisible until the killing blow.", 3, 3500), RD("rd_mt_4", "The Summit-Guard", "Elite warriors sworn to hold the peaks against all comers. They have never broken.", 4, 4000), RD("rd_mt_5", "Silver Brotherhood", "Bound by silver and blood-oaths, they fight as one terrible weapon.", 3, 3200), RD("rd_mt_6", "Ulfhednar", "Berserkers who don wolf-skins and fight with the frenzy of Fenrir's children.", 4, 4500), RD("rd_mt_7", "The Frozen Ones", "Warriors who endure any cold, any wound. They do not stop.", 3, 3300), RD("rd_mt_8", "Crystal-Guard", "Armed with obsidian-edged weapons that sing in the frozen air.", 4, 4100), RD("rd_mt_9", "Hrimthursar's Kin", "Frost-touched warriors as unyielding as the mountain itself.", 3, 3400), RD("rd_mt_10", "The High King's Hird", "The finest warriors of the peaks, forged in ice and sworn to death.", 4, 4800));
			AddKillBounties(list, "defeated_dragon", "Hard", K("pl_fuling_1", "Goblin Outriders", "Fuling scouts probe the plains' edges, their crude spears gleaming with malice.", "Goblin", 8, 250), K("pl_fuling_2", "The Great Horde", "A Fuling invasion force marches across the golden fields. The earth trembles.", "Goblin", 25, 600), K("pl_brute_1", "Skull-Crushers", "Fuling Berserkers crush armor like parchment and bone like kindling.", "GoblinBrute", 2, 380), K("pl_brute_2", "The Wrecking Tide", "Multiple Berserkers on a rampage — nothing stands before them.", "GoblinBrute", 4, 650), K("pl_shaman_1", "Flame-Snuffers", "Fuling Shamans channel dark fire-magic that chars flesh and warps iron.", "GoblinShaman", 3, 300), K("pl_squito_1", "Needle-Storm", "Deathsquitos punch through armor with barbed stingers. Death by a thousand needles.", "Deathsquito", 10, 270), K("pl_squito_2", "Plague of Needles", "An overwhelming swarm descends. The buzzing alone drives warriors to madness.", "Deathsquito", 20, 500), K("pl_lox_1", "Beast-Feller", "Lox trample everything beneath their thundering hooves. Even the Fulings flee.", "Lox", 2, 320), K("pl_lox_2", "Thunder Hooves", "A herd of enraged Lox stampedes across the plains, crushing all in their wake.", "Lox", 5, 620), K("pl_tar_1", "Tar-Blight", "Tar Growths spread black corruption from bubbling pits. The land itself sickens.", "BlobTar", 5, 320));
			AddMinibossBounties(list, "defeated_dragon", "HB_BountyNpc_T5", MB("mb_pl_m1", "Ragnar Golden-Bane", "Carapace armor gleams on his shoulders. Even Fuling war-chiefs flee at his approach.", 3200, 1), MB("mb_pl_f1", "Freydis the Conqueress", "Her blade has carved a path through villages and war-camps alike.", 3600, 2), MB("mb_pl_m2", "Styrbjorn Dusk-Reaper", "He strikes at twilight when the golden light blinds. None have seen his face and lived.", 3800, 1), MB("mb_pl_f2", "Gudrun Shield-Maiden", "She fights as if Odin himself watches — because she believes he does.", 4000, 2), MB("mb_pl_m3", "Hakon Sand-Viper", "He strikes from the tall barley like a serpent, silent and lethal.", 3400, 1), MB("mb_pl_f3", "Alfhild Barley-Queen", "She controls the farmlands through fear and fire. The harvest is hers.", 3700, 2), MB("mb_pl_m4", "Bjorn Lox-Breaker", "He charges on foot but hits like a rampaging beast.", 4200, 1), MB("mb_pl_f4", "Ranveig Needle-Dancer", "She weaves through combat like a Deathsquito — impossible to pin down.", 3900, 2), MB("mb_pl_m5", "Jarl Skuli the Bloody", "A self-proclaimed jarl of terrible reputation. His saga is written in blood.", 4500, 1), MB("mb_pl_f5", "Sigrun Golden-Fury", "Fury incarnate on the golden fields. She fights until the plains run red.", 4100, 2));
			AddRaidBounties(list, "defeated_dragon", "HB_BountyNpc_T5", RD("rd_pl_1", "Carapace Raiders", "Clad in chitin-plate with exotic weapons and deadly coordination.", 4, 6000), RD("rd_pl_2", "The Conqueror's Hird", "The deadliest warband in the realm. Songs are sung of those brave enough to face them.", 5, 8500), RD("rd_pl_3", "Dusk-Riders", "They sweep the plains at sunset, silhouettes against the dying light.", 4, 7000), RD("rd_pl_4", "The Golden Host", "An army ablaze on the golden fields. Odin watches this battle.", 5, 9000), RD("rd_pl_5", "Fuling-Slayers", "They hunt Fulings for sport and wear their trophies as war-paint.", 4, 6500), RD("rd_pl_6", "Vanguard of the Fallen", "First into the shield-wall, last to retreat. They know no fear.", 5, 8000), RD("rd_pl_7", "Plains-Wolves", "Fast and lethal across open ground, they run down prey like a wolf pack.", 4, 7500), RD("rd_pl_8", "The Iron Harvest", "They reap what others have sown, and their scythes are sharpened steel.", 5, 9500), RD("rd_pl_9", "Blood-Drenched Veterans", "Survivors of a hundred battles. They fight without hesitation or mercy.", 4, 7200), RD("rd_pl_10", "Sand-Storm Berserkers", "They charge like wind across the plains, howling war-cries to Tyr.", 5, 10000));
			AddKillBounties(list, "defeated_goblinking", "Hard", K("ml_seeker_1", "Hive-Purge", "Seekers strike from the eternal twilight, their mandibles slick with venom.", "Seeker", 8, 420), K("ml_seeker_2", "The Infestation", "Seeker hives spread through every ruin and hollow. The mist breeds them endlessly.", "Seeker", 15, 680), K("ml_brute_1", "Chitin-Cracker", "Seeker Brutes guard the deepest hives, armored in plates that turn steel.", "SeekerBrute", 2, 500), K("ml_brute_2", "Chitin Siege", "Seeker Brutes blockade all passage through the mist. Exploration has ceased.", "SeekerBrute", 4, 880), K("ml_tick_1", "Bloodtick Purge", "Ticks drop from the canopy without warning, draining the life from armored warriors.", "Tick", 10, 360), K("ml_tick_2", "Canopy Scourge", "A plague of Ticks overwhelms even the strongest. The treetops writhe with them.", "Tick", 20, 620), K("ml_gjall_1", "Sky-Terror", "A Gjall rains explosive bile from above, cratering the earth below.", "Gjall", 1, 460), K("ml_gjall_2", "Bombardment", "Multiple Gjall turn the landscape into a cratered wasteland of fire and chitin.", "Gjall", 3, 920), K("ml_dvergr_1", "Rogue Dvergr", "Some Dvergr have turned hostile, wielding arcane weapons of terrible power.", "Dverger", 5, 540), K("ml_seeker_3", "The Deep Hive", "The largest hive pulses beneath the mist. It must be destroyed before it hatches.", "Seeker", 20, 800));
			AddMinibossBounties(list, "defeated_goblinking", "HB_BountyNpc_T6", MB("mb_ml_m1", "Arnbjorn Mist-Phantom", "Even the Seekers recoil from his approach. He is more wraith than warrior.", 5000, 1), MB("mb_ml_f1", "Aslaug the Ash-Born", "The most dangerous bounty ever nailed to Haldor's board. Approach with caution.", 5500, 2), MB("mb_ml_m2", "Fenrir Eitr-Walker", "His weapons hum with raw eitr. One cut festers into something worse than death.", 5800, 1), MB("mb_ml_f2", "Gunnhild Void-Walker", "She wears armor no living smith has ever forged. It moves with her like skin.", 6200, 2), MB("mb_ml_m3", "Snorri Mist-Reaver", "He strikes from the fog and vanishes, leaving only corpses and silence.", 5200, 1), MB("mb_ml_f3", "Torhild Seeker-Queen", "She moves like a Seeker but thinks like a war-chief. The worst of both worlds.", 6000, 2), MB("mb_ml_m4", "Floki the Dvergr-Touched", "Trained by the Dvergr in arts no human should know. His weapons defy nature.", 5600, 1), MB("mb_ml_f4", "Hallveig Chitin-Empress", "Carapace armor fused with eitr-magic. She is the mist made flesh.", 6500, 2), MB("mb_ml_m5", "Hrolf Shadow-Blade", "His blade drinks the light itself. You will not see the edge that ends you.", 5400, 1), MB("mb_ml_f5", "Sigrid Mist-Walker", "She has walked deeper into the mist than any living soul — and returned changed.", 6800, 2));
			AddRaidBounties(list, "defeated_goblinking", "HB_BountyNpc_T6", RD("rd_ml_1", "Flametal Brotherhood", "Their weapons blaze with flametal fire. Their coordinated assaults are devastating.", 4, 8500), RD("rd_ml_2", "Ashlands Vanguard", "An army unto themselves, forged in realms beyond the mist.", 5, 12000), RD("rd_ml_3", "The Void-Pact", "They fight in eerie silence, communicating without words. Unnerving and lethal.", 4, 9500), RD("rd_ml_4", "The Last Legion", "Flametal from helm to heel. The final obstacle between you and legend.", 5, 14000), RD("rd_ml_5", "Mist-Walkers", "They emerge from the fog as one, a wall of steel and eitr-glow.", 4, 9000), RD("rd_ml_6", "Eitr-Guard", "Their weapons crackle with eitr energy that burns through any defense.", 5, 13000), RD("rd_ml_7", "Chitin-Sworn", "Warriors bound in Seeker chitin who have surrendered their humanity.", 4, 10000), RD("rd_ml_8", "The Forgotten", "No saga remembers their names. Few who face them survive to sing one.", 5, 15000), RD("rd_ml_9", "Deep Patrol", "They patrol the deepest, darkest reaches of the mist where no light penetrates.", 4, 9800), RD("rd_ml_10", "Ragnarok's Herald", "The final challenge for any Viking who would earn a seat in Valhalla.", 5, 16000));
			return list;
		}

		private static KillDef K(string id, string title, string desc, string target, int amount, int reward)
		{
			KillDef result = default(KillDef);
			result.Id = id;
			result.Title = title;
			result.Desc = desc;
			result.Target = target;
			result.Amount = amount;
			result.Reward = reward;
			return result;
		}

		private static MinibossDef MB(string id, string title, string desc, int reward, int gender)
		{
			MinibossDef result = default(MinibossDef);
			result.Id = id;
			result.Title = title;
			result.Desc = desc;
			result.Reward = reward;
			result.Gender = gender;
			return result;
		}

		private static RaidDef RD(string id, string title, string desc, int amount, int reward)
		{
			RaidDef result = default(RaidDef);
			result.Id = id;
			result.Title = title;
			result.Desc = desc;
			result.Amount = amount;
			result.Reward = reward;
			return result;
		}

		private static void AddKillBounties(List<BountyEntry> list, string boss, string tier, params KillDef[] defs)
		{
			for (int i = 0; i < defs.Length; i++)
			{
				KillDef killDef = defs[i];
				list.Add(new BountyEntry
				{
					Id = killDef.Id,
					Title = killDef.Title,
					Description = killDef.Desc,
					Type = "Kill",
					Target = killDef.Target,
					Amount = killDef.Amount,
					Reward = killDef.Reward,
					RequiredBoss = boss,
					Tier = tier
				});
			}
		}

		private static void AddMinibossBounties(List<BountyEntry> list, string boss, string target, params MinibossDef[] defs)
		{
			for (int i = 0; i < defs.Length; i++)
			{
				MinibossDef minibossDef = defs[i];
				list.Add(new BountyEntry
				{
					Id = minibossDef.Id,
					Title = minibossDef.Title,
					Description = minibossDef.Desc,
					Type = "Kill",
					Target = target,
					Amount = 1,
					Reward = minibossDef.Reward,
					RequiredBoss = boss,
					SpawnLevel = 1,
					Tier = "Miniboss",
					Gender = minibossDef.Gender
				});
			}
		}

		private static void AddRaidBounties(List<BountyEntry> list, string boss, string target, params RaidDef[] defs)
		{
			for (int i = 0; i < defs.Length; i++)
			{
				RaidDef raidDef = defs[i];
				list.Add(new BountyEntry
				{
					Id = raidDef.Id,
					Title = raidDef.Title,
					Description = raidDef.Desc,
					Type = "Kill",
					Target = target,
					Amount = raidDef.Amount,
					Reward = raidDef.Reward,
					RequiredBoss = boss,
					SpawnLevel = 1,
					Tier = "Raid"
				});
			}
		}
	}
	[BepInPlugin("com.haldor.bounties", "Haldor Bounties", "0.0.5")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class HaldorBounties : BaseUnityPlugin
	{
		public const string PluginGUID = "com.haldor.bounties";

		public const string PluginName = "Haldor Bounties";

		public const string PluginVersion = "0.0.5";

		private static Harmony _harmony;

		internal static ManualLogSource Log;

		private bool _wasInAttack;

		private void Awake()
		{
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Expected O, but got Unknown
			Log = ((BaseUnityPlugin)this).Logger;
			Log.LogInfo((object)"Haldor Bounties v0.0.5 loading...");
			BountyConfig.Initialize(Path.Combine(Paths.ConfigPath, "HaldorBounties.bounties.json"));
			BountyManager.Initialize();
			TreasureMapManager.Initialize();
			_harmony = new Harmony("com.haldor.bounties");
			try
			{
				_harmony.PatchAll(Assembly.GetExecutingAssembly());
			}
			catch (Exception arg)
			{
				Log.LogError((object)$"[HaldorBounties] Harmony PatchAll failed: {arg}");
			}
			int num = 0;
			foreach (MethodBase patchedMethod in _harmony.GetPatchedMethods())
			{
				_ = patchedMethod;
				num++;
			}
			Log.LogInfo((object)string.Format("{0} loaded successfully! ({1} methods patched)", "Haldor Bounties", num));
		}

		private void Update()
		{
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			//IL_007f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Invalid comparison between Unknown and I4
			BountyManager.Instance?.UpdateBountyPins();
			BountyManager.Instance?.UpdateBossHudRange();
			TreasureMapManager.Instance?.Tick();
			Player localPlayer = Player.m_localPlayer;
			if (!((Object)(object)localPlayer != (Object)null))
			{
				return;
			}
			bool flag = ((Character)localPlayer).InAttack();
			if (flag && !_wasInAttack)
			{
				ItemData currentWeapon = ((Humanoid)localPlayer).GetCurrentWeapon();
				if (currentWeapon != null && (int)(currentWeapon.m_shared?.m_skillType).GetValueOrDefault() == 12)
				{
					TreasureMapManager.Instance?.OnPlayerAttack();
				}
			}
			_wasInAttack = flag;
		}

		private void OnDestroy()
		{
			Harmony harmony = _harmony;
			if (harmony != null)
			{
				harmony.UnpatchSelf();
			}
			ManualLogSource log = Log;
			if (log != null)
			{
				log.LogInfo((object)"Haldor Bounties unloaded.");
			}
		}
	}
	public static class Translations
	{
		private static Dictionary<string, Dictionary<string, string>> _data;

		private static Dictionary<string, string> _gameTranslations;

		public static string Get(string key)
		{
			Localization instance = Localization.instance;
			return ((instance != null) ? instance.Localize("$" + key) : null) ?? key;
		}

		public static string Get(string key, object a0)
		{
			return string.Format(Get(key), a0);
		}

		public static string Get(string key, object a0, object a1)
		{
			return string.Format(Get(key), a0, a1);
		}

		public static string Get(string key, object a0, object a1, object a2)
		{
			return string.Format(Get(key), a0, a1, a2);
		}

		public static void RegisterAll(Localization loc)
		{
			if (loc == null)
			{
				return;
			}
			if (_data == null)
			{
				Init();
			}
			if (typeof(Localization).GetField("m_translations", BindingFlags.Instance | BindingFlags.NonPublic)?.GetValue(loc) is Dictionary<string, string> gameTranslations)
			{
				_gameTranslations = gameTranslations;
				string selectedLanguage = loc.GetSelectedLanguage();
				Apply("English");
				if (selectedLanguage != "English")
				{
					Apply(selectedLanguage);
				}
			}
		}

		private static void Apply(string lang)
		{
			if (_gameTranslations == null || !_data.TryGetValue(lang, out var value))
			{
				return;
			}
			foreach (KeyValuePair<string, string> item in value)
			{
				_gameTranslations[item.Key] = item.Value;
			}
		}

		private static void L(string lang, params string[] pairs)
		{
			if (!_data.ContainsKey(lang))
			{
				_data[lang] = new Dictionary<string, string>();
			}
			Dictionary<string, string> dictionary = _data[lang];
			for (int i = 0; i < pairs.Length - 1; i += 2)
			{
				dictionary[pairs[i]] = pairs[i + 1];
			}
		}

		private static void Init()
		{
			_data = new Dictionary<string, Dictionary<string, string>>();
			L("English", "hb_available", "Available", "hb_active", "Active", "hb_completed", "Completed", "hb_bounties", "Bounties", "hb_select_bounty", "Select a bounty", "hb_accept", "Accept", "hb_abandon", "Abandon", "hb_reward_options", "Reward Options:", "hb_choose_reward", "Choose your reward:", "hb_diff_easy", "Difficulty: Easy", "hb_diff_medium", "Difficulty: Medium", "hb_diff_hard", "Difficulty: Hard", "hb_miniboss_bounty", "Miniboss Bounty", "hb_raid_bounty", "Raid Bounty", "hb_treasure_title", "Daily Treasure Map", "hb_treasure_claimed_title", "Treasure Claimed!", "hb_treasure_region_tbd", "Region: determined on acceptance", "hb_treasure_desc_avail", "A weathered map marks a buried treasure somewhere in the wilds. Accept the map to reveal the dig site on your minimap.", "hb_treasure_desc_active", "Follow the golden marker on your minimap to the dig site. Swing your pickaxe to dig — after enough hits, the search area narrows until the treasure is unearthed.", "hb_treasure_desc_claimed", "You've claimed today's treasure. A new map will be available after the daily reset.", "hb_treasure_goal_avail", "Accept the map to begin", "hb_treasure_goal_active", "Find and open the buried treasure", "hb_treasure_goal_claimed", "Treasure claimed!", "hb_treasure_chest_reward", "Rewards inside the chest", "hb_accept_map", "Accept Map", "hb_map_active", "Map Active", "hb_claimed", "Claimed", "hb_msg_already_active", "You already have an active treasure map.", "hb_msg_no_dig_site", "No valid dig site found. Try again in a different area.", "hb_msg_map_accepted", "Treasure map accepted! Follow the minimap pin to the dig site.", "hb_msg_chest_nearby", "Your buried chest is nearby — open it!", "hb_msg_area_narrowed", "Getting closer! Search area narrowed to {0}m.", "hb_msg_digging", "Digging... ({0} more hits to narrow)", "hb_msg_claimed_tomorrow", "Treasure claimed! A new map will be available tomorrow.", "hb_msg_dig_swing", "Dig site! Swing to dig. ({0} hits to narrow)", "hb_msg_nearby", "Treasure nearby! ({0}m away)", "hb_msg_unearthed", "Treasure unearthed! Open the chest to claim your reward.", "hb_day_reset", "Day {0}  Resets in {1}:{2}", "hb_dist_away", "{0}m away", "hb_new_in", "New in {0}:{1}", "hb_progress_fmt", "Progress: {0} / {1}", "hb_completed_status", "COMPLETED", "hb_dig_site", "Dig Site", "hb_dist_to_dig", "{0}m to dig site", "hb_region_fmt", "Region: {0}", "hb_msg_boss_appeared", "{0} has appeared in the wild!", "hb_msg_bounty_complete", "Bounty Complete: {0}!", "hb_msg_deposited", "Deposited {0} coins into your bank!", "hb_bounty_reset", "All bounties have been reset!");
			L("Bulgarian", "hb_available", "Налични", "hb_active", "Активни", "hb_completed", "Завършени", "hb_bounties", "Награди", "hb_select_bounty", "Изберете награда", "hb_accept", "Приеми", "hb_abandon", "Откажи се", "hb_reward_options", "Опции за награда:", "hb_choose_reward", "Изберете наградата си:", "hb_diff_easy", "Трудност: Лесно", "hb_diff_medium", "Трудност: Средно", "hb_diff_hard", "Трудност: Трудно", "hb_miniboss_bounty", "Награда за минибос", "hb_raid_bounty", "Награда за набег", "hb_treasure_title", "Дневна карта на съкровището", "hb_treasure_claimed_title", "Съкровището е взето!", "hb_treasure_region_tbd", "Регион: определя се при приемане", "hb_treasure_desc_avail", "Износена карта отбелязва заровено съкровище някъде в пустошта. Приемете картата, за да разкриете мястото за копане на миникартата.", "hb_treasure_desc_active", "Следвайте златния маркер на миникартата до мястото за копане. Ударяйте с кирката — след достатъчно удари зоната за търсене се стеснява, докато съкровището бъде разкрито.", "hb_treasure_desc_claimed", "Взехте днешното съкровище. Нова карта ще бъде налична след дневното нулиране.", "hb_treasure_goal_avail", "Приемете картата, за да започнете", "hb_treasure_goal_active", "Намерете и отворете заровеното съкровище", "hb_treasure_goal_claimed", "Съкровището е взето!", "hb_treasure_chest_reward", "Награди в съндъка", "hb_accept_map", "Приеми карта", "hb_map_active", "Картата е активна", "hb_claimed", "Взето", "hb_msg_already_active", "Вече имате активна карта на съкровището.", "hb_msg_no_dig_site", "Не е намерено валидно място за копане. Опитайте отново в друг район.", "hb_msg_map_accepted", "Картата е приета! Следвайте маркера на миникартата до мястото за копане.", "hb_msg_chest_nearby", "Вашият заровен съндък е наблизо — отворете го!", "hb_msg_area_narrowed", "Наближавате се! Зоната за търсене се стесни до {0}м.", "hb_msg_digging", "Копаете... (още {0} удара до стесняване)", "hb_msg_claimed_tomorrow", "Съкровището е взето! Нова карта ще бъде налична утре.", "hb_msg_dig_swing", "Място за копане! Ударяйте, за да копаете. ({0} удара до стесняване)", "hb_msg_nearby", "Съкровище наблизо! ({0}м)", "hb_msg_unearthed", "Съкровището е разкрито! Отворете съндъка, за да вземете наградата си.", "hb_day_reset", "Ден {0}  Нулиране след {1}:{2}", "hb_dist_away", "{0}м", "hb_new_in", "Нова след {0}:{1}", "hb_progress_fmt", "Прогрес: {0} / {1}", "hb_completed_status", "ЗАВЪРШЕНО", "hb_dig_site", "Място за копане", "hb_dist_to_dig", "{0}м до мястото за копане", "hb_region_fmt", "Регион: {0}", "hb_msg_boss_appeared", "{0} се появи в пустошта!", "hb_msg_bounty_complete", "Награда завършена: {0}!", "hb_msg_deposited", "Внесени {0} монети в банката ви!", "hb_bounty_reset", "Всички награди бяха нулирани!");
			L("Chinese", "hb_available", "可接取", "hb_active", "进行中", "hb_completed", "已完成", "hb_bounties", "赏金任务", "hb_select_bounty", "选择一个赏金任务", "hb_accept", "接受", "hb_abandon", "放弃", "hb_reward_options", "奖励选项:", "hb_choose_reward", "选择你的奖励:", "hb_diff_easy", "难度:简单", "hb_diff_medium", "难度:中等", "hb_diff_hard", "难度:困难", "hb_miniboss_bounty", "小Boss赏金", "hb_raid_bounty", "突袭赏金", "hb_treasure_title", "每日藏宝图", "hb_treasure_claimed_title", "宝藏已领取!", "hb_treasure_region_tbd", "地区:接受后确定", "hb_treasure_desc_avail", "一张破旧的地图标记着埋藏在荒野中某处的宝藏。接受地图以在小地图上显示挖掘地点。", "hb_treasure_desc_active", "跟随小地图上的金色标记前往挖掘地点。挥动你的镐——经过足够的击打后,搜索区域会缩小,直到宝藏被挖出。", "hb_treasure_desc_claimed", "你已领取了今天的宝藏。每日重置后将有新的地图可用。", "hb_treasure_goal_avail", "接受地图以开始", "hb_treasure_goal_active", "找到并打开埋藏的宝藏", "hb_treasure_goal_claimed", "宝藏已领取!", "hb_treasure_chest_reward", "宝箱内的奖励", "hb_accept_map", "接受地图", "hb_map_active", "地图激活中", "hb_claimed", "已领取", "hb_msg_already_active", "你已经有一张激活的藏宝图了。", "hb_msg_no_dig_site", "未找到有效的挖掘地点。请在其他区域重试。", "hb_msg_map_accepted", "藏宝图已接受!跟随小地图标记前往挖掘地点。", "hb_msg_chest_nearby", "你的宝箱就在附近——打开它!", "hb_msg_area_narrowed", "越来越近了!搜索区域缩小至{0}m。", "hb_msg_digging", "挖掘中...(再击打{0}次可缩小范围)", "hb_msg_claimed_tomorrow", "宝藏已领取!明天将有新的地图可用。", "hb_msg_dig_swing", "挖掘地点!挥动工具来挖掘。({0}次击打可缩小范围)", "hb_msg_nearby", "宝藏就在附近!({0}m远)", "hb_msg_unearthed", "宝藏出土了!打开宝箱领取你的奖励。", "hb_day_reset", "第{0}天  {1}:{2}后重置", "hb_dist_away", "{0}m远", "hb_new_in", "{0}:{1}后刷新", "hb_progress_fmt", "进度:{0} / {1}", "hb_completed_status", "已完成", "hb_dig_site", "挖掘地点", "hb_dist_to_dig", "距挖掘地点{0}m", "hb_region_fmt", "地区:{0}", "hb_msg_boss_appeared", "{0}出现在了荒野中!", "hb_msg_bounty_complete", "赏金完成:{0}!", "hb_msg_deposited", "已存入{0}金币到你的银行!", "hb_bounty_reset", "所有赏金任务已重置!");
			L("Chinese_Trad", "hb_available", "可接取", "hb_active", "進行中", "hb_completed", "已完成", "hb_bounties", "懸賞任務", "hb_select_bounty", "選擇一個懸賞任務", "hb_accept", "接受", "hb_abandon", "放棄", "hb_reward_options", "獎勵選項:", "hb_choose_reward", "選擇你的獎勵:", "hb_diff_easy", "難度:簡單", "hb_diff_medium", "難度:中等", "hb_diff_hard", "難度:困難", "hb_miniboss_bounty", "小Boss懸賞", "hb_raid_bounty", "突襲懸賞", "hb_treasure_title", "每日藏寶圖", "hb_treasure_claimed_title", "寶藏已領取!", "hb_treasure_region_tbd", "地區:接受後確定", "hb_treasure_desc_avail", "一張破舊的地圖標記著埋藏在荒野中某處的寶藏。接受地圖以在小地圖上顯示挖掘地點。", "hb_treasure_desc_active", "跟隨小地圖上的金色標記前往挖掘地點。揮動你的鑐——經過足夠的擊打後,搜索區域會縮小,直到寶藏被挖出。", "hb_treasure_desc_claimed", "你已領取了今天的寶藏。每日重置後將有新的地圖可用。", "hb_treasure_goal_avail", "接受地圖以開始", "hb_treasure_goal_active", "找到並打開埋藏的寶藏", "hb_treasure_goal_claimed", "寶藏已領取!", "hb_treasure_chest_reward", "寶箱內的獎勵", "hb_accept_map", "接受地圖", "hb_map_active", "地圖激活中", "hb_claimed", "已領取", "hb_msg_already_active", "你已經有一張激活的藏寶圖了。", "hb_msg_no_dig_site", "未找到有效的挖掘地點。請在其他區域重試。", "hb_msg_map_accepted", "藏寶圖已接受!跟隨小地圖標記前往挖掘地點。", "hb_msg_chest_nearby", "你的寶箱就在附近——打開它!", "hb_msg_area_narrowed", "越來越近了!搜索區域縮小至{0}m。", "hb_msg_digging", "挖掘中...(再擊打{0}次可縮小範圍)", "hb_msg_claimed_tomorrow", "寶藏已領取!明天將有新的地圖可用。", "hb_msg_dig_swing", "挖掘地點!揮動工具來挖掘。({0}次擊打可縮小範圍)", "hb_msg_nearby", "寶藏就在附近!({0}m遠)", "hb_msg_unearthed", "寶藏出土了!打開寶箱領取你的獎勵。", "hb_day_reset", "第{0}天  {1}:{2}後重置", "hb_dist_away", "{0}m遠", "hb_new_in", "{0}:{1}後刷新", "hb_progress_fmt", "進度:{0} / {1}", "hb_completed_status", "已完成", "hb_dig_site", "挖掘地點", "hb_dist_to_dig", "距挖掘地點{0}m", "hb_region_fmt", "地區:{0}", "hb_msg_boss_appeared", "{0}出現在了荒野中!", "hb_msg_bounty_complete", "懸賞完成:{0}!", "hb_msg_deposited", "已存入{0}金幣到你的銀行!", "hb_bounty_reset", "所有懸賞任務已重置!");
			L("Croatian", "hb_available", "Dostupno", "hb_active", "Aktivno", "hb_completed", "Završeno", "hb_bounties", "Nagrade", "hb_select_bounty", "Odaberite nagradu", "hb_accept", "Prihvati", "hb_abandon", "Odustani", "hb_reward_options", "Opcije nagrade:", "hb_choose_reward", "Odaberite svoju nagradu:", "hb_diff_easy", "Težina: Lako", "hb_diff_medium", "Težina: Srednje", "hb_diff_hard", "Težina: Teško", "hb_miniboss_bounty", "Nagrada za minibossa", "hb_raid_bounty", "Nagrada za napad", "hb_treasure_title", "Dnevna karta blaga", "hb_treasure_claimed_title", "Blago preuzeto!", "hb_treasure_region_tbd", "Regija: određuje se pri prihvaćanju", "hb_treasure_desc_avail", "Istrošena karta označava zakopano blago negdje u divljini. Prihvatite kartu da biste otkrili mjesto kopanja na minikarti.", "hb_treasure_desc_active", "Slijedite zlatni marker na minikarti do mjesta kopanja. Zamahnite pijukom — nakon dovoljno udaraca, područje pretraživanja se sužava dok se blago ne otkrije.", "hb_treasure_desc_claimed", "Preuzeli ste današnje blago. Nova karta bit će dostupna nakon dnevnog resetiranja.", "hb_treasure_goal_avail", "Prihvatite kartu za početak", "hb_treasure_goal_active", "Pronađite i otvorite zakopano blago", "hb_treasure_goal_claimed", "Blago preuzeto!", "hb_treasure_chest_reward", "Nagrade u škrinji", "hb_accept_map", "Prihvati kartu", "hb_map_active", "Karta aktivna", "hb_claimed", "Preuzeto", "hb_msg_already_active", "Već imate aktivnu kartu blaga.", "hb_msg_no_dig_site", "Nije pronađeno valjano mjesto za kopanje. Pokušajte ponovno u drugom području.", "hb_msg_map_accepted", "Karta blaga prihvaćena! Slijedite oznaku na minikarti do mjesta kopanja.", "hb_msg_chest_nearby", "Vaša zakopana škrinja je u blizini — otvorite je!", "hb_msg_area_narrowed", "Bliže ste! Područje pretraživanja suženo na {0}m.", "hb_msg_digging", "Kopanje... (još {0} udaraca do suženja)", "hb_msg_claimed_tomorrow", "Blago preuzeto! Nova karta bit će dostupna sutra.", "hb_msg_dig_swing", "Mjesto kopanja! Zamahnite za kopanje. ({0} udaraca do suženja)", "hb_msg_nearby", "Blago u blizini! ({0}m daleko)", "hb_msg_unearthed", "Blago otkriveno! Otvorite škrinju da preuzmete nagradu.", "hb_day_reset", "Dan {0}  Resetiranje za {1}:{2}", "hb_dist_away", "{0}m daleko", "hb_new_in", "Nova za {0}:{1}", "hb_progress_fmt", "Napredak: {0} / {1}", "hb_completed_status", "ZAVRŠENO", "hb_dig_site", "Mjesto kopanja", "hb_dist_to_dig", "{0}m do mjesta kopanja", "hb_region_fmt", "Regija: {0}", "hb_msg_boss_appeared", "{0} se pojavio u divljini!", "hb_msg_bounty_complete", "Nagrada završena: {0}!", "hb_msg_deposited", "Položeno {0} novčića u vašu banku!", "hb_bounty_reset", "Sve nagrade su resetirane!");
			L("Czech", "hb_available", "Dostupné", "hb_active", "Aktivní", "hb_completed", "Dokončeno", "hb_bounties", "Odměny", "hb_select_bounty", "Vyberte odměnu", "hb_accept", "Přijmout", "hb_abandon", "Opustit", "hb_reward_options", "Možnosti odměny:", "hb_choose_reward", "Vyberte si odměnu:", "hb_diff_easy", "Obtížnost: Snadná", "hb_diff_medium", "Obtížnost: Střední", "hb_diff_hard", "Obtížnost: Těžká", "hb_miniboss_bounty", "Odměna za minibossa", "hb_raid_bounty", "Odměna za nájezd", "hb_treasure_title", "Denní mapa pokladu", "hb_treasure_claimed_title", "Poklad získán!", "hb_treasure_region_tbd", "Oblast: určí se při přijetí", "hb_treasure_desc_avail", "Zvětralá mapa označuje zahrabaný poklad někde v divé krajině. Přijměte mapu pro zobrazení místa kopání na minimapě.", "hb_treasure_desc_active", "Sledujte zlatý značku na minimapě k místu kopání. Mávněte krumpáčem — po dostatečném počtu úderů se prohledávaná oblast zúží, dokud nebude poklad odhalen.", "hb_treasure_desc_claimed", "Získali jste dnešní poklad. Nová mapa bude dostupná po denním resetu.", "hb_treasure_goal_avail", "Přijměte mapu pro zahájení", "hb_treasure_goal_active", "Najděte a otevřete zahrabaný poklad", "hb_treasure_goal_claimed", "Poklad získán!", "hb_treasure_chest_reward", "Odměny v truhle", "hb_accept_map", "Přijmout mapu", "hb_map_active", "Mapa aktivní", "hb_claimed", "Získáno", "hb_msg_already_active", "Již máte aktivní mapu pokladu.", "hb_msg_no_dig_site", "Nebylo nalezeno platné místo pro kopání. Zkuste to znovu v jiné oblasti.", "hb_msg_map_accepted", "Mapa pokladu přijata! Sledujte značku na minimapě k místu kopání.", "hb_msg_chest_nearby", "Vaše zahrabaná truhla je poblíž — otevřete ji!", "hb_msg_area_narrowed", "Blížíte se! Oblast prohledávání zúžena na {0}m.", "hb_msg_digging", "Kopání... (ještě {0} úderů do zúžení)", "hb_msg_claimed_tomorrow", "Poklad získán! Nová mapa bude dostupná zítra.", "hb_msg_dig_swing", "Místo kopání! Mávněte pro kopání. ({0} úderů do zúžení)", "hb_msg_nearby", "Poklad nablízku! ({0}m daleko)", "hb_msg_unearthed", "Poklad odhalen! Otevřete truhlu pro získání odměny.", "hb_day_reset", "Den {0}  Reset za {1}:{2}", "hb_dist_away", "{0}m daleko", "hb_new_in", "Nová za {0}:{1}", "hb_progress_fmt", "Postůp: {0} / {1}", "hb_completed_status", "DOKONČENO", "hb_dig_site", "Místo kopání", "hb_dist_to_dig", "{0}m k místu kopání", "hb_region_fmt", "Oblast: {0}", "hb_msg_boss_appeared", "{0} se objevil v divé krajině!", "hb_msg_bounty_complete", "Odměna dokončena: {0}!", "hb_msg_deposited", "Uloženo {0} mincí do vaší banky!", "hb_bounty_reset", "Všechny odměny byly resetovány!");
			L("Danish", "hb_available", "Tilgængelig", "hb_active", "Aktiv", "hb_completed", "Fuldført", "hb_bounties", "Dusører", "hb_select_bounty", "Vælg en dusør", "hb_accept", "Accepter", "hb_abandon", "Opgiv", "hb_reward_options", "Belønningsmuligheder:", "hb_choose_reward", "Vælg din belønning:", "hb_diff_easy", "Sværhedsgrad: Let", "hb_diff_medium", "Sværhedsgrad: Middel", "hb_diff_hard", "Sværhedsgrad: Svær", "hb_miniboss_bounty", "Miniboss-dusør", "hb_raid_bounty", "Raid-dusør", "hb_treasure_title", "Dagligt skattekort", "hb_treasure_claimed_title", "Skat fundet!", "hb_treasure_region_tbd", "Region: bestemmes ved accept", "hb_treasure_desc_avail", "Et sliddt kort markerer en begravet skat et sted i vildmarken. Accepter kortet for at afsløre gravstedet på dit minikort.", "hb_treasure_desc_active", "Følg den gyldne markør på dit minikort til gravstedet. Sving din hakke — efter nok slag indsnævres søgeområdet, indtil skatten er afdækket.", "hb_treasure_desc_claimed", "Du har hentet dagens skat. Et nyt kort vil være tilgængeligt efter den daglige nulstilling.", "hb_treasure_goal_avail", "Accepter kortet for at begynde", "hb_treasure_goal_active", "Find og åbn den begravede skat", "hb_treasure_goal_claimed", "Skat fundet!", "hb_treasure_chest_reward", "Belønninger i kisten", "hb_accept_map", "Accepter kort", "hb_map_active", "Kort aktivt", "hb_claimed", "Hentet", "hb_msg_already_active", "Du har allerede et aktivt skattekort.", "hb_msg_no_dig_site", "Intet gyldigt gravsted fundet. Prøv igen i et andet område.", "hb_msg_map_accepted", "Skattekort accepteret! Følg minikortets markør til gravstedet.", "hb_msg_chest_nearby", "Din begravede kiste er tæt på — åbn den!", "hb_msg_area_narrowed", "Tættere på! Søgeområdet indsnævret til {0}m.", "hb_msg_digging", "Graver... ({0} slag til indsnævring)", "hb_msg_claimed_tomorrow", "Skat fundet! Et nyt kort vil være tilgængeligt i morgen.", "hb_msg_dig_swing", "Gravsted! Sving for at grave. ({0} slag til indsnævring)", "hb_msg_nearby", "Skat i nærheden! ({0}m væk)", "hb_msg_unearthed", "Skat afdækket! Åbn kisten for at hente din belønning.", "hb_day_reset", "Dag {0}  Nulstilles om {1}:{2}", "hb_dist_away", "{0}m væk", "hb_new_in", "Nyt om {0}:{1}", "hb_progress_fmt", "Fremskridt: {0} / {1}", "hb_completed_status", "FULDFØRT", "hb_dig_site", "Gravsted", "hb_dist_to_dig", "{0}m til gravsted", "hb_region_fmt", "Region: {0}", "hb_msg_boss_appeared", "{0} er dukket op i vildmarken!", "hb_msg_bounty_complete", "Dusør fuldført: {0}!", "hb_msg_deposited", "Indbetalt {0} mønter til din bank!", "hb_bounty_reset", "Alle dusører er nulstillet!");
			InitEuropean();
			InitAsian();
			InitRemainder();
		}

		private static void InitEuropean()
		{
			L("Dutch", "hb_available", "Beschikbaar", "hb_active", "Actief", "hb_completed", "Voltooid", "hb_bounties", "Premies", "hb_select_bounty", "Selecteer een premie", "hb_accept", "Accepteren", "hb_abandon", "Opgeven", "hb_reward_options", "Beloningsopties:", "hb_choose_reward", "Kies je beloning:", "hb_diff_easy", "Moeilijkheid: Makkelijk", "hb_diff_medium", "Moeilijkheid: Gemiddeld", "hb_diff_hard", "Moeilijkheid: Moeilijk", "hb_miniboss_bounty", "Miniboss-premie", "hb_raid_bounty", "Overval-premie", "hb_treasure_title", "Dagelijkse schatkaart", "hb_treasure_claimed_title", "Schat gevonden!", "hb_treasure_region_tbd", "Regio: bepaald bij acceptatie", "hb_treasure_desc_avail", "Een verweerde kaart markeert een begraven schat ergens in de wildernis. Accepteer de kaart om de graafplaats op je minikaart te onthullen.", "hb_treasure_desc_active", "Volg de gouden markering op je minikaart naar de graafplaats. Zwaai met je houweel — na genoeg slagen wordt het zoekgebied kleiner totdat de schat is blootgelegd.", "hb_treasure_desc_claimed", "Je hebt de schat van vandaag opgehaald. Een nieuwe kaart is beschikbaar na de dagelijkse reset.", "hb_treasure_goal_avail", "Accepteer de kaart om te beginnen", "hb_treasure_goal_active", "Vind en open de begraven schat", "hb_treasure_goal_claimed", "Schat gevonden!", "hb_treasure_chest_reward", "Beloningen in de kist", "hb_accept_map", "Accepteer kaart", "hb_map_active", "Kaart actief", "hb_claimed", "Opgehaald", "hb_msg_already_active", "Je hebt al een actieve schatkaart.", "hb_msg_no_dig_site", "Geen geldige graafplaats gevonden. Probeer het opnieuw in een ander gebied.", "hb_msg_map_accepted", "Schatkaart geaccepteerd! Volg de markering op de minikaart naar de graafplaats.", "hb_msg_chest_nearby", "Je begraven kist is dichtbij — open hem!", "hb_msg_area_narrowed", "Dichterbij! Zoekgebied verkleind tot {0}m.", "hb_msg_digging", "Graven... (nog {0} slagen tot verkleining)", "hb_msg_claimed_tomorrow", "Schat gevonden! Een nieuwe kaart is morgen beschikbaar.", "hb_msg_dig_swing", "Graafplaats! Zwaai om te graven. ({0} slagen tot verkleining)", "hb_msg_nearby", "Schat dichtbij! ({0}m verderop)", "hb_msg_unearthed", "Schat blootgelegd! Open de kist om je beloning op te halen.", "hb_day_reset", "Dag {0}  Reset over {1}:{2}", "hb_dist_away", "{0}m verderop", "hb_new_in", "Nieuw over {0}:{1}", "hb_progress_fmt", "Voortgang: {0} / {1}", "hb_completed_status", "VOLTOOID", "hb_dig_site", "Graafplaats", "hb_dist_to_dig", "{0}m tot graafplaats", "hb_region_fmt", "Regio: {0}", "hb_msg_boss_appeared", "{0} is verschenen in de wildernis!", "hb_msg_bounty_complete", "Premie voltooid: {0}!", "hb_msg_deposited", "{0} munten gestort op je bank!", "hb_bounty_reset", "Alle premies zijn gereset!");
			L("Finnish", "hb_available", "Saatavilla", "hb_active", "Aktiivinen", "hb_completed", "Valmis", "hb_bounties", "Palkkiot", "hb_select_bounty", "Valitse palkkio", "hb_accept", "Hyväksy", "hb_abandon", "Hylkää", "hb_reward_options", "Palkkiovaihtoehdot:", "hb_choose_reward", "Valitse palkkiosi:", "hb_diff_easy", "Vaikeus: Helppo", "hb_diff_medium", "Vaikeus: Keskivaikea", "hb_diff_hard", "Vaikeus: Vaikea", "hb_miniboss_bounty", "Minibossin palkkio", "hb_raid_bounty", "Hyökkäyspalkkio", "hb_treasure_title", "Päivittäinen aarrekartta", "hb_treasure_claimed_title", "Aarre löydetty!", "hb_treasure_region_tbd", "Alue: määritetään hyväksymisen yhteydessä", "hb_treasure_desc_avail", "Kulunut kartta merkitsee haudatun aarteen jonnekin erämaahan. Hyväksy kartta paljastaaksesi kaivuupaikan minikartallasi.", "hb_treasure_desc_active", "Seuraa kultaista merkkiä minikartallasi kaivuupaikalle. Heiluta hakkulasi — riittävän monen iskun jälkeen hakualue pienenee kunnes aarre paljastuu.", "hb_treasure_desc_claimed", "Olet hakenut päivän aarteen. Uusi kartta on saatavilla päivittäisen nollauksen jälkeen.", "hb_treasure_goal_avail", "Hyväksy kartta aloittaaksesi", "hb_treasure_goal_active", "Etsi ja avaa haudattu aarre", "hb_treasure_goal_claimed", "Aarre löydetty!", "hb_treasure_chest_reward", "Palkinnot arkussa", "hb_accept_map", "Hyväksy kartta", "hb_map_active", "Kartta aktiivinen", "hb_claimed", "Haettu", "hb_msg_already_active", "Sinulla on jo aktiivinen aarrekartta.", "hb_msg_no_dig_site", "Kelvollista kaivuupaikkaa ei löytynyt. Yritä uudelleen toisella alueella.", "hb_msg_map_accepted", "Aarrekartta hyväksytty! Seuraa minikartan merkkiä kaivuupaikalle.", "hb_msg_chest_nearby", "Haudattu arkkusi on lähellä — avaa se!", "hb_msg_area_narrowed", "Lähempänä! Hakualue pieneni {0}m:iin.", "hb_msg_digging", "Kaivetaan... ({0} iskua pienennykseen)", "hb_msg_claimed_tomorrow", "Aarre löydetty! Uusi kartta on saatavilla huomenna.", "hb_msg_dig_swing", "Kaivuupaikka! Heiluta kaivaaksesi. ({0} iskua pienennykseen)", "hb_msg_nearby", "Aarre lähellä! ({0}m päässä)", "hb_msg_unearthed", "Aarre paljastettu! Avaa arkku hakeaksesi palkkiosi.", "hb_day_reset", "Päivä {0}  Nollaus {1}:{2}", "hb_dist_away", "{0}m päässä", "hb_new_in", "Uusi {0}:{1}", "hb_progress_fmt", "Edistyminen: {0} / {1}", "hb_completed_status", "VALMIS", "hb_dig_site", "Kaivuupaikka", "hb_dist_to_dig", "{0}m kaivuupaikalle", "hb_region_fmt", "Alue: {0}", "hb_msg_boss_appeared", "{0} on ilmestynyt erämaahan!", "hb_msg_bounty_complete", "Palkkio valmis: {0}!", "hb_msg_deposited", "{0} kolikkoa talletettu pankkiisi!", "hb_bounty_reset", "Kaikki palkkiot on nollattu!");
			L("French", "hb_available", "Disponible", "hb_active", "Actif", "hb_completed", "Terminé", "hb_bounties", "Primes", "hb_select_bounty", "Sélectionner une prime", "hb_accept", "Accepter", "hb_abandon", "Abandonner", "hb_reward_options", "Options de récompense :", "hb_choose_reward", "Choisissez votre récompense :", "hb_diff_easy", "Difficulté : Facile", "hb_diff_medium", "Difficulté : Moyen", "hb_diff_hard", "Difficulté : Difficile", "hb_miniboss_bounty", "Prime de miniboss", "hb_raid_bounty", "Prime de raid", "hb_treasure_title", "Carte au trésor quotidienne", "hb_treasure_claimed_title", "Trésor récupéré !", "hb_treasure_region_tbd", "Région : déterminée à l'acceptation", "hb_treasure_desc_avail", "Une carte usée indique un trésor enfoui quelque part dans les terres sauvages. Acceptez la carte pour révéler le site de fouille sur votre minicarte.", "hb_treasure_desc_active", "Suivez le marqueur doré sur votre minicarte jusqu'au site de fouille. Frappez avec votre pioche — après suffisamment de coups, la zone de recherche se réduit jusqu'à ce que le trésor soit déterré.", "hb_treasure_desc_claimed", "Vous avez récupéré le trésor du jour. Une nouvelle carte sera disponible après la réinitialisation quotidienne.", "hb_treasure_goal_avail", "Acceptez la carte pour commencer", "hb_treasure_goal_active", "Trouvez et ouvrez le trésor enfoui", "hb_treasure_goal_claimed", "Trésor récupéré !", "hb_treasure_chest_reward", "Récompenses dans le coffre", "hb_accept_map", "Accepter la carte", "hb_map_active", "Carte active", "hb_claimed", "Récupéré", "hb_msg_already_active", "Vous avez déjà une carte au trésor active.", "hb_msg_no_dig_site", "Aucun site de fouille valide trouvé. Réessayez dans une autre zone.", "hb_msg_map_accepted", "Carte au trésor acceptée ! Suivez le repère sur la minicarte jusqu'au site de fouille.", "hb_msg_chest_nearby", "Votre coffre enfoui est à proximité — ouvrez-le !", "hb_msg_area_narrowed", "Vous approchez ! Zone de recherche réduite à {0}m.", "hb_msg_digging", "Fouille en cours... ({0} coups avant réduction)", "hb_msg_claimed_tomorrow", "Trésor récupéré ! Une nouvelle carte sera disponible demain.", "hb_msg_dig_swing", "Site de fouille ! Frappez pour creuser. ({0} coups avant réduction)", "hb_msg_nearby", "Trésor à proximité ! ({0}m)", "hb_msg_unearthed", "Trésor déterré ! Ouvrez le coffre pour récupérer votre récompense.", "hb_day_reset", "Jour {0}  Réinitialisation dans {1}:{2}", "hb_dist_away", "à {0}m", "hb_new_in", "Nouveau dans {0}:{1}", "hb_progress_fmt", "Progression : {0} / {1}", "hb_completed_status", "TERMINÉ", "hb_dig_site", "Site de fouille", "hb_dist_to_dig", "{0}m du site de fouille", "hb_region_fmt", "Région : {0}", "hb_msg_boss_appeared", "{0} est apparu dans la nature !", "hb_msg_bounty_complete", "Prime terminée : {0} !", "hb_msg_deposited", "{0} pièces déposées dans votre banque !", "hb_bounty_reset", "Toutes les primes ont été réinitialisées !");
			L("German", "hb_available", "Verfügbar", "hb_active", "Aktiv", "hb_completed", "Abgeschlossen", "hb_bounties", "Kopfgelder", "hb_select_bounty", "Wähle ein Kopfgeld", "hb_accept", "Annehmen", "hb_abandon", "Aufgeben", "hb_reward_options", "Belohnungsoptionen:", "hb_choose_reward", "Wähle deine Belohnung:", "hb_diff_easy", "Schwierigkeit: Leicht", "hb_diff_medium", "Schwierigkeit: Mittel", "hb_diff_hard", "Schwierigkeit: Schwer", "hb_miniboss_bounty", "Miniboss-Kopfgeld", "hb_raid_bounty", "Überfall-Kopfgeld", "hb_treasure_title", "Tägliche Schatzkarte", "hb_treasure_claimed_title", "Schatz eingefordert!", "hb_treasure_region_tbd", "Region: wird bei Annahme bestimmt", "hb_treasure_desc_avail", "Eine verwitterte Karte markiert einen vergrabenen Schatz irgendwo in der Wildnis. Nimm die Karte an, um die Grabungsstelle auf deiner Minikarte anzuzeigen.", "hb_treasure_desc_active", "Folge der goldenen Markierung auf deiner Minikarte zur Grabungsstelle. Schwinge deine Spitzhacke — nach genügend Schlägen verengt sich das Suchgebiet, bis der Schatz freigelegt wird.", "hb_treasure_desc_claimed", "Du hast den heutigen Schatz eingefordert. Eine neue Karte wird nach dem täglichen Reset verfügbar sein.", "hb_treasure_goal_avail", "Nimm die Karte an, um zu beginnen", "hb_treasure_goal_active", "Finde und öffne den vergrabenen Schatz", "hb_treasure_goal_claimed", "Schatz eingefordert!", "hb_treasure_chest_reward", "Belohnungen in der Truhe", "hb_accept_map", "Karte annehmen", "hb_map_active", "Karte aktiv", "hb_claimed", "Eingefordert", "hb_msg_already_active", "Du hast bereits eine aktive Schatzkarte.", "hb_msg_no_dig_site", "Keine gültige Grabungsstelle gefunden. Versuche es in einem anderen Gebiet.", "hb_msg_map_accepted", "Schatzkarte angenommen! Folge der Minikarten-Markierung zur Grabungsstelle.", "hb_msg_chest_nearby", "Deine vergrabene Truhe ist in der Nähe — öffne sie!", "hb_msg_area_narrowed", "Du kommst näher! Suchgebiet auf {0}m eingeengt.", "hb_msg_digging", "Graben... ({0} Schläge bis zur Einengung)", "hb_msg_claimed_tomorrow", "Schatz eingefordert! Eine neue Karte wird morgen verfügbar sein.", "hb_msg_dig_swing", "Grabungsstelle! Schwinge zum Graben. ({0} Schläge bis zur Einengung)", "hb_msg_nearby", "Schatz in der Nähe! ({0}m entfernt)", "hb_msg_unearthed", "Schatz ausgegraben! Öffne die Truhe, um deine Belohnung einzufordern.", "hb_day_reset", "Tag {0}  Reset in {1}:{2}", "hb_dist_away", "{0}m entfernt", "hb_new_in", "Neu in {0}:{1}", "hb_progress_fmt", "Fortschritt: {0} / {1}", "hb_completed_status", "ABGESCHLOSSEN", "hb_dig_site", "Grabungsstelle", "hb_dist_to_dig", "{0}m zur Grabungsstelle", "hb_region_fmt", "Region: {0}", "hb_msg_boss_appeared", "{0} ist in der Wildnis erschienen!", "hb_msg_bounty_complete", "Kopfgeld abgeschlossen: {0}!", "hb_msg_deposited", "{0} Münzen auf deine Bank eingezahlt!", "hb_bounty_reset", "Alle Kopfgelder wurden zurückgesetzt!");
			L("Hungarian", "hb_available", "Elérhető", "hb_active", "Aktív", "hb_completed", "Befejezve", "hb_bounties", "Fejvadászat", "hb_select_bounty", "Válassz fejvadászatot", "hb_accept", "Elfogad", "hb_abandon", "Felad", "hb_reward_options", "Jutalom opciók:", "hb_choose_reward", "Válaszd ki a jutalmadat:", "hb_diff_easy", "Nehézség: Könnyű", "hb_diff_medium", "Nehézség: Közepes", "hb_diff_hard", "Nehézség: Nehéz", "hb_miniboss_bounty", "Miniboss fejvadászat", "hb_raid_bounty", "Rajtazútés fejvadászat", "hb_treasure_title", "Napi kincstérkép", "hb_treasure_claimed_title", "Kincs megszerezve!", "hb_treasure_region_tbd", "Régió: elfogadáskor határozódik meg", "hb_treasure_desc_avail", "Egy kopott térkép jelöl egy elrejtett kincset valahol a vadonban. Fogadd el a térképet, hogy felfedje az ásási helyet a minikartádon.", "hb_treasure_desc_active", "Kövesd az arany jelölőt a minikartádon az ásási helyig. Lendítsd a csákányodat — elég ütés után a keresési terület szűkül, amíg a kincs előkerül.", "hb_treasure_desc_claimed", "Megszerezted a mai kincset. Új térkép lesz elérhető a napi visszaállítás után.", "hb_treasure_goal_avail", "Fogadd el a térképet a kezdéshez", "hb_treasure_goal_active", "Találd meg és nyisd ki az elrejtett kincset", "hb_treasure_goal_claimed", "Kincs megszerezve!", "hb_treasure_chest_reward", "Jutalmak a ládában", "hb_accept_map", "Térkép elfogadása", "hb_map_active", "Térkép aktív", "hb_claimed", "Megszerezve", "hb_msg_already_active", "Már van aktív kincstérképed.", "hb_msg_no_dig_site", "Nem található érvényes ásási hely. Próbáld újra más területen.", "hb_msg_map_accepted", "Kincstérkép elfogadva! Kövesd a minikarta jelölőjét az ásási helyig.", "hb_msg_chest_nearby", "Az elrejtett ládád a közelben van — nyisd ki!", "hb_msg_area_narrowed", "Közelebb! Keresési terület {0}m-re szűkült.", "hb_msg_digging", "Ásás... (még {0} ütés a szűkítésig)", "hb_msg_claimed_tomorrow", "Kincs megszerezve! Holnap új térkép lesz elérhető.", "hb_msg_dig_swing", "Ásási hely! Üss, hogy áss. ({0} ütés a szűkítésig)", "hb_msg_nearby", "Kincs a közelben! ({0}m)", "hb_msg_unearthed", "Kincs előkerült! Nyisd ki a ládát a jutalmadért.", "hb_day_reset", "Nap {0}  Visszaállítás {1}:{2} múlva", "hb_dist_away", "{0}m", "hb_new_in", "Új {0}:{1} múlva", "hb_progress_fmt", "Haladás: {0} / {1}", "hb_completed_status", "BEFEJEZVE", "hb_dig_site", "Ásási hely", "hb_dist_to_dig", "{0}m az ásási helyig", "hb_region_fmt", "Régió: {0}", "hb_msg_boss_appeared", "{0} megjelent a vadonban!", "hb_msg_bounty_complete", "Fejvadászat teljesítve: {0}!", "hb_msg_deposited", "{0} érme befizetve a bankodba!", "hb_bounty_reset", "Minden fejvadászat visszaállítva!");
			L("Icelandic", "hb_available", "Tiltækt", "hb_active", "Virkt", "hb_completed", "Lokið", "hb_bounties", "Höfuðverð", "hb_select_bounty", "Veldu höfuðverð", "hb_accept", "Samþykkja", "hb_abandon", "Gefast upp", "hb_reward_options", "Verðlaunavalkostir:", "hb_choose_reward", "Veldu verðlaun þín:", "hb_diff_easy", "Erfið: Auðvelt", "hb_diff_medium", "Erfið: Miðlungs", "hb_diff_hard", "Erfið: Erfitt", "hb_miniboss_bounty", "Miniboss-höfuðverð", "hb_raid_bounty", "Árásar-höfuðverð", "hb_treasure_title", "Daglegur fjársjóðskort", "hb_treasure_claimed_title", "Fjársjóður fundinn!", "hb_treasure_region_tbd", "Svæði: ákveðið við samþykki", "hb_treasure_desc_avail", "Veðurbit kort merkir grafið fjársjóð einhvers staðar í óbyggjunum. Samþykktu kortinu til að birta grafstaðinn á smákortinu þínu.", "hb_treasure_desc_active", "Fylgdu gullna merkinu á smákortinu að grafstaðnum. Sveiflaðu hakkánu — eftir nóg mörg högg minnkar leitsvæðið þar til fjársjóðurinn birtist.", "hb_treasure_desc_claimed", "Þú hefur sótt fjársjóð dagsins. Nýtt kort verður tiltækt eftir daglega endurstöðu.", "hb_treasure_goal_avail", "Samþykktu kortinu til að byrja", "hb_treasure_goal_active", "Finndu og opnaðu grafiða fjársjóðinn", "hb_treasure_goal_claimed", "Fjársjóður fundinn!", "hb_treasure_chest_reward", "Verðlaun í kistunni", "hb_accept_map", "Samþykkja kort", "hb_map_active", "Kort virkt", "hb_claimed", "Sótt", "hb_msg_already_active", "Þú ert nú þegar með virkt fjársjóðskort.", "hb_msg_no_dig_site", "Enginn gildur grafstaður fannst. Reyndu aftur á öðru svæði.", "hb_msg_map_accepted", "Fjársjóðskort samþykkt! Fylgdu merkinu á smákortinu að grafstaðnum.", "hb_msg_chest_nearby", "Grafið kistan þín er nálægt — opnaðu hana!", "hb_msg_area_narrowed", "Nær! Leitsvæði minnkað í {0}m.", "hb_msg_digging", "Greft... ({0} högg eftir til minnkunar)", "hb_msg_claimed_tomorrow", "Fjársjóður fundinn! Nýtt kort verður tiltækt á morgun.", "hb_msg_dig_swing", "Grafstaður! Sveiflaðu til að grafa. ({0} högg til minnkunar)", "hb_msg_nearby", "Fjársjóður nálægt! ({0}m í burtu)", "hb_msg_unearthed", "Fjársjóður grafinn upp! Opnaðu kistuna til að sækja verðlaunin.", "hb_day_reset", "Dagur {0}  Endurst. eftir {1}:{2}", "hb_dist_away", "{0}m í burtu", "hb_new_in", "Nýtt eftir {0}:{1}", "hb_progress_fmt", "Framvinda: {0} / {1}", "hb_completed_status", "LOKIÐ", "hb_dig_site", "Grafstaður", "hb_dist_to_dig", "{0}m að grafstað", "hb_region_fmt", "Svæði: {0}", "hb_msg_boss_appeared", "{0} hefur birst í óbyggjunum!", "hb_msg_bounty_complete", "Höfuðverð lokið: {0}!", "hb_msg_deposited", "{0} mynt lagt inn í bankann þinn!", "hb_bounty_reset", "Öll höfuðverð hafa verið endurstöð!");
			L("Italian", "hb_available", "Disponibile", "hb_active", "Attivo", "hb_completed", "Completato", "hb_bounties", "Taglie", "hb_select_bounty", "Seleziona una taglia", "hb_accept", "Accetta", "hb_abandon", "Abbandona", "hb_reward_options", "Opzioni ricompensa:", "hb_choose_reward", "Scegli la tua ricompensa:", "hb_diff_easy", "Difficoltà: Facile", "hb_diff_medium", "Difficoltà: Medio", "hb_diff_hard", "Difficoltà: Difficile", "hb_miniboss_bounty", "Taglia miniboss", "hb_raid_bounty", "Taglia raid", "hb_treasure_title", "Mappa del tesoro giornaliera", "hb_treasure_claimed_title", "Tesoro riscosso!", "hb_treasure_region_tbd", "Regione: determinata all'accettazione", "hb_treasure_desc_avail", "Una mappa consumata indica un tesoro sepolto da qualche parte nelle terre selvagge. Accetta la mappa per rivelare il sito di scavo sulla minimappa.", "hb_treasure_desc_active", "Segui il marcatore dorato sulla minimappa fino al sito di scavo. Colpisci con il piccone — dopo abbastanza colpi, l'area di ricerca si restringe fino a portare alla luce il tesoro.", "hb_treasure_desc_claimed", "Hai riscosso il tesoro di oggi. Una nuova mappa sarà disponibile dopo il reset giornaliero.", "hb_treasure_goal_avail", "Accetta la mappa per iniziare", "hb_treasure_goal_active", "Trova e apri il tesoro sepolto", "hb_treasure_goal_claimed", "Tesoro riscosso!", "hb_treasure_chest_reward", "Ricompense nel forziere", "hb_accept_map", "Accetta mappa", "hb_map_active", "Mappa attiva", "hb_claimed", "Riscosso", "hb_msg_already_active", "Hai già una mappa del tesoro attiva.", "hb_msg_no_dig_site", "Nessun sito di scavo valido trovato. Riprova in un'altra zona.", "hb_msg_map_accepted", "Mappa del tesoro accettata! Segui il marcatore sulla minimappa fino al sito di scavo.", "hb_msg_chest_nearby", "Il tuo forziere sepolto è vicino — aprilo!", "hb_msg_area_narrowed", "Più vicino! Area di ricerca ridotta a {0}m.", "hb_msg_digging", "Scavo... ({0} colpi alla riduzione)", "hb_msg_claimed_tomorrow", "Tesoro riscosso! Una nuova mappa sarà disponibile domani.", "hb_msg_dig_swing", "Sito di scavo! Colpisci per scavare. ({0} colpi alla riduzione)", "hb_msg_nearby", "Tesoro vicino! ({0}m)", "hb_msg_unearthed", "Tesoro portato alla luce! Apri il forziere per riscuotere la ricompensa.", "hb_day_reset", "Giorno {0}  Reset tra {1}:{2}", "hb_dist_away", "{0}m", "hb_new_in", "Nuovo tra {0}:{1}", "hb_progress_fmt", "Progresso: {0} / {1}", "hb_completed_status", "COMPLETATO", "hb_dig_site", "Sito di scavo", "hb_dist_to_dig", "{0}m al sito di scavo", "hb_region_fmt", "Regione: {0}", "hb_msg_boss_appeared", "{0} è apparso nelle terre selvagge!", "hb_msg_bounty_complete", "Taglia completata: {0}!", "hb_msg_deposited", "{0} monete depositate nella tua banca!", "hb_bounty_reset", "Tutte le taglie sono state resettate!");
			L("Lithuanian", "hb_available", "Prieinami", "hb_active", "Aktyvūs", "hb_completed", "Atlikta", "hb_bounties", "Atlygiai", "hb_select_bounty", "Pasirinkite atlygį", "hb_accept", "Priimti", "hb_abandon", "Atsisakyti", "hb_reward_options", "Atlygio pasirinkimai:", "hb_choose_reward", "Pasirinkite savo atlygį:", "hb_diff_easy", "Sunkumas: Lengvas", "hb_diff_medium", "Sunkumas: Vidutinis", "hb_diff_hard", "Sunkumas: Sunkus", "hb_miniboss_bounty", "Miniboso atlygis", "hb_raid_bounty", "Antpuolio atlygis", "hb_treasure_title", "Dienos lobio žemėlapis", "hb_treasure_claimed_title", "Lobis gautas!", "hb_treasure_region_tbd", "Regionas: nustatomas priėmus", "hb_treasure_desc_avail", "Apdėvėtas žemėlapis rodo palaidotą lobį kažkur laukiniuose. Priimkite žemėlapį, kad atskleistumėte kasimo vietą minimapėje.", "hb_treasure_desc_active", "Sekite auksinį žymeklį minimapėje iki kasimo vietos. Mojuokite kastuvu — po pakankamai smūgių paieškos zona siaurėja, kol lobis atsiranda.", "hb_treasure_desc_claimed", "Gavėte šiandienos lobį. Naujas žemėlapis bus prieinamas po dienos atstatymo.", "hb_treasure_goal_avail", "Priimkite žemėlapį, kad pradėtumėte", "hb_treasure_goal_active", "Raskite ir atidarykite palaidotą lobį", "hb_treasure_goal_claimed", "Lobis gautas!", "hb_treasure_chest_reward", "Atlygiai skrynioje", "hb_accept_map", "Priimti žemėlapį", "hb_map_active", "Žemėlapis aktyvus", "hb_claimed", "Gautas", "hb_msg_already_active", "Jau turite aktyvų lobio žemėlapį.", "hb_msg_no_dig_site", "Nerasta tinkama kasimo vieta. Bandykite dar kartą kitoje vietovėje.", "hb_msg_map_accepted", "Lobio žemėlapis priimtas! Sekite minimapės žymeklį iki kasimo vietos.", "hb_msg_chest_nearby", "Jūsų palaidota skrynia yra netoliese — atidarykite ją!", "hb_msg_area_narrowed", "Artėjate! Paieškos zona sumažinta iki {0}m.", "hb_msg_digging", "Kasimas... (dar {0} smūgių iki sumažinimo)", "hb_msg_claimed_tomorrow", "Lobis gautas! Naujas žemėlapis bus prieinamas rytoj.", "hb_msg_dig_swing", "Kasimo vieta! Mojuokite, kad kastųmėte. ({0} smūgių iki sumažinimo)", "hb_msg_nearby", "Lobis netoliese! ({0}m)", "hb_msg_unearthed", "Lobis rastas! Atidarykite skrynią, kad gautumėte atlygį.", "hb_day_reset", "Diena {0}  Atstatymas po {1}:{2}", "hb_dist_away", "{0}m", "hb_new_in", "Naujas po {0}:{1}", "hb_progress_fmt", "Pažanga: {0} / {1}", "hb_completed_status", "ATLIKTA", "hb_dig_site", "Kasimo vieta", "hb_dist_to_dig", "{0}m iki kasimo vietos", "hb_region_fmt", "Regionas: {0}", "hb_msg_boss_appeared", "{0} pasirodė laukiniuose!", "hb_msg_bounty_complete", "Atlygis atliktas: {0}!", "hb_msg_deposited", "Įnešta {0} monetų į jūsų banką!", "hb_bounty_reset", "Visi atlygiai buvo atstatyti!");
			L("Norwegian", "hb_available", "Tilgjengelig", "hb_active", "Aktiv", "hb_completed", "Fullført", "hb_bounties", "Dusører", "hb_select_bounty", "Velg en dusør", "hb_accept", "Godta", "hb_abandon", "Gi opp", "hb_reward_options", "Belønningsmuligheter:", "hb_choose_reward", "Velg belønningen din:", "hb_diff_easy", "Vanskelighetsgrad: Lett", "hb_diff_medium", "Vanskelighetsgrad: Middels", "hb_diff_hard", "Vanskelighetsgrad: Vanskelig", "hb_miniboss_bounty", "Miniboss-dusør", "hb_raid_bounty", "Raid-dusør", "hb_treasure_title", "Daglig skattekart", "hb_treasure_claimed_title", "Skatt funnet!", "hb_treasure_region_tbd", "Region: bestemmes ved godtakelse", "hb_treasure_desc_avail", "Et slitt kart markerer en begravd skatt et sted i villmarken. Godta kartet for å avsløre gravstedet på minikartet.", "hb_treasure_desc_active", "Følg den gylne markøren på minikartet til gravstedet. Sving hakken din — etter nok slag krymper søkeområdet til skatten er avdekket.", "hb_treasure_desc_claimed", "Du har hentet dagens skatt. Et nytt kart vil være tilgjengelig etter den daglige nullstillingen.", "hb_treasure_goal_avail", "Godta kartet for å begynne", "hb_treasure_goal_active", "Finn og åpne den begravde skatten", "hb_treasure_goal_claimed", "Skatt funnet!", "hb_treasure_chest_reward", "Belønninger i kisten", "hb_accept_map", "Godta kart", "hb_map_active", "Kart aktivt", "hb_claimed", "Hentet", "hb_msg_already_active", "Du har allerede et aktivt skattekart.", "hb_msg_no_dig_site", "Ingen gyldig gravplass funnet. Prøv igjen i et annet område.", "hb_msg_map_accepted", "Skattekart godtatt! Følg minikartet til gravstedet.", "hb_msg_chest_nearby", "Din begravde kiste er i nærheten — åpne den!", "hb_msg_area_narrowed", "Nærmere! Søkeområdet krympet til {0}m.", "hb_msg_digging", "Graver... ({0} slag til krymping)", "hb_msg_claimed_tomorrow", "Skatt funnet! Et nytt kart vil være tilgjengelig i morgen.", "hb_msg_dig_swing", "Gravsted! Sving for å grave. ({0} slag til krymping)", "hb_msg_nearby", "Skatt i nærheten! ({0}m unna)", "hb_msg_unearthed", "Skatt avdekket! Åpne kisten for å hente belønningen.", "hb_day_reset", "Dag {0}  Nullstilles om {1}:{2}", "hb_dist_away", "{0}m unna", "hb_new_in", "Nytt om {0}:{1}", "hb_progress_fmt", "Fremgang: {0} / {1}", "hb_completed_status", "FULLFØRT", "hb_dig_site", "Gravsted", "hb_dist_to_dig", "{0}m til gravsted", "hb_region_fmt", "Region: {0}", "hb_msg_boss_appeared", "{0} har dukket opp i villmarken!", "hb_msg_bounty_complete", "Dusør fullført: {0}!", "hb_msg_deposited", "{0} mynter satt inn i banken din!", "hb_bounty_reset", "Alle dusører er nullstilt!");
			L("Polish", "hb_available", "Dostępne", "hb_active", "Aktywne", "hb_completed", "Ukończone", "hb_bounties", "Zlecenia", "hb_select_bounty", "Wybierz zlecenie", "hb_accept", "Akceptuj", "hb_abandon", "Porzuć", "hb_reward_options", "Opcje nagrody:", "hb_choose_reward", "Wybierz nagrodę:", "hb_diff_easy", "Trudność: Łatwa", "hb_diff_medium", "Trudność: Średnia", "hb_diff_hard", "Trudność: Trudna", "hb_miniboss_bounty", "Zlecenie na minibossa", "hb_raid_bounty", "Zlecenie na rajd", "hb_treasure_title", "Codzienna mapa skarbu", "hb_treasure_claimed_title", "Skarb zdobyty!", "hb_treasure_region_tbd", "Region: określany przy akceptacji", "hb_treasure_desc_avail", "Zniszczona mapa wskazuje na zakopany skarb gdzieś na pustkowiach. Zaakceptuj mapę, aby odkryć miejsce kopania na minimapie.", "hb_treasure_desc_active", "Śledź złoty znacznik na minimapie do miejsca kopania. Machaj kilofem — po wystarczającej liczbie uderzeń obszar poszukiwań się zwęża, aż skarb zostanie odkryty.", "hb_treasure_desc_claimed", "Zdobyłeś dzisiejszy skarb. Nowa mapa będzie dostępna po codziennym resecie.", "hb_treasure_goal_avail", "Zaakceptuj mapę, aby zacząć", "hb_treasure_goal_active", "Znajdź i otwórz zakopany skarb", "hb_treasure_goal_claimed", "Skarb zdobyty!", "hb_treasure_chest_reward", "Nagrody w skrzyni", "hb_accept_map", "Akceptuj mapę", "hb_map_active", "Mapa aktywna", "hb_claimed", "Zdobyto", "hb_msg_already_active", "Masz już aktywną mapę skarbu.", "hb_msg_no_dig_site", "Nie znaleziono odpowiedniego miejsca do kopania. Spróbuj ponownie w innym rejonie.", "hb_msg_map_accepted", "Mapa skarbu zaakceptowana! Śledź znacznik na minimapie do miejsca kopania.", "hb_msg_chest_nearby", "Twoja zakopana skrzynia jest w pobliżu — otwórz ją!", "hb_msg_area_narrowed", "Bliżej! Obszar poszukiwań zwężony do {0}m.", "hb_msg_digging", "Kopanie... (jeszcze {0} uderzeń do zwężenia)", "hb_msg_claimed_tomorrow", "Skarb zdobyty! Nowa mapa będzie dostępna jutro.", "hb_msg_dig_swing", "Miejsce kopania! Machaj, żeby kopać. ({0} uderzeń do zwężenia)", "hb_msg_nearby", "Skarb w pobliżu! ({0}m)", "hb_msg_unearthed", "Skarb odkryty! Otwórz skrzynię, aby odebrać nagrodę.", "hb_day_reset", "Dzień {0}  Reset za {1}:{2}", "hb_dist_away", "{0}m", "hb_new_in", "Nowa za {0}:{1}", "hb_progress_fmt", "Postęp: {0} / {1}", "hb_completed_status", "UKOŃCZONE", "hb_dig_site", "Miejsce kopania", "hb_dist_to_dig", "{0}m do miejsca kopania", "hb_region_fmt", "Region: {0}", "hb_msg_boss_appeared", "{0} pojawił się na pustkowiu!", "hb_msg_bounty_complete", "Zlecenie ukończone: {0}!", "hb_msg_deposited", "Wpłacono {0} monet do twojego banku!", "hb_bounty_reset", "Wszystkie zlecenia zostały zresetowane!");
			L("Romanian", "hb_available", "Disponibil", "hb_active", "Activ", "hb_completed", "Finalizat", "hb_bounties", "Recompense", "hb_select_bounty", "Selectează o recompensă", "hb_accept", "Acceptă", "hb_abandon", "Abandonează", "hb_reward_options", "Opţiuni de recompensă:", "hb_choose_reward", "Alege recompensa ta:", "hb_diff_easy", "Dificultate: Uşoară", "hb_diff_medium", "Dificultate: Medie", "hb_diff_hard", "Dificultate: Grea", "hb_miniboss_bounty", "Recompensă miniboss", "hb_raid_bounty", "Recompensă raid", "hb_treasure_title", "Harta zilnică a comorii", "hb_treasure_claimed_title", "Comoara revendicată!", "hb_treasure_region_tbd", "Regiune: determinată la acceptare", "hb_treasure_desc_avail", "O hartă uzată marchează o comoară îngropată undeva în sălbăticie. Acceptă harta pentru a dezvălui locul de săpat pe minimapa ta.", "hb_treasure_desc_active", "Urmează marcajul auriu de pe minimapa ta până la locul de săpat. Loveşte cu târnăcopul — după suficiente lovituri, zona de căutare se îngustează până când comoara este dezgropată.", "hb_treasure_desc_claimed", "Ai revendicat comoara de astăzi. O nouă hartă va fi disponibilă după resetarea zilnică.", "hb_treasure_goal_avail", "Acceptă harta pentru a începe", "hb_treasure_goal_active", "Găseşte şi deschide comoara îngropată", "hb_treasure_goal_claimed", "Comoara revendicată!", "hb_treasure_chest_reward", "Recompense în cufăr", "hb_accept_map", "Acceptă harta", "hb_map_active", "Hartă activă", "hb_claimed", "Revendicat", "hb_msg_already_active", "Ai deja o hartă a comorii activă.", "hb_msg_no_dig_site", "Niciun loc de săpat valid găsit. Încearcă din nou într-o altă zonă.", "hb_msg_map_accepted", "Harta comorii acceptată! Urmează marcajul pe minimapă până la locul de săpat.", "hb_msg_chest_nearby", "Cufărul tău îngropat este în apropiere — deschide-l!", "hb_msg_area_narrowed", "Mai aproape! Zona de căutare redusă la {0}m.", "hb_msg_digging", "Săpat... (încă {0} lovituri până la reducere)", "hb_msg_claimed_tomorrow", "Comoara revendicată! O nouă hartă va fi disponibilă mâine.", "hb_msg_dig_swing", "Loc de săpat! Loveşte pentru a săpa. ({0} lovituri până la reducere)", "hb_msg_nearby", "Comoară în apropiere! ({0}m)", "hb_msg_unearthed", "Comoara dezgropată! Deschide cufărul pentru a revendica recompensa.", "hb_day_reset", "Ziua {0}  Resetare în {1}:{2}", "hb_dist_away", "{0}m", "hb_new_in", "Nouă în {0}:{1}", "hb_progress_fmt", "Progres: {0} / {1}", "hb_completed_status", "FINALIZAT", "hb_dig_site", "Loc de săpat", "hb_dist_to_dig", "{0}m până la locul de săpat", "hb_region_fmt", "Regiune: {0}", "hb_msg_boss_appeared", "{0} a apărut în sălbăticie!", "hb_msg_bounty_complete", "Recompensă finalizată: {0}!", "hb_msg_deposited", "{0} monede depuse în banca ta!", "hb_bounty_reset", "Toate recompensele au fost resetate!");
			L("Slovak", "hb_available", "Dostupné", "hb_active", "Aktívne", "hb_completed", "Dokončené", "hb_bounties", "Odmeny", "hb_select_bounty", "Vyberte odmenu", "hb_accept", "Prijať", "hb_abandon", "Vzdať sa", "hb_reward_options", "Možnosti odmeny:", "hb_choose_reward", "Vyberte si odmenu:", "hb_diff_easy", "Obtiažnosť: Ľahká", "hb_diff_medium", "Obtiažnosť: Stredná", "hb_diff_hard", "Obtiažnosť: Ťažká", "hb_miniboss_bounty", "Odmena za minibossa", "hb_raid_bounty", "Odmena za nájazd", "hb_treasure_title", "Denná mapa pokladu", "hb_treasure_claimed_title", "Poklad získaný!", "hb_treasure_region_tbd", "Oblasť: určí sa pri prijatí", "hb_treasure_desc_avail", "Opoťrebovaná mapa označuje zahrabaný poklad niekde v divokej krajine. Prijmite mapu, aby ste odhalili miesto kopania na minimape.", "hb_treasure_desc_active", "Sledujte zlatú značku na minimape k miestu kopania. Mávajte krampáčom — po dostatočnom počte úderov sa oblasť hľadania zúži, kým sa poklad neodhalí.", "hb_treasure_desc_claimed", "Získali ste dnešný poklad. Nová mapa bude dostupná po dennom resete.", "hb_treasure_goal_avail", "Prijmite mapu, aby ste začali", "hb_treasure_goal_active", "Nájdite a otvorte zahrabaný poklad", "hb_treasure_goal_claimed", "Poklad získaný!", "hb_treasure_chest_reward", "Odmeny v truhle", "hb_accept_map", "Prijať mapu", "hb_map_active", "Mapa aktívna", "hb_claimed", "Získané", "hb_msg_already_active", "Už máte aktívnu mapu pokladu.", "hb_msg_no_dig_site", "Nebolo nájdené platné miesto na kopanie. Skúste to znova v inej oblasti.", "hb_msg_map_accepted", "Mapa pokladu prijatá! Sledujte značku na minimape k miestu kopania.", "hb_msg_chest_nearby", "Vaša zahrabaná truhla je nablízku — otvorte ju!", "hb_msg_area_narrowed", "Bližšie! Oblasť hľadania zúžená na {0}m.", "hb_msg_digging", "Kopanie... (ešte {0} úderov do zúženia)", "hb_msg_claimed_tomorrow", "Poklad získaný! Nová mapa bude dostupná zajtra.", "hb_msg_dig_swing", "Miesto kopania! Mávajte, aby ste kopali. ({0} úderov do zúženia)", "hb_msg_nearby", "Poklad nablízku! ({0}m)", "hb_msg_unearthed", "Poklad odhalený! Otvorte truhlu, aby ste získali odmenu.", "hb_day_reset", "Deň {0}  Reset za {1}:{2}", "hb_dist_away", "{0}m", "hb_new_in", "Nová za {0}:{1}", "hb_progress_fmt", "Postup: {0} / {1}", "hb_completed_status", "DOKONČENÉ", "hb_dig_site", "Miesto kopania", "hb_dist_to_dig", "{0}m k miestu kopania", "hb_region_fmt", "Oblasť: {0}", "hb_msg_boss_appeared", "{0} sa objavil v divokej krajine!", "hb_msg_bounty_complete", "Odmena dokončená: {0}!", "hb_msg_deposited", "{0} mincí uložených do vašej banky!", "hb_bounty_reset", "Všetky odmeny boli resetované!");
			L("Spanish", "hb_available", "Disponible", "hb_active", "Activo", "hb_completed", "Completado", "hb_bounties", "Recompensas", "hb_select_bounty", "Selecciona una recompensa", "hb_accept", "Aceptar", "hb_abandon", "Abandonar", "hb_reward_options", "Opciones de recompensa:", "hb_choose_reward", "Elige tu recompensa:", "hb_diff_easy", "Dificultad: Fácil", "hb_diff_medium", "Dificultad: Medio", "hb_diff_hard", "Dificultad: Difícil", "hb_miniboss_bounty", "Recompensa de miniboss", "hb_raid_bounty", "Recompensa de incursión", "hb_treasure_title", "Mapa del tesoro diario", "hb_treasure_claimed_title", "¡Tesoro reclamado!", "hb_treasure_region_tbd", "Región: determinada al aceptar", "hb_treasure_desc_avail", "Un mapa desgastado marca un tesoro enterrado en algún lugar de las tierras salvajes. Acepta el mapa para revelar el sitio de excavación en tu minimapa.", "hb_treasure_desc_active", "Sigue el marcador dorado en tu minimapa hasta el sitio de excavación. Golpea con tu pico — tras suficientes golpes, el área de búsqueda se reduce hasta desenterrar el tesoro.", "hb_treasure_desc_claimed", "Has reclamado el tesoro de hoy. Un nuevo mapa estará disponible tras el reinicio diario.", "hb_treasure_goal_avail", "Acepta el mapa para comenzar", "hb_treasure_goal_active", "Encuentra y abre el tesoro enterrado", "hb_treasure_goal_claimed", "¡Tesoro reclamado!", "hb_treasure_chest_reward", "Recompensas en el cofre", "hb_accept_map", "Aceptar mapa", "hb_map_active", "Mapa activo", "hb_claimed", "Reclamado", "hb_msg_already_active", "Ya tienes un mapa del tesoro activo.", "hb_msg_no_dig_site", "No se encontró un sitio de excavación válido. Inténtalo en otra zona.", "hb_msg_map_accepted", "¡Mapa del tesoro aceptado! Sigue la marca del minimapa hasta el sitio de excavación.", "hb_msg_chest_nearby", "¡Tu cofre enterrado está cerca — ábrelo!", "hb_msg_area_narrowed", "¡Te acercas! Área de búsqueda reducida a {0}m.", "hb_msg_digging", "Excavando... ({0} golpes para reducir)", "hb_msg_claimed_tomorrow", "¡Tesoro reclamado! Un nuevo mapa estará disponible mañana.", "hb_msg_dig_swing", "¡Sitio de excavación! Golpea para cavar. ({0} golpes para reducir)", "hb_msg_nearby", "¡Tesoro cerca! ({0}m)", "hb_msg_unearthed", "¡Tesoro desenterrado! Abre el cofre para reclamar tu recompensa.", "hb_day_reset", "Día {0}  Reinicio en {1}:{2}", "hb_dist_away", "a {0}m", "hb_new_in", "Nuevo en {0}:{1}", "hb_progress_fmt", "Progreso: {0} / {1}", "hb_completed_status", "COMPLETADO", "hb_dig_site", "Sitio de excavación", "hb_dist_to_dig", "{0}m al sitio de excavación", "hb_region_fmt", "Región: {0}", "hb_msg_boss_appeared", "¡{0} ha aparecido en la naturaleza!", "hb_msg_bounty_complete", "¡Recompensa completada: {0}!", "hb_msg_deposited", "¡{0} monedas depositadas en tu banco!", "hb_bounty_reset", "¡Todas las recompensas han sido reiniciadas!");
			L("Swedish", "hb_available", "Tillgängliga", "hb_active", "Aktiva", "hb_completed", "Slutförda", "hb_bounties", "Uppdrag", "hb_select_bounty", "Välj ett uppdrag", "hb_accept", "Acceptera", "hb_abandon", "Överge", "hb_reward_options", "Belöningsalternativ:", "hb_choose_reward", "Välj din belöning:", "hb_diff_easy", "Svårighet: Lätt", "hb_diff_medium", "Svårighet: Medel", "hb_diff_hard", "Svårighet: Svår", "hb_miniboss_bounty", "Minibossuppdrag", "hb_raid_bounty", "Räduppdrag", "hb_treasure_title", "Daglig skattkarta", "hb_treasure_claimed_title", "Skatt hämtad!", "hb_treasure_region_tbd", "Region: bestäms vid accept", "hb_treasure_desc_avail", "En sliten karta markerar en begravd skatt någonstans i vildmarken. Acceptera kartan för att visa grävplatsen på din minikarta.", "hb_treasure_desc_active", "Följ den gyllene markören på din minikarta till grävplatsen. Svinga din hacka — efter tillräckligt många slag krymper sökområdet tills skatten grävs fram.", "hb_treasure_desc_claimed", "Du har hämtat dagens skatt. En ny karta blir tillgänglig efter den dagliga återställningen.", "hb_treasure_goal_avail", "Acceptera kartan för att börja", "hb_treasure_goal_active", "Hitta och öppna den begravda skatten", "hb_treasure_goal_claimed", "Skatt hämtad!", "hb_treasure_chest_reward", "Belöningar i kistan", "hb_accept_map", "Acceptera karta", "hb_map_active", "Karta aktiv", "hb_claimed", "Hämtad", "hb_msg_already_active", "Du har redan en aktiv skattkarta.", "hb_msg_no_dig_site", "Ingen giltig grävplats hittades. Försök igen i ett annat område.", "hb_msg_map_accepted", "Skattkarta accepterad! Följ minikartans markering till grävplatsen.", "hb_msg_chest_nearby", "Din begravda kista är nära — öppna den!", "hb_msg_area_narrowed", "Du närmar dig! Sökområdet krympte till {0}m.", "hb_msg_digging", "Gräver... ({0} slag kvar till krympning)", "hb_msg_claimed_tomorrow", "Skatt hämtad! En ny karta blir tillgänglig imorgon.", "hb_msg_dig_swing", "Grävplats! Svinga för att gräva. ({0} slag till krympning)", "hb_msg_nearby", "Skatt i närheten! ({0}m bort)", "hb_msg_unearthed", "Skatt framgrävd! Öppna kistan för att hämta din belöning.", "hb_day_reset", "Dag {0}  Återställs om {1}:{2}", "hb_dist_away", "{0}m bort", "hb_new_in", "Ny om {0}:{1}", "hb_progress_fmt", "Framsteg: {0} / {1}", "hb_completed_status", "SLUTFÖRD", "hb_dig_site", "Grävplats", "hb_dist_to_dig", "{0}m till grävplatsen", "hb_region_fmt", "Region: {0}", "hb_msg_boss_appeared", "{0} har dykt upp i det vilda!", "hb_msg_bounty_complete", "Uppdrag slutfört: {0}!", "hb_msg_deposited", "{0} mynt insatta på din bank!", "hb_bounty_reset", "Alla uppdrag har återställts!");
			L("Turkish", "hb_available", "Mevcut", "hb_active", "Aktif", "hb_completed", "Tamamlandı", "hb_bounties", "Ödüller", "hb_select_bounty", "Bir ödül seçin", "hb_accept", "Kabul et", "hb_abandon", "Vazgeç", "hb_reward_options", "Ödül seçenekleri:", "hb_choose_reward", "Ödülünüzü seçin:", "hb_diff_easy", "Zorluk: Kolay", "hb_diff_medium", "Zorluk: Orta", "hb_diff_hard", "Zorluk: Zor", "hb_miniboss_bounty", "Miniboss ödülü", "hb_raid_bounty", "Baskın ödülü", "hb_treasure_title", "Günlük hazine haritası", "hb_treasure_claimed_title", "Hazine bulundu!", "hb_treasure_region_tbd", "Bölge: kabul edildiğinde belirlenir", "hb_treasure_desc_avail", "Yıpranmış bir harita, vahşi doğada bir yere gömülmüş bir hazineyi işaretliyor. Kazı yerini mini haritanızda göstermek için haritayı kabul edin.", "hb_treasure_desc_active", "Mini haritadaki altın işareti takip ederek kazı yerine gidin. Kazmayı sallıyın — yeterli darbe sonrası arama alanı daralır ve hazine ortaya çıkar.", "hb_treasure_desc_claimed", "Bugünün hazinesini aldınız. Günlük sıfırlamadan sonra yeni bir harita kullanılabilir olacak.", "hb_treasure_goal_avail", "Başlamak için haritayı kabul edin", "hb_treasure_goal_active", "Gömülmüş hazineyi bulun ve açın", "hb_treasure_goal_claimed", "Hazine bulundu!", "hb_treasure_chest_reward", "Sandıktaki ödüller", "hb_accept_map", "Haritayı kabul et", "hb_map_active", "Harita aktif", "hb_claimed", "Alındı", "hb_msg_already_active", "Zaten aktif bir hazine haritanız var.", "hb_msg_no_dig_site", "Geçerli bir kazı yeri bulunamadı. Başka bir bölgede tekrar deneyin.", "hb_msg_map_accepted", "Hazine haritası kabul edildi! Mini haritadaki işareti takip ederek kazı yerine gidin.", "hb_msg_chest_nearby", "Gömülmüş sandığınız yakınınızda — açın!", "hb_msg_area_narrowed", "Yaklaşıyorsunuz! Arama alanı {0}m'ye daraltıldı.", "hb_msg_digging", "Kazılıyor... (daralmaya {0} darbe kaldı)", "hb_msg_claimed_tomorrow", "Hazine bulundu! Yarın yeni bir harita kullanılabilir olacak.", "hb_msg_dig_swing", "Kazı yeri! Kazmak için sallıyın. (daralmaya {0} darbe)", "hb_msg_nearby", "Hazine yakınınızda! ({0}m uzakta)", "hb_msg_unearthed", "Hazine bulundu! Ödülünüzü almak için sandığı açın.", "hb_day_reset", "Gün {0}  Sıfırlama {1}:{2}", "hb_dist_away", "{0}m uzakta", "hb_new_in", "Yeni {0}:{1}", "hb_progress_fmt", "İlerleme: {0} / {1}", "hb_completed_status", "TAMAMLANDI", "hb_dig_site", "Kazı yeri", "hb_dist_to_dig", "Kazı yerine {0}m", "hb_region_fmt", "Bölge: {0}", "hb_msg_boss_appeared", "{0} vahşi doğada belirdi!", "hb_msg_bounty_complete", "Ödül tamamlandı: {0}!", "hb_msg_deposited", "{0} jeton bankanıza yatırıldı!", "hb_bounty_reset", "Tüm ödüller sıfırlandı!");
		}

		private static void InitAsian()
		{
			L("Japanese", "hb_available", "利用可能", "hb_active", "進行中", "hb_completed", "完了", "hb_bounties", "賞金首", "hb_select_bounty", "賞金首を選択", "hb_accept", "受諾", "hb_abandon", "放棄", "hb_reward_options", "報酬オプション:", "hb_choose_reward", "報酬を選んでください:", "hb_diff_easy", "難易度:簡単", "hb_diff_medium", "難易度:普通", "hb_diff_hard", "難易度:難しい", "hb_miniboss_bounty", "ミニボス賞金首", "hb_raid_bounty", "襲撃賞金首", "hb_treasure_title", "デイリー宝の地図", "hb_treasure_claimed_title", "宝が獲得されました!", "hb_treasure_region_tbd", "地域:受諾時に決定", "hb_treasure_desc_avail", "古びた地図が荒野のどこかに埋められた宝を示しています。地図を受け取るとミニマップに発掘地点が表示されます。", "hb_treasure_desc_active", "ミニマップの金色のマーカーをたどって発掘地点へ。つるはしを振って——十分な打撃後、探索範囲が狭まり宝が探り当てられます。", "hb_treasure_desc_claimed", "今日の宝を獲得しました。新しい地図はデイリーリセット後に利用可能です。", "hb_treasure_goal_avail", "地図を受け取って開始", "hb_treasure_goal_active", "埋もれた宝を見つけて開ける", "hb_treasure_goal_claimed", "宝が獲得されました!", "hb_treasure_chest_reward", "宝箱の中の報酬", "hb_accept_map", "地図を受諾", "hb_map_active", "地図有効", "hb_claimed", "獲得済み", "hb_msg_already_active", "すでに有効な宝の地図があります。", "hb_msg_no_dig_site", "有効な発掘地点が見つかりません。別のエリアで再試行してください。", "hb_msg_map_accepted", "宝の地図を受諾しました!ミニマップのピンをたどって発掘地点へ。", "hb_msg_chest_nearby", "埋められた宝箱が近くに——開けてください!", "hb_msg_area_narrowed", "近づいています!探索範囲が{0}mに縮小。", "hb_msg_digging", "発掘中...(あと{0}回で範囲縮小)", "hb_msg_claimed_tomorrow", "宝を獲得!新しい地図は明日利用可能です。", "hb_msg_dig_swing", "発掘地点!振って掘りましょう。({0}回で範囲縮小)", "hb_msg_nearby", "宝が近くに!({0}m先)", "hb_msg_unearthed", "宝が発掘されました!宝箱を開けて報酬を受け取りましょう。", "hb_day_reset", "{0}日目  {1}:{2}後にリセット", "hb_dist_away", "{0}m先", "hb_new_in", "{0}:{1}後に更新", "hb_progress_fmt", "進捗:{0} / {1}", "hb_completed_status", "完了", "hb_dig_site", "発掘地点", "hb_dist_to_dig", "発掘地点まで{0}m", "hb_region_fmt", "地域:{0}", "hb_msg_boss_appeared", "{0}が荒野に現れました!", "hb_msg_bounty_complete", "賞金首完了:{0}!", "hb_msg_deposited", "{0}コインを銀行に預けました!", "hb_bounty_reset", "すべての賞金首がリセットされました!");
			L("Korean", "hb_available", "사용 가능", "hb_active", "진행 중", "hb_completed", "완료", "hb_bounties", "현상금", "hb_select_bounty", "현상금을 선택하세요", "hb_accept", "수락", "hb_abandon", "포기", "hb_reward_options", "보상 옵션:", "hb_choose_reward", "보상을 선택하세요:", "hb_diff_easy", "난이도: 쉬움", "hb_diff_medium", "난이도: 보통", "hb_diff_hard", "난이도: 어려움", "hb_miniboss_bounty", "미니보스 현상금", "hb_raid_bounty", "습격 현상금", "hb_treasure_title", "일일 보물 지도", "hb_treasure_claimed_title", "보물 획득!", "hb_treasure_region_tbd", "지역: 수락 시 결정", "hb_treasure_desc_avail", "낡은 지도가 황야 어딘가에 묻힌 보물을 표시하고 있습니다. 지도를 수락하면 미니맵에 발굴 지점이 표시됩니다.", "hb_treasure_desc_active", "미니맵의 금색 표시를 따라 발굴 지점으로 가세요. 곡괭이를 휠두르세요 — 충분한 타격 후 탐색 범위가 좁혀져 보물이 발굴됩니다.", "hb_treasure_desc_claimed", "오늘의 보물을 획득했습니다. 일일 초기화 후 새 지도