Decompiled source of balrond IdleActors v1.1.1

plugins/BalrondIdleActors.dll

Decompiled 2 weeks ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using System.Text;
using BepInEx;
using BepInEx.Configuration;
using HarmonyLib;
using JetBrains.Annotations;
using LitJson2;
using Microsoft.CodeAnalysis;
using ServerSync;
using TMPro;
using UnityEngine;
using UnityEngine.Audio;
using UnityEngine.Rendering;
using UnityEngine.SceneManagement;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("BalrondIdleActors")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("BalrondIdleActors")]
[assembly: AssemblyCopyright("Copyright ©  2022")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("cde312a0-cf19-4264-8616-e1c74774beed")]
[assembly: AssemblyFileVersion("1.1.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.1.1.0")]
[module: UnverifiableCode]
public class ArchetypeDialoguePresets
{
	public static List<string> greeting_generic = new List<string> { "$tag_greeting_generic_1", "$tag_greeting_generic_2", "$tag_greeting_generic_3", "$tag_greeting_generic_4", "$tag_greeting_generic_5" };

	public static List<string> greeting_human = new List<string> { "$tag_greeting_human_1", "$tag_greeting_human_2", "$tag_greeting_human_3", "$tag_greeting_human_4", "$tag_greeting_human_5" };

	public static List<string> greeting_dverger = new List<string> { "$tag_greeting_dverger_1", "$tag_greeting_dverger_2", "$tag_greeting_dverger_3", "$tag_greeting_dverger_4", "$tag_greeting_dverger_5" };

	public static List<string> greeting_goblin = new List<string> { "$tag_greeting_goblin_1", "$tag_greeting_goblin_2", "$tag_greeting_goblin_3", "$tag_greeting_goblin_4", "$tag_greeting_goblin_5" };

	public static List<string> greeting_priest = new List<string> { "$tag_greeting_priest_1", "$tag_greeting_priest_2", "$tag_greeting_priest_3", "$tag_greeting_priest_4", "$tag_greeting_priest_5" };

	public static List<string> greeting_farmer = new List<string> { "$tag_greeting_farmer_1", "$tag_greeting_farmer_2", "$tag_greeting_farmer_3", "$tag_greeting_farmer_4", "$tag_greeting_farmer_5" };

	public static List<string> greeting_blacksmith = new List<string> { "$tag_greeting_blacksmith_1", "$tag_greeting_blacksmith_2", "$tag_greeting_blacksmith_3", "$tag_greeting_blacksmith_4", "$tag_greeting_blacksmith_5" };

	public static List<string> greeting_hunter = new List<string> { "$tag_greeting_hunter_1", "$tag_greeting_hunter_2", "$tag_greeting_hunter_3", "$tag_greeting_hunter_4", "$tag_greeting_hunter_5" };

	public static List<string> greeting_guard = new List<string> { "$tag_greeting_guard_1", "$tag_greeting_guard_2", "$tag_greeting_guard_3", "$tag_greeting_guard_4", "$tag_greeting_guard_5" };

	public static List<string> greeting_defender = new List<string> { "$tag_greeting_guard_1", "$tag_greeting_guard_2", "$tag_greeting_guard_3", "$tag_greeting_guard_4", "$tag_greeting_guard_5" };

	public static List<string> greeting_villager = new List<string> { "$tag_greeting_villager_1", "$tag_greeting_villager_2", "$tag_greeting_villager_3", "$tag_greeting_villager_4", "$tag_greeting_villager_5" };

	public static List<string> greeting_beggar = new List<string> { "$tag_greeting_beggar_1", "$tag_greeting_beggar_2", "$tag_greeting_beggar_3", "$tag_greeting_beggar_4", "$tag_greeting_beggar_5" };

	public static List<string> greeting_merchant = new List<string> { "$tag_greeting_merchant_1", "$tag_greeting_merchant_2", "$tag_greeting_merchant_3", "$tag_greeting_merchant_4", "$tag_greeting_merchant_5" };

	public static List<string> goodbye_generic = new List<string> { "$tag_goodbye_generic_1", "$tag_goodbye_generic_2", "$tag_goodbye_generic_3", "$tag_goodbye_generic_4", "$tag_goodbye_generic_5" };

	public static List<string> goodbye_human = new List<string> { "$tag_goodbye_human_1", "$tag_goodbye_human_2", "$tag_goodbye_human_3", "$tag_goodbye_human_4", "$tag_goodbye_human_5" };

	public static List<string> goodbye_dverger = new List<string> { "$tag_goodbye_dverger_1", "$tag_goodbye_dverger_2", "$tag_goodbye_dverger_3", "$tag_goodbye_dverger_4", "$tag_goodbye_dverger_5" };

	public static List<string> goodbye_goblin = new List<string> { "$tag_goodbye_goblin_1", "$tag_goodbye_goblin_2", "$tag_goodbye_goblin_3", "$tag_goodbye_goblin_4", "$tag_goodbye_goblin_5" };

	public static List<string> goodbye_priest = new List<string> { "$tag_goodbye_priest_1", "$tag_goodbye_priest_2", "$tag_goodbye_priest_3", "$tag_goodbye_priest_4", "$tag_goodbye_priest_5" };

	public static List<string> goodbye_farmer = new List<string> { "$tag_goodbye_farmer_1", "$tag_goodbye_farmer_2", "$tag_goodbye_farmer_3", "$tag_goodbye_farmer_4", "$tag_goodbye_farmer_5" };

	public static List<string> goodbye_blacksmith = new List<string> { "$tag_goodbye_blacksmith_1", "$tag_goodbye_blacksmith_2", "$tag_goodbye_blacksmith_3", "$tag_goodbye_blacksmith_4", "$tag_goodbye_blacksmith_5" };

	public static List<string> goodbye_hunter = new List<string> { "$tag_goodbye_hunter_1", "$tag_goodbye_hunter_2", "$tag_goodbye_hunter_3", "$tag_goodbye_hunter_4", "$tag_goodbye_hunter_5" };

	public static List<string> goodbye_guard = new List<string> { "$tag_goodbye_guard_1", "$tag_goodbye_guard_2", "$tag_goodbye_guard_3", "$tag_goodbye_guard_4", "$tag_goodbye_guard_5" };

	public static List<string> goodbye_villager = new List<string> { "$tag_goodbye_villager_1", "$tag_goodbye_villager_2", "$tag_goodbye_villager_3", "$tag_goodbye_villager_4", "$tag_goodbye_villager_5" };

	public static List<string> goodbye_beggar = new List<string> { "$tag_goodbye_beggar_1", "$tag_goodbye_beggar_2", "$tag_goodbye_beggar_3", "$tag_goodbye_beggar_4", "$tag_goodbye_beggar_5" };

	public static List<string> goodbye_merchant = new List<string> { "$tag_goodbye_merchant_1", "$tag_goodbye_merchant_2", "$tag_goodbye_merchant_3", "$tag_goodbye_merchant_4", "$tag_goodbye_merchant_5" };

	public static List<string> random_generic = new List<string> { "$tag_random_generic_1", "$tag_random_generic_2", "$tag_random_generic_3", "$tag_random_generic_4", "$tag_random_generic_5" };

	public static List<string> random_human = new List<string> { "$tag_random_human_1", "$tag_random_human_2", "$tag_random_human_3", "$tag_random_human_4", "$tag_random_human_5" };

	public static List<string> random_dverger = new List<string> { "$tag_random_dverger_1", "$tag_random_dverger_2", "$tag_random_dverger_3", "$tag_random_dverger_4", "$tag_random_dverger_5" };

	public static List<string> random_goblin = new List<string> { "$tag_random_goblin_1", "$tag_random_goblin_2", "$tag_random_goblin_3", "$tag_random_goblin_4", "$tag_random_goblin_5" };

	public static List<string> random_priest = new List<string> { "$tag_random_priest_1", "$tag_random_priest_2", "$tag_random_priest_3", "$tag_random_priest_4", "$tag_random_priest_5" };

	public static List<string> random_farmer = new List<string> { "$tag_random_farmer_1", "$tag_random_farmer_2", "$tag_random_farmer_3", "$tag_random_farmer_4", "$tag_random_farmer_5" };

	public static List<string> random_blacksmith = new List<string> { "$tag_random_blacksmith_1", "$tag_random_blacksmith_2", "$tag_random_blacksmith_3", "$tag_random_blacksmith_4", "$tag_random_blacksmith_5" };

	public static List<string> random_hunter = new List<string> { "$tag_random_hunter_1", "$tag_random_hunter_2", "$tag_random_hunter_3", "$tag_random_hunter_4", "$tag_random_hunter_5" };

	public static List<string> random_guard = new List<string> { "$tag_random_guard_1", "$tag_random_guard_2", "$tag_random_guard_3", "$tag_random_guard_4", "$tag_random_guard_5" };

	public static List<string> random_villager = new List<string> { "$tag_random_villager_1", "$tag_random_villager_2", "$tag_random_villager_3", "$tag_random_villager_4", "$tag_random_villager_5" };

	public static List<string> random_beggar = new List<string> { "$tag_random_beggar_1", "$tag_random_beggar_2", "$tag_random_beggar_3", "$tag_random_beggar_4", "$tag_random_beggar_5" };

	public static List<string> random_merchant = new List<string> { "$tag_random_merchant_1", "$tag_random_merchant_2", "$tag_random_merchant_3", "$tag_random_merchant_4", "$tag_random_merchant_5" };

	public static List<string> randomtalk_generic = new List<string> { "$tag_randomtalk_generic_1", "$tag_randomtalk_generic_2", "$tag_randomtalk_generic_3", "$tag_randomtalk_generic_4", "$tag_randomtalk_generic_5" };

	public static List<string> randomtalk_human = new List<string> { "$tag_randomtalk_human_1", "$tag_randomtalk_human_2", "$tag_randomtalk_human_3", "$tag_randomtalk_human_4", "$tag_randomtalk_human_5" };

	public static List<string> randomtalk_dverger = new List<string> { "$tag_randomtalk_dverger_1", "$tag_randomtalk_dverger_2", "$tag_randomtalk_dverger_3", "$tag_randomtalk_dverger_4", "$tag_randomtalk_dverger_5" };

	public static List<string> randomtalk_goblin = new List<string> { "$tag_randomtalk_goblin_1", "$tag_randomtalk_goblin_2", "$tag_randomtalk_goblin_3", "$tag_randomtalk_goblin_4", "$tag_randomtalk_goblin_5" };

	public static List<string> randomtalk_priest = new List<string> { "$tag_randomtalk_priest_1", "$tag_randomtalk_priest_2", "$tag_randomtalk_priest_3", "$tag_randomtalk_priest_4", "$tag_randomtalk_priest_5" };

	public static List<string> randomtalk_farmer = new List<string> { "$tag_randomtalk_farmer_1", "$tag_randomtalk_farmer_2", "$tag_randomtalk_farmer_3", "$tag_randomtalk_farmer_4", "$tag_randomtalk_farmer_5" };

	public static List<string> randomtalk_blacksmith = new List<string> { "$tag_randomtalk_blacksmith_1", "$tag_randomtalk_blacksmith_2", "$tag_randomtalk_blacksmith_3", "$tag_randomtalk_blacksmith_4", "$tag_randomtalk_blacksmith_5" };

	public static List<string> randomtalk_hunter = new List<string> { "$tag_randomtalk_hunter_1", "$tag_randomtalk_hunter_2", "$tag_randomtalk_hunter_3", "$tag_randomtalk_hunter_4", "$tag_randomtalk_hunter_5" };

	public static List<string> randomtalk_guard = new List<string> { "$tag_randomtalk_guard_1", "$tag_randomtalk_guard_2", "$tag_randomtalk_guard_3", "$tag_randomtalk_guard_4", "$tag_randomtalk_guard_5" };

	public static List<string> randomtalk_villager = new List<string> { "$tag_randomtalk_villager_1", "$tag_randomtalk_villager_2", "$tag_randomtalk_villager_3", "$tag_randomtalk_villager_4", "$tag_randomtalk_villager_5" };

	public static List<string> randomtalk_beggar = new List<string> { "$tag_randomtalk_beggar_1", "$tag_randomtalk_beggar_2", "$tag_randomtalk_beggar_3", "$tag_randomtalk_beggar_4", "$tag_randomtalk_beggar_5" };

	public static List<string> randomtalk_merchant = new List<string> { "$tag_randomtalk_merchant_1", "$tag_randomtalk_merchant_2", "$tag_randomtalk_merchant_3", "$tag_randomtalk_merchant_4", "$tag_randomtalk_merchant_5" };

	public static List<string> randomtalkinfaction_generic = new List<string> { "$tag_randomtalkinfaction_generic_1", "$tag_randomtalkinfaction_generic_2", "$tag_randomtalkinfaction_generic_3", "$tag_randomtalkinfaction_generic_4", "$tag_randomtalkinfaction_generic_5" };

	public static List<string> randomtalkinfaction_human = new List<string> { "$tag_randomtalkinfaction_human_1", "$tag_randomtalkinfaction_human_2", "$tag_randomtalkinfaction_human_3", "$tag_randomtalkinfaction_human_4", "$tag_randomtalkinfaction_human_5" };

	public static List<string> randomtalkinfaction_dverger = new List<string> { "$tag_randomtalkinfaction_dverger_1", "$tag_randomtalkinfaction_dverger_2", "$tag_randomtalkinfaction_dverger_3", "$tag_randomtalkinfaction_dverger_4", "$tag_randomtalkinfaction_dverger_5" };

	public static List<string> randomtalkinfaction_goblin = new List<string> { "$tag_randomtalkinfaction_goblin_1", "$tag_randomtalkinfaction_goblin_2", "$tag_randomtalkinfaction_goblin_3", "$tag_randomtalkinfaction_goblin_4", "$tag_randomtalkinfaction_goblin_5" };

	public static List<string> randomtalkinfaction_priest = new List<string> { "$tag_randomtalkinfaction_priest_1", "$tag_randomtalkinfaction_priest_2", "$tag_randomtalkinfaction_priest_3", "$tag_randomtalkinfaction_priest_4", "$tag_randomtalkinfaction_priest_5" };

	public static List<string> randomtalkinfaction_farmer = new List<string> { "$tag_randomtalkinfaction_farmer_1", "$tag_randomtalkinfaction_farmer_2", "$tag_randomtalkinfaction_farmer_3", "$tag_randomtalkinfaction_farmer_4", "$tag_randomtalkinfaction_farmer_5" };

	public static List<string> randomtalkinfaction_blacksmith = new List<string> { "$tag_randomtalkinfaction_blacksmith_1", "$tag_randomtalkinfaction_blacksmith_2", "$tag_randomtalkinfaction_blacksmith_3", "$tag_randomtalkinfaction_blacksmith_4", "$tag_randomtalkinfaction_blacksmith_5" };

	public static List<string> randomtalkinfaction_hunter = new List<string> { "$tag_randomtalkinfaction_hunter_1", "$tag_randomtalkinfaction_hunter_2", "$tag_randomtalkinfaction_hunter_3", "$tag_randomtalkinfaction_hunter_4", "$tag_randomtalkinfaction_hunter_5" };

	public static List<string> randomtalkinfaction_guard = new List<string> { "$tag_randomtalkinfaction_guard_1", "$tag_randomtalkinfaction_guard_2", "$tag_randomtalkinfaction_guard_3", "$tag_randomtalkinfaction_guard_4", "$tag_randomtalkinfaction_guard_5" };

	public static List<string> randomtalkinfaction_villager = new List<string> { "$tag_randomtalkinfaction_villager_1", "$tag_randomtalkinfaction_villager_2", "$tag_randomtalkinfaction_villager_3", "$tag_randomtalkinfaction_villager_4", "$tag_randomtalkinfaction_villager_5" };

	public static List<string> randomtalkinfaction_beggar = new List<string> { "$tag_randomtalkinfaction_beggar_1", "$tag_randomtalkinfaction_beggar_2", "$tag_randomtalkinfaction_beggar_3", "$tag_randomtalkinfaction_beggar_4", "$tag_randomtalkinfaction_beggar_5" };

	public static List<string> randomtalkinfaction_merchant = new List<string> { "$tag_randomtalkinfaction_merchant_1", "$tag_randomtalkinfaction_merchant_2", "$tag_randomtalkinfaction_merchant_3", "$tag_randomtalkinfaction_merchant_4", "$tag_randomtalkinfaction_merchant_5" };

	public static List<string> privatealarm_generic = new List<string> { "$tag_privatealarm_generic_1", "$tag_privatealarm_generic_2", "$tag_privatealarm_generic_3", "$tag_privatealarm_generic_4", "$tag_privatealarm_generic_5" };

	public static List<string> privatealarm_human = new List<string> { "$tag_privatealarm_human_1", "$tag_privatealarm_human_2", "$tag_privatealarm_human_3", "$tag_privatealarm_human_4", "$tag_privatealarm_human_5" };

	public static List<string> privatealarm_dverger = new List<string> { "$tag_privatealarm_dverger_1", "$tag_privatealarm_dverger_2", "$tag_privatealarm_dverger_3", "$tag_privatealarm_dverger_4", "$tag_privatealarm_dverger_5" };

	public static List<string> privatealarm_goblin = new List<string> { "$tag_privatealarm_goblin_1", "$tag_privatealarm_goblin_2", "$tag_privatealarm_goblin_3", "$tag_privatealarm_goblin_4", "$tag_privatealarm_goblin_5" };

	public static List<string> privatealarm_priest = new List<string> { "$tag_privatealarm_priest_1", "$tag_privatealarm_priest_2", "$tag_privatealarm_priest_3", "$tag_privatealarm_priest_4", "$tag_privatealarm_priest_5" };

	public static List<string> privatealarm_farmer = new List<string> { "$tag_privatealarm_farmer_1", "$tag_privatealarm_farmer_2", "$tag_privatealarm_farmer_3", "$tag_privatealarm_farmer_4", "$tag_privatealarm_farmer_5" };

	public static List<string> privatealarm_blacksmith = new List<string> { "$tag_privatealarm_blacksmith_1", "$tag_privatealarm_blacksmith_2", "$tag_privatealarm_blacksmith_3", "$tag_privatealarm_blacksmith_4", "$tag_privatealarm_blacksmith_5" };

	public static List<string> privatealarm_hunter = new List<string> { "$tag_privatealarm_hunter_1", "$tag_privatealarm_hunter_2", "$tag_privatealarm_hunter_3", "$tag_privatealarm_hunter_4", "$tag_privatealarm_hunter_5" };

	public static List<string> privatealarm_guard = new List<string> { "$tag_privatealarm_guard_1", "$tag_privatealarm_guard_2", "$tag_privatealarm_guard_3", "$tag_privatealarm_guard_4", "$tag_privatealarm_guard_5" };

	public static List<string> privatealarm_villager = new List<string> { "$tag_privatealarm_villager_1", "$tag_privatealarm_villager_2", "$tag_privatealarm_villager_3", "$tag_privatealarm_villager_4", "$tag_privatealarm_villager_5" };

	public static List<string> privatealarm_beggar = new List<string> { "$tag_privatealarm_beggar_1", "$tag_privatealarm_beggar_2", "$tag_privatealarm_beggar_3", "$tag_privatealarm_beggar_4", "$tag_privatealarm_beggar_5" };

	public static List<string> privatealarm_merchant = new List<string> { "$tag_privatealarm_merchant_1", "$tag_privatealarm_merchant_2", "$tag_privatealarm_merchant_3", "$tag_privatealarm_merchant_4", "$tag_privatealarm_merchant_5" };

	public static List<string> aggravated_generic = new List<string> { "$tag_aggravated_generic_1", "$tag_aggravated_generic_2", "$tag_aggravated_generic_3", "$tag_aggravated_generic_4", "$tag_aggravated_generic_5" };

	public static List<string> aggravated_human = new List<string> { "$tag_aggravated_human_1", "$tag_aggravated_human_2", "$tag_aggravated_human_3", "$tag_aggravated_human_4", "$tag_aggravated_human_5" };

	public static List<string> aggravated_dverger = new List<string> { "$tag_aggravated_dverger_1", "$tag_aggravated_dverger_2", "$tag_aggravated_dverger_3", "$tag_aggravated_dverger_4", "$tag_aggravated_dverger_5" };

	public static List<string> aggravated_goblin = new List<string> { "$tag_aggravated_goblin_1", "$tag_aggravated_goblin_2", "$tag_aggravated_goblin_3", "$tag_aggravated_goblin_4", "$tag_aggravated_goblin_5" };

	public static List<string> aggravated_priest = new List<string> { "$tag_aggravated_priest_1", "$tag_aggravated_priest_2", "$tag_aggravated_priest_3", "$tag_aggravated_priest_4", "$tag_aggravated_priest_5" };

	public static List<string> aggravated_farmer = new List<string> { "$tag_aggravated_farmer_1", "$tag_aggravated_farmer_2", "$tag_aggravated_farmer_3", "$tag_aggravated_farmer_4", "$tag_aggravated_farmer_5" };

	public static List<string> aggravated_blacksmith = new List<string> { "$tag_aggravated_blacksmith_1", "$tag_aggravated_blacksmith_2", "$tag_aggravated_blacksmith_3", "$tag_aggravated_blacksmith_4", "$tag_aggravated_blacksmith_5" };

	public static List<string> aggravated_hunter = new List<string> { "$tag_aggravated_hunter_1", "$tag_aggravated_hunter_2", "$tag_aggravated_hunter_3", "$tag_aggravated_hunter_4", "$tag_aggravated_hunter_5" };

	public static List<string> aggravated_guard = new List<string> { "$tag_aggravated_guard_1", "$tag_aggravated_guard_2", "$tag_aggravated_guard_3", "$tag_aggravated_guard_4", "$tag_aggravated_guard_5" };

	public static List<string> aggravated_villager = new List<string> { "$tag_aggravated_villager_1", "$tag_aggravated_villager_2", "$tag_aggravated_villager_3", "$tag_aggravated_villager_4", "$tag_aggravated_villager_5" };

	public static List<string> aggravated_beggar = new List<string> { "$tag_aggravated_beggar_1", "$tag_aggravated_beggar_2", "$tag_aggravated_beggar_3", "$tag_aggravated_beggar_4", "$tag_aggravated_beggar_5" };

	public static List<string> aggravated_merchant = new List<string> { "$tag_aggravated_merchant_1", "$tag_aggravated_merchant_2", "$tag_aggravated_merchant_3", "$tag_aggravated_merchant_4", "$tag_aggravated_merchant_5" };

	public static List<string> starttrade_generic = new List<string> { "$tag_starttrade_generic_1", "$tag_starttrade_generic_2", "$tag_starttrade_generic_3", "$tag_starttrade_generic_4", "$tag_starttrade_generic_5" };

	public static List<string> starttrade_human = new List<string> { "$tag_starttrade_human_1", "$tag_starttrade_human_2", "$tag_starttrade_human_3", "$tag_starttrade_human_4", "$tag_starttrade_human_5" };

	public static List<string> starttrade_dverger = new List<string> { "$tag_starttrade_dverger_1", "$tag_starttrade_dverger_2", "$tag_starttrade_dverger_3", "$tag_starttrade_dverger_4", "$tag_starttrade_dverger_5" };

	public static List<string> starttrade_goblin = new List<string> { "$tag_starttrade_goblin_1", "$tag_starttrade_goblin_2", "$tag_starttrade_goblin_3", "$tag_starttrade_goblin_4", "$tag_starttrade_goblin_5" };

	public static List<string> starttrade_priest = new List<string> { "$tag_starttrade_priest_1", "$tag_starttrade_priest_2", "$tag_starttrade_priest_3", "$tag_starttrade_priest_4", "$tag_starttrade_priest_5" };

	public static List<string> starttrade_farmer = new List<string> { "$tag_starttrade_farmer_1", "$tag_starttrade_farmer_2", "$tag_starttrade_farmer_3", "$tag_starttrade_farmer_4", "$tag_starttrade_farmer_5" };

	public static List<string> starttrade_blacksmith = new List<string> { "$tag_starttrade_blacksmith_1", "$tag_starttrade_blacksmith_2", "$tag_starttrade_blacksmith_3", "$tag_starttrade_blacksmith_4", "$tag_starttrade_blacksmith_5" };

	public static List<string> starttrade_hunter = new List<string> { "$tag_starttrade_hunter_1", "$tag_starttrade_hunter_2", "$tag_starttrade_hunter_3", "$tag_starttrade_hunter_4", "$tag_starttrade_hunter_5" };

	public static List<string> starttrade_guard = new List<string> { "$tag_starttrade_guard_1", "$tag_starttrade_guard_2", "$tag_starttrade_guard_3", "$tag_starttrade_guard_4", "$tag_starttrade_guard_5" };

	public static List<string> starttrade_villager = new List<string> { "$tag_starttrade_villager_1", "$tag_starttrade_villager_2", "$tag_starttrade_villager_3", "$tag_starttrade_villager_4", "$tag_starttrade_villager_5" };

	public static List<string> starttrade_beggar = new List<string> { "$tag_starttrade_beggar_1", "$tag_starttrade_beggar_2", "$tag_starttrade_beggar_3", "$tag_starttrade_beggar_4", "$tag_starttrade_beggar_5" };

	public static List<string> starttrade_merchant = new List<string> { "$tag_starttrade_merchant_1", "$tag_starttrade_merchant_2", "$tag_starttrade_merchant_3", "$tag_starttrade_merchant_4", "$tag_starttrade_merchant_5" };

	public static List<string> buy_generic = new List<string> { "$tag_buy_generic_1", "$tag_buy_generic_2", "$tag_buy_generic_3", "$tag_buy_generic_4", "$tag_buy_generic_5" };

	public static List<string> buy_human = new List<string> { "$tag_buy_human_1", "$tag_buy_human_2", "$tag_buy_human_3", "$tag_buy_human_4", "$tag_buy_human_5" };

	public static List<string> buy_dverger = new List<string> { "$tag_buy_dverger_1", "$tag_buy_dverger_2", "$tag_buy_dverger_3", "$tag_buy_dverger_4", "$tag_buy_dverger_5" };

	public static List<string> buy_goblin = new List<string> { "$tag_buy_goblin_1", "$tag_buy_goblin_2", "$tag_buy_goblin_3", "$tag_buy_goblin_4", "$tag_buy_goblin_5" };

	public static List<string> buy_priest = new List<string> { "$tag_buy_priest_1", "$tag_buy_priest_2", "$tag_buy_priest_3", "$tag_buy_priest_4", "$tag_buy_priest_5" };

	public static List<string> buy_farmer = new List<string> { "$tag_buy_farmer_1", "$tag_buy_farmer_2", "$tag_buy_farmer_3", "$tag_buy_farmer_4", "$tag_buy_farmer_5" };

	public static List<string> buy_blacksmith = new List<string> { "$tag_buy_blacksmith_1", "$tag_buy_blacksmith_2", "$tag_buy_blacksmith_3", "$tag_buy_blacksmith_4", "$tag_buy_blacksmith_5" };

	public static List<string> buy_hunter = new List<string> { "$tag_buy_hunter_1", "$tag_buy_hunter_2", "$tag_buy_hunter_3", "$tag_buy_hunter_4", "$tag_buy_hunter_5" };

	public static List<string> buy_guard = new List<string> { "$tag_buy_guard_1", "$tag_buy_guard_2", "$tag_buy_guard_3", "$tag_buy_guard_4", "$tag_buy_guard_5" };

	public static List<string> buy_villager = new List<string> { "$tag_buy_villager_1", "$tag_buy_villager_2", "$tag_buy_villager_3", "$tag_buy_villager_4", "$tag_buy_villager_5" };

	public static List<string> buy_beggar = new List<string> { "$tag_buy_beggar_1", "$tag_buy_beggar_2", "$tag_buy_beggar_3", "$tag_buy_beggar_4", "$tag_buy_beggar_5" };

	public static List<string> buy_merchant = new List<string> { "$tag_buy_merchant_1", "$tag_buy_merchant_2", "$tag_buy_merchant_3", "$tag_buy_merchant_4", "$tag_buy_merchant_5" };

	public static List<string> sell_generic = new List<string> { "$tag_sell_generic_1", "$tag_sell_generic_2", "$tag_sell_generic_3", "$tag_sell_generic_4", "$tag_sell_generic_5" };

	public static List<string> sell_human = new List<string> { "$tag_sell_human_1", "$tag_sell_human_2", "$tag_sell_human_3", "$tag_sell_human_4", "$tag_sell_human_5" };

	public static List<string> sell_dverger = new List<string> { "$tag_sell_dverger_1", "$tag_sell_dverger_2", "$tag_sell_dverger_3", "$tag_sell_dverger_4", "$tag_sell_dverger_5" };

	public static List<string> sell_goblin = new List<string> { "$tag_sell_goblin_1", "$tag_sell_goblin_2", "$tag_sell_goblin_3", "$tag_sell_goblin_4", "$tag_sell_goblin_5" };

	public static List<string> sell_priest = new List<string> { "$tag_sell_priest_1", "$tag_sell_priest_2", "$tag_sell_priest_3", "$tag_sell_priest_4", "$tag_sell_priest_5" };

	public static List<string> sell_farmer = new List<string> { "$tag_sell_farmer_1", "$tag_sell_farmer_2", "$tag_sell_farmer_3", "$tag_sell_farmer_4", "$tag_sell_farmer_5" };

	public static List<string> sell_blacksmith = new List<string> { "$tag_sell_blacksmith_1", "$tag_sell_blacksmith_2", "$tag_sell_blacksmith_3", "$tag_sell_blacksmith_4", "$tag_sell_blacksmith_5" };

	public static List<string> sell_hunter = new List<string> { "$tag_sell_hunter_1", "$tag_sell_hunter_2", "$tag_sell_hunter_3", "$tag_sell_hunter_4", "$tag_sell_hunter_5" };

	public static List<string> sell_guard = new List<string> { "$tag_sell_guard_1", "$tag_sell_guard_2", "$tag_sell_guard_3", "$tag_sell_guard_4", "$tag_sell_guard_5" };

	public static List<string> sell_villager = new List<string> { "$tag_sell_villager_1", "$tag_sell_villager_2", "$tag_sell_villager_3", "$tag_sell_villager_4", "$tag_sell_villager_5" };

	public static List<string> sell_beggar = new List<string> { "$tag_sell_beggar_1", "$tag_sell_beggar_2", "$tag_sell_beggar_3", "$tag_sell_beggar_4", "$tag_sell_beggar_5" };

	public static List<string> sell_merchant = new List<string> { "$tag_sell_merchant_1", "$tag_sell_merchant_2", "$tag_sell_merchant_3", "$tag_sell_merchant_4", "$tag_sell_merchant_5" };

	public static List<string> greeting_lumberjack = new List<string> { "$tag_greeting_lumberjack_1", "$tag_greeting_lumberjack_2", "$tag_greeting_lumberjack_3", "$tag_greeting_lumberjack_4", "$tag_greeting_lumberjack_5" };

	public static List<string> goodbye_lumberjack = new List<string> { "$tag_goodbye_lumberjack_1", "$tag_goodbye_lumberjack_2", "$tag_goodbye_lumberjack_3", "$tag_goodbye_lumberjack_4", "$tag_goodbye_lumberjack_5" };

	public static List<string> randomtalk_lumberjack = new List<string> { "$tag_randomtalk_lumberjack_1", "$tag_randomtalk_lumberjack_2", "$tag_randomtalk_lumberjack_3", "$tag_randomtalk_lumberjack_4", "$tag_randomtalk_lumberjack_5" };

	public static List<string> randomtalkinfaction_lumberjack = new List<string> { "$tag_randomtalkinfaction_lumberjack_1", "$tag_randomtalkinfaction_lumberjack_2", "$tag_randomtalkinfaction_lumberjack_3", "$tag_randomtalkinfaction_lumberjack_4", "$tag_randomtalkinfaction_lumberjack_5" };

	public static List<string> privatealarm_lumberjack = new List<string> { "$tag_privatealarm_lumberjack_1", "$tag_privatealarm_lumberjack_2", "$tag_privatealarm_lumberjack_3", "$tag_privatealarm_lumberjack_4", "$tag_privatealarm_lumberjack_5" };

	public static List<string> aggravated_lumberjack = new List<string> { "$tag_aggravated_lumberjack_1", "$tag_aggravated_lumberjack_2", "$tag_aggravated_lumberjack_3", "$tag_aggravated_lumberjack_4", "$tag_aggravated_lumberjack_5" };

	public static List<string> starttrade_lumberjack = new List<string> { "$tag_starttrade_lumberjack_1", "$tag_starttrade_lumberjack_2", "$tag_starttrade_lumberjack_3", "$tag_starttrade_lumberjack_4", "$tag_starttrade_lumberjack_5" };

	public static List<string> buy_lumberjack = new List<string> { "$tag_buy_lumberjack_1", "$tag_buy_lumberjack_2", "$tag_buy_lumberjack_3", "$tag_buy_lumberjack_4", "$tag_buy_lumberjack_5" };

	public static List<string> sell_lumberjack = new List<string> { "$tag_sell_lumberjack_1", "$tag_sell_lumberjack_2", "$tag_sell_lumberjack_3", "$tag_sell_lumberjack_4", "$tag_sell_lumberjack_5" };

	public static List<string> greeting_miner = new List<string> { "$tag_greeting_miner_1", "$tag_greeting_miner_2", "$tag_greeting_miner_3", "$tag_greeting_miner_4", "$tag_greeting_miner_5" };

	public static List<string> goodbye_miner = new List<string> { "$tag_goodbye_miner_1", "$tag_goodbye_miner_2", "$tag_goodbye_miner_3", "$tag_goodbye_miner_4", "$tag_goodbye_miner_5" };

	public static List<string> randomtalk_miner = new List<string> { "$tag_randomtalk_miner_1", "$tag_randomtalk_miner_2", "$tag_randomtalk_miner_3", "$tag_randomtalk_miner_4", "$tag_randomtalk_miner_5" };

	public static List<string> randomtalkinfaction_miner = new List<string> { "$tag_randomtalkinfaction_miner_1", "$tag_randomtalkinfaction_miner_2", "$tag_randomtalkinfaction_miner_3", "$tag_randomtalkinfaction_miner_4", "$tag_randomtalkinfaction_miner_5" };

	public static List<string> privatealarm_miner = new List<string> { "$tag_privatealarm_miner_1", "$tag_privatealarm_miner_2", "$tag_privatealarm_miner_3", "$tag_privatealarm_miner_4", "$tag_privatealarm_miner_5" };

	public static List<string> aggravated_miner = new List<string> { "$tag_aggravated_miner_1", "$tag_aggravated_miner_2", "$tag_aggravated_miner_3", "$tag_aggravated_miner_4", "$tag_aggravated_miner_5" };

	public static List<string> starttrade_miner = new List<string> { "$tag_starttrade_miner_1", "$tag_starttrade_miner_2", "$tag_starttrade_miner_3", "$tag_starttrade_miner_4", "$tag_starttrade_miner_5" };

	public static List<string> buy_miner = new List<string> { "$tag_buy_miner_1", "$tag_buy_miner_2", "$tag_buy_miner_3", "$tag_buy_miner_4", "$tag_buy_miner_5" };

	public static List<string> sell_miner = new List<string> { "$tag_sell_miner_1", "$tag_sell_miner_2", "$tag_sell_miner_3", "$tag_sell_miner_4", "$tag_sell_miner_5" };

	public static List<string> randomtalkinfaction_innkeeper = new List<string> { "$tag_randomtalkinfaction_innkeeper_1", "$tag_randomtalkinfaction_innkeeper_2", "$tag_randomtalkinfaction_innkeeper_3", "$tag_randomtalkinfaction_innkeeper_4", "$tag_randomtalkinfaction_innkeeper_5" };

	public static List<string> privatealarm_innkeeper = new List<string> { "$tag_privatealarm_innkeeper_1", "$tag_privatealarm_innkeeper_2", "$tag_privatealarm_innkeeper_3", "$tag_privatealarm_innkeeper_4", "$tag_privatealarm_innkeeper_5" };

	public static List<string> aggravated_innkeeper = new List<string> { "$tag_aggravated_innkeeper_1", "$tag_aggravated_innkeeper_2", "$tag_aggravated_innkeeper_3", "$tag_aggravated_innkeeper_4", "$tag_aggravated_innkeeper_5" };

	public static List<string> starttrade_innkeeper = new List<string> { "$tag_starttrade_innkeeper_1", "$tag_starttrade_innkeeper_2", "$tag_starttrade_innkeeper_3", "$tag_starttrade_innkeeper_4", "$tag_starttrade_innkeeper_5" };

	public static List<string> buy_innkeeper = new List<string> { "$tag_buy_innkeeper_1", "$tag_buy_innkeeper_2", "$tag_buy_innkeeper_3", "$tag_buy_innkeeper_4", "$tag_buy_innkeeper_5" };

	public static List<string> sell_innkeeper = new List<string> { "$tag_sell_innkeeper_1", "$tag_sell_innkeeper_2", "$tag_sell_innkeeper_3", "$tag_sell_innkeeper_4", "$tag_sell_innkeeper_5" };

	public static List<string> greeting_barpatron = new List<string> { "$tag_greeting_barpatron_1", "$tag_greeting_barpatron_2", "$tag_greeting_barpatron_3", "$tag_greeting_barpatron_4", "$tag_greeting_barpatron_5" };

	public static List<string> goodbye_barpatron = new List<string> { "$tag_goodbye_barpatron_1", "$tag_goodbye_barpatron_2", "$tag_goodbye_barpatron_3", "$tag_goodbye_barpatron_4", "$tag_goodbye_barpatron_5" };

	public static List<string> randomtalk_barpatron = new List<string> { "$tag_randomtalk_barpatron_1", "$tag_randomtalk_barpatron_2", "$tag_randomtalk_barpatron_3", "$tag_randomtalk_barpatron_4", "$tag_randomtalk_barpatron_5" };

	public static List<string> randomtalkinfaction_barpatron = new List<string> { "$tag_randomtalkinfaction_barpatron_1", "$tag_randomtalkinfaction_barpatron_2", "$tag_randomtalkinfaction_barpatron_3", "$tag_randomtalkinfaction_barpatron_4", "$tag_randomtalkinfaction_barpatron_5" };

	public static List<string> privatealarm_barpatron = new List<string> { "$tag_privatealarm_barpatron_1", "$tag_privatealarm_barpatron_2", "$tag_privatealarm_barpatron_3", "$tag_privatealarm_barpatron_4", "$tag_privatealarm_barpatron_5" };

	public static List<string> aggravated_barpatron = new List<string> { "$tag_aggravated_barpatron_1", "$tag_aggravated_barpatron_2", "$tag_aggravated_barpatron_3", "$tag_aggravated_barpatron_4", "$tag_aggravated_barpatron_5" };

	public static List<string> starttrade_fisherman = new List<string> { "$tag_starttrade_fisherman_1", "$tag_starttrade_fisherman_2", "$tag_starttrade_fisherman_3", "$tag_starttrade_fisherman_4", "$tag_starttrade_fisherman_5" };

	public static List<string> buy_fisherman = new List<string> { "$tag_buy_fisherman_1", "$tag_buy_fisherman_2", "$tag_buy_fisherman_3", "$tag_buy_fisherman_4", "$tag_buy_fisherman_5" };

	public static List<string> sell_fisherman = new List<string> { "$tag_sell_fisherman_1", "$tag_sell_fisherman_2", "$tag_sell_fisherman_3", "$tag_sell_fisherman_4", "$tag_sell_fisherman_5" };

	public static List<string> starttrade_butcher = new List<string> { "$tag_starttrade_butcher_1", "$tag_starttrade_butcher_2", "$tag_starttrade_butcher_3", "$tag_starttrade_butcher_4", "$tag_starttrade_butcher_5" };

	public static List<string> buy_butcher = new List<string> { "$tag_buy_butcher_1", "$tag_buy_butcher_2", "$tag_buy_butcher_3", "$tag_buy_butcher_4", "$tag_buy_butcher_5" };

	public static List<string> sell_butcher = new List<string> { "$tag_sell_butcher_1", "$tag_sell_butcher_2", "$tag_sell_butcher_3", "$tag_sell_butcher_4", "$tag_sell_butcher_5" };

	public static List<string> starttrade_forager = new List<string> { "$tag_starttrade_forager_1", "$tag_starttrade_forager_2", "$tag_starttrade_forager_3", "$tag_starttrade_forager_4", "$tag_starttrade_forager_5" };

	public static List<string> buy_forager = new List<string> { "$tag_buy_forager_1", "$tag_buy_forager_2", "$tag_buy_forager_3", "$tag_buy_forager_4", "$tag_buy_forager_5" };

	public static List<string> sell_forager = new List<string> { "$tag_sell_forager_1", "$tag_sell_forager_2", "$tag_sell_forager_3", "$tag_sell_forager_4", "$tag_sell_forager_5" };

	public static List<string> greeting_fisherman = new List<string> { "$tag_greeting_fisherman_1", "$tag_greeting_fisherman_2", "$tag_greeting_fisherman_3", "$tag_greeting_fisherman_4", "$tag_greeting_fisherman_5" };

	public static List<string> goodbye_fisherman = new List<string> { "$tag_goodbye_fisherman_1", "$tag_goodbye_fisherman_2", "$tag_goodbye_fisherman_3", "$tag_goodbye_fisherman_4", "$tag_goodbye_fisherman_5" };

	public static List<string> randomtalk_fisherman = new List<string> { "$tag_randomtalk_fisherman_1", "$tag_randomtalk_fisherman_2", "$tag_randomtalk_fisherman_3", "$tag_randomtalk_fisherman_4", "$tag_randomtalk_fisherman_5" };

	public static List<string> randomtalkinfaction_fisherman = new List<string> { "$tag_randomtalkinfaction_fisherman_1", "$tag_randomtalkinfaction_fisherman_2", "$tag_randomtalkinfaction_fisherman_3", "$tag_randomtalkinfaction_fisherman_4", "$tag_randomtalkinfaction_fisherman_5" };

	public static List<string> aggravated_fisherman = new List<string> { "$tag_aggravated_fisherman_1", "$tag_aggravated_fisherman_2", "$tag_aggravated_fisherman_3", "$tag_aggravated_fisherman_4", "$tag_aggravated_fisherman_5" };

	public static List<string> greeting_butcher = new List<string> { "$tag_greeting_butcher_1", "$tag_greeting_butcher_2", "$tag_greeting_butcher_3", "$tag_greeting_butcher_4", "$tag_greeting_butcher_5" };

	public static List<string> goodbye_butcher = new List<string> { "$tag_goodbye_butcher_1", "$tag_goodbye_butcher_2", "$tag_goodbye_butcher_3", "$tag_goodbye_butcher_4", "$tag_goodbye_butcher_5" };

	public static List<string> randomtalk_butcher = new List<string> { "$tag_randomtalk_butcher_1", "$tag_randomtalk_butcher_2", "$tag_randomtalk_butcher_3", "$tag_randomtalk_butcher_4", "$tag_randomtalk_butcher_5" };

	public static List<string> randomtalkinfaction_butcher = new List<string> { "$tag_randomtalkinfaction_butcher_1", "$tag_randomtalkinfaction_butcher_2", "$tag_randomtalkinfaction_butcher_3", "$tag_randomtalkinfaction_butcher_4", "$tag_randomtalkinfaction_butcher_5" };

	public static List<string> aggravated_butcher = new List<string> { "$tag_aggravated_butcher_1", "$tag_aggravated_butcher_2", "$tag_aggravated_butcher_3", "$tag_aggravated_butcher_4", "$tag_aggravated_butcher_5" };

	public static List<string> greeting_forager = new List<string> { "$tag_greeting_forager_1", "$tag_greeting_forager_2", "$tag_greeting_forager_3", "$tag_greeting_forager_4", "$tag_greeting_forager_5" };

	public static List<string> goodbye_forager = new List<string> { "$tag_goodbye_forager_1", "$tag_goodbye_forager_2", "$tag_goodbye_forager_3", "$tag_goodbye_forager_4", "$tag_goodbye_forager_5" };

	public static List<string> randomtalk_forager = new List<string> { "$tag_randomtalk_forager_1", "$tag_randomtalk_forager_2", "$tag_randomtalk_forager_3", "$tag_randomtalk_forager_4", "$tag_randomtalk_forager_5" };

	public static List<string> randomtalkinfaction_forager = new List<string> { "$tag_randomtalkinfaction_forager_1", "$tag_randomtalkinfaction_forager_2", "$tag_randomtalkinfaction_forager_3", "$tag_randomtalkinfaction_forager_4", "$tag_randomtalkinfaction_forager_5" };

	public static List<string> aggravated_forager = new List<string> { "$tag_aggravated_forager_1", "$tag_aggravated_forager_2", "$tag_aggravated_forager_3", "$tag_aggravated_forager_4", "$tag_aggravated_forager_5" };

	private static Dictionary<string, List<string>> allDialogLists = new Dictionary<string, List<string>>
	{
		{ "randomtalkinfaction_innkeeper", randomtalkinfaction_innkeeper },
		{ "privatealarm_innkeeper", privatealarm_innkeeper },
		{ "aggravated_innkeeper", aggravated_innkeeper },
		{ "starttrade_innkeeper", starttrade_innkeeper },
		{ "buy_innkeeper", buy_innkeeper },
		{ "sell_innkeeper", sell_innkeeper },
		{ "greeting_barpatron", greeting_barpatron },
		{ "goodbye_barpatron", goodbye_barpatron },
		{ "randomtalk_barpatron", randomtalk_barpatron },
		{ "randomtalkinfaction_barpatron", randomtalkinfaction_barpatron },
		{ "privatealarm_barpatron", privatealarm_barpatron },
		{ "aggravated_barpatron", aggravated_barpatron },
		{
			"starttrade_barpatron",
			new List<string>()
		},
		{
			"buy_barpatron",
			new List<string>()
		},
		{
			"sell_barpatron",
			new List<string>()
		},
		{ "starttrade_fisherman", starttrade_fisherman },
		{ "buy_fisherman", buy_fisherman },
		{ "sell_fisherman", sell_fisherman },
		{ "starttrade_butcher", starttrade_butcher },
		{ "buy_butcher", buy_butcher },
		{ "sell_butcher", sell_butcher },
		{ "starttrade_forager", starttrade_forager },
		{ "buy_forager", buy_forager },
		{ "sell_forager", sell_forager },
		{ "greeting_fisherman", greeting_fisherman },
		{ "goodbye_fisherman", goodbye_fisherman },
		{ "randomtalk_fisherman", randomtalk_fisherman },
		{ "randomtalkinfaction_fisherman", randomtalkinfaction_fisherman },
		{ "aggravated_fisherman", aggravated_fisherman },
		{ "greeting_butcher", greeting_butcher },
		{ "goodbye_butcher", goodbye_butcher },
		{ "randomtalk_butcher", randomtalk_butcher },
		{ "randomtalkinfaction_butcher", randomtalkinfaction_butcher },
		{ "aggravated_butcher", aggravated_butcher },
		{ "greeting_forager", greeting_forager },
		{ "goodbye_forager", goodbye_forager },
		{ "randomtalk_forager", randomtalk_forager },
		{ "randomtalkinfaction_forager", randomtalkinfaction_forager },
		{ "aggravated_forager", aggravated_forager },
		{ "greeting_generic", greeting_generic },
		{ "greeting_human", greeting_human },
		{ "greeting_dverger", greeting_dverger },
		{ "greeting_goblin", greeting_goblin },
		{ "greeting_priest", greeting_priest },
		{ "greeting_farmer", greeting_farmer },
		{ "greeting_blacksmith", greeting_blacksmith },
		{ "greeting_hunter", greeting_hunter },
		{ "greeting_guard", greeting_guard },
		{ "greeting_villager", greeting_villager },
		{ "greeting_beggar", greeting_beggar },
		{ "greeting_merchant", greeting_merchant },
		{ "greeting_lumberjack", greeting_lumberjack },
		{ "greeting_miner", greeting_miner },
		{ "goodbye_generic", goodbye_generic },
		{ "goodbye_human", goodbye_human },
		{ "goodbye_dverger", goodbye_dverger },
		{ "goodbye_goblin", goodbye_goblin },
		{ "goodbye_priest", goodbye_priest },
		{ "goodbye_farmer", goodbye_farmer },
		{ "goodbye_blacksmith", goodbye_blacksmith },
		{ "goodbye_hunter", goodbye_hunter },
		{ "goodbye_guard", goodbye_guard },
		{ "goodbye_villager", goodbye_villager },
		{ "goodbye_beggar", goodbye_beggar },
		{ "goodbye_merchant", goodbye_merchant },
		{ "goodbye_lumberjack", goodbye_lumberjack },
		{ "goodbye_miner", goodbye_miner },
		{ "random_generic", random_generic },
		{ "random_human", random_human },
		{ "random_dverger", random_dverger },
		{ "random_goblin", random_goblin },
		{ "random_priest", random_priest },
		{ "random_farmer", random_farmer },
		{ "random_blacksmith", random_blacksmith },
		{ "random_hunter", random_hunter },
		{ "random_guard", random_guard },
		{ "random_villager", random_villager },
		{ "random_beggar", random_beggar },
		{ "random_merchant", random_merchant },
		{ "randomtalk_lumberjack", randomtalk_lumberjack },
		{ "randomtalk_miner", randomtalk_miner },
		{ "randomtalk_generic", randomtalk_generic },
		{ "randomtalk_human", randomtalk_human },
		{ "randomtalk_dverger", randomtalk_dverger },
		{ "randomtalk_goblin", randomtalk_goblin },
		{ "randomtalk_priest", randomtalk_priest },
		{ "randomtalk_farmer", randomtalk_farmer },
		{ "randomtalk_blacksmith", randomtalk_blacksmith },
		{ "randomtalk_hunter", randomtalk_hunter },
		{ "randomtalk_guard", randomtalk_guard },
		{ "randomtalk_villager", randomtalk_villager },
		{ "randomtalk_beggar", randomtalk_beggar },
		{ "randomtalk_merchant", randomtalk_merchant },
		{ "randomtalkinfaction_lumberjack", randomtalkinfaction_lumberjack },
		{ "randomtalkinfaction_miner", randomtalkinfaction_miner },
		{ "randomtalkinfaction_generic", randomtalkinfaction_generic },
		{ "randomtalkinfaction_human", randomtalkinfaction_human },
		{ "randomtalkinfaction_dverger", randomtalkinfaction_dverger },
		{ "randomtalkinfaction_goblin", randomtalkinfaction_goblin },
		{ "randomtalkinfaction_priest", randomtalkinfaction_priest },
		{ "randomtalkinfaction_farmer", randomtalkinfaction_farmer },
		{ "randomtalkinfaction_blacksmith", randomtalkinfaction_blacksmith },
		{ "randomtalkinfaction_hunter", randomtalkinfaction_hunter },
		{ "randomtalkinfaction_guard", randomtalkinfaction_guard },
		{ "randomtalkinfaction_villager", randomtalkinfaction_villager },
		{ "randomtalkinfaction_beggar", randomtalkinfaction_beggar },
		{ "randomtalkinfaction_merchant", randomtalkinfaction_merchant },
		{ "privatealarm_generic", privatealarm_generic },
		{ "privatealarm_human", privatealarm_human },
		{ "privatealarm_dverger", privatealarm_dverger },
		{ "privatealarm_goblin", privatealarm_goblin },
		{ "privatealarm_priest", privatealarm_priest },
		{ "privatealarm_farmer", privatealarm_farmer },
		{ "privatealarm_blacksmith", privatealarm_blacksmith },
		{ "privatealarm_hunter", privatealarm_hunter },
		{ "privatealarm_guard", privatealarm_guard },
		{ "privatealarm_villager", privatealarm_villager },
		{ "privatealarm_beggar", privatealarm_beggar },
		{ "privatealarm_merchant", privatealarm_merchant },
		{ "privatealarm_lumberjack", privatealarm_lumberjack },
		{ "privatealarm_miner", privatealarm_miner },
		{ "aggravated_generic", aggravated_generic },
		{ "aggravated_human", aggravated_human },
		{ "aggravated_dverger", aggravated_dverger },
		{ "aggravated_goblin", aggravated_goblin },
		{ "aggravated_priest", aggravated_priest },
		{ "aggravated_farmer", aggravated_farmer },
		{ "aggravated_blacksmith", aggravated_blacksmith },
		{ "aggravated_hunter", aggravated_hunter },
		{ "aggravated_guard", aggravated_guard },
		{ "aggravated_villager", aggravated_villager },
		{ "aggravated_beggar", aggravated_beggar },
		{ "aggravated_merchant", aggravated_merchant },
		{ "aggravated_lumberjack", aggravated_lumberjack },
		{ "aggravated_miner", aggravated_miner },
		{ "starttrade_generic", starttrade_generic },
		{ "starttrade_human", starttrade_human },
		{ "starttrade_dverger", starttrade_dverger },
		{ "starttrade_goblin", starttrade_goblin },
		{ "starttrade_priest", starttrade_priest },
		{ "starttrade_farmer", starttrade_farmer },
		{ "starttrade_blacksmith", starttrade_blacksmith },
		{ "starttrade_hunter", starttrade_hunter },
		{ "starttrade_guard", starttrade_guard },
		{ "starttrade_villager", starttrade_villager },
		{ "starttrade_beggar", starttrade_beggar },
		{ "starttrade_merchant", starttrade_merchant },
		{ "starttrade_lumberjack", starttrade_lumberjack },
		{ "starttrade_miner", starttrade_miner },
		{ "buy_generic", buy_generic },
		{ "buy_human", buy_human },
		{ "buy_dverger", buy_dverger },
		{ "buy_goblin", buy_goblin },
		{ "buy_priest", buy_priest },
		{ "buy_farmer", buy_farmer },
		{ "buy_blacksmith", buy_blacksmith },
		{ "buy_hunter", buy_hunter },
		{ "buy_guard", buy_guard },
		{ "buy_villager", buy_villager },
		{ "buy_beggar", buy_beggar },
		{ "buy_merchant", buy_merchant },
		{ "buy_lumberjack", buy_lumberjack },
		{ "buy_miner", buy_miner },
		{ "sell_generic", sell_generic },
		{ "sell_human", sell_human },
		{ "sell_dverger", sell_dverger },
		{ "sell_goblin", sell_goblin },
		{ "sell_priest", sell_priest },
		{ "sell_farmer", sell_farmer },
		{ "sell_blacksmith", sell_blacksmith },
		{ "sell_hunter", sell_hunter },
		{ "sell_guard", sell_guard },
		{ "sell_villager", sell_villager },
		{ "sell_beggar", sell_beggar },
		{ "sell_merchant", sell_merchant },
		{ "sell_lumberjack", sell_lumberjack },
		{ "sell_miner", sell_miner }
	};

	public static List<string> createDialogList(string archetype, string race, string category)
	{
		List<string> list = new List<string>();
		string key = category.ToLower() + "_generic";
		string key2 = category.ToLower() + "_" + race.ToLower();
		string key3 = category.ToLower() + "_" + archetype.ToLower();
		Dictionary<string, List<string>> dictionary = allDialogLists;
		if (dictionary.ContainsKey(key))
		{
			list.AddRange(dictionary[key]);
		}
		if (dictionary.ContainsKey(key2))
		{
			list.AddRange(dictionary[key2]);
		}
		if (dictionary.ContainsKey(key3))
		{
			list.AddRange(dictionary[key3]);
		}
		return list;
	}
}
public static class BalrondHashCompat
{
	private static readonly MethodInfo _getStableHashCodeStringBool;

	private static readonly MethodInfo _getStableHashCodeString;

	private static readonly bool _initialized;

	static BalrondHashCompat()
	{
		try
		{
			Type typeFromHandle = typeof(StringExtensionMethods);
			_getStableHashCodeStringBool = typeFromHandle.GetMethod("GetStableHashCode", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic, null, new Type[2]
			{
				typeof(string),
				typeof(bool)
			}, null);
			_getStableHashCodeString = typeFromHandle.GetMethod("GetStableHashCode", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic, null, new Type[1] { typeof(string) }, null);
			_initialized = true;
		}
		catch
		{
			_initialized = false;
		}
	}

	public static int StableHash(string value)
	{
		if (value == null)
		{
			return 0;
		}
		try
		{
			if (_getStableHashCodeStringBool != null)
			{
				return (int)_getStableHashCodeStringBool.Invoke(null, new object[2] { value, false });
			}
			if (_getStableHashCodeString != null)
			{
				return (int)_getStableHashCodeString.Invoke(null, new object[1] { value });
			}
		}
		catch
		{
		}
		return FallbackStableHash(value);
	}

	private static int FallbackStableHash(string value)
	{
		int num = 5381;
		int num2 = num;
		for (int i = 0; i < value.Length; i += 2)
		{
			num = ((num << 5) + num) ^ value[i];
			if (i == value.Length - 1)
			{
				break;
			}
			num2 = ((num2 << 5) + num2) ^ value[i + 1];
		}
		return num + num2 * 1566083941;
	}
}
namespace BalrondIdleActors
{
	internal class BalrondActor : MonoBehaviour
	{
		private const string SkinColorZdoKey = "BalrondActorSkinColor";

		private const string HairColorZdoKey = "BalrondActorHairColor";

		public string m_beardItem = "";

		public string m_hairItem = "";

		public string m_helmet = "";

		public string m_chest = "";

		public string m_legs = "";

		public string m_back = "";

		public int m_backVariant = 0;

		public string m_right = "";

		public int m_rightVariant = 0;

		public string m_left = "";

		public int m_leftVariant = 0;

		public string m_leftBack = "";

		public int m_leftBackVariant = 0;

		public string m_rightBack = "";

		public int m_rightBackVariant = 0;

		public string m_tool = "";

		public int m_toolVariant = 0;

		public bool m_isFemale = false;

		public bool m_shouldHaveBeard = true;

		public bool m_shouldHaveHair = true;

		public string m_archetype = "Villager";

		public string m_race = "human";

		public Transform m_leftShoulder;

		public Transform m_rightShoulder;

		public float m_femaleOffset = 0.0004f;

		public float m_maleOffset = 0.0007651657f;

		public string m_name = "Bjorn Bjernsen";

		public RuntimeAnimatorController animatorController;

		public Animator m_animator;

		private bool m_hasSetup;

		public bool m_useLoadout = false;

		public BalrondActorLoadout m_loudout;

		public bool isTrader = false;

		public bool isTalker = false;

		public int randomHairMax = 31;

		public int randomBeardMax = 21;

		public Vector3 m_skinColor = new Vector3(0.92f, 0.86f, 0.7f);

		public Vector3 m_hairColor = new Vector3(0.6f, 0.55f, 0.5f);

		public VisEquipment m_visEquipment;

		public ZNetView m_nview;

		public Trader m_trader;

		public BalrondActorTalker m_talker;

		private void Awake()
		{
			m_nview = ((Component)this).GetComponent<ZNetView>();
			m_visEquipment = ((Component)this).GetComponent<VisEquipment>();
			Transform val = ((Component)this).transform.Find("Visual");
			m_animator = (((Object)(object)val != (Object)null) ? ((Component)val).GetComponent<Animator>() : null);
			if ((Object)(object)m_animator == (Object)null)
			{
				m_animator = ((Component)this).GetComponentInChildren<Animator>(true);
			}
			if ((Object)(object)m_visEquipment != (Object)null)
			{
				m_visEquipment.m_modelIndex = (m_isFemale ? 1 : 0);
				m_visEquipment.SetModel(m_isFemale ? 1 : 0);
			}
			GetHasSetup();
			m_leftShoulder = FindDeepChild(((Component)this).transform, "LeftSholder");
			m_rightShoulder = FindDeepChild(((Component)this).transform, "RightSholder");
			m_trader = ((Component)this).GetComponent<Trader>();
			m_talker = ((Component)this).GetComponent<BalrondActorTalker>();
		}

		private void Start()
		{
			if ((Object)(object)animatorController != (Object)null && (Object)(object)m_animator != (Object)null)
			{
				m_animator.runtimeAnimatorController = animatorController;
			}
			GetArchetypeSetup();
			EnforceRaceSpecificHeadSlots();
			if (m_useLoadout && !m_hasSetup)
			{
				GetNewLoadOut();
				SetLoadOut();
			}
			SetVoiceLines();
			if (!m_hasSetup)
			{
				setHairAndBeard();
				InitializeNewAppearanceColors();
				setEquipeFromString();
				SetArchetypeSetup();
				setHasSetup();
			}
			else
			{
				RestoreOrInitializeAppearanceColors();
			}
		}

		private bool HasValidNView()
		{
			return (Object)(object)m_nview != (Object)null && m_nview.IsValid() && m_nview.GetZDO() != null;
		}

		private void GetHasSetup()
		{
			if (HasValidNView())
			{
				m_hasSetup = m_nview.GetZDO().GetBool("BalrondActorHasSetup", false);
			}
		}

		private void SetArchetypeSetup()
		{
			if (HasValidNView() && m_nview.IsOwner())
			{
				m_nview.GetZDO().Set("BalrondActorArchetype", m_archetype ?? "Villager");
			}
		}

		private void GetArchetypeSetup()
		{
			if (HasValidNView())
			{
				string text = m_nview.GetZDO().GetString("BalrondActorArchetype", string.Empty);
				if (!string.IsNullOrEmpty(text))
				{
					m_archetype = text;
				}
			}
		}

		private void setHasSetup()
		{
			m_hasSetup = true;
			if (HasValidNView() && m_nview.IsOwner())
			{
				m_nview.GetZDO().Set("BalrondActorHasSetup", true);
			}
		}

		private void GetNewLoadOut()
		{
			m_loudout = BalrondActorLoadoutFactory.GetLoadout(m_archetype, m_isFemale, m_race);
		}

		internal void RefreshRuntimeConfig()
		{
			SetVoiceLines();
		}

		internal static void RefreshRuntimeConfigForAll()
		{
			BalrondActor[] array;
			try
			{
				array = Resources.FindObjectsOfTypeAll<BalrondActor>();
			}
			catch (Exception ex)
			{
				Debug.LogWarning((object)("BalrondIdleActors: could not enumerate actors for config refresh: " + ex.Message));
				return;
			}
			if (array == null)
			{
				return;
			}
			foreach (BalrondActor balrondActor in array)
			{
				if ((Object)(object)balrondActor != (Object)null)
				{
					balrondActor.RefreshRuntimeConfig();
				}
			}
		}

		private void SetVoiceLines()
		{
			NpcDialogue npcDialogue = NpcDialogue.GetNpcDialogue(m_archetype, m_race);
			if (npcDialogue == null)
			{
				Debug.LogWarning((object)("BalrondIdleActors: no dialogue preset for archetype '" + m_archetype + "' race '" + m_race + "'."));
				return;
			}
			m_talker = (((Object)(object)m_talker != (Object)null) ? m_talker : ((Component)this).GetComponent<BalrondActorTalker>());
			if ((Object)(object)m_talker != (Object)null)
			{
				m_talker.m_archetype = m_archetype;
				m_talker.m_race = m_race;
				m_talker.m_randomTalk = npcDialogue.m_randomTalk;
				m_talker.m_randomTalkInFactionBase = npcDialogue.m_randomTalkInFactionBase;
				m_talker.m_randomGreets = npcDialogue.m_randomGreets;
				m_talker.m_randomGoodbye = npcDialogue.m_randomGoodbye;
				m_talker.m_privateAreaAlarm = npcDialogue.m_privateAreaAlarm;
				m_talker.m_aggravated = npcDialogue.m_aggravated;
			}
			m_trader = (((Object)(object)m_trader != (Object)null) ? m_trader : ((Component)this).GetComponent<Trader>());
			if ((Object)(object)m_trader != (Object)null)
			{
				m_trader.m_randomTalk = npcDialogue.m_randomTalk;
				m_trader.m_randomGreets = npcDialogue.m_randomGreets;
				m_trader.m_randomGoodbye = npcDialogue.m_randomGoodbye;
				m_trader.m_randomStartTrade = npcDialogue.m_randomStartTrade;
				m_trader.m_randomBuy = npcDialogue.m_randomBuy;
				m_trader.m_randomSell = npcDialogue.m_randomSell;
				m_trader.m_items = BalrondActorTraderPresets.GetItemsForArchetype(m_archetype);
			}
		}

		private void SetLoadOut()
		{
			if (m_loudout == null)
			{
				Debug.LogWarning((object)("BalrondIdleActors: loadout factory returned null for " + ((Object)this).name + " (" + m_race + "/" + m_archetype + ")."));
			}
			else
			{
				m_helmet = (string.IsNullOrEmpty(m_helmet) ? m_loudout.m_helmet : m_helmet);
				m_chest = (string.IsNullOrEmpty(m_chest) ? m_loudout.m_chest : m_chest);
				m_legs = (string.IsNullOrEmpty(m_legs) ? m_loudout.m_legs : m_legs);
				m_back = (string.IsNullOrEmpty(m_back) ? m_loudout.m_back : m_back);
				m_right = (string.IsNullOrEmpty(m_right) ? m_loudout.m_right : m_right);
				m_left = (string.IsNullOrEmpty(m_left) ? m_loudout.m_left : m_left);
				m_leftBack = (string.IsNullOrEmpty(m_leftBack) ? m_loudout.m_leftBack : m_leftBack);
				m_rightBack = (string.IsNullOrEmpty(m_rightBack) ? m_loudout.m_rightBack : m_rightBack);
				m_tool = (string.IsNullOrEmpty(m_tool) ? m_loudout.m_tool : m_tool);
				m_backVariant = ((m_backVariant == 0) ? m_loudout.m_backVariant : m_backVariant);
				m_rightVariant = ((m_rightVariant == 0) ? m_loudout.m_rightVariant : m_rightVariant);
				m_leftVariant = ((m_leftVariant == 0) ? m_loudout.m_leftVariant : m_leftVariant);
				m_leftBackVariant = ((m_leftBackVariant == 0) ? m_loudout.m_leftBackVariant : m_leftBackVariant);
				m_rightBackVariant = ((m_rightBackVariant == 0) ? m_loudout.m_rightBackVariant : m_rightBackVariant);
				m_toolVariant = ((m_toolVariant == 0) ? m_loudout.m_toolVariant : m_toolVariant);
			}
		}

		public void SetSkinColor(Vector3 color)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0003: Unknown result type (might be due to invalid IL or missing references)
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			m_skinColor = color;
			if ((Object)(object)m_visEquipment != (Object)null)
			{
				m_visEquipment.SetSkinColor(m_skinColor);
			}
			PersistColorIfOwner("BalrondActorSkinColor", m_skinColor);
		}

		public void SetHairColor(Vector3 color)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0003: Unknown result type (might be due to invalid IL or missing references)
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			m_hairColor = color;
			if ((Object)(object)m_visEquipment != (Object)null)
			{
				m_visEquipment.SetHairColor(m_hairColor);
			}
			PersistColorIfOwner("BalrondActorHairColor", m_hairColor);
		}

		private void InitializeNewAppearanceColors()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			Vector3 skinColor = m_skinColor;
			Vector3 hairColor = m_hairColor;
			if (BalrondActorLoadoutFactory.SkinTones != null && BalrondActorLoadoutFactory.SkinTones.Length != 0)
			{
				skinColor = BalrondActorLoadoutFactory.SkinTones[Random.Range(0, BalrondActorLoadoutFactory.SkinTones.Length)];
			}
			if (BalrondActorLoadoutFactory.HairColors != null && BalrondActorLoadoutFactory.HairColors.Length != 0)
			{
				hairColor = BalrondActorLoadoutFactory.HairColors[Random.Range(0, BalrondActorLoadoutFactory.HairColors.Length)];
			}
			SetSkinColor(skinColor);
			SetHairColor(hairColor);
		}

		private void RestoreOrInitializeAppearanceColors()
		{
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0077: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
			Vector3 color;
			bool flag = TryReadPersistedColor("BalrondActorSkinColor", out color);
			Vector3 color2;
			bool flag2 = TryReadPersistedColor("BalrondActorHairColor", out color2);
			if (!flag)
			{
				color = m_skinColor;
				if (CanPersistAppearance() && BalrondActorLoadoutFactory.SkinTones != null && BalrondActorLoadoutFactory.SkinTones.Length != 0)
				{
					color = BalrondActorLoadoutFactory.SkinTones[Random.Range(0, BalrondActorLoadoutFactory.SkinTones.Length)];
				}
			}
			if (!flag2)
			{
				color2 = m_hairColor;
				if (CanPersistAppearance() && BalrondActorLoadoutFactory.HairColors != null && BalrondActorLoadoutFactory.HairColors.Length != 0)
				{
					color2 = BalrondActorLoadoutFactory.HairColors[Random.Range(0, BalrondActorLoadoutFactory.HairColors.Length)];
				}
			}
			SetSkinColor(color);
			SetHairColor(color2);
			if ((!flag || !flag2) && HasValidNView() && !m_nview.IsOwner())
			{
				((MonoBehaviour)this).Invoke("RefreshAppearanceFromNetwork", 1f);
			}
		}

		private void RefreshAppearanceFromNetwork()
		{
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			if (TryReadPersistedColor("BalrondActorSkinColor", out var color))
			{
				m_skinColor = color;
				if ((Object)(object)m_visEquipment != (Object)null)
				{
					m_visEquipment.SetSkinColor(color);
				}
			}
			if (TryReadPersistedColor("BalrondActorHairColor", out var color2))
			{
				m_hairColor = color2;
				if ((Object)(object)m_visEquipment != (Object)null)
				{
					m_visEquipment.SetHairColor(color2);
				}
			}
		}

		private bool CanPersistAppearance()
		{
			return HasValidNView() && m_nview.IsOwner();
		}

		private void PersistColorIfOwner(string key, Vector3 color)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			if (CanPersistAppearance() && !string.IsNullOrEmpty(key))
			{
				m_nview.GetZDO().Set(key, SerializeColor(color));
			}
		}

		private bool TryReadPersistedColor(string key, out Vector3 color)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			color = Vector3.zero;
			if (!HasValidNView() || string.IsNullOrEmpty(key))
			{
				return false;
			}
			string raw = m_nview.GetZDO().GetString(key, string.Empty);
			return TryDeserializeColor(raw, out color);
		}

		private static string SerializeColor(Vector3 color)
		{
			return color.x.ToString("R", CultureInfo.InvariantCulture) + "|" + color.y.ToString("R", CultureInfo.InvariantCulture) + "|" + color.z.ToString("R", CultureInfo.InvariantCulture);
		}

		private static bool TryDeserializeColor(string raw, out Vector3 color)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
			color = Vector3.zero;
			if (string.IsNullOrEmpty(raw))
			{
				return false;
			}
			string[] array = raw.Split(new char[1] { '|' });
			if (array.Length != 3)
			{
				return false;
			}
			if (!float.TryParse(array[0], NumberStyles.Float, CultureInfo.InvariantCulture, out var result) || !float.TryParse(array[1], NumberStyles.Float, CultureInfo.InvariantCulture, out var result2) || !float.TryParse(array[2], NumberStyles.Float, CultureInfo.InvariantCulture, out var result3))
			{
				return false;
			}
			color = new Vector3(result, result2, result3);
			return true;
		}

		private void EnforceRaceSpecificHeadSlots()
		{
			if (string.Equals(m_race, "dverger", StringComparison.OrdinalIgnoreCase))
			{
				m_shouldHaveHair = false;
				m_shouldHaveBeard = false;
				m_hairItem = string.Empty;
				m_beardItem = string.Empty;
				if ((Object)(object)m_visEquipment != (Object)null)
				{
					m_visEquipment.SetHairItem(0);
					m_visEquipment.SetBeardItem(0);
				}
			}
		}

		public void setHairAndBeard()
		{
			if (!m_shouldHaveBeard)
			{
				m_beardItem = string.Empty;
			}
			else if (string.IsNullOrEmpty(m_beardItem))
			{
				m_beardItem = GetRandomBeard();
			}
			if (!m_shouldHaveHair)
			{
				m_hairItem = string.Empty;
			}
			else if (string.IsNullOrEmpty(m_hairItem))
			{
				m_hairItem = GetRandomHair();
			}
		}

		private static int GetEquipmentHash(string prefabName)
		{
			return (!string.IsNullOrEmpty(prefabName)) ? BalrondHashCompat.StableHash(prefabName) : 0;
		}

		public void setEquipeFromString()
		{
			if (!((Object)(object)m_visEquipment == (Object)null))
			{
				m_visEquipment.SetBeardItem(GetEquipmentHash(m_beardItem));
				m_visEquipment.SetHairItem(GetEquipmentHash(m_hairItem));
				m_visEquipment.SetLeftItem(GetEquipmentHash(m_left), m_leftVariant, 1);
				m_visEquipment.SetRightItem(GetEquipmentHash(m_right), 1);
				m_visEquipment.SetLeftBackItem(GetEquipmentHash(m_leftBack), m_leftBackVariant, 1);
				m_visEquipment.SetRightBackItem(GetEquipmentHash(m_rightBack), 1);
				m_visEquipment.SetChestItem(GetEquipmentHash(m_chest));
				m_visEquipment.SetLegItem(GetEquipmentHash(m_legs));
				m_visEquipment.SetHelmetItem(GetEquipmentHash(m_helmet));
				m_visEquipment.SetShoulderItem(GetEquipmentHash(m_back), m_backVariant, 1);
				m_visEquipment.SetUtilityItem(GetEquipmentHash(m_tool));
			}
		}

		private string GetRandomHair()
		{
			int num = Mathf.Max(1, randomHairMax);
			int num2 = Random.Range(0, num);
			return (num2 == 0) ? "HairNone" : ("Hair" + num2);
		}

		private string GetRandomBeard()
		{
			int num = Mathf.Max(1, randomBeardMax);
			int num2 = Random.Range(0, num);
			return (num2 == 0) ? "BeardNone" : ("Beard" + num2);
		}

		public void OnDamaged(HitData hitData)
		{
			//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0100: Unknown result type (might be due to invalid IL or missing references)
			//IL_0123: Unknown result type (might be due to invalid IL or missing references)
			m_trader = (((Object)(object)m_trader != (Object)null) ? m_trader : ((Component)this).GetComponent<Trader>());
			m_talker = (((Object)(object)m_talker != (Object)null) ? m_talker : ((Component)this).GetComponent<BalrondActorTalker>());
			float byeRange;
			float standRange;
			LookAt lookAt;
			if ((Object)(object)m_trader != (Object)null)
			{
				byeRange = m_trader.m_byeRange;
				standRange = m_trader.m_standRange;
				lookAt = m_trader.m_lookAt;
			}
			else
			{
				if (!((Object)(object)m_talker != (Object)null))
				{
					return;
				}
				byeRange = m_talker.m_byeRange;
				standRange = m_talker.m_standRange;
				lookAt = m_talker.m_lookAt;
			}
			Player closestPlayer = Player.GetClosestPlayer(((Component)this).transform.position, Mathf.Max(byeRange + 3f, standRange));
			if ((Object)(object)closestPlayer == (Object)null)
			{
				return;
			}
			float num = Vector3.Distance(((Component)closestPlayer).transform.position, ((Component)this).transform.position);
			if (num < standRange && (Object)(object)lookAt != (Object)null)
			{
				lookAt.SetLoockAtTarget(((Character)closestPlayer).GetHeadPoint());
			}
			if ((Object)(object)m_talker != (Object)null)
			{
				if (!m_talker.m_didAnger || !m_talker.TalkTimer())
				{
					m_talker.m_didAnger = true;
					if (m_talker.m_aggravated != null && m_talker.m_aggravated.Count > 0)
					{
						string text = m_talker.m_aggravated[Random.Range(0, m_talker.m_aggravated.Count)];
						m_talker.Say(text, "Aggravated", "", 0f);
					}
				}
			}
			else if ((Object)(object)m_trader != (Object)null && ArchetypeDialoguePresets.aggravated_generic != null && ArchetypeDialoguePresets.aggravated_generic.Count > 0)
			{
				string text2 = ArchetypeDialoguePresets.aggravated_generic[Random.Range(0, ArchetypeDialoguePresets.aggravated_generic.Count)];
				m_trader.Say(text2, "Aggravated");
			}
		}

		private Transform FindDeepChild(Transform parent, string childName)
		{
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Expected O, but got Unknown
			if ((Object)(object)parent == (Object)null)
			{
				return null;
			}
			foreach (Transform item in parent)
			{
				Transform val = item;
				if ((Object)(object)val != (Object)null && ((Object)val).name == childName)
				{
					return val;
				}
				Transform val2 = FindDeepChild(val, childName);
				if ((Object)(object)val2 != (Object)null)
				{
					return val2;
				}
			}
			return null;
		}
	}
	public class BalrondActorFactoryPresets
	{
		public class LoadoutPreset
		{
			public string LeftHand;

			public int LeftVariant = 0;

			public string RightHand = "";

			public int RightVariant = 0;

			public int LeftBackVariant = 0;

			public int RightBackVariant = 0;

			public string[] MaleChests;

			public string[] FemaleChests;

			public string[] LegsOptions;

			public string[] HelmetOptions;

			public string[] BackOptions;

			public int BackVariant;

			public string[] MaleWeapons;

			public string[] FemaleWeapons;

			public string[] RightBackOptions;

			public string[] LeftBackOptions;

			public string Tool;

			public bool CanTakeOffHelmet = true;

			public bool CanHideWeapons = true;
		}

		public static string[] dvergerHairMale = new string[18]
		{
			"DvergerHairGray2_bal", "DvergerHairGray3_bal", "DvergerHairGray4_bal", "DvergerHairGray5_bal", "DvergerHairGray6_bal", "DvergerHairGray7_bal", "DvergerHairOrange2_bal", "DvergerHairOrange3_bal", "DvergerHairOrange4_bal", "DvergerHairOrange5_bal",
			"DvergerHairOrange6_bal", "DvergerHairOrange7_bal", "DvergerHairBlue2_bal", "DvergerHairBlue3_bal", "DvergerHairBlue4_bal", "DvergerHairBlue5_bal", "DvergerHairBlue6_bal", "DvergerHairBlue7_bal"
		};

		public static string[] dvergerHairFemale = new string[6] { "DvergerHairGray1_bal", "DvergerHairOrange1_bal", "DvergerHairBlue1_bal", "DvergerFemaleBlue1_bal", "DvergerFemaleGray1_bal", "DvergerFemaleOrange1_bal" };

		public static string[] dvergerDresses = new string[9] { "DvergerFemaleDress1_bal", "DvergerFemaleDress2_bal", "DvergerFemaleDress3_bal", "DvergerFemaleDress4_bal", "DvergerFemaleDress5_bal", "DvergerFemaleDress6_bal", "DvergerFemaleDress7_bal", "DvergerFemaleDress8_bal", "DvergerFemaleDress9_bal" };

		public static string[] dvergerarmors = new string[10] { "DvergerSuitArbalest", "DvergerSuitArbalest_Ashlands", "DvergerSuitFire", "DvergerSuitIce", "DvergerSuitSupport", "DvergerSuitDarkHat_bal", "DvergerSuitRed_bal", "DvergerSuitRedHood_bal", "DvergerSuitYellowHood_bal", "DvergerSuitGreenCap_bal" };

		public static Dictionary<string, LoadoutPreset> GetVillagerPresets()
		{
			Dictionary<string, LoadoutPreset> dictionary = new Dictionary<string, LoadoutPreset>();
			dictionary["human"] = new LoadoutPreset
			{
				MaleChests = new string[10] { "ArmorTunic9", "ArmorTunic8", "ArmorTunic7", "ArmorTunic6", "ArmorTunic5", "ArmorTunic4", "ArmorTunic3", "ArmorTunic2", "ArmorTunic1", "ArmorTrollLeatherChest" },
				FemaleChests = new string[9] { "ArmorDress9", "ArmorDress8", "ArmorDress7", "ArmorDress6", "ArmorDress5", "ArmorDress4", "ArmorDress3", "ArmorDress2", "ArmorDress1" },
				LegsOptions = new string[2] { "ArmorLeatherLegs", "ArmorTrollLeatherLegs" },
				HelmetOptions = new string[12]
				{
					"HelmetHat3", "", "HelmetHat2", "", "HelmetHat5", "", "HelmetHat6", "", "HelmetHat7", "",
					"HelmetHat10", ""
				},
				BackOptions = new string[1] { "" },
				BackVariant = 0,
				RightBackOptions = new string[1] { "" },
				MaleWeapons = new string[1] { "" },
				LeftBackOptions = new string[1] { "" },
				Tool = "",
				CanTakeOffHelmet = true,
				CanHideWeapons = true
			};
			dictionary["dverger"] = new LoadoutPreset
			{
				MaleChests = new string[3] { "DvergerSuitDarkHat_bal", "DvergerSuitGreenCap_bal", "DvergerSuitYellowHood_bal" },
				FemaleChests = new string[3] { "DvergerFemaleDress1_bal", "DvergerFemaleDress4_bal", "DvergerFemaleDress9_bal" },
				LegsOptions = new string[1] { "" },
				HelmetOptions = dvergerHairMale,
				BackOptions = new string[1] { "" },
				BackVariant = 0,
				RightBackOptions = new string[1] { "MaceBronze" },
				LeftBackOptions = new string[1] { "ShieldWood" },
				Tool = "",
				CanTakeOffHelmet = true,
				CanHideWeapons = true
			};
			dictionary["goblin"] = new LoadoutPreset
			{
				MaleChests = new string[1] { "GoblinTunic1" },
				FemaleChests = new string[1] { "GoblinDress1" },
				LegsOptions = new string[1] { "GoblinLegs" },
				HelmetOptions = new string[2] { "GoblinCap1", "" },
				BackOptions = new string[1] { "" },
				BackVariant = 0,
				RightBackOptions = new string[1] { "MaceBronze" },
				LeftBackOptions = new string[1] { "ShieldWood" },
				Tool = "",
				CanTakeOffHelmet = true,
				CanHideWeapons = true
			};
			return dictionary;
		}

		public static Dictionary<string, LoadoutPreset> GetPatronPresets()
		{
			Dictionary<string, LoadoutPreset> dictionary = new Dictionary<string, LoadoutPreset>();
			dictionary["human"] = new LoadoutPreset
			{
				MaleChests = new string[10] { "ArmorTunic9", "ArmorTunic8", "ArmorTunic7", "ArmorTunic6", "ArmorTunic5", "ArmorTunic4", "ArmorTunic3", "ArmorTunic2", "ArmorTunic1", "ArmorTrollLeatherChest" },
				FemaleChests = new string[9] { "ArmorDress9", "ArmorDress8", "ArmorDress7", "ArmorDress6", "ArmorDress5", "ArmorDress4", "ArmorDress3", "ArmorDress2", "ArmorDress1" },
				LegsOptions = new string[2] { "ArmorLeatherLegs", "ArmorTrollLeatherLegs" },
				HelmetOptions = new string[12]
				{
					"HelmetHat3", "", "HelmetHat2", "", "HelmetHat5", "", "HelmetHat6", "", "HelmetHat7", "",
					"HelmetHat10", ""
				},
				BackOptions = new string[1] { "" },
				BackVariant = 0,
				RightBackOptions = new string[1] { "" },
				MaleWeapons = new string[7] { "", "Tankard_dvergrTankard_dvergr", "", "Tankard", "TankardAnniversary", "", "TankardOdin" },
				FemaleWeapons = new string[7] { "", "Tankard_dvergrTankard_dvergr", "", "Tankard", "TankardAnniversary", "", "TankardOdin" },
				LeftBackOptions = new string[1] { "" },
				Tool = "",
				CanTakeOffHelmet = true,
				CanHideWeapons = true
			};
			dictionary["dverger"] = new LoadoutPreset
			{
				MaleChests = new string[3] { "DvergerSuitDarkHat_bal", "DvergerSuitGreenCap_bal", "DvergerSuitYellowHood_bal" },
				FemaleChests = new string[3] { "DvergerFemaleDress1_bal", "DvergerFemaleDress4_bal", "DvergerFemaleDress9_bal" },
				LegsOptions = new string[1] { "" },
				HelmetOptions = dvergerHairMale,
				BackOptions = new string[1] { "" },
				BackVariant = 0,
				RightBackOptions = new string[1] { "MaceBronze" },
				LeftBackOptions = new string[1] { "ShieldWood" },
				Tool = "",
				CanTakeOffHelmet = true,
				CanHideWeapons = true
			};
			dictionary["goblin"] = new LoadoutPreset
			{
				MaleChests = new string[1] { "GoblinTunic1" },
				FemaleChests = new string[1] { "GoblinDress1" },
				LegsOptions = new string[1] { "GoblinLegs" },
				HelmetOptions = new string[2] { "GoblinCap1", "" },
				BackOptions = new string[1] { "" },
				BackVariant = 0,
				RightBackOptions = new string[1] { "MaceBronze" },
				LeftBackOptions = new string[1] { "ShieldWood" },
				Tool = "",
				CanTakeOffHelmet = true,
				CanHideWeapons = true
			};
			return dictionary;
		}

		public static Dictionary<string, LoadoutPreset> GetBeggarPresets()
		{
			Dictionary<string, LoadoutPreset> dictionary = new Dictionary<string, LoadoutPreset>();
			dictionary["human"] = new LoadoutPreset
			{
				MaleChests = new string[2] { "ArmorRagsChest", "" },
				FemaleChests = new string[1] { "ArmorRagsChest" },
				LegsOptions = new string[2] { "ArmorRagsLegs", "" },
				HelmetOptions = new string[5] { "", "HelmetFishingHat", "", "HelmetStrawHat", "" },
				BackOptions = new string[1] { "" },
				BackVariant = 0,
				Tool = "",
				RightBackOptions = new string[5] { "", "Club", "", "Torch", "" },
				LeftBackOptions = new string[1] { "" },
				CanTakeOffHelmet = true,
				CanHideWeapons = true
			};
			dictionary["dverger"] = new LoadoutPreset
			{
				MaleChests = new string[3] { "DvergerSuitDark_bal", "DvergerSuitArbalest", "DvergerSuitArbalest_Ashlands" },
				FemaleChests = new string[2] { "DvergerFemaleDress3_bal", "DvergerFemaleDress5_bal" },
				LegsOptions = new string[1] { "" },
				HelmetOptions = dvergerHairMale,
				BackOptions = new string[1] { "" },
				BackVariant = 0,
				Tool = "",
				RightBackOptions = new string[1] { "MaceBronze" },
				LeftBackOptions = new string[1] { "ShieldWood" },
				CanTakeOffHelmet = true,
				CanHideWeapons = true
			};
			dictionary["goblin"] = new LoadoutPreset
			{
				MaleChests = new string[2] { "GoblinTunic1", "" },
				FemaleChests = new string[2] { "GoblinDress1", "" },
				LegsOptions = new string[2] { "GoblinLegs", "" },
				HelmetOptions = new string[2] { "GoblinCap1", "" },
				BackOptions = new string[1] { "" },
				BackVariant = 0,
				Tool = "",
				RightBackOptions = new string[1] { "MaceBronze" },
				LeftBackOptions = new string[1] { "ShieldWood" },
				CanTakeOffHelmet = true,
				CanHideWeapons = true
			};
			return dictionary;
		}

		public static Dictionary<string, LoadoutPreset> GetInnkepperPresets()
		{
			Dictionary<string, LoadoutPreset> dictionary = new Dictionary<string, LoadoutPreset>();
			dictionary["human"] = new LoadoutPreset
			{
				MaleChests = GetTunicList(),
				FemaleChests = GetDressList(),
				LegsOptions = new string[4] { "ArmorLeatherLegs", "ArmorTrollLeatherLegs", "ArmorWolfLegs", "ArmorAshlandsMediumlegs" },
				HelmetOptions = new string[1] { "" },
				BackOptions = new string[1] { "" },
				BackVariant = 0,
				MaleWeapons = new string[7] { "", "Tankard_dvergrTankard_dvergr", "", "Tankard", "TankardAnniversary", "", "TankardOdin" },
				FemaleWeapons = new string[7] { "", "Tankard_dvergrTankard_dvergr", "", "Tankard", "TankardAnniversary", "", "TankardOdin" },
				Tool = "BeltStrength",
				RightBackOptions = new string[1] { "" },
				LeftBackOptions = new string[1] { "" },
				CanTakeOffHelmet = true,
				CanHideWeapons = true
			};
			dictionary["dverger"] = new LoadoutPreset
			{
				MaleChests = new string[3] { "DvergerSuitRed_bal", "DvergerSuitRedHood_bal", "DvergerSuitFire" },
				FemaleChests = new string[4] { "DvergerFemaleDress2_bal", "DvergerFemaleDress6_bal", "DvergerFemaleDress7_bal", "DvergerFemaleDress8_bal" },
				LegsOptions = new string[1] { "" },
				HelmetOptions = dvergerHairMale,
				BackOptions = new string[1] { "" },
				BackVariant = 0,
				Tool = "",
				RightBackOptions = new string[1] { "MaceBronze" },
				LeftBackOptions = new string[1] { "ShieldWood" },
				CanTakeOffHelmet = true,
				CanHideWeapons = true
			};
			dictionary["goblin"] = new LoadoutPreset
			{
				MaleChests = new string[2] { "GoblinTunic1", "GoblinArmor2" },
				FemaleChests = new string[1] { "GoblinDress1" },
				LegsOptions = new string[1] { "GoblinLegs" },
				HelmetOptions = new string[2] { "GoblinCap1", "" },
				BackOptions = new string[2] { "", "CapeDeerHide" },
				BackVariant = 0,
				Tool = "",
				RightBackOptions = new string[1] { "MaceBronze" },
				LeftBackOptions = new string[1] { "ShieldWood" },
				CanTakeOffHelmet = true,
				CanHideWeapons = true
			};
			return dictionary;
		}

		public static Dictionary<string, LoadoutPreset> GetMerchantPresets()
		{
			Dictionary<string, LoadoutPreset> dictionary = new Dictionary<string, LoadoutPreset>();
			dictionary["human"] = new LoadoutPreset
			{
				MaleChests = GetTunicList(),
				FemaleChests = GetDressList(),
				LegsOptions = new string[2] { "ArmorLeatherLegs", "ArmorTrollLeatherLegs" },
				HelmetOptions = new string[9] { "", "HelmetPointyHat", "", "HelmetHat8", "", "HelmetHat9", "", "HelmetHat4", "" },
				BackOptions = new string[7] { "NpcCapeFox_bal", "", "CapeWolf", "NpcCapeBlackWolf_bal", "NpcCapeBear_bal", "", "NpcCapeSwamp_bal" },
				BackVariant = 0,
				Tool = "BeltStrength",
				RightBackOptions = new string[1] { "" },
				LeftBackOptions = new string[1] { "" },
				CanTakeOffHelmet = true,
				CanHideWeapons = true
			};
			dictionary["dverger"] = new LoadoutPreset
			{
				MaleChests = new string[3] { "DvergerSuitRed_bal", "DvergerSuitRedHood_bal", "DvergerSuitFire" },
				FemaleChests = new string[4] { "DvergerFemaleDress2_bal", "DvergerFemaleDress6_bal", "DvergerFemaleDress7_bal", "DvergerFemaleDress8_bal" },
				LegsOptions = new string[1] { "" },
				HelmetOptions = dvergerHairMale,
				BackOptions = new string[1] { "" },
				BackVariant = 0,
				Tool = "",
				RightBackOptions = new string[1] { "MaceBronze" },
				LeftBackOptions = new string[1] { "ShieldWood" },
				CanTakeOffHelmet = true,
				CanHideWeapons = true
			};
			dictionary["goblin"] = new LoadoutPreset
			{
				MaleChests = new string[2] { "GoblinTunic1", "GoblinArmor2" },
				FemaleChests = new string[1] { "GoblinDress1" },
				LegsOptions = new string[1] { "GoblinLegs" },
				HelmetOptions = new string[2] { "GoblinCap1", "" },
				BackOptions = new string[2] { "", "CapeDeerHide" },
				BackVariant = 0,
				Tool = "",
				RightBackOptions = new string[1] { "MaceBronze" },
				LeftBackOptions = new string[1] { "ShieldWood" },
				CanTakeOffHelmet = true,
				CanHideWeapons = true
			};
			return dictionary;
		}

		public static Dictionary<string, LoadoutPreset> GetPriestPresets()
		{
			Dictionary<string, LoadoutPreset> dictionary = new Dictionary<string, LoadoutPreset>();
			dictionary["human"] = new LoadoutPreset
			{
				MaleChests = new string[1] { "ArmorPriest_bal" },
				FemaleChests = new string[1] { "ArmorPriest_bal" },
				LegsOptions = new string[1] { "ArmorLeatherLegs" },
				HelmetOptions = new string[3] { "HelmetOdin", "", "HelmetFenring" },
				BackOptions = new string[3] { "CapeOdin", "CapeFeather", "CapeLox" },
				BackVariant = 0,
				RightBackOptions = new string[4] { "StaffPriest_bal", "StaffFireball", "StaffIceShards", "" },
				LeftBackOptions = new string[1] { "ShieldBronzeBuckler" },
				Tool = "",
				CanTakeOffHelmet = false,
				CanHideWeapons = true
			};
			dictionary["dverger"] = new LoadoutPreset
			{
				MaleChests = new string[2] { "DvergerSuitFire", "DvergerSuitIce" },
				FemaleChests = new string[2] { "DvergerFemaleDress2_bal", "DvergerFemaleDress7_bal" },
				LegsOptions = new string[1] { "" },
				HelmetOptions = dvergerHairMale,
				BackOptions = new string[1] { "" },
				BackVariant = 0,
				MaleWeapons = new string[2] { "DvergerStaffHeal_bal", "DvergerStaffSupport_bal" },
				FemaleWeapons = new string[2] { "DvergerStaffHeal_bal", "DvergerStaffSupport_bal" },
				LeftHand = "Torch",
				RightBackOptions = new string[1] { "ShieldBronzeBuckler" },
				LeftBackOptions = new string[1] { "AxeJotunBane" },
				Tool = "",
				CanTakeOffHelmet = true,
				CanHideWeapons = true
			};
			dictionary["goblin"] = new LoadoutPreset
			{
				MaleChests = new string[1] { "GoblinShamanRobe" },
				FemaleChests = new string[1] { "GoblinShamanRobe" },
				LegsOptions = new string[1] { "GoblinLegs" },
				HelmetOptions = new string[2] { "GoblinMaskShaman", "" },
				BackOptions = new string[2] { "CapeDeerHide", "" },
				BackVariant = 0,
				RightBackOptions = new string[1] { "MaceBronze" },
				LeftBackOptions = new string[1] { "ShieldWood" },
				Tool = "",
				CanTakeOffHelmet = true,
				CanHideWeapons = true
			};
			return dictionary;
		}

		public static Dictionary<string, LoadoutPreset[]> GetGuardPresets()
		{
			Dictionary<string, LoadoutPreset[]> dictionary = new Dictionary<string, LoadoutPreset[]>();
			dictionary["human"] = new LoadoutPreset[4]
			{
				new LoadoutPreset
				{
					LeftVariant = 0,
					MaleChests = new string[1] { "ArmorBronzeChest" },
					FemaleChests = new string[1] { "ArmorBronzeChest" },
					LegsOptions = new string[1] { "ArmorBronzeLegs" },
					HelmetOptions = new string[3] { "HelmetBronze", "", "HelmetLeather" },
					BackOptions = new string[4] { "CapeDeerHide", "NpcCapeBear_bal", "CapeTrollHide", "NpcCapeSwamp_bal" },
					BackVariant = 0,
					MaleWeapons = new string[1] { "Torch" },
					FemaleWeapons = new string[1] { "Torch" },
					RightBackOptions = new string[4] { "AxeBronze", "MaceBronze", "SpearBronze", "SwordBronze" },
					LeftBackOptions = new string[1] { "ShieldBronzeBuckler" }
				},
				new LoadoutPreset
				{
					LeftVariant = 0,
					MaleChests = new string[1] { "ArmorIronChest" },
					FemaleChests = new string[1] { "ArmorIronChest" },
					LegsOptions = new string[1] { "ArmorIronLegs" },
					HelmetOptions = new string[2] { "HelmetIron", "" },
					BackOptions = new string[6] { "CapeLox", "", "CapeWolf", "CapeTrollHide", "NpcCapeSwamp_bal", "NpcCapeBear_bal" },
					BackVariant = 0,
					MaleWeapons = new string[1] { "Torch" },
					FemaleWeapons = new string[1] { "Torch" },
					RightBackOptions = new string[4] { "AxeIron", "MaceIron", "SpearElderbark", "SwordIron" },
					LeftBackOptions = new string[1] { "ShieldBanded" },
					LeftBackVariant = Random.Range(0, 3)
				},
				new LoadoutPreset
				{
					LeftHand = "",
					LeftVariant = 0,
					MaleChests = new string[1] { "ArmorWolfChest" },
					FemaleChests = new string[1] { "ArmorWolfChest" },
					LegsOptions = new string[1] { "ArmorWolfLegs" },
					HelmetOptions = new string[2] { "HelmetDrake", "" },
					BackOptions = new string[5] { "NpcCapeFox_bal", "", "CapeWolf", "NpcCapeSwamp_bal", "NpcCapeBear_bal" },
					BackVariant = 0,
					MaleWeapons = new string[1] { "Torch" },
					FemaleWeapons = new string[1] { "Torch" },
					RightBackOptions = new string[4] { "AxeIron", "MaceSilver", "SpearElderbark", "SwordSilver" },
					LeftBackOptions = new string[1] { "ShieldSilver" },
					LeftBackVariant = Random.Range(0, 7)
				},
				new LoadoutPreset
				{
					LeftVariant = 0,
					MaleChests = new string[1] { "ArmorPaddedCuirass" },
					FemaleChests = new string[1] { "ArmorPaddedCuirass" },
					LegsOptions = new string[1] { "ArmorPaddedGreaves" },
					HelmetOptions = new string[2] { "HelmetPadded", "" },
					BackOptions = new string[6] { "CapeFeather", "", "NpcCapeBlackWolf_bal", "NpcCapeBear_bal", "NpcCapeFox_bal", "NpcCapeSwamp_bal" },
					BackVariant = 0,
					MaleWeapons = new string[1] { "Torch" },
					FemaleWeapons = new string[1] { "Torch" },
					RightBackOptions = new string[4] { "AxeIron", "MaceSilver", "SpearElderbark", "SwordSilver" },
					LeftBackOptions = new string[1] { "ShieldSilver" },
					LeftBackVariant = Random.Range(0, 7)
				}
			};
			dictionary["dverger"] = new LoadoutPreset[1]
			{
				new LoadoutPreset
				{
					LeftHand = "",
					LeftVariant = 7,
					MaleChests = new string[5] { "DvergerSuitGreenCap_bal", "DvergerSuitIce", "DvergerSuitArbalest_Ashlands", "DvergerSuitSupport", "DvergerSuitFire" },
					FemaleChests = new string[2] { "DvergerFemaleDress2_bal", "DvergerFemaleDress7_bal" },
					LegsOptions = new string[1] { "" },
					HelmetOptions = dvergerHairMale,
					BackOptions = new string[1] { "" },
					BackVariant = 0,
					MaleWeapons = new string[3] { "DvergerStaffIce_bal", "DvergerStaffFire_bal", "SwordIron_bal" },
					FemaleWeapons = new string[2] { "StaffFireball", "SpearElderbark" },
					RightBackOptions = new string[1] { "MaceBronze" },
					LeftBackOptions = new string[1] { "ShieldWood" }
				}
			};
			dictionary["goblin"] = new LoadoutPreset[1]
			{
				new LoadoutPreset
				{
					LeftHand = "",
					LeftVariant = 2,
					MaleChests = new string[1] { "GoblinArmor1" },
					FemaleChests = new string[1] { "GoblinArmor1" },
					LegsOptions = new string[1] { "GoblinLegs" },
					HelmetOptions = new string[2] { "GoblinCap1", "" },
					BackOptions = new string[2] { "CapeDeerHide", "" },
					BackVariant = 0,
					MaleWeapons = new string[2] { "ClubGoblin", "KnifeFlint" },
					FemaleWeapons = new string[2] { "KnifeFlint", "BowCrude" },
					RightBackOptions = new string[1] { "MaceBronze" },
					LeftBackOptions = new string[1] { "ShieldWood" }
				}
			};
			return dictionary;
		}

		public static Dictionary<string, LoadoutPreset[]> GetDefenderPresets()
		{
			Dictionary<string, LoadoutPreset[]> dictionary = new Dictionary<string, LoadoutPreset[]>();
			dictionary["human"] = new LoadoutPreset[4]
			{
				new LoadoutPreset
				{
					LeftHand = "ShieldBronzeBuckler",
					LeftVariant = 0,
					MaleChests = new string[1] { "ArmorBronzeChest" },
					FemaleChests = new string[1] { "ArmorBronzeChest" },
					LegsOptions = new string[1] { "ArmorBronzeLegs" },
					HelmetOptions = new string[3] { "HelmetBronze", "", "HelmetLeather" },
					BackOptions = new string[3] { "CapeDeerHide", "", "CapeTrollHide" },
					BackVariant = 0,
					MaleWeapons = new string[3] { "AxeBronze", "MaceBronze", "SwordBronze" },
					FemaleWeapons = new string[3] { "AxeBronze", "MaceBronze", "SwordBronze" },
					RightBackOptions = new string[4] { "AxeBronze", "MaceBronze", "SpearBronze", "SwordBronze" },
					LeftBackOptions = new string[1] { "" }
				},
				new LoadoutPreset
				{
					LeftHand = "ShieldBanded",
					LeftVariant = Random.Range(0, 3),
					MaleChests = new string[1] { "ArmorIronChest" },
					FemaleChests = new string[1] { "ArmorIronChest" },
					LegsOptions = new string[1] { "ArmorIronLegs" },
					HelmetOptions = new string[2] { "HelmetIron", "" },
					BackOptions = new string[4] { "CapeLox", "", "CapeWolf", "CapeTrollHide" },
					BackVariant = 0,
					MaleWeapons = new string[3] { "AxeIron", "MaceIron", "SwordIron" },
					FemaleWeapons = new string[3] { "AxeIron", "MaceIron", "SwordIron" },
					RightBackOptions = new string[4] { "AxeIron", "MaceIron", "SpearElderbark", "SwordIron" },
					LeftBackOptions = new string[1] { "" },
					LeftBackVariant = 3
				},
				new LoadoutPreset
				{
					LeftHand = "ShieldSilver",
					LeftVariant = Random.Range(0, 7),
					MaleChests = new string[1] { "ArmorWolfChest" },
					FemaleChests = new string[1] { "ArmorWolfChest" },
					LegsOptions = new string[1] { "ArmorWolfLegs" },
					HelmetOptions = new string[2] { "HelmetDrake", "" },
					BackOptions = new string[4] { "NpcCapeFox_bal", "", "CapeWolf", "NpcCapeBlackWolf_bal" },
					BackVariant = 0,
					MaleWeapons = new string[3] { "AxeIron", "MaceSilver", "SwordSilver" },
					FemaleWeapons = new string[4] { "AxeIron", "MaceSilver", "SpearElderbark", "SwordSilver" },
					RightBackOptions = new string[4] { "AxeIron", "MaceSilver", "SpearElderbark", "SwordSilver" },
					LeftBackOptions = new string[1] { "" },
					LeftBackVariant = 7
				},
				new LoadoutPreset
				{
					LeftHand = "ShieldSilver",
					LeftVariant = Random.Range(0, 7),
					MaleChests = new string[1] { "ArmorPaddedCuirass" },
					FemaleChests = new string[1] { "ArmorPaddedCuirass" },
					LegsOptions = new string[1] { "ArmorPaddedGreaves" },
					HelmetOptions = new string[2] { "HelmetPadded", "" },
					BackOptions = new string[3] { "CapeFeather", "", "NpcCapeBlackWolf_bal" },
					BackVariant = 0,
					MaleWeapons = new string[3] { "AxeIron", "MaceSilver", "SwordSilver" },
					FemaleWeapons = new string[3] { "AxeIron", "MaceSilver", "SwordSilver" },
					RightBackOptions = new string[4] { "AxeIron", "MaceSilver", "SpearElderbark", "SwordSilver" },
					LeftBackOptions = new string[1] { "" },
					LeftBackVariant = 7
				}
			};
			dictionary["dverger"] = new LoadoutPreset[1]
			{
				new LoadoutPreset
				{
					LeftHand = "ShieldIronBuckler",
					LeftVariant = 0,
					MaleChests = new string[5] { "DvergerSuitGreenCap_bal", "DvergerSuitIce", "DvergerSuitArbalest_Ashlands", "DvergerSuitSupport", "DvergerSuitFire" },
					FemaleChests = new string[2] { "DvergerFemaleDress2_bal", "DvergerFemaleDress7_bal" },
					LegsOptions = new string[1] { "" },
					HelmetOptions = dvergerHairMale,
					BackOptions = new string[1] { "" },
					BackVariant = 0,
					MaleWeapons = new string[3] { "DvergerStaffIce_bal", "DvergerStaffFire_bal", "SwordIron_bal" },
					FemaleWeapons = new string[2] { "StaffFireball", "SpearElderbark" },
					RightBackOptions = new string[1] { "MaceBronze" },
					LeftBackOptions = new string[1] { "ShieldWood" }
				}
			};
			dictionary["goblin"] = new LoadoutPreset[1]
			{
				new LoadoutPreset
				{
					LeftHand = "ShieldBanded",
					LeftVariant = 2,
					MaleChests = new string[1] { "GoblinArmor1" },
					FemaleChests = new string[1] { "GoblinArmor1" },
					LegsOptions = new string[1] { "GoblinLegs" },
					HelmetOptions = new string[2] { "GoblinCap1", "" },
					BackOptions = new string[2] { "CapeDeerHide", "" },
					BackVariant = 0,
					MaleWeapons = new string[2] { "ClubGoblin", "KnifeFlint" },
					FemaleWeapons = new string[2] { "KnifeFlint", "BowCrude" },
					RightBackOptions = new string[1] { "MaceBronze" },
					LeftBackOptions = new string[1] { "ShieldWood" }
				}
			};
			return dictionary;
		}

		public static Dictionary<string, LoadoutPreset> GetFisherPresets()
		{
			Dictionary<string, LoadoutPreset> dictionary = new Dictionary<string, LoadoutPreset>();
			dictionary["human"] = new LoadoutPreset
			{
				MaleChests = new string[5] { "ArmorRags", "ArmorLeatherChest", "ArmorTrollLeatherChest", "NpcArmorForagerChest_bal", "" },
				FemaleChests = new string[4] { "ArmorRags", "ArmorLeatherChest", "ArmorTrollLeatherChest", "NpcArmorForagerChest_bal" },
				LegsOptions = new string[4] { "ArmorLeatherLegs", "NpcArmorTornLegs_bal", "ArmorTrollLeatherLegs", "ArmorAshlandsMediumlegs" },
				HelmetOptions = new string[5] { "HelmetStrawHat", "HelmetFishingHat", "NpcHelmetBandana_bal", "HelmetTrollLeather", "" },
				BackOptions = new string[2] { "NpcCapeRags_bal", "" },
				FemaleWeapons = new string[5] { "KnifeFlint", "KnifeCopper", "NpcSickle_bal", "KnifeChitin", "" },
				MaleWeapons = new string[5] { "KnifeFlint", "KnifeCopper", "", "NpcSickle_bal", "KnifeChitin" },
				RightBackOptions = new string[4] { "NpcFishingRod_bal", "KnifeSilver", "SpearChitin", "KnifeChitin" },
				LeftBackOptions = new string[1] { "" }
			};
			dictionary["dverger"] = new LoadoutPreset
			{
				MaleChests = new string[6] { "DvergerSuitDark_bal", "DvergerSuitArbalest_Ashlands", "DvergerSuitDarkHat_bal", "DvergerSuitGreenCap_bal", "DvergerSuitYellowHood_bal", "DvergerSuitArbalest" },
				FemaleChests = new string[2] { "DvergerFemaleDress3_bal", "DvergerFemaleDress5_bal" },
				LegsOptions = new string[1] { "" },
				HelmetOptions = dvergerHairMale,
				BackOptions = new string[1] { "" },
				FemaleWeapons = new string[5] { "DvergerCultivator_bal", "DvergerHoe_bal", "DvergerKnife_bal", "Scythe", "" },
				MaleWeapons = new string[5] { "DvergerCultivator_bal", "DvergerHoe_bal", "DvergerKnife_bal", "Scythe", "" },
				RightBackOptions = new string[1] { "MaceBronze" },
				LeftBackOptions = new string[1] { "ShieldWood" }
			};
			dictionary["goblin"] = new LoadoutPreset
			{
				MaleChests = new string[1] { "GoblinTunic1" },
				FemaleChests = new string[1] { "GoblinDress1" },
				LegsOptions = new string[1] { "GoblinLegs" },
				HelmetOptions = new string[2] { "GoblinCap1", "" },
				BackOptions = new string[1] { "" },
				FemaleWeapons = new string[2] { "DvergerHoe_bal", "KnifeCopper" },
				MaleWeapons = new string[2] { "DvergerHoe_bal", "KnifeCopper" },
				RightBackOptions = new string[1] { "MaceBronze" },
				LeftBackOptions = new string[1] { "ShieldWood" }
			};
			return dictionary;
		}

		public static Dictionary<string, LoadoutPreset> GetForagerPresets()
		{
			Dictionary<string, LoadoutPreset> dictionary = new Dictionary<string, LoadoutPreset>();
			dictionary["human"] = new LoadoutPreset
			{
				MaleChests = new string[3] { "NpcArmorForagerChest_bal", "ArmorHarvester1", "ArmorHarvester2" },
				FemaleChests = new string[3] { "NpcArmorForagerChest_bal", "ArmorHarvester1", "ArmorHarvester2" },
				LegsOptions = new string[4] { "ArmorLeatherLegs", "NpcArmorTornLegs_bal", "ArmorTrollLeatherLegs", "ArmorAshlandsMediumlegs" },
				HelmetOptions = new string[5] { "HelmetStrawHat", "NpcHelmetChitin_bal", "NpcHelmetFabric_bal", "HelmetAshlandsMediumHood", "" },
				BackOptions = new string[4] { "", "NpcCapeHeavyStraw_bal", "NpcCapeRags_bal", "" },
				FemaleWeapons = new string[2] { "NpcSickle_bal", "KnifeCopper" },
				MaleWeapons = new string[2] { "NpcSickle_bal", "KnifeCopper" },
				RightBackOptions = new string[2] { "Cultivator", "" },
				LeftBackOptions = new string[1] { "" }
			};
			dictionary["dverger"] = new LoadoutPreset
			{
				MaleChests = new string[6] { "DvergerSuitDark_bal", "DvergerSuitArbalest_Ashlands", "DvergerSuitDarkHat_bal", "DvergerSuitGreenCap_bal", "DvergerSuitYellowHood_bal", "DvergerSuitArbalest" },
				FemaleChests = new string[2] { "DvergerFemaleDress3_bal", "DvergerFemaleDress5_bal" },
				LegsOptions = new string[1] { "" },
				HelmetOptions = dvergerHairMale,
				BackOptions = new string[1] { "" },
				FemaleWeapons = new string[5] { "DvergerCultivator_bal", "DvergerHoe_bal", "DvergerKnife_bal", "Scythe", "" },
				MaleWeapons = new string[5] { "DvergerCultivator_bal", "DvergerHoe_bal", "DvergerKnife_bal", "Scythe", "" },
				RightBackOptions = new string[1] { "MaceBronze" },
				LeftBackOptions = new string[1] { "ShieldWood" }
			};
			dictionary["goblin"] = new LoadoutPreset
			{
				MaleChests = new string[1] { "GoblinTunic1" },
				FemaleChests = new string[1] { "GoblinDress1" },
				LegsOptions = new string[1] { "GoblinLegs" },
				HelmetOptions = new string[2] { "GoblinCap1", "" },
				BackOptions = new string[1] { "" },
				FemaleWeapons = new string[2] { "DvergerHoe_bal", "KnifeCopper" },
				MaleWeapons = new string[2] { "DvergerHoe_bal", "KnifeCopper" },
				RightBackOptions = new string[1] { "MaceBronze" },
				LeftBackOptions = new string[1] { "ShieldWood" }
			};
			return dictionary;
		}

		public static Dictionary<string, LoadoutPreset> GetFarmerPresets()
		{
			Dictionary<string, LoadoutPreset> dictionary = new Dictionary<string, LoadoutPreset>();
			dictionary["human"] = new LoadoutPreset
			{
				MaleChests = new string[3] { "ArmorRagsChest", "", "ArmorTunic10" },
				FemaleChests = new string[3] { "ArmorRagsChest", "ArmorHarvester2", "ArmorDress10" },
				LegsOptions = new string[2] { "ArmorLeatherLegs", "ArmorRagsLegs" },
				HelmetOptions = new string[9] { "HelmetStrawHat", "", "HelmetHat3", "NpcHelmetRags_bal", "HelmetHat2", "", "", "HelmetFishingHat", "" },
				BackOptions = new string[2] { "", "NpcCapeHeavyStraw_bal" },
				FemaleWeapons = new string[1] { "" },
				MaleWeapons = new string[1] { "" },
				RightBackOptions = new string[4] { "Cultivator", "Hoe", "Scythe", "" },
				LeftBackOptions = new string[1] { "" }
			};
			dictionary["dverger"] = new LoadoutPreset
			{
				MaleChests = new string[6] { "DvergerSuitDark_bal", "DvergerSuitArbalest_Ashlands", "DvergerSuitDarkHat_bal", "DvergerSuitGreenCap_bal", "DvergerSuitYellowHood_bal", "DvergerSuitArbalest" },
				FemaleChests = new string[2] { "DvergerFemaleDress3_bal", "DvergerFemaleDress5_bal" },
				LegsOptions = new string[1] { "" },
				HelmetOptions = dvergerHairMale,
				BackOptions = new string[1] { "" },
				FemaleWeapons = new string[5] { "DvergerCultivator_bal", "DvergerHoe_bal", "DvergerKnife_bal", "Scythe", "" },
				MaleWeapons = new string[5] { "DvergerCultivator_bal", "DvergerHoe_bal", "DvergerKnife_bal", "Scythe", "" },
				RightBackOptions = new string[1] { "MaceBronze" },
				LeftBackOptions = new string[1] { "ShieldWood" }
			};
			dictionary["goblin"] = new LoadoutPreset
			{
				MaleChests = new string[1] { "GoblinTunic1" },
				FemaleChests = new string[1] { "GoblinDress1" },
				LegsOptions = new string[1] { "GoblinLegs" },
				HelmetOptions = new string[2] { "GoblinCap1", "" },
				BackOptions = new string[1] { "" },
				FemaleWeapons = new string[2] { "DvergerHoe_bal", "KnifeCopper" },
				MaleWeapons = new string[2] { "DvergerHoe_bal", "KnifeCopper" },
				RightBackOptions = new string[1] { "MaceBronze" },
				LeftBackOptions = new string[1] { "ShieldWood" }
			};
			return dictionary;
		}

		public static Dictionary<string, LoadoutPreset> GetBlacksmithPresets()
		{
			Dictionary<string, LoadoutPreset> dictionary = new Dictionary<string, LoadoutPreset>();
			dictionary["human"] = new LoadoutPreset
			{
				FemaleChests = new string[2] { "ArmorLeatherChest", "" },
				MaleChests = new string[2] { "ArmorLeatherChest", "" },
				LegsOptions = new string[3] { "ArmorWolfLegs", "ArmorIronLegs", "ArmorMageLegs_Ashlands" },
				HelmetOptions = new string[3] { "HelmetHat1", "NpcHelmetBandana_bal", "" },
				BackOptions = new string[1] { "" },
				Tool = "BeltStrength",
				RightHand = "NpcToolHammer_bal",
				RightBackOptions = new string[1] { "MaceBronze" },
				LeftBackOptions = new string[1] { "MaceIron" }
			};
			dictionary["dverger"] = new LoadoutPreset
			{
				LeftHand = "ShieldIronBuckler",
				FemaleChests = new string[2] { "DvergerFemaleDress3_bal", "DvergerFemaleDress5_bal" },
				MaleChests = new string[3] { "DvergerSuitDark_bal", "DvergerSuitDarkHat_bal", "DvergerSuitArbalest_Ashlands" },
				LegsOptions = new string[1] { "" },
				HelmetOptions = dvergerHairMale,
				BackOptions = new string[1] { "" },
				Tool = "",
				RightHand = "DvergerHammer_bal",
				RightBackOptions = new string[1] { "MaceBronze" },
				LeftBackOptions = new string[1] { "ShieldWood