Skip to content

EA 23.285 Nightly

March 13, 2026

56 files modified. 4 new files created.

Important Changes

Possible breaking changes. Click the filename to view the chunk.

Core (1)

cs
public override void FreezeScreen(float duration = 0.3f) 
public override void FreezeScreen(float duration = 0.2f) 

ELEMENT (1)

cs
public static int GetResistDamage(int dmg, int v, int power = 0) 
public static long GetResistDamage(long dmg, int v, int power = 0) 

ItemGeneral (2)

cs
public void SetChara(Chara c, Mode mode = Mode.Default) 
public void SetChara(Chara c, BaseListPeople list = null) 
cs
public UIButton AddSubButton(Sprite sprite, Action action, string lang = null, Action<UITooltip> onTooltip = null) 
public UIButton AddSubButton(Sprite sprite, Action action, string lang = null, Action<UITooltip> onTooltip = null, string id = null) 

LayerPeople (1)

cs
public static LayerPeople CreateSelect(string langHeader, string langHint, Action<UIList> onList, Action<Chara> onClick, Func<Chara, string> _onShowSubText = null) 
public static LayerPeople CreateSelect(string langHeader, string langHint, Action<BaseList> onList, Action<Chara> onClick, Func<Chara, string> _onShowSubText = null) 

ListPeopleParty (1)

cs
public override void OnInstantiate(Chara c, ItemGeneral i) 
public bool CanJoinParty(Chara c) 

ThingContainer (1)

cs
public int GetCurrency(string id, ref int sum, SourceMaterial.Row mat = null) 
public long GetCurrency(string id, ref long sum, SourceMaterial.Row mat = null) 

ABILITY

``

cs

public class ABILITY
{
	public const int ActSlime = 6608; 
	public const int AI_Steal = 6011; 
	public const int ActBurnMana = 6606; 

	public const int ActQuickCraft = 6012; 
	public const int ActRush = 6450; 

	public const int AI_PassTime = 6013; 
	public const int ActDuplicate = 6420; 

	public const int AI_SelfHarm = 6015; 
	public const int ActSuicide = 6410; 

	public const int ActRide = 6018; 
	public const int ActEscape = 6400; 

	public const int ActParasite = 6019; 
	public const int ActPray = 6050; 

	public const int ActDreamBug = 6020;

	public const int ActPray = 6050; 
	public const int ActCrabBreathe = 6500; 

	public const int ActEscape = 6400; 
	public const int ActParasite = 6019; 

	public const int ActSuicide = 6410; 
	public const int AI_SelfHarm = 6015; 

	public const int ActDuplicate = 6420; 
	public const int AI_PassTime = 6013; 

	public const int ActRush = 6450; 
	public const int ActQuickCraft = 6012; 

	public const int ActCrabBreathe = 6500; 
	public const int AI_Steal = 6011; 

	public const int ActCurse = 6600; 
	public const int AI_Meditate = 6003; 

	public const int ActEntangle = 6601; 
	public const int AI_PlayMusic = 6001; 

	public const int ActDraw = 6602; 
	public const int ActRide = 6018; 

	public const int ActNTR = 6603; 
	public const int ActMoneyDump = 5058; 

	public const int ActKiss = 6628; 
	public const int ActCurse = 6600; 

	public const int ActDrainBlood = 6626; 
	public const int ActDraw = 6602; 
	public const int ActCatHuffing = 6627; 

	public const int ActGazeMana = 6623;

public class ABILITY

cs

	public const int ActGazeDim = 6620;

	public const int AI_Meditate = 6003; 
	public const int ActTouchDrown = 6613;

	public const int ActFear = 6611; 
	public const int ActEntangle = 6601; 
	public const int ActTouchSleep = 6612; 

	public const int ActWeaken = 6610;

	public const int ActBloodsuck = 6607; 
	public const int ActSlime = 6608; 

	public const int ActBurnMana = 6606; 
	public const int ActBloodsuck = 6607; 

	public const int ActCrySad = 6605;

	public const int ActCryRage = 6604;

	public const int ActTouchSleep = 6612; 
	public const int ActNTR = 6603; 

	public const int AI_PlayMusic = 6001; 
	public const int ActFear = 6611; 

	public const int ActRestrain = 5055; 
	public const int ActMoneyThrow = 5057; 

	public const int AI_Bladder = 5054; 
	public const int ActMoneySlap = 5056; 
	public const int ActRestrain = 5055; 

	public const int TaskBuild = 5035;

public class ABILITY

cs

	public const int TaskMoveInstalled = 5036;

	public const int AI_Offer = 5029; 
	public const int GoalSleep = 5027; 
	public const int TaskSleepOnBed = 5022;

	public const int TaskGoOut = 5023; 
	public const int AI_Eat = 5024;

	public const int AI_Grab = 5025;

	public const int AI_Haul = 5026;

	public const int GoalSleep = 5027; 
	public const int ActReleaseHeld = 5028;

	public const int ActDeepKiss = 6629; 
	public const int AI_Offer = 5029; 
	public const int TaskGoOut = 5023; 

	public const int ActNoItem = 5037;

	public const int ActThrow = 5038; 
	public const int AI_Fish = 5039;

	public const int AI_Bladder = 5054; 
	public const int TaskHarvest = 5053;

	public const int ActBash = 5052;

public class ABILITY

cs

	public const int ActItem = 5048;

	public const int ActThrow = 5038; 
	public const int ActPick = 5047;

	public const int ActInstall = 5046; 
	public const int AI_Drink = 5045;

	public const int ActChat = 5044;

public class ABILITY

cs

	public const int ActRanged = 5040;

	public const int ActInstall = 5046; 
	public const int ActKiss = 6628; 

	public const int ActInsult = 6630; 
	public const int ActDeepKiss = 6629; 

	public const int ActCatHuffing = 6627; 
	public const int ActDrainBlood = 6626; 

	public const int ActSteal = 6640; 
	public const int ActScream = 6631; 

	public const int TaskReadBoard = 5019;

public class ABILITY

cs

	public const int breathe_Nether = 50206;

	public const int ActScream = 6631; 
	public const int ActInsult = 6630; 

	public const int breathe_Magic = 50211;

public class ABILITY

cs

	public const int breathe_Cold = 50201;

	public const int ActStealFood = 6641; 
	public const int ActSummonSpecial = 6800; 

	public const int ActStealMoney = 6642; 
	public const int breathe_Lightning = 50202; 

	public const int ActNeckHunt = 6650; 
	public const int ActWhirlwind = 6666; 

	public const int ActDropMine = 6660; 
	public const int ActBladeStorm2 = 6665; 

	public const int ActThrowPotion = 6661; 
	public const int ActBladeStorm = 6664; 

	public const int ActSwarm = 6662; 
	public const int ActMultiHit = 6663; 
	public const int ActWombDark = 6801; 

	public const int TaskTrain = 5021;

	public const int ActMultiHit = 6663; 
	public const int ActThrowPotion = 6661; 

	public const int ActBladeStorm = 6664; 
	public const int ActDropMine = 6660; 

	public const int ActBladeStorm2 = 6665; 
	public const int ActNeckHunt = 6650; 

	public const int ActWhirlwind = 6666; 
	public const int ActStealMoney = 6642; 

	public const int breathe_Lightning = 50202; 
	public const int ActStealFood = 6641; 

	public const int ActSummonSpecial = 6800; 
	public const int ActSteal = 6640; 

	public const int ActWombDark = 6801; 
	public const int ActSwarm = 6662; 

	public const int ActDeathSentense = 6802;

public class ABILITY

cs

	public const int ActLulwyTrick = 6902;

	public static readonly int[] IDS = new int[141] 
	public static readonly int[] IDS = new int[144] 
	{
		6608, 6011, 6012, 6013, 6015, 6018, 6019, 6020, 6050, 6400, 
		6410, 6420, 6450, 6500, 6600, 6601, 6602, 6603, 6628, 6626, 
		6623, 6622, 6621, 6620, 6003, 6613, 6611, 6610, 6607, 6606, 
		6605, 6604, 6612, 6001, 5055, 5054, 5035, 5034, 5033, 5032, 
		5031, 5030, 5036, 5029, 5027, 5022, 5023, 5024, 5025, 5026, 
		5028, 6629, 5037, 5039, 5053, 5052, 5051, 5050, 5049, 5048, 
		5038, 5047, 5045, 5044, 5043, 5042, 5041, 5040, 5046, 6630, 
		6627, 6640, 5019, 5020, 50216, 50215, 50214, 50213, 5018, 50212, 
		50210, 50209, 50208, 50207, 50206, 6631, 50211, 5017, 5016, 5015, 
		5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008, 5009, 
		5010, 5011, 5012, 5013, 5014, 50204, 50203, 50205, 50201, 6641, 
		6642, 6650, 6660, 6661, 6662, 5021, 6663, 6664, 6665, 6666, 
		50202, 6800, 6801, 6802, 6667, 6720, 50200, 8795, 8794, 8793, 
		6700, 6904, 6903, 7000, 6901, 6900, 6753, 6752, 6751, 6750, 
		6902
		6606, 6450, 6420, 6410, 6400, 6050, 6020, 6500, 6019, 6015, 
		6013, 6012, 6011, 6003, 6001, 6018, 5058, 6600, 6602, 6627, 
		6623, 6622, 6621, 6620, 6613, 6601, 6612, 6610, 6608, 6607, 
		6605, 6604, 6603, 6611, 5057, 5056, 5055, 5035, 5034, 5033, 
		5032, 5031, 5030, 5036, 5022, 5024, 5025, 5026, 5027, 5028, 
		5029, 5023, 5037, 5038, 5039, 5054, 5053, 5052, 5051, 5050, 
		5049, 5048, 5047, 5046, 5045, 5044, 5043, 5042, 5041, 5040, 
		6628, 6629, 6626, 6631, 5019, 5020, 50216, 50215, 50214, 50213, 
		5018, 50212, 50210, 50209, 50208, 50207, 50206, 6630, 50211, 5017, 
		5016, 5015, 5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007, 
		5008, 5009, 5010, 5011, 5012, 5013, 5014, 50204, 50203, 50205, 
		50201, 6800, 50202, 6666, 6665, 6664, 6663, 6801, 5021, 6661, 
		6660, 6650, 6642, 6641, 6640, 6662, 6802, 6667, 6720, 50200, 
		8795, 8794, 8793, 6700, 6904, 6903, 7000, 6901, 6900, 6753, 
		6752, 6751, 6750, 6902
	};
}
public class Ability : Act

public override long GetSourceValue(long v, int lv, SourceValueType type)

cs
		{
			return base.GetSourceValue(v, lv, type);
		}
		return 10L * (long)(100 + (lv - 1) * base.source.lvFactor / 10) / 100; 
		return 10 * (100 + ((long)lv - 1L) * base.source.lvFactor / 10) / 100; 
	}

	public override int GetPower(Card c)
	{
		long num = base.Value * 8 + 50; 
		long a = base.Value * 8 + 50; 
		if (!c.IsPC)
		{
			num = (int)Mathf.Max(num, c.LV * 6 + 30); 
			a = MathEx.Max(a, (long)c.LV * 6L + 30); 
			if (c.IsPCFactionOrMinion && !base.source.aliasParent.IsEmpty())
			{
				num = (int)Mathf.Max(num, c.Evalue(base.source.aliasParent) * 4 + 30); 
				a = MathEx.Max(a, (long)c.Evalue(base.source.aliasParent) * 4L + 30); 
			}
		}
		num = EClass.curve(num, 400, 100); 
		a = EClass.curve(a, 400, 100); 
		if (this is Spell)
		{
			num = num * Mathf.Max(100 + c.Evalue(411) - c.Evalue(93), 1) / 100; 
			a = a * Mathf.Max(100 + c.Evalue(411) - c.Evalue(93), 1) / 100; 
		}
		else if (this is ActBreathe)
		{
			num = num * Mathf.Max(100 + c.Evalue(411), 1) / 100; 
			a = a * Mathf.Max(100 + c.Evalue(411), 1) / 100; 
		}
		if (num > 214748364) 
		if (a > 214748364) 
		{
			num = 214748364L; 
			a = 214748364L; 
		}
		return (int)num; 
		return (int)a; 
	}

	public override void OnChangeValue()

AI_Idle

public override IEnumerable<Status> Run()

cs
			});
		}
	}
	if (EClass.rnd(owner.isSynced ? 10 : 2000) == 0 && owner.ability.Has(5058)) 
	{ 
		if (!owner.UseAbility(5058)) 
		{ 
			owner.AddCondition<ConInsane>(10000); 
			owner.SetHostility(Hostility.Enemy); 
			if (owner.isSynced) 
			{ 
				owner.DoHostileAction(EClass.pc); 
			} 
		} 
		yield return Restart(); 
	} 
	if (EClass.rnd(35) == 0 && owner.id == "child" && owner.pos.cell.IsSnowTile)
	{
		foreach (Chara chara6 in EClass._map.charas)

AI_Steal

public override IEnumerable<Status> Run()

cs
						return;
					}
				}
				if (target.ChildrenAndSelfWeight > owner.Evalue(281) * 200 + owner.STR * 100 + 1000) 
				if (target.ChildrenAndSelfWeight > (long)owner.Evalue(281) * 200L + (long)owner.STR * 100L + 1000) 
				{
					EClass.pc.Say("tooHeavy", target);
					p.Cancel();

ActEffect

void AddCon<T>(int rate, int power) where T : Condition

cs
	{
		CC.PlaySound("clean_floor");
		Msg.Say("exterminate");
		List<Chara> list2 = EClass._map.charas.Where((Chara c) => c.isCopy && !c.IsPCFaction).ToList(); 
		if (list2.Count == 0) 
		List<Chara> list3 = EClass._map.charas.Where((Chara c) => c.isCopy && !c.IsPCFaction).ToList(); 
		if (list3.Count == 0) 
		{
			Msg.SayNothingHappen();
			return;
		}
		foreach (Chara item in list2) 
		foreach (Chara item in list3) 
		{
			item.Say("split_fail", item);
			item.PlayEffect("vanish");

void AddCon<T>(int rate, int power) where T : Condition

cs
		break;
	}
	case EffectId.LittleSisterMigration:
	case EffectId.SilverCatMigration:
	{
		if (!(EClass._zone is Zone_LittleGarden) && !EClass.game.IsSurvival) 
		bool flag3 = id == EffectId.SilverCatMigration; 
		if (!EClass.game.IsSurvival && ((flag3 && !(EClass._zone is Zone_EternalGarden)) || (!flag3 && !(EClass._zone is Zone_LittleGarden)))) 
		{
			Msg.SayNothingHappen();
			return;
		}
		List<Chara> list3 = new List<Chara>(); 
		bool flag3 = false; 
		List<Chara> list2 = new List<Chara>(); 
		bool flag4 = false; 
		foreach (Chara chara2 in EClass._map.charas)
		{
			if (!chara2.IsPCFactionOrMinion && chara2.id == "littleOne") 
			if (!chara2.IsPCFactionOrMinion && chara2.id == (flag3 ? "cat_silver" : "littleOne")) 
			{
				if (flag3) 
				if (flag4) 
				{
					flag3 = false; 
					flag4 = false; 
					continue;
				}
				list3.Add(chara2); 
				flag3 = true; 
				list2.Add(chara2); 
				flag4 = true; 
			}
		}
		if (list3.Count == 0) 
		if (list2.Count == 0) 
		{
			Msg.SayNothingHappen();
			return;
		}
		EClass.pc.PlaySound("chime_angel");
		foreach (Chara item2 in list3) 
		foreach (Chara item2 in list2) 
		{
			item2.PlayEffect("revive");
			item2.Destroy();
		}
		Msg.Say("little_migration", list3.Count.ToString() ?? ""); 
		EClass._zone.ModInfluence(list3.Count); 
		EClass.player.stats.sistersDepart += list3.Count; 
		Msg.Say(flag3 ? "cat_migration" : "little_migration", list2.Count.ToString() ?? ""); 
		EClass._zone.ModInfluence(list2.Count); 
		if (flag3) 
		{ 
			EClass.player.stats.catDepart += list2.Count; 
		} 
		else
		{ 
			EClass.player.stats.sistersDepart += list2.Count; 
		} 
		break;
	}
	case EffectId.MagicMap:

void AddCon<T>(int rate, int power) where T : Condition

cs
	case EffectId.EnchantArmorGreat:
	{
		bool armor = id == EffectId.EnchantArmor || id == EffectId.EnchantArmorGreat;
		bool flag6 = id == EffectId.EnchantWeaponGreat || id == EffectId.EnchantArmorGreat; 
		bool flag7 = id == EffectId.EnchantWeaponGreat || id == EffectId.EnchantArmorGreat; 
		if (!tc.isThing)
		{
			LayerDragGrid.CreateEnchant(CC, armor, flag6, state); 
			LayerDragGrid.CreateEnchant(CC, armor, flag7, state); 
			return;
		}
		cc.PlaySound("identify");

void AddCon<T>(int rate, int power) where T : Condition

cs
			tc.ModEncLv(-1);
			break;
		}
		int num6 = (flag6 ? 4 : 2) + (blessed ? 1 : 0); 
		int num6 = (flag7 ? 4 : 2) + (blessed ? 1 : 0); 
		if (tc.encLV >= num6)
		{
			cc.Say("enc_resist", tc);

void AddCon<T>(int rate, int power) where T : Condition

cs
	case EffectId.Identify:
	case EffectId.GreaterIdentify:
	{
		bool flag5 = id == EffectId.GreaterIdentify; 
		bool flag6 = id == EffectId.GreaterIdentify; 
		if (flag)
		{
			Redirect(EffectId.ForgetItems, flag5 ? BlessedState.Cursed : BlessedState.Normal, default(ActRef)); 
			Redirect(EffectId.ForgetItems, flag6 ? BlessedState.Cursed : BlessedState.Normal, default(ActRef)); 
			break;
		}
		if (!tc.isThing)
		{
			int count = ((!blessed) ? 1 : (flag5 ? (2 + EClass.rnd(2)) : (3 + EClass.rnd(3)))); 
			LayerDragGrid.CreateIdentify(CC, flag5, state, 0, count); 
			int count = ((!blessed) ? 1 : (flag6 ? (2 + EClass.rnd(2)) : (3 + EClass.rnd(3)))); 
			LayerDragGrid.CreateIdentify(CC, flag6, state, 0, count); 
			return;
		}
		cc.PlaySound("identify");
		cc.PlayEffect("identify");
		tc.Thing.Identify(cc.IsPCParty, (!flag5) ? IDTSource.Identify : IDTSource.SuperiorIdentify); 
		tc.Thing.Identify(cc.IsPCParty, (!flag6) ? IDTSource.Identify : IDTSource.SuperiorIdentify); 
		break;
	}
	case EffectId.Uncurse:

void AddCon<T>(int rate, int power) where T : Condition

cs
		Element orCreateElement2 = tc.elements.GetOrCreateElement(65);
		Element orCreateElement3 = tc.elements.GetOrCreateElement(67);
		Element orCreateElement4 = tc.elements.GetOrCreateElement(66);
		bool flag4 = tc.IsEquipmentOrRangedOrAmmo || tc.IsThrownWeapon; 
		bool flag5 = tc.IsEquipmentOrRangedOrAmmo || tc.IsThrownWeapon; 
		if (flag)
		{
			num3 = (int)(0.01f * (float)num3 * (float)power * 0.75f + 500f);
			if (num3 < 0 || num3 > 10000000)
			{
				num3 = 10000000;
				flag4 = false; 
				flag5 = false; 
			}
			if (flag4) 
			if (flag5) 
			{
				if (tc.IsWeapon || tc.IsThrownWeapon || tc.IsAmmo)
				{

void AddCon<T>(int rate, int power) where T : Condition

cs
			{
				power /= 4;
			}
			if (flag4) 
			if (flag5) 
			{
				if (tc.IsWeapon || tc.IsThrownWeapon || tc.IsAmmo)
				{

void AddCon<T>(int rate, int power) where T : Condition

cs
			break;
		}
		CC.Say("abDraw", CC, TC);
		CC.PlaySound("draw"); 
		if (TC.HasCondition<ConGravity>())
		{
			CC.SayNothingHappans();

void AddCon<T>(int rate, int power) where T : Condition

cs
			break;
		}
		Thing thing6 = null;
		bool flag9 = actRef.n1 == "food"; 
		bool flag10 = actRef.n1 == "food"; 
		if (actRef.n1 == "money")
		{
			int currency = TC.GetCurrency();

void AddCon<T>(int rate, int power) where T : Condition

cs
		else
		{
			Func<Thing, bool> func = (Thing t) => true;
			if (flag9) 
			if (flag10) 
			{
				func = (Thing t) => t.IsFood;
			}

void AddCon<T>(int rate, int power) where T : Condition

cs
	case EffectId.DamageMindGreat:
	case EffectId.Weaken:
	{
		bool flag10 = id == EffectId.DamageBody || id == EffectId.DamageBodyGreat; 
		bool flag11 = id == EffectId.DamageBody || id == EffectId.DamageBodyGreat; 
		bool mind2 = id == EffectId.DamageMind || id == EffectId.DamageMindGreat;
		int num9 = ((id == EffectId.DamageBody || id == EffectId.DamageMind) ? 1 : (4 + EClass.rnd(4)));
		if (id == EffectId.Weaken)
		{
			flag10 = EClass.rnd(2) == 0; 
			mind2 = !flag10; 
			flag11 = EClass.rnd(2) == 0; 
			mind2 = !flag11; 
			num9 = 1;
		}
		else

void AddCon<T>(int rate, int power) where T : Condition

cs
			TC.PlayEffect("debuff");
			TC.PlaySound("debuff");
		}
		TC.Say(flag10 ? "damageBody" : "damageMind", TC); 
		TC.Say(flag11 ? "damageBody" : "damageMind", TC); 
		for (int l = 0; l < num9; l++)
		{
			TC.DamageTempElements(power, flag10, mind2, id != EffectId.Weaken); 
			TC.DamageTempElements(power, flag11, mind2, id != EffectId.Weaken); 
		}
		if (TC.IsPC)
		{

void AddCon<T>(int rate, int power) where T : Condition

cs
	case EffectId.EnhanceBodyGreat:
	case EffectId.EnhanceMindGreat:
	{
		bool flag7 = id == EffectId.EnhanceBody || id == EffectId.EnhanceBodyGreat; 
		bool flag8 = id == EffectId.EnhanceBody || id == EffectId.EnhanceBodyGreat; 
		bool mind = id == EffectId.EnhanceMind || id == EffectId.EnhanceMindGreat;
		if (id != EffectId.EnhanceBody && id != EffectId.EnhanceMind)
		{
			EClass.rnd(4);
		}
		TC.Say(flag7 ? "enhanceBody" : "enhanceMind", TC); 
		TC.Say(flag8 ? "enhanceBody" : "enhanceMind", TC); 
		TC.PlayEffect("buff");
		TC.PlaySound("buff");
		TC.EnhanceTempElements(power, flag7, mind, onlyRenew: true); 
		TC.EnhanceTempElements(power, flag8, mind, onlyRenew: true); 
		break;
	}
	case EffectId.RestoreBody:
	case EffectId.RestoreMind:
	{
		bool flag8 = id == EffectId.RestoreBody; 
		bool flag9 = id == EffectId.RestoreBody; 
		if (flag)
		{
			Redirect(flag8 ? EffectId.DamageBodyGreat : EffectId.DamageMindGreat, BlessedState.Normal, default(ActRef)); 
			Redirect(flag9 ? EffectId.DamageBodyGreat : EffectId.DamageMindGreat, BlessedState.Normal, default(ActRef)); 
			break;
		}
		TC.Say(flag8 ? "restoreBody" : "restoreMind", TC); 
		TC.Say(flag9 ? "restoreBody" : "restoreMind", TC); 
		TC.PlaySound("heal");
		TC.PlayEffect("heal");
		TC.CureHost(flag8 ? CureType.CureBody : CureType.CureMind, power, state); 
		TC.CureHost(flag9 ? CureType.CureBody : CureType.CureMind, power, state); 
		if (blessed)
		{
			Redirect(flag8 ? EffectId.EnhanceBodyGreat : EffectId.EnhanceMindGreat, BlessedState.Normal, default(ActRef)); 
			Redirect(flag9 ? EffectId.EnhanceBodyGreat : EffectId.EnhanceMindGreat, BlessedState.Normal, default(ActRef)); 
		}
		break;
	}

+ActMoneyDump

File Created
cs
using System.Collections.Generic;
using UnityEngine;

public class ActMoneyDump : Ability
{
	public override bool CanPressRepeat => true;

	public override bool CanPerform()
	{
		return Act.CC.GetCurrency() >= 100;
	}

	public override bool Perform()
	{
		List<Point> points = new List<Point>();
		Act.TP.ForeachNeighbor(delegate(Point _p)
		{
			if (!_p.Equals(Act.TP) && EClass.rnd(3) != 0 && !_p.IsBlocked)
			{
				points.Add(_p.Copy());
			}
		});
		Act.CC.Talk("insane");
		Act.CC.PlaySound("money_dump");
		foreach (Point item in points)
		{
			int num = EClass.rndHalf(Mathf.Clamp(Act.CC.GetCurrency() / 50, 1, 20000000)) + EClass.rndHalf(10);
			if (Act.CC.GetCurrency() >= num)
			{
				Thing t = ThingGen.Create("money").SetNum(num);
				Act.CC.ModCurrency(-num * 3 / 2);
				ActThrow.Throw(Act.CC, item, null, t, ThrowMethod.Reward);
			}
		}
		Act.TP.TalkWitnesses(Act.CC, new string[4] { "rumor_good", "callGuards", "disgust", "wow" }.RandomItem(), 4, WitnessType.everyone, (Chara c) => true);
		foreach (Chara item2 in Act.TP.ListWitnesses(Act.CC, 4, WitnessType.everyone))
		{
			ActMoneySlap.MoneyEffect(Act.CC, item2, GetPower(Act.CC));
		}
		return true;
	}
}

+ActMoneySlap

File Created
cs
using UnityEngine;

public class ActMoneySlap : Ability
{
	public override bool CanPressRepeat => true;

	public override bool CanPerform()
	{
		if (Act.TC != null)
		{
			return Act.CC.GetCurrency() > 0;
		}
		return false;
	}

	public override bool Perform()
	{
		bool num = this is ActMoneyThrow;
		int num2 = Mathf.Clamp(Act.CC.GetCurrency() / 100, 1, 20000000);
		Thing thing = ThingGen.Create("money").SetNum(num2);
		long dmg = (long)Mathf.Sqrt(num2) * GetPower(Act.CC) / 100;
		Act.CC.ModCurrency(-num2);
		if (!num)
		{
			Act.CC.PlaySound("whip");
		}
		Act.CC.PlaySound("money_dump");
		Act.CC.LookAt(Act.TP);
		if (num)
		{
			Act.CC.Say("throw", Act.CC, thing.GetName(NameStyle.Full));
			Chara chara = Act.CC.host ?? Act.CC;
			Effect.Get<EffectIRenderer>("throw").Play(chara, thing, chara.pos, Act.TP, 0.2f);
			thing.renderer.SetFirst(first: false, chara.renderer.position);
		}
		else
		{
			Act.CC.renderer.PlayAnime(AnimeID.Attack, Act.TC);
			Act.CC.Say("use_whip", Act.CC, Act.TC, thing.Name);
		}
		Act.TC.PlayAnime(AnimeID.Shiver);
		Act.TC.DamageHP(dmg, 926, 100, AttackSource.Throw, Act.CC);
		Act.TC.PlayEffect("hit_blunt").SetScale(1f);
		Act.CC.PlaySound("hit_blunt");
		if (Act.TC.isChara && Act.TC.ExistsOnMap)
		{
			Act.TC.Chara.OnInsulted();
			MoneyEffect(Act.CC, Act.TC.Chara, GetPower(Act.CC), 1);
		}
		return true;
	}

	public static void MoneyEffect(Chara owner, Chara c, int power, int chance = 5)
	{
		if (c != owner && EClass.rnd(chance) == 0)
		{
			if (EClass.rnd(2) == 0)
			{
				c.AddCondition<ConConfuse>(power);
			}
			if (EClass.rnd(2) == 0)
			{
				c.AddCondition<ConDim>(power);
			}
			if (EClass.rnd(4) == 0)
			{
				c.AddCondition<ConFear>(power);
			}
			if (EClass.rnd(1) == 0)
			{
				c.AddCondition<ConEuphoric>(power);
			}
		}
	}
}

+ActMoneyThrow

File Created
cs
public class ActMoneyThrow : ActMoneySlap
{
	public override bool CanPressRepeat => true;
}

BaseGameScreen

public virtual void RefreshWeather()

cs
	emission.rateOverTime = ((currentCondition == Weather.Condition.RainHeavy) ? 750 : 200);
	EMono.scene.snow.enableEmission = !flag && currentCondition == Weather.Condition.Snow;
	EMono.scene.ether.enableEmission = !flag && weather.IsEther;
	bool enableEmission = !flag && weather.IsBlossom; 
	bool flag3 = !flag && weather.IsBlossom; 
	ParticleSystem[] blossoms = EMono.scene.blossoms;
	for (int i = 0; i < blossoms.Length; i++) 
	foreach (ParticleSystem particleSystem in blossoms) 
	{
		blossoms[i].enableEmission = enableEmission; 
		particleSystem.enableEmission = flag3; 
		if (flag3) 
		{ 
			ParticleSystem.MainModule main = particleSystem.main; 
			ParticleSystem.MinMaxGradient startColor = main.startColor; 
			if (EMono._zone is Zone_Mifu) 
			{ 
				startColor.mode = ParticleSystemGradientMode.RandomColor; 
				startColor.gradient = EMono.Colors.particleColors.blossomGradient; 
			} 
			else
			{ 
				startColor.mode = ParticleSystemGradientMode.TwoColors; 
				startColor.colorMin = EMono.Colors.particleColors.blossomMin; 
				startColor.colorMax = EMono.Colors.particleColors.blossomMax; 
			} 
			main.startColor = startColor; 
		} 
	}
	enableEmission = !flag && currentCondition == Weather.Condition.SnowHeavy && EMono.core.config.graphic.blizzard; 
	flag3 = !flag && currentCondition == Weather.Condition.SnowHeavy && EMono.core.config.graphic.blizzard; 
	blossoms = EMono.scene.blizzards;
	for (int i = 0; i < blossoms.Length; i++)
	{
		blossoms[i].enableEmission = enableEmission; 
		blossoms[i].enableEmission = flag3; 
	}
	EMono.scene.transBlizzard.localScale = new Vector3(1f, 1f, 1f);
	bool flag3 = (EMono._zone.IsUnderwater || EMono._map.config.forceGodRay || (EMono.core.config.graphic.godray && !flag && (currentCondition == Weather.Condition.Fine || currentCondition == Weather.Condition.Snow))) && !BuildMenu.Instance; 
	EMono.scene.godray.SetActive(flag3, delegate(bool enabled) 
	bool flag4 = (EMono._zone.IsUnderwater || EMono._map.config.forceGodRay || (EMono.core.config.graphic.godray && !flag && (currentCondition == Weather.Condition.Fine || currentCondition == Weather.Condition.Snow))) && !BuildMenu.Instance; 
	EMono.scene.godray.SetActive(flag4, delegate(bool enabled) 
	{
		if (!enabled)
		{
			EMono.scene.godray.Clear();
		}
	});
	EMono.scene.godrayDust.SetActive(flag3 && EMono.world.date.IsNight); 
	EMono.scene.godrayDust.SetActive(flag4 && EMono.world.date.IsNight); 
	EMono.scene.snow.SetActive(enable: true);
	EMono.scene.rain.SetActive(enable: true);
	EMono.scene.ether.SetActive(enable: true);

public virtual void RefreshWeather()

cs
		num2 += EMono.scene.profile.global.snowBrightness;
	}
	camSupport.grading.sceneBrightness = num2;
	ParticleSystem.MainModule main = EMono.scene.rain.main; 
	ParticleSystem.MainModule main2 = EMono.scene.snow.main; 
	ParticleSystem.MainModule main3 = EMono.scene.ether.main; 
	bool flag5 = (main3.prewarm = false); 
	bool prewarm = (main2.prewarm = flag5); 
	main.prewarm = prewarm; 
	ParticleSystem.MainModule main2 = EMono.scene.rain.main; 
	ParticleSystem.MainModule main3 = EMono.scene.snow.main; 
	ParticleSystem.MainModule main4 = EMono.scene.ether.main; 
	bool flag6 = (main4.prewarm = false); 
	bool prewarm = (main3.prewarm = flag6); 
	main2.prewarm = prewarm; 
	blossoms = EMono.scene.blossoms;
	for (int i = 0; i < blossoms.Length; i++)
	{
		ParticleSystem.MainModule main4 = blossoms[i].main; 
		main4.prewarm = false; 
		ParticleSystem.MainModule main5 = blossoms[i].main; 
		main5.prewarm = false; 
	}
	camSupport.grading.SetGrading();
}

BaseListPeople

public override void List()

cs
{
	list.callbacks = new UIList.Callback<Chara, ItemGeneral>
	{
		onInstantiate = delegate(Chara a, ItemGeneral b) 
		onInstantiate = delegate 
		{
			b.SetChara(a, (this is ListPeopleBuySlave) ? ItemGeneral.Mode.Slave : ItemGeneral.Mode.Default); 
		}, 
		onRedraw = delegate(Chara a, ItemGeneral b, int i) 
		{ 
			b.SetChara(a, this); 
			OnInstantiate(a, b);
			b.Build();
		},

public override void OnInstantiate(Chara a, ItemGeneral b)

cs
					{
					});
				}
			}).icon.SetAlpha((bed != null) ? 1f : 0.4f); 
			}, "home").icon.SetAlpha((bed != null) ? 1f : 0.4f); 
		}
	}
	if (ShowCharaSheet && EClass.debug.showExtra)

public override void OnInstantiate(Chara a, ItemGeneral b)

cs
			LayerChara layerChara = EClass.ui.AddLayerDontCloseOthers<LayerChara>();
			layerChara.windows[0].SetRect(EClass.core.refs.rects.center);
			layerChara.SetChara(a);
		}, "charaInfo"); 
		}, "charaInfo", null, "sheet"); 
	}
	if (IsDisabled(a))
	{

public void AddSubButtonWork(ItemGeneral b, Chara a)

cs
		}, null, delegate(UITooltip t)
		{
			WriteHobbies(t, a, roomWork);
		}).icon.SetAlpha(flag ? 1f : 0.4f); 
		}, "room").icon.SetAlpha(flag ? 1f : 0.4f); 
	}

	public void WriteHobbies(UITooltip t, Chara a, BaseArea roomWork)

public override void OnList()

cs
	}
	foreach (Chara member2 in EClass.pc.party.members)
	{
		if (member2.memberType == memberType && !list.items.Contains(member2)) 
		if (member2.memberType == memberType && !list.Contains(member2)) 
		{
			list.Add(member2);
		}

public override void OnRefreshMenu()

cs
				List();
			});
		}
		if (!(this is ListPeopleParty)) 
		{ 
			return; 
		} 
		menuLeft.AddSpace(); 
		menuLeft.AddHeader("party"); 
		if (EClass.pc.party.members.Count > 1) 
		{ 
			menuLeft.AddButton("disband", delegate
			{ 
				EClass.pc.party.Disband(); 
				SE.Trash(); 
				RefreshAll(); 
			}); 
		} 
	}
}

BaseTileMap

public Vector3 GetThingPosition(Card tg, Point p)

cs

	public int GetApproximateBlocklight(Cell cell)
	{
		float num = _baseBrightness + 0.38f; 
		float num = _baseBrightness + 0.25f; 
		num = ((!cell.IsSnowTile) ? ((float)((int)(num * 50f) * 262144 + ((cell.lightR >= 64) ? 63 : cell.lightR) * 4096 + ((cell.lightG >= 64) ? 63 : cell.lightG) * 64 + ((cell.lightB >= 64) ? 63 : cell.lightB))) : ((float)((int)(num * 50f) * 262144 + (int)((float)((cell.lightR >= 50) ? 50 : cell.lightR) * snowColor) * 4096 + (int)((float)((cell.lightG >= 50) ? 50 : cell.lightG) * snowColor) * 64 + (int)((float)((cell.lightB >= 50) ? 50 : cell.lightB) * snowColor) + snowColorToken)));
		return (int)num;
	}

Card

public int GetCurrency(string id = "money")

cs
		{
			return EClass._zone.influence;
		}
		int sum = 0; 
		long sum = 0L; 
		SourceMaterial.Row mat = null;
		things.GetCurrency(id, ref sum, mat);
		return sum; 
		if (sum > int.MaxValue) 
		{ 
			sum = 2147483647L; 
		} 
		return (int)sum; 
	}

	public virtual void HealHPHost(int a, HealSource origin = HealSource.None)

public void DamageHP(long dmg, int ele, int eleP = 100, AttackSource attackSourc

cs
			{
				num3++;
			}
			dmg = Element.GetResistDamage((int)dmg, Evalue(e.source.aliasRef), num3); 
			dmg = Element.GetResistDamage(dmg, Evalue(e.source.aliasRef), num3); 
			dmg = dmg * 100 / (100 + Mathf.Clamp(Evalue(961) * 5, -50, 200));
			dmg = dmg * Mathf.Max(100 - Evalue(93), 10) / 100;
		}

public void DamageHP(long dmg, int ele, int eleP = 100, AttackSource attackSourc

cs
							Chara.AddCondition<ConFractured>((int)Mathf.Max(10f, 30f - Mathf.Sqrt(Evalue(436))));
							hp = Mathf.Min(half * (int)Mathf.Sqrt(Evalue(436) * 2) / 100, MaxHP / 3);
						});
						goto IL_1077; 
						goto IL_1075; 
					}
				}
				if (zoneInstanceBout != null && (bool)LayerDrama.Instance)

public void DamageHP(long dmg, int ele, int eleP = 100, AttackSource attackSourc

cs
						if (EClass.player.invlunerable)
						{
							EvadeDeath(null);
							goto IL_1077; 
							goto IL_1075; 
						}
					}
					if (Evalue(1220) > 0 && Chara.stamina.value >= (IsPC ? (Chara.stamina.max / 2) : (Chara.stamina.max / 3 * 2)))

public void DamageHP(long dmg, int ele, int eleP = 100, AttackSource attackSourc

cs
			}
		}
	}
	goto IL_1077; 
	IL_1077: 
	goto IL_1075; 
	IL_1075: 
	if (trait.CanBeAttacked)
	{
		renderer.PlayAnime(AnimeID.HitObj);

public SoundSource PlaySound(string id, float v = 1f, bool spatial = true)

cs
	{
		spatial = false;
	}
	if (rootCard.Dist(EClass.pc) < EClass.player.lightRadius + 1 || !spatial) 
	if (rootCard.Dist(EClass.pc) < 6 || !spatial) 
	{
		return rootCard.pos.PlaySound(id, isSynced || !spatial, v, spatial);
	}

Chara

public void RestockEquip(bool onCreate)

cs
			EQ_ID("dagger_hocho");
		}
		break;
	case "mad_rich":
		if (onCreate) 
		{ 
			int a = EClass.rndHalf(100 + (EClass.debug.enable ? 10 : EClass._zone.influence) * 50 + (int)Mathf.Sqrt(EClass._zone.DangerLv) * 100 + (int)Mathf.Sqrt(EClass.pc.FameLv) * 100 + EClass._zone.development * 10); 
			ModCurrency(a); 
		} 
		break; 
	}
	if (!TryEquipRanged())
	{

public override void SetSortVal(UIList.SortMode m, CurrencyType currency = Curre

cs
	case UIList.SortMode.ByFeat:
		sortVal = -GetTotalFeat();
		break;
	case UIList.SortMode.ByPartyOrder:
		sortVal = EClass.pc.party.members.IndexOf(this); 
		return; 
	default:
		sortVal = sourceCard._index * ((!IsHuman) ? 1 : (-1));
		break;

ColorProfile

``

cs

public class ColorProfile : EScriptable
{
	[Serializable] 
	public class ParticleColors
	{ 
		public Color blossomMin; 
		public Color blossomMax; 
		public Gradient blossomGradient; 
	} 
	[Serializable]
	public class RarityColors
	{

public class PCLights

cs

	public PCLights pcLights;

	public ParticleColors particleColors; 
	public Color colorIngCost;

	public Color colorIngPredict;

Core

public void Halt()

cs
	{
	}

	public override void FreezeScreen(float duration = 0.3f) 
	public override void FreezeScreen(float duration = 0.2f) 
	{
		ui.FreezeScreen(duration);
	}

CoreDebug

public static string RegenerateNames()

cs
	[ConsoleCommand("")]
	public static string Stats()
	{
		return string.Concat(string.Concat(string.Concat(string.Concat(string.Concat(string.Concat(string.Concat(string.Concat(string.Concat(string.Concat(string.Concat(string.Concat("" + "Fish Stolen: " + EClass.player.flags.fishStolen + Environment.NewLine, "Little Saved: ", EClass.player.little_saved.ToString(), Environment.NewLine), "Little Lost: ", EClass.player.little_dead.ToString(), Environment.NewLine), "Angry Cats: ", EClass.player.stats.angryCats.ToString(), Environment.NewLine), "Love Made: ", EClass.player.stats.kimo.ToString(), Environment.NewLine), "Nefia Beaten: ", EClass.player.stats.nefiaBeaten.ToString(), Environment.NewLine), "Sheared: ", EClass.player.stats.shear.ToString(), Environment.NewLine), "Brushed: ", EClass.player.stats.brush.ToString(), Environment.NewLine), "Egg Hatched: ", EClass.player.stats.eggHatched.ToString(), Environment.NewLine), "Plowed: ", EClass.player.stats.plow.ToString(), Environment.NewLine), "Cleaned: ", EClass.player.stats.clean.ToString(), Environment.NewLine), "Unpaid Bill: ", EClass.player.unpaidBill.ToString(), Environment.NewLine), "Statue Shipped: ", EClass.player.flags.statueShipped.ToString(), Environment.NewLine); 
		return string.Concat(string.Concat(string.Concat(string.Concat(string.Concat(string.Concat(string.Concat(string.Concat(string.Concat(string.Concat(string.Concat(string.Concat(string.Concat(string.Concat("" + "Fish Stolen: " + EClass.player.flags.fishStolen + Environment.NewLine, "Little Saved: ", EClass.player.little_saved.ToString(), Environment.NewLine), "Little Lost: ", EClass.player.little_dead.ToString(), Environment.NewLine), "Little Depart: ", EClass.player.stats.sistersDepart.ToString(), Environment.NewLine), "Cat Depart: ", EClass.player.stats.catDepart.ToString(), Environment.NewLine), "Angry Cats: ", EClass.player.stats.angryCats.ToString(), Environment.NewLine), "Love Made: ", EClass.player.stats.kimo.ToString(), Environment.NewLine), "Nefia Beaten: ", EClass.player.stats.nefiaBeaten.ToString(), Environment.NewLine), "Sheared: ", EClass.player.stats.shear.ToString(), Environment.NewLine), "Brushed: ", EClass.player.stats.brush.ToString(), Environment.NewLine), "Egg Hatched: ", EClass.player.stats.eggHatched.ToString(), Environment.NewLine), "Plowed: ", EClass.player.stats.plow.ToString(), Environment.NewLine), "Cleaned: ", EClass.player.stats.clean.ToString(), Environment.NewLine), "Unpaid Bill: ", EClass.player.unpaidBill.ToString(), Environment.NewLine), "Statue Shipped: ", EClass.player.flags.statueShipped.ToString(), Environment.NewLine); 
	}

	[ConsoleCommand("")]

ELEMENT

public virtual long GetSourceValue(long v, int lv, SourceValueType type)

cs
	{
		return type switch
		{
			SourceValueType.Chara => v * (100 + (lv - 1 + EClass.rnd(lv / 2 + 1)) * source.lvFactor / 10) / 100 + EClass.rnd(lv / 3) * source.lvFactor / 100,  
			SourceValueType.Chara => v * (100 + (lv - 1 + EClass.rnd(lv / 2 + 1)) * source.lvFactor / 10) / 100 + (long)EClass.rnd(lv / 3) * (long)source.lvFactor / 100,  
			SourceValueType.Fixed => v, 
			_ => v * ((source.encFactor == 0) ? 100 : (50 + EClass.rnd(100) + EClass.rnd((int)Mathf.Sqrt(lv * 100)) * source.encFactor / 100)) / 100,  
			_ => v * ((source.encFactor == 0) ? 100 : (50 + EClass.rnd(100) + (long)EClass.rnd((int)Mathf.Sqrt(lv * 100)) * (long)source.encFactor / 100)) / 100,  
		};
	}

public static int GetResistLv(int v)

cs
		return num;
	}

	public static int GetResistDamage(int dmg, int v, int power = 0) 
	public static long GetResistDamage(long dmg, int v, int power = 0) 
	{
		int num = GetResistLv(v);
		if (power > 0 && num > 0)

public static int GetResistDamage(int dmg, int v, int power = 0)

cs
	}
	if (num >= 4)
	{
		return 0; 
		return 0L; 
	}
	return num switch
	{

ENC

public class ENC

cs

	public const int negateFear = 423;

	public const int negateSunburn = 431; 
	public const int guts = 436; 

	public const int negateConfusion = 425;

public class ENC

cs

	public const int breathing = 429;

	public const int encRagnarok = 667; 
	public const int negateShockwave = 430; 

	public const int encHit = 414;

	public const int meleeDistance = 666; 
	public const int negateSunburn = 431; 

	public const int negateSleep = 424;

	public const int slowCorruption = 412;

	public const int convertFire = 850; 
	public const int convertImpact = 865; 

	public const int throwReturn = 410;

	public const int negateShockwave = 430; 
	public const int defense_range = 435; 

	public const int counter = 380;

	public const int rusher = 382; 
	public const int basher = 381; 

	public const int redirect_blaser = 383;

	public const int negateTeleport = 400;

	public const int convertImpact = 865; 
	public const int levitation = 401; 

	public const int convertLightning = 852; 
	public const int searchRange = 402; 

	public const int convertCold = 851; 
	public const int expMod = 403; 

	public const int encSpell = 411;

	public const int planter = 665; 
	public const int sanctified = 432; 

	public const int searchRange = 402; 
	public const int convertCold = 851; 

	public const int expMod = 403; 
	public const int convertFire = 850; 

	public const int weightMod = 404;

public class ENC

cs

	public const int corruption = 409;

	public const int levitation = 401; 
	public const int boostMachine = 664; 
	public const int basher = 381; 
	public const int absorbSP = 662; 
	public const int convertLightning = 852; 

	public const int bane_machine = 465; 
	public const int encRagnarok = 667; 

	public const int bane_god = 466; 
	public const int rusher = 382; 

	public const int bane_fish = 467; 
	public const int planter = 665; 

	public const int bane_all = 468;

public class ENC

cs

	public const int creativeChef = 487;

	public const int deathagony = 488; 
	public const int music_drunk = 489;

	public const int farsee = 490;

	public const int negateGravity = 491;

	public const int bane_man = 464; 
	public const int bane_animal = 463; 
	public const int mod_reload = 601; 

	public const int bane_fairy = 462; 
	public const int mod_rapid = 602; 

	public const int bane_undead = 461; 
	public const int bane_fish = 467; 

	public const int eheluck = 663; 
	public const int bane_god = 466; 

	public const int defense_range = 435; 
	public const int bane_machine = 465; 

	public const int guts = 436; 
	public const int bane_man = 464; 

	public const int parry = 437; 
	public const int meleeDistance = 666; 

	public const int knightly = 438;

public class ENC

cs

	public const int sustain_STR = 440;

	public const int mod_ammo = 600; 
	public const int sustain_END = 441;

	public const int sustain_DEX = 442; 
	public const int sustain_PER = 443;

	public const int sustain_LER = 444; 
	public const int mod_ammo_knockback = 603; 

	public const int sustain_WIL = 445; 
	public const int sustain_LER = 444; 

	public const int sustain_MAG = 446;

public class ENC

cs

	public const int bane_dragon = 460;

	public const int sustain_DEX = 442; 
	public const int bane_undead = 461; 

	public const int mod_reload = 601; 
	public const int bane_fairy = 462; 

	public const int deathagony = 488; 
	public const int bane_animal = 463; 

	public const int mod_ammo_knockback = 603; 
	public const int sustain_WIL = 445; 

	public const int absorbMP = 661; 
	public const int mod_ammo_recover = 604; 
	public const int mod_ammo = 600; 
	public const int mod_drill = 606; 
	public const int parry = 437; 
	public const int boostMachine = 664; 
	public const int eheluck = 663; 
	public const int absorbSP = 662; 
	public const int mod_precision = 605; 

	public const int absorbHP = 660;

	public const int permaCurse = 656;

	public const int sanctified = 432; 
	public const int mod_rapid = 602; 
	public const int onlyPet = 655; 

	public const int noDamage = 654;

public class ENC

cs

	public const int r_DV = 650;

	public const int absorbMP = 661; 
	public const int r_mana = 641;

	public const int r_life = 640;

	public const int mod_frustration = 624;

	public const int onlyPet = 655; 
	public const int mod_feint = 623; 

	public const int mod_scatter = 607;

	public const int mod_cleave = 622;

	public const int mod_feint = 623; 
	public const int mod_ammo_recover = 604; 
	public const int mod_flurry = 621;

	public const int mod_precision = 605; 
	public const int mod_chaser = 620;

	public const int mod_talisman = 609;

	public const int mod_splash = 608;

	public const int mod_drill = 606; 
	public static readonly int[] IDS = new int[107]
	{
		422, 416, 415, 417, 418, 419, 420, 421, 423, 431, 
		425, 426, 427, 428, 429, 667, 414, 666, 424, 412, 
		850, 410, 430, 380, 382, 383, 400, 865, 852, 851, 
		411, 665, 402, 403, 404, 405, 406, 407, 408, 409, 
		401, 664, 381, 662, 465, 466, 467, 468, 480, 481, 
		482, 483, 484, 485, 486, 487, 489, 490, 491, 464, 
		463, 462, 461, 663, 435, 436, 437, 438, 439, 440, 
		600, 441, 443, 444, 445, 446, 447, 450, 460, 442, 
		601, 488, 603, 661, 660, 656, 432, 602, 654, 653, 
		652, 651, 650, 641, 640, 624, 655, 607, 622, 623, 
		604, 621, 605, 620, 609, 608, 606
		422, 416, 415, 417, 418, 419, 420, 421, 423, 436, 
		425, 426, 427, 428, 429, 430, 414, 431, 424, 412, 
		865, 410, 435, 380, 381, 383, 400, 401, 402, 403, 
		411, 432, 851, 850, 404, 405, 406, 407, 408, 409, 
		852, 667, 382, 665, 468, 480, 481, 482, 483, 484, 
		485, 486, 487, 488, 489, 490, 491, 601, 602, 467, 
		466, 465, 464, 666, 438, 439, 440, 441, 442, 443, 
		603, 444, 446, 447, 450, 460, 461, 462, 463, 445, 
		604, 600, 606, 437, 664, 663, 662, 605, 660, 656, 
		655, 654, 653, 652, 651, 650, 661, 641, 640, 624, 
		623, 607, 622, 621, 620, 609, 608
	};
}

EffectId

public enum EffectId

cs
	Flare = 310,
	GravityGun = 311,
	TransBlood = 312,
	Field = 313
	Field = 313, 
	SilverCatMigration = 314
}

ElementContainer

public int GetSpellExp(Chara c, Element e, int costMod = 100)

cs
	if (!e.source.aliasParent.IsEmpty())
	{
		int num2 = ValueWithoutLink(e.source.aliasParent) - ValueWithoutLink(e.source.id);
		if (num2 > 10000) 
		{ 
			num2 = 10000; 
		} 
		num = ((num2 < 0) ? (num * 100 / (100 - num2 * 25)) : (num * (100 + num2 * 5) / 100));
	}
	if (num < 0)

FACTION

``

cs

public class FACTION
{
	public const int bfIce = 3804; 
	public const int bfGum = 3803; 
	public const int fSafety = 2205; 

	public const int bfSilica = 3802; 
	public const int actBuildCut = 4000; 

	public const int bfLandmark4 = 3783; 
	public const int bfStart = 3900; 

	public const int bfCoal = 3800; 
	public const int bfChitin = 3805; 

	public const int bfLandmark5 = 3784; 
	public const int bfIce = 3804; 

	public const int bfLandmark3 = 3782; 
	public const int bfCoal = 3800; 

	public const int bfLandmark2 = 3781; 
	public const int bfSilica = 3802; 

	public const int bfMushroom = 3801;

	public const int fRation = 2207; 
	public const int fConstruction = 2003; 

	public const int fLoyal = 2117; 
	public const int bfLandmark5 = 3784; 
	public const int bfGum = 3803; 

	public const int fAdmin = 2115;

	public const int fEducation = 2116; 
	public const int fHeirloom = 2120; 
	public const int fLoyal = 2117; 

	public const int fLuck = 2118;

	public const int fTaxEvasion = 2119;

	public const int fHeirloom = 2120; 
	public const int fRation = 2207; 

	public const int fSoil = 2200;

public class FACTION

cs

	public const int fPromo = 2202;

	public const int bfLandmark1 = 3780; 
	public const int fAttraction = 2206;

	public const int fSafety = 2205; 
	public const int bfLandmark4 = 3783; 

	public const int fMoral = 2203;

	public const int fFood = 2204;

	public const int fConstruction = 2003; 
	public const int fEducation = 2116; 

	public const int bfBreed = 3710; 
	public const int bfLandmark3 = 3782; 

	public const int bfChitin = 3805; 
	public const int bfBasin = 3709; 

	public const int bfFreshAir = 3708; 
	public const int bfLandmark1 = 3780; 

	public const int bfBasin = 3709; 
	public const int bfLandmark2 = 3781; 

	public const int bfPlain = 3600;

public class FACTION

cs

	public const int bfSea = 3605;

	public const int bfCave = 3500; 
	public const int bfFertile = 3700;

	public const int bfGeyser = 3701;

public class FACTION

cs

	public const int bfTranquil = 3703;

	public const int bfUndersea = 3606; 
	public const int bfVolcano = 3704; 

	public const int bfHunt = 3705; 
	public const int bfUndersea = 3606; 

	public const int bfFish = 3706;

	public const int actBuildInspect = 4006; 
	public const int bfBreed = 3710; 

	public const int actBuildRecipe = 4005; 
	public const int bfHunt = 3705; 

	public const int actBuildCollect = 4004; 
	public const int bfFreshAir = 3708; 

	public const int actBuildAnywhere = 4003; 
	public const int bfMonster = 3707; 
	public const int actBuildMine = 4001; 

	public const int actBuildTerrain = 4002;

	public const int actBuildMine = 4001; 
	public const int bfCave = 3500; 

	public const int actBuildCut = 4000; 
	public const int actBuildCollect = 4004; 

	public const int bfStart = 3900; 
	public const int actBuildRecipe = 4005; 

	public const int bfVolcano = 3704; 
	public const int actBuildInspect = 4006; 

	public const int bfMonster = 3707; 
	public const int actBuildAnywhere = 4003; 

	public static readonly int[] IDS = new int[53]
	{
		3804, 3803, 3802, 3783, 3800, 3784, 3782, 3781, 3801, 2207, 
		2117, 2115, 2116, 2118, 2119, 2120, 2200, 2201, 2202, 3780, 
		2206, 2205, 2203, 2204, 2003, 3710, 3805, 3708, 3709, 3600, 
		3601, 3602, 3603, 3604, 3605, 3500, 3700, 3701, 3702, 3703, 
		3606, 3705, 3706, 4006, 4005, 4004, 4003, 4002, 4001, 4000, 
		3900, 3704, 3707
		2205, 4000, 3900, 3805, 3804, 3800, 3802, 3801, 2003, 3784, 
		3803, 2115, 2120, 2117, 2118, 2119, 2207, 2200, 2201, 2202, 
		2206, 3783, 2203, 2204, 2116, 3782, 3709, 3780, 3781, 3600, 
		3601, 3602, 3603, 3604, 3605, 3700, 3701, 3702, 3703, 3704, 
		3606, 3706, 3710, 3705, 3708, 3707, 4001, 4002, 3500, 4004, 
		4005, 4006, 4003
	};
}
public class Faction : EClass

FEAT

public class FEAT

cs
{
	public const int featEND = 1622;

	public const int featPER = 1623; 
	public const int featLER = 1624; 
	public const int featHardy = 1630; 

	public const int featMAG = 1625; 
	public const int featSPD = 1629; 

	public const int featHardy = 1630; 
	public const int featLuck = 1628; 

	public const int featCHA = 1627;

	public const int featLuck = 1628; 
	public const int featWIL = 1626; 

	public const int featSPD = 1629; 
	public const int featMAG = 1625; 

	public const int featDefense = 1631; 
	public const int featLER = 1624; 

	public const int featWIL = 1626; 
	public const int featPER = 1623; 

	public const int featDEX = 1621; 
	public const int featEvade = 1632; 

	public const int featMilitant = 1419; 
	public const int featDefense = 1631; 
	public const int featExecutioner = 1420; 
	public const int featSTR = 1620; 

	public const int featStamina = 1612;

public class FEAT

cs

	public const int featManaMeat = 1421;

	public const int featExecutioner = 1420; 
	public const int featSpotting = 1633; 

	public const int featEvade = 1632; 
	public const int featMilitant = 1419; 

	public const int featSwordsage = 1418;

	public const int featWitch = 1417; 
	public const int featSTR = 1620; 
	public const int featDEX = 1621; 

	public const int featSpotting = 1633; 
	public const int featNegotiate = 1634; 

	public const int featDefender = 1649; 
	public const int featGourmet = 1650; 

	public const int featMartial = 1635; 
	public const int featFaith = 1636; 

	public const int featInquisitor = 1416; 
	public const int featWitch = 1417; 

	public const int featComat = 1750;

public class FEAT

cs

	public const int featHeavyCasting = 1654;

	public const int featNegotiate = 1634; 
	public const int featDreamWaker = 1653;

	public const int featRapidArrow = 1652; 
	public const int featMagicManner = 1651;

	public const int featGourmet = 1650; 
	public const int featDefender = 1649; 

	public const int featRapidMagic = 1648;

public class FEAT

cs

	public const int featAnimalLover = 1640;

	public const int featFaith = 1636; 
	public const int featRapidArrow = 1652; 
	public const int featFoxMaid = 1415; 
	public const int featMartial = 1635; 

	public const int featEternalYouth = 1243; 
	public const int featInquisitor = 1416; 

	public const int featFairysan = 1413; 
	public const int featSevenSense = 1245; 

	public const int featBaby = 1232; 
	public const int featWhiteVixen = 1414; 

	public const int featCosmicHorror = 1233;

public class FEAT

cs

	public const int featGeneSlot = 1242;

	public const int featCentaur = 1244; 
	public const int featSevenSense = 1245; 
	public const int featEternalYouth = 1243; 

	public const int featNirvana = 1231; 
	public const int featCentaur = 1244; 

	public const int featPegasus = 1246;

	public const int featMiscreation = 1248; 
	public const int featBaby = 1232; 
	public const int featLibra = 1247; 

	public const int featBloodBond = 1249;

	public const int featVampire = 1250;

	public const int featWhiteVixen = 1414; 
	public const int featAshborn = 1251; 

	public const int featAquatic = 1252; 
	public const int featFoxMaid = 1415; 

	public const int featGoodKarma = 1270;

public class FEAT

cs

	public const int featGoddess = 1290;

	public const int featLibra = 1247; 
	public const int featGod_element1 = 1300;

	public const int featMiscreation = 1248; 
	public const int featNirvana = 1231; 
	public const int featAdam = 1230;

	public const int featDemigod = 1228; 
	public const int featLittleOne = 1229; 

	public const int featSlowFood = 1200;

public class FEAT

cs

	public const int featFairyResist = 1212;

	public const int featLittleOne = 1229; 
	public const int featElea = 1213;

	public const int featManaPrecision = 1214; 
	public const int featDwarf = 1215;

	public const int featSuccubus = 1216;

public class FEAT

cs

	public const int featServant = 1227;

	public const int featManaPrecision = 1214; 
	public const int featDemigod = 1228; 

	public const int featGod_earth1 = 1305;

	public const int featAshborn = 1251; 
	public const int featGod_wind1 = 1310; 

	public const int featGod_machine1 = 1315; 
	public const int featAquatic = 1252; 

	public const int featWizard = 1402; 
	public const int featGod_healing1 = 1320; 

	public const int featFarmer = 1403; 
	public const int featFairysan = 1413; 

	public const int featArcher = 1404; 
	public const int featLuckyCat = 1412; 

	public const int featPianist = 1405; 
	public const int featEarthStrength = 1411; 

	public const int featTourist = 1406; 
	public const int featReboot = 1410; 

	public const int featPaladin = 1407; 
	public const int featBoost = 1409; 

	public const int featPaladin2 = 1408;

	public const int featBoost = 1409; 
	public const int featPaladin = 1407; 

	public const int featReboot = 1410; 
	public const int featTourist = 1406; 

	public const int featEarthStrength = 1411; 
	public const int featPianist = 1405; 

	public const int featLuckyCat = 1412; 
	public const int featGod_machine1 = 1315; 

	public const int featGod_wind1 = 1310; 
	public const int featArcher = 1404; 

	public const int featGod_strife1 = 1355; 
	public const int featWizard = 1402; 

	public const int featGod_healing1 = 1320; 
	public const int featThief = 1401; 

	public const int featGod_harvest1 = 1325; 
	public const int featWarrior = 1400; 

	public const int featGod_luck1 = 1330; 
	public const int featGod_strife1 = 1355; 

	public const int featGod_harmony1 = 1335; 
	public const int featGod_moonshadow1 = 1350; 
	public const int featGod_trickery1 = 1345; 

	public const int featGod_oblivion1 = 1340;

	public const int featGod_trickery1 = 1345; 
	public const int featGod_harmony1 = 1335; 

	public const int featGod_moonshadow1 = 1350; 
	public const int featGod_luck1 = 1330; 

	public const int featWarrior = 1400; 
	public const int featGod_harvest1 = 1325; 

	public const int featThief = 1401; 
	public const int featFarmer = 1403; 

	public static readonly int[] IDS = new int[145]
	{
		1622, 1623, 1624, 1625, 1630, 1627, 1628, 1629, 1631, 1626, 
		1621, 1419, 1612, 1611, 1610, 1426, 1425, 1424, 1423, 1422, 
		1421, 1420, 1632, 1418, 1417, 1620, 1633, 1649, 1635, 1416, 
		1622, 1630, 1629, 1628, 1627, 1626, 1625, 1624, 1623, 1632, 
		1631, 1420, 1620, 1612, 1611, 1610, 1426, 1425, 1424, 1423, 
		1422, 1421, 1633, 1419, 1418, 1621, 1634, 1650, 1636, 1417, 
		1750, 1663, 1662, 1661, 1660, 1659, 1658, 1657, 1656, 1655,
		1654, 1634, 1653, 1651, 1650, 1648, 1647, 1646, 1645, 1644, 
		1643, 1642, 1641, 1640, 1636, 1652, 1415, 1243, 1413, 1232, 
		1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 
		1244, 1245, 1231, 1246, 1248, 1249, 1250, 1414, 1252, 1270, 
		1271, 1272, 1273, 1274, 1275, 1276, 1290, 1247, 1300, 1230, 
		1228, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 
		1209, 1210, 1211, 1212, 1229, 1213, 1215, 1216, 1217, 1218, 
		1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1214, 
		1305, 1251, 1315, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 
		1409, 1410, 1411, 1412, 1310, 1355, 1320, 1325, 1330, 1335, 
		1340, 1345, 1350, 1400, 1401
		1654, 1653, 1652, 1651, 1649, 1648, 1647, 1646, 1645, 1644, 
		1643, 1642, 1641, 1640, 1635, 1416, 1245, 1414, 1233, 1234, 
		1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 
		1246, 1232, 1247, 1249, 1250, 1251, 1415, 1270, 1271, 1272, 
		1273, 1274, 1275, 1276, 1290, 1300, 1248, 1231, 1230, 1229, 
		1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 
		1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 
		1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1305, 
		1310, 1252, 1320, 1413, 1412, 1411, 1410, 1409, 1408, 1407, 
		1406, 1405, 1315, 1404, 1402, 1401, 1400, 1355, 1350, 1345, 
		1340, 1335, 1330, 1325, 1403
	};
}
public class Feat : Element

FOOD

public class FOOD

cs
public class FOOD
{
	public const int food_cat = 701; 
	public const int creativeDish = 764; 

	public const int food_CHA = 700; 
	public const int food_god = 758; 

	public const int food_poison = 702; 
	public const int food_undead = 709; 

	public const int food_god = 758; 
	public const int food_blood = 710; 

	public const int food_love = 703; 
	public const int food_CHA = 700; 

	public const int creativeDish = 764; 
	public const int justcooked = 757; 

	public const int gainWeight = 705; 
	public const int food_poison = 702; 

	public const int loseWeight = 706; 
	public const int food_love = 703; 

	public const int food_bug = 704;

	public const int food_human = 708; 
	public const int food_undead = 709; 
	public const int food_cat = 701; 

	public const int justcooked = 757; 
	public const int loseWeight = 706; 

	public const int kirimi = 707;

	public const int food_blood = 710; 
	public const int food_human = 708; 
	public const int gainWeight = 705; 

	public static readonly int[] IDS = new int[14]
	{
		701, 700, 702, 758, 703, 764, 705, 706, 704, 708, 
		709, 757, 707, 710
		764, 758, 709, 710, 700, 757, 702, 703, 704, 701, 
		706, 707, 708, 705
	};
}

FactionBranch

public int GetResidentTax()

cs
				num5 = num6;
			}
		}
		int num7 = ((isWealthy ? 50 : 10) + member.LV * 2) * num5 / 100 * num4 / 100; 
		int num7 = (int)((isWealthy ? 50 : 10) + (long)member.LV * 2L) * num5 / 100 * num4 / 100; 
		if (isWealthy && num2 > 0)
		{
			num7 = num7 * (150 + (int)Mathf.Sqrt(num2) * 5) / 100;

GameDate

public void AdvanceDay()

cs
				Thing thing4 = ThingGen.Create("parchment");
				thing4.MakeRefFrom(value2, null, simple: true);
				thing4.SetStr(53, "letter_love");
				Thing p3 = ThingGen.CreateParcel(null, thing3, thing4); 
				Thing p3 = ThingGen.CreateParcel(null, thing3, ThingGen.Create("1165"), thing4); 
				EClass.world.SendPackage(p3);
			}
		}

ID_Achievement

public enum ID_Achievement

cs
	FAITH_HEALING,
	ONEV,
	JURE,
	BELL 
	BELL, 
	NERUN2 
}

ItemGeneral

using System;

cs
using System;
using System.Collections.Generic; 
using UnityEngine;
using UnityEngine.UI;

public class ItemGeneral : UIItem, IPrefImage
{
	public enum Mode
	{ 
		Default, 
		Slave
	} 
	private const int IconSize = 40;

	private const int IconPadding = 10;

public enum Mode

cs

	private int count;

	public void SetChara(Chara c, Mode mode = Mode.Default) 
	private bool built; 
	private Dictionary<string, UIButton> subButtons = new Dictionary<string, UIButton>(); 
	private Dictionary<string, Component> prefabs = new Dictionary<string, Component>(); 
	public void SetChara(Chara c, BaseListPeople list = null) 
	{
		card = c;
		c.SetImage(button1.icon);

public void SetChara(Chara c, Mode mode = Mode.Default)

cs
		text += ("(" + "maid".lang() + ")").TagSize(12);
	}
	FontColor c2 = FontColor.ButtonGeneral;
	if (c.isDead) 
	if (list is ListPeopleParty) 
	{ 
		if (c.isDead) 
		{ 
			c2 = FontColor.Bad; 
		} 
		else if (!(list as ListPeopleParty).CanJoinParty(c)) 
		{ 
			c2 = FontColor.Warning; 
		} 
	} 
	else if (c.isDead) 
	{
		c2 = FontColor.Bad;
	}

public void SetChara(Chara c, Mode mode = Mode.Default)

cs
		{
			c2 = FontColor.Warning;
		}
		if (mode == Mode.Slave) 
		if (list is ListPeopleBuySlave) 
		{
			text = text + " " + c.bio.TextBioSlave(c);
		}
		button1.mainText.SetText(text, c2);
		_ = button1.icon.rectTransform; 
	}

	public RenderRow GetRenderRow()

public void Clear()

cs
		count = 0;
	}

	public UIButton AddSubButton(Sprite sprite, Action action, string lang = null, Action<UITooltip> onTooltip = null) 
	public UIButton AddSubButton(Sprite sprite, Action action, string lang = null, Action<UITooltip> onTooltip = null, string id = null) 
	{
		UIButton uIButton = Util.Instantiate<UIButton>("UI/Element/Button/SubButton", base.transform); 
		uIButton.Rect().anchoredPosition = new Vector2(count * -40 - 20 - 10, 0f); 
		UIButton uIButton; 
		if (built) 
		{ 
			uIButton = subButtons[id]; 
		} 
		else
		{ 
			uIButton = Util.Instantiate<UIButton>("UI/Element/Button/SubButton", base.transform); 
			uIButton.Rect().anchoredPosition = new Vector2(count * -40 - 20 - 10, 0f); 
		} 
		uIButton.icon.sprite = sprite;
		uIButton.onClick.RemoveAllListeners(); 
		uIButton.onClick.AddListener(delegate
		{
			action();

public UIButton AddSubButton(Sprite sprite, Action action, string lang = null, A

cs
			uIButton.tooltip.enable = true;
		}
		uIButton.highlightTarget = button1;
		count++; 
		if (!built) 
		{ 
			count++; 
			if (id != null) 
			{ 
				subButtons[id] = uIButton; 
			} 
		} 
		return uIButton;
	}

public UIButton SetSubText2(string lang, FontColor c = FontColor.Default, TextAn

cs

	public T AddPrefab<T>(string id) where T : Component
	{
		return Util.Instantiate<T>("UI/Element/Item/Extra/" + id, base.transform); 
		T val = prefabs.TryGetValue(id) as T; 
		if (val != null) 
		{ 
			return val; 
		} 
		val = Util.Instantiate<T>("UI/Element/Item/Extra/" + id, base.transform); 
		prefabs[id] = val; 
		return val; 
	}

	public void SetSound(SoundData data = null)

public void Build()

cs
		{
			rectTransform.sizeDelta = new Vector2(count * -40 - 10 - 3, 0f);
		}
		built = true; 
	}
}

LayerEditPlaylist

public override void List()

cs
	{
		list.callbacks = new UIList.Callback<BGMData, ItemGeneral>
		{
			onInstantiate = delegate(BGMData a, ItemGeneral b) 
			onRedraw = delegate(BGMData a, ItemGeneral b, int i) 
			{
				b.SetMainText(((a.id > 1) ? "♪ " : "") + a._name.IsEmpty(a.name).ToTitleCase());
				b.button1.keyText.text = a.id.ToString() ?? "";

public override void List()

cs
					b.AddSubButton(EClass.core.refs.icons.resume, delegate
					{
						EClass.Sound.PlayBGM(a);
					}); 
					}, null, null, "play"); 
				}
				if (main && layer.mode == Mode.Playlist)
				{

public override void List()

cs
					{
						BGMData select2 = items.Move(a, 1);
						list.OnMove(a, select2);
					}); 
					}, null, null, "down"); 
					b.AddSubButton(EClass.core.refs.icons.up, delegate
					{
						BGMData select = items.Move(a, -1);
						list.OnMove(a, select);
					}); 
					}, null, null, "up"); 
				}
				b.Build();
				if (!single)

LayerHome

public void RefreshAreas()

cs
			b.AddSubButton(ELayer.core.refs.icons.go, delegate
			{
				ELayer.screen.Focus(a.points[0]);
			}, "tFocus"); 
			}, "tFocus", null, "focus"); 
			b.Build();
		},
		onList = delegate

public void RefreshSpots()

cs
			b.AddSubButton(ELayer.core.refs.icons.go, delegate
			{
				ELayer.screen.Focus(a.GetPoint());
			}, "tFocus"); 
			}, "tFocus", null, "focus"); 
			b.Build();
		},
		onList = delegate

LayerList

public LayerList SetList2<TValue>(ICollection<TValue> _list, Func<TValue, string

cs
		{
			item.button1.mainText.text = getText(a);
			item.DisableIcon();
			item.Build(); 
			if (noSound)
			{
				item.button1.soundClick = null;

public LayerList SetList2<TValue>(ICollection<TValue> _list, Func<TValue, string

cs
			{
				onInstantiate(a, item);
			}
			item.Build(); 
		},
		onList = delegate
		{

LayerPeople

public enum Mode

cs
		Default,
		Select,
		Double,
		Hire 
		Hire, 
		Party 
	}

	public enum ShowMode

public enum ShowMode

cs

	public LayoutGroup layoutMenu;

	public UISearchPeople search; 
	public Action onConfirm;

	public UIMultiList multi;

public override void OnSwitchContent(Window window)

cs
	{
		if (multi.Double)
		{
			multi.owners[window.windowIndex].OnSwitchContent(); 
			InitList(multi.owners[window.windowIndex]); 
		}
		else
		{
			multi.owners[window.idTab].OnSwitchContent(); 
			InitList(multi.owners[window.idTab]); 
		}
	}

	public void InitList(ListOwner o) 
	{ 
		if ((bool)search && (!multi.Double || o.main)) 
		{ 
			search.Init(o); 
		} 
		o.OnSwitchContent(); 
	} 
	public static LayerPeople Create(Mode mode)
	{
		string path = "LayerPeople";
		if (mode == Mode.Double) 
		switch (mode) 
		{
		case Mode.Double: 
			path = "LayerPeople/LayerPeopleDouble";
			break; 
		case Mode.Party: 
			path = "LayerPeople/LayerPeopleDouble_party"; 
			break; 
		}
		return Layer.Create(path) as LayerPeople;
	}

public static LayerPeople CreateReserve()

cs

	public static LayerPeople CreateParty()
	{
		LayerPeople layerPeople = Create(Mode.Double); 
		LayerPeople layerPeople = Create(Mode.Party); 
		layerPeople.multi.AddOwner(0, new ListPeopleParty
		{
			textHeader = "candidates"

public static LayerPeople Create(BaseListPeople list)

cs
		return layerPeople;
	}

	public static LayerPeople CreateSelect(string langHeader, string langHint, Action<UIList> onList, Action<Chara> onClick, Func<Chara, string> _onShowSubText = null) 
	public static LayerPeople CreateSelect(string langHeader, string langHint, Action<BaseList> onList, Action<Chara> onClick, Func<Chara, string> _onShowSubText = null) 
	{
		LayerPeople layerPeople = Create(Mode.Select);
		layerPeople.multi.AddOwner(0, new ListPeopleSelect

ListOwner

public class ListOwner : EClass

cs

	public ListOwner other;

	public UIList list; 
	public UIDynamicList list; 

	public WindowMenu menu;

ListPeopleBed

public override void OnInstantiate(Chara c, ItemGeneral i)

cs
	{
	}, null, delegate
	{
	}); 
	}, "bed"); 
	uIButton.icon.SetAlpha((c.FindBed() != null) ? 0.9f : 0.4f);
	uIButton.SetTooltip(delegate(UITooltip t)
	{

ListPeopleCallReserve

public class ListPeopleCallReserve : BaseListPeople

cs
	public override void OnInstantiate(Chara a, ItemGeneral b)
	{
		b.SetSubText(a.job.GetName().ToTitleCase(), 280);
		if (a.trait.CanBeBanished) 
		b.AddSubButton(EClass.core.refs.icons.trash, delegate
		{
			b.AddSubButton(EClass.core.refs.icons.trash, delegate
			Action func = delegate 
			{
				Action func = delegate
				{ 
					EClass.Home.RemoveReserve(a); 
					a.OnBanish(); 
					list.List(); 
					SE.Trash(); 
				}; 
				if (skipDialog) 
				{ 
					func(); 
				} 
				else
				EClass.Home.RemoveReserve(a); 
				a.OnBanish(); 
				list.List(); 
				SE.Trash(); 
			}; 
			if (skipDialog) 
			{ 
				func(); 
			} 
			else 
			{ 
				Dialog.Choice("dialogDeleteRecruit", delegate(Dialog d) 
				{
					Dialog.Choice("dialogDeleteRecruit", delegate(Dialog d) 
					d.AddButton("yes".lang(), delegate
					{
						d.AddButton("yes".lang(), delegate
						{ 
							func(); 
						}); 
						d.AddButton("yesAndSkip".lang(), delegate
						{ 
							func(); 
							skipDialog = true; 
						}); 
						d.AddButton("no".lang()); 
						func(); 
					});
				} 
			}); 
		} 
					d.AddButton("yesAndSkip".lang(), delegate
					{ 
						func(); 
						skipDialog = true; 
					}); 
					d.AddButton("no".lang()); 
				}); 
			} 
		}, null, null, "remove").SetActive(a.trait.CanBeBanished); 
		AddSubButtonWork(b, a);
	}

ListPeopleParty

public override void OnCreate()

cs
		list.sortMode = UIList.SortMode.ByFeat;
	}

	public override void OnInstantiate(Chara c, ItemGeneral i) 
	public bool CanJoinParty(Chara c) 
	{
		Zone zone = (main ? c.currentZone : c.homeZone); 
		i.SetSubText((zone == null) ? "???" : zone.Name, 240); 
		if (!c.IsPC)
		{
			UIButton uIButton = i.AddSubButton(EClass.core.refs.icons.fav, delegate
			if (!c.isDead && !c.HasCondition<ConSuspend>() && c.currentZone != null && c.trait.CanJoinParty) 
			{
				SE.ClickGeneral(); 
				c.isFav = !c.isFav; 
				return c.trait.CanJoinPartyResident; 
			} 
			return false; 
		} 
		return true; 
	} 
	public override void OnRefreshMenu() 
	{ 
		base.OnRefreshMenu(); 
		if (!main) 
		{ 
			return; 
		} 
		WindowMenu menuLeft = window.menuLeft; 
		menuLeft.AddSpace(); 
		menuLeft.AddHeader("party"); 
		menuLeft.AddSpace(13f); 
		if (EClass.pc.party.members.Count > 1) 
		{ 
			menuLeft.AddButton("disband", delegate
			{ 
				EClass.pc.party.Disband(); 
				SE.Trash(); 
				RefreshAll(); 
			}); 
		} 
		for (int j = 0; j < 5; j++) 
		{ 
			int i = j; 
			Player.PartySetup setup = EClass.player.partySetups[i]; 
			if (setup == null) 
			{ 
				menuLeft.AddButton("party_empty".lang((i + 1).ToString() ?? ""), delegate
				{ 
					if (EClass.pc.party.members.Count == 1) 
					{ 
						SE.Beep(); 
					} 
					else
					{ 
						SE.Equip(); 
						EClass.pc.party.RegisterSetup(i); 
						RefreshAll(); 
					} 
				}); 
				continue; 
			} 
			UIButton uIButton = menuLeft._AddButton("Party", null); 
			uIButton.SetOnClick(delegate
			{ 
				EClass.pc.party.Disband(); 
				foreach (int uid in setup.uids) 
				{ 
					Chara chara3 = EClass.game.cards.globalCharas.Find(uid); 
					if (chara3 != null && !chara3.IsPC && CanJoinParty(chara3)) 
					{ 
						JoinParty(chara3); 
						if (chara3.uid == setup.ride) 
						{ 
							ActRide.Ride(EClass.pc, chara3, parasite: false, talk: false); 
						} 
						else if (chara3.uid == setup.parasite) 
						{ 
							ActRide.Ride(EClass.pc, chara3, parasite: true, talk: false); 
						} 
					} 
				} 
				SE.Equip(); 
				RefreshAll(); 
			}); 
			bool flag = true; 
			foreach (int uid2 in setup.uids) 
			{ 
				Chara chara = EClass.game.cards.globalCharas.Find(uid2); 
				if (chara == null || !CanJoinParty(chara)) 
				{ 
					flag = false; 
				} 
			} 
			uIButton.mainText.SetText("party_load".lang((i + 1).ToString() ?? ""), flag ? FontColor.Good : FontColor.Warning); 
			uIButton.SetTooltip(delegate(UITooltip n) 
			{ 
				n.note.Clear(); 
				n.note.AddHeader("faction_Member"); 
				foreach (int uid3 in setup.uids) 
				{ 
					Chara chara2 = EClass.game.cards.globalCharas.Find(uid3); 
					string text = ((chara2 == null) ? "???" : chara2.NameBraced); 
					if (chara2 != null) 
					{ 
						if (chara2.uid == setup.ride) 
						{ 
							text = text + " " + "party_ride".lang(); 
						} 
						else if (chara2.uid == setup.parasite) 
						{ 
							text = text + " " + "party_parasite".lang(); 
						} 
					} 
					n.note.AddText(text, (chara2 == null || chara2.isDead) ? FontColor.Bad : ((!CanJoinParty(chara2)) ? FontColor.Warning : FontColor.Good)); 
				} 
				n.note.Build(); 
			}); 
			uIButton.GetComponentInDirectChildren<UIButton>().SetOnClick(delegate
			{ 
				SE.Trash(); 
				EClass.player.partySetups[i] = null; 
				RefreshAll();
			});
			uIButton.icon.SetAlpha(c.isFav ? 1f : 0.3f); 
			uIButton.icon.SetNativeSize(); 
		}
	}

	public override void OnInstantiate(Chara c, ItemGeneral i) 
	{ 
		Zone zone = (main ? c.currentZone : c.homeZone); 
		if (main) 
		{ 
			i.SetSubText((zone == null) ? "???" : zone.Name, 240); 
		} 
		UIButton uIButton = i.AddSubButton(EClass.core.refs.icons.fav, delegate
		{ 
			SE.ClickGeneral(); 
			c.isFav = !c.isFav; 
			RefreshAll(); 
		}, null, null, "fav"); 
		uIButton.icon.SetAlpha(c.isFav ? 1f : 0.3f); 
		uIButton.icon.SetNativeSize(); 
	} 
	public override void OnClick(Chara c, ItemGeneral i)
	{
		if (main)
		{
			if (c.isDead || c.HasCondition<ConSuspend>() || c.currentZone == null) 
			if (!CanJoinParty(c)) 
			{
				SE.Beep();
				if (!c.trait.CanJoinPartyResident) 
				{ 
					Msg.Say("ride_req"); 
				} 
				return;
			}
			if (c.currentZone != EClass._zone) 
			{ 
				c.MoveZone(EClass._zone); 
				c.MoveImmediate(EClass.pc.pos.GetNearestPoint(allowBlock: false, allowChara: false) ?? EClass.pc.pos); 
			} 
			EClass.pc.party.AddMemeber(c); 
			JoinParty(c); 
		}
		else
		{

public override void OnClick(Chara c, ItemGeneral i)

cs
		base.Main.OnRefreshMenu();
	}

	public void JoinParty(Chara c) 
	{ 
		if (c.currentZone != EClass._zone) 
		{ 
			c.MoveZone(EClass._zone); 
			c.MoveImmediate(EClass.pc.pos.GetNearestPoint(allowBlock: false, allowChara: false) ?? EClass.pc.pos); 
		} 
		EClass.pc.party.AddMemeber(c); 
	} 
	public override void OnList()
	{
		if (main)

public override void OnList()

cs
		{
			list.Add(member);
		}
		list.sortMode = UIList.SortMode.ByNone; 
		list.sortMode = UIList.SortMode.ByPartyOrder; 
	}

	public HireInfo GetInfo(Chara c)

ListPeopleSelect

``

cs

public class ListPeopleSelect : BaseListPeople
{
	public Action<UIList> onList; 
	public Action<UIDynamicList> onList; 

	public Action<Chara> onClick;

MUTATION

public class MUTATION

cs
public class MUTATION
{
	public const int mutationRegen = 1516; 
	public const int mutationSkin = 1510;

	public const int mutationSkinN = 1511;

public class MUTATION

cs

	public const int mutationDexN = 1515;

	public const int mutationRegen = 1516; 
	public const int mutationRegenN = 1517;

	public const int mutationStr = 1520; 
	public const int mutationSpeedN = 1519;

	public const int etherPoisonHand = 1565;

public class MUTATION

cs

	public const int etherViolence = 1556;

	public const int mutationSpeed = 1518; 
	public const int etherNeck = 1555; 

	public const int etherWing = 1554; 
	public const int mutationSpeed = 1518; 

	public const int etherEye = 1553;

	public const int etherFeet = 1552;

	public const int etherUgly = 1551; 
	public const int etherNeck = 1555; 
	public const int mutationCha = 1522; 
	public const int etherWing = 1554; 

	public const int mutationStr = 1520; 
	public const int mutationBrain = 1524; 

	public const int mutationStrN = 1521;

	public const int etherGravity = 1550; 
	public const int mutationCha = 1522; 

	public const int mutationChaN = 1523;

	public const int mutationBrain = 1524; 
	public const int mutationCold = 1526; 
	public const int etherUgly = 1551; 

	public const int mutationBrainN = 1525;

	public const int mutationLightning = 1528; 
	public const int mutationCold = 1526; 
	public const int mutationColdN = 1527; 

	public const int mutationLightningN = 1529;

public class MUTATION

cs

	public const int mutationHairN = 1533;

	public const int mutationColdN = 1527; 
	public const int etherGravity = 1550; 
	public const int mutationLightning = 1528; 

	public static readonly int[] IDS = new int[40]
	{
		1516, 1510, 1511, 1512, 1513, 1514, 1515, 1517, 1519, 1565, 
		1564, 1563, 1562, 1561, 1560, 1559, 1558, 1557, 1556, 1518, 
		1554, 1553, 1552, 1551, 1555, 1522, 1520, 1521, 1550, 1523, 
		1524, 1526, 1525, 1528, 1529, 1530, 1531, 1532, 1533, 1527
		1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1520, 1519, 
		1565, 1564, 1563, 1562, 1561, 1560, 1559, 1558, 1557, 1556, 
		1555, 1518, 1553, 1552, 1554, 1524, 1521, 1522, 1523, 1551, 
		1525, 1526, 1527, 1529, 1530, 1531, 1532, 1533, 1550, 1528
	};
}
public class Mutation : Feat

POLICY

``

cs

public class POLICY
{
	public const int legendary_exhibition = 2823; 
	public const int celeb = 2822;

	public const int license_general = 2820; 
	public const int license_stolen = 2824; 

	public const int legendary_heirloom = 2821;

	public const int legendary_exhibition = 2823; 
	public const int license_furniture = 2819; 
	public const int milk_fan = 2825; 
	public const int egg_fan = 2826;

	public const int breed_season = 2827;

	public const int license_slaver = 2828;

	public const int license_stolen = 2824; 
	public const int milk_fan = 2825; 

	public const int license_food = 2818; 
	public const int license_general = 2820; 

	public const int wealth_tax = 2500; 
	public const int faith_tax = 2501; 

	public const int store_ripoff = 2816; 
	public const int license_food = 2818; 
	public const int energy_conservation = 2700; 

	public const int speed_growth = 2516;

public class POLICY

cs

	public const int ban_radio = 2510;

	public const int energy_conservation = 2700; 
	public const int vaccination = 2509;

	public const int nocturnal_life = 2508; 
	public const int inquisition = 2507;

	public const int human_right = 2506;

	public const int legal_drug = 2505;

	public const int impressment = 2504; 
	public const int prohibition = 2503; 

	public const int food_for_people = 2502;

	public const int faith_tax = 2501; 
	public const int store_premium = 2817; 
	public const int wealth_tax = 2500; 

	public const int nocturnal_life = 2508; 
	public const int license_furniture = 2819; 

	public const int trash_sort = 2701;

	public const int prohibition = 2503; 
	public const int trash_no = 2702; 
	public const int impressment = 2504; 
	public const int border_watch = 2704; 

	public const int weed_no = 2703;

	public const int trash_no = 2702; 
	public const int store_premium = 2817; 

	public const int platinum_ticket = 2815; 
	public const int store_ripoff = 2816; 

	public const int mass_exhibition = 2814;

	public const int suite_room = 2813; 
	public const int bed_quality = 2812;

	public const int tourist_safety = 2811;

public class POLICY

cs

	public const int home_discount = 2800;

	public const int livestock_priv = 2715; 
	public const int platinum_ticket = 2815; 

	public const int suite_room = 2813; 
	public const int forcePanty = 2712; 

	public const int incomeTransfer = 2711;

public class POLICY

cs

	public const int auto_farm = 2707;

	public const int demon_invocation = 2706; 
	public const int livestock_priv = 2715; 

	public const int forcePanty = 2712; 
	public const int demon_invocation = 2706; 

	public const int taxTransfer = 2705;

	public const int border_watch = 2704; 
	public static readonly int[] IDS = new int[51]
	{
		2822, 2820, 2821, 2823, 2819, 2825, 2826, 2827, 2828, 2824, 
		2818, 2500, 2816, 2516, 2515, 2514, 2513, 2512, 2511, 2510, 
		2700, 2509, 2507, 2506, 2505, 2504, 2502, 2501, 2817, 2508, 
		2701, 2503, 2703, 2702, 2815, 2814, 2812, 2811, 2810, 2800, 
		2715, 2813, 2711, 2710, 2709, 2708, 2707, 2706, 2712, 2705, 
		2704
		2823, 2822, 2824, 2821, 2826, 2827, 2828, 2825, 2820, 2501, 
		2818, 2700, 2516, 2515, 2514, 2513, 2512, 2511, 2510, 2509, 
		2508, 2507, 2506, 2505, 2503, 2502, 2500, 2819, 2701, 2702, 
		2504, 2704, 2703, 2817, 2816, 2814, 2813, 2812, 2811, 2810, 
		2800, 2815, 2712, 2711, 2710, 2709, 2708, 2707, 2715, 2706, 
		2705
	};
}
public class Policy : EClass

Party

public void RemoveMember(Chara c)

cs
{
	if (c.host != null)
	{
		ActRide.Unride(c.host, c.host.parasite == c); 
		ActRide.Unride(c.host, c.host.parasite == c, talk: false); 
	}
	members.Remove(c);
	uidMembers.Remove(c.uid);

public int Count()

cs
		return num;
	}

	public void RegisterSetup(int index) 
	{ 
		Player.PartySetup partySetup = new Player.PartySetup(); 
		foreach (Chara member in members) 
		{ 
			partySetup.uids.Add(member.uid); 
			if (member == EClass.pc.ride) 
			{ 
				partySetup.ride = member.uid; 
			} 
			if (member == EClass.pc.parasite) 
			{ 
				partySetup.parasite = member.uid; 
			} 
		} 
		EClass.player.partySetups[index] = partySetup; 
	} 
	public void Disband()
	{
		foreach (Chara item in members.Copy())

Player

public class Stats : EClass

cs
		[JsonProperty]
		public int sistersDepart;

		[JsonProperty] 
		public int catDepart; 
		[JsonProperty]
		public int married;

public void OnLeaveZone()

cs
		}
	}

	public class PartySetup : EClass
	{ 
		[JsonProperty] 
		public List<int> uids = new List<int>(); 
		[JsonProperty] 
		public int ride; 
		[JsonProperty] 
		public int parasite; 
	} 
	public const int MaxPartySetup = 5; 
	[JsonProperty]
	public ReturnInfo returnInfo;

public void OnLeaveZone()

cs
	[JsonProperty]
	public List<string> favMoongate = new List<string>();

	[JsonProperty] 
	public PartySetup[] partySetups = new PartySetup[5]; 
	public static int seedHallucination;

	public static int realHour;

SKILL

public class SKILL

cs

	public const int strategy = 135;

	public const int riding = 226; 
	public const int parasite = 227; 

	public const int evasionPlus = 151;

public class SKILL

cs

	public const int lumberjack = 225;

	public const int parasite = 227; 
	public const int riding = 226; 

	public const int digging = 230;

public class SKILL

cs

	public const int weaponBow = 104;

	public const int END = 71; 
	public const int STR = 70; 

	public const int weaponAxe = 102;

public class SKILL

cs

	public const int vigor = 62;

	public const int PV = 65; 
	public const int DV = 64; 

	public const int HIT = 66;

public class SKILL

cs

	public const int FPV = 68;

	public const int STR = 70; 
	public const int climbing = 242;

	public const int END = 71; 
	public const int weaponStaff = 103;

	public const int DEX = 72;

public class SKILL

cs

	public const int fishing = 245;

	public const int DV = 64; 
	public const int PV = 65; 

	public const int carpentry = 255;

public class SKILL

cs

	public const int eleLightning = 912;

	public const int anatomy = 290; 
	public const int sculpture = 258; 

	public const int appraising = 289; 
	public const int alchemy = 257; 

	public const int building = 288; 
	public const int blacksmith = 256; 

	public const int cooking = 287; 
	public const int handicraft = 261; 

	public const int eleDarkness = 913; 
	public const int lockpicking = 280; 

	public const int reading = 285; 
	public const int stealing = 281; 

	public const int negotiation = 291; 
	public const int reading = 285; 

	public const int stealing = 281; 
	public const int farming = 286; 

	public const int handicraft = 261; 
	public const int eleDarkness = 913; 

	public const int weaving = 260; 
	public const int cooking = 287; 

	public const int jewelry = 259; 
	public const int building = 288; 

	public const int sculpture = 258; 
	public const int appraising = 289; 

	public const int alchemy = 257; 
	public const int anatomy = 290; 

	public const int blacksmith = 256; 
	public const int negotiation = 291; 

	public const int lockpicking = 280; 
	public const int jewelry = 259; 

	public const int investing = 292;

	public const int farming = 286; 
	public const int regeneration = 300;

	public const int eleCold = 911; 
	public const int eleFire = 910; 
	public const int env = 313;

	public const int disarmTrap = 293; 
	public const int fun = 312; 

	public const int eleFire = 910; 
	public const int bladder = 311; 

	public const int eleCold = 911; 
	public const int disarmTrap = 293; 

	public const int hygine = 310;

	public const int fun = 312; 
	public const int weaving = 260; 

	public const int memorization = 307; 
	public const int faith = 306; 

	public const int magicDevice = 305;

public class SKILL

cs

	public const int meditation = 301;

	public const int faith = 306; 
	public const int bladder = 311; 
	public const int memorization = 307; 

	public static readonly int[] IDS = new int[134]
	{
		133, 132, 131, 130, 123, 122, 110, 111, 109, 108,
		107, 134, 106, 120, 135, 226, 151, 152, 200, 207, 
		210, 220, 225, 227, 230, 235, 237, 240, 241, 105, 
		150, 104, 71, 102, 50, 51, 55, 56, 57, 60, 
		61, 62, 65, 66, 67, 68, 70, 242, 103, 72, 
		107, 134, 106, 120, 135, 227, 151, 152, 200, 207, 
		210, 220, 225, 226, 230, 235, 237, 240, 241, 105, 
		150, 104, 70, 102, 50, 51, 55, 56, 57, 60, 
		61, 62, 64, 66, 67, 68, 242, 71, 103, 72, 
		74, 75, 76, 77, 78, 79, 80, 90, 91, 92,
		93, 94, 100, 101, 73, 245, 64, 255, 916, 917, 
		93, 94, 100, 101, 73, 245, 65, 255, 916, 917, 
		918, 919, 921, 922, 923, 924, 925, 926, 950, 951,
		952, 953, 915, 954, 956, 957, 958, 959, 960, 961,
		962, 963, 964, 972, 971, 970, 965, 250, 955, 914,
		920, 912, 290, 289, 288, 287, 913, 285, 291, 281, 
		261, 260, 259, 258, 257, 256, 280, 292, 286, 300, 
		313, 293, 910, 911, 310, 312, 307, 305, 304, 303, 
		302, 301, 306, 311
		920, 912, 258, 257, 256, 261, 280, 281, 285, 286, 
		913, 287, 288, 289, 290, 291, 259, 292, 300, 911, 
		910, 313, 312, 311, 293, 310, 260, 306, 305, 304, 
		303, 302, 301, 307
	};
}
public class Skill : Element

SLOT

public class SLOT

cs
public class SLOT
{
	public const int back = 33; 
	public const int arm = 34;

	public const int hand = 35;

	public const int lightsource = 45; 
	public const int back = 33; 
	public const int token = 43; 

	public const int waist = 37;

public class SLOT

cs

	public const int foot = 39;

	public const int lightsource = 45; 
	public const int tool = 40;

	public const int toolbelt = 44;

public class SLOT

cs

	public const int torso = 32;

	public const int token = 43; 
	public const int finger = 36;

	public const int neck = 31;

public class SLOT

cs

	public static readonly int[] IDS = new int[16]
	{
		33, 34, 35, 45, 37, 38, 39, 40, 44, 41, 
		32, 43, 36, 31, 42, 30
		34, 35, 33, 43, 37, 38, 39, 45, 40, 44, 
		41, 32, 36, 31, 42, 30
	};
}

SPELL

public class SPELL

cs

	public const int miasma_Chaos = 50710;

	public const int sword_Impact = 51015; 
	public const int sword_Chaos = 51010; 

	public const int funnel_Chaos = 50610;

public class SPELL

cs

	public const int bolt_Impact = 50315;

	public const int sword_Chaos = 51010; 
	public const int sword_Impact = 51015; 

	public const int flare_Chaos = 51210;

public class SPELL

cs

	public const int puddle_Ether = 50912;

	public const int SpTransmutePutit = 8791; 
	public const int SpTransmuteBroom = 8790; 

	public const int flare_Darkness = 51203;

public class SPELL

cs

	public const int SpSpeedUp = 8510;

	public const int SpTransmuteBroom = 8790; 
	public const int SpTransmutePutit = 8791; 

	public const int SpIncognito = 8780;

public class SPELL

cs
	50413, 50513, 50613, 50713, 50813, 50913, 51013, 51113, 50115, 51214,
	51114, 51014, 50914, 50814, 50612, 50714, 50514, 50414, 50314, 50515,
	50114, 51213, 50614, 50512, 50412, 50312, 50910, 51115, 51215, 50116,
	50810, 50710, 51015, 50610, 50410, 50310, 50110, 51209, 51109, 51009, 
	50510, 50315, 51010, 51210, 50815, 50112, 51211, 51111, 51011, 50911, 
	50810, 50710, 51010, 50610, 50410, 50310, 50110, 51209, 51109, 51009, 
	50510, 50315, 51015, 51210, 50815, 50112, 51211, 51111, 51011, 50911, 
	51110, 50811, 50611, 50511, 50411, 50311, 50915, 50111, 50711, 50912,
	8791, 51203, 8503, 8502, 8501, 8500, 8491, 8490, 8480, 8471, 
	8790, 51203, 8503, 8502, 8501, 8500, 8491, 8490, 8480, 8471, 
	8470, 8450, 8430, 8406, 8405, 8404, 8403, 8504, 8402, 8506,
	8510, 8790, 8780, 8776, 8775, 8770, 8710, 8708, 8707, 8706, 
	8510, 8791, 8780, 8776, 8775, 8770, 8710, 8708, 8707, 8706, 
	8705, 8704, 8702, 8700, 8555, 8550, 8507, 8401, 8400, 8390,
	8202, 8201, 8200, 7800, 7010, 7009, 7008, 7007, 7006, 7005,
	7004, 7003, 7002, 7001, 51116, 8215, 8220, 8221, 8230, 8380,

ShopType

public enum ShopType

cs
	StrangeGirl,
	Sweet,
	Moyer,
	Curry 
	Curry, 
	KeeperOfGarden 
}

SourceElement

public override void OnInit()

cs
public override void OnAfterImportData()
{
	Core.SetCurrent();
	map.Clear(); 
	alias.Clear(); 
	foreach (Row row in rows)
	{
		map[row.id] = row;

public override void OnAfterImportData()

cs
			AddRow(ele, num + num2 + 1200, "flare_");
			num2++;
		}
		initialized = false; 
	}

	public void AddRow(Row ele, int id, string idOrg)

ThingContainer

public ThingStack GetThingStack(string id, ThingStack s, bool isOrigin)

cs
		return s;
	}

	public int GetCurrency(string id, ref int sum, SourceMaterial.Row mat = null) 
	public long GetCurrency(string id, ref long sum, SourceMaterial.Row mat = null) 
	{
		using (Enumerator enumerator = GetEnumerator())
		{

public int GetCurrency(string id, ref int sum, SourceMaterial.Row mat = null)

cs
	}
	if (sum < 0)
	{
		sum = int.MaxValue; 
		sum = 2147483647L; 
	}
	return sum;
}

Trait

public void OnBarter(bool reroll = false)

cs
		Add("board_build", 1, 0);
		Add("book_resident", 1, 0);
		Add("board_party", 1, 0);
		Add("board_party2", 1, 0); 
		Add("3", 1, 0);
		Add("4", 1, 0);
		Add("5", 1, 0);

public void OnBarter(bool reroll = false)

cs
				break;
			case ShopType.Moyer:
			{
				for (int num12 = 1; num12 <= 17; num12++) 
				for (int num13 = 1; num13 <= 17; num13++) 
				{
					AddAdvWeek(num12); 
					AddAdvWeek(num13); 
				}
				break;
			}
			case ShopType.KeeperOfGarden:
				Add("1329", 1, 0); 
				break; 
			case ShopType.StrangeGirl:
			{
				int num13 = (EClass.debug.enable ? 20 : (EClass._zone.development / 10)); 
				if (num13 > 0) 
				int num12 = (EClass.debug.enable ? 20 : (EClass._zone.development / 10)); 
				if (num12 > 0) 
				{
					Add("syringe_gene", num13, 0); 
					Add("syringe_gene", num12, 0); 
					Add("diary_little", 1, 0);
				}
				if (num13 > 10) 
				if (num12 > 10) 
				{
					Add("syringe_heaven", num13 / 5, 0); 
					Add("syringe_heaven", num12 / 5, 0); 
					Add("1276", 1, 0);
				}
				Add("medal", 10, 0);

public Thing CreateStock()

cs
				}
				return FromFilter("shop_drink");
			case ShopType.Furniture:
			case ShopType.KeeperOfGarden:
				return FromFilter("shop_furniture");
			case ShopType.Book:
				return FromFilter("shop_book");

TraitDeedDivorce

public override void TrySetHeldAct(ActPlan p)

cs
			{
				Dialog.YesNo("dialogDivorce", delegate
				{
					EClass.pc.Say("use_whip", a, owner); 
					EClass.pc.Say("use_whip", EClass.pc, a, owner.Name); 
					a.Talk("death_other");
					EClass.pc.PlaySound("whip");
					a.PlayAnime(AnimeID.Shiver);

TraitDeedLostRing

public override void TrySetHeldAct(ActPlan p)

cs
		{
			p.TrySetAct("actReissue", delegate
			{
				EClass.pc.Say("use_whip", a, owner); 
				EClass.pc.Say("use_whip", a, a, owner.Name); 
				a.Talk("death_other");
				EClass.pc.PlaySound("whip");
				a.PlayAnime(AnimeID.Shiver);

TraitGeneMachine

public override bool OnUse(Chara c)

cs
	Chara target = GetTarget();
	if (target == null)
	{
		LayerPeople.CreateSelect("", "", delegate(UIList l) 
		LayerPeople.CreateSelect("", "", delegate(BaseList l) 
		{
			foreach (Chara member in EClass.Branch.members)
			{

TraitGeneratorWheel

public override bool CanUse(Chara c)

cs

	public override bool OnUse(Chara c)
	{
		LayerPeople.CreateSelect("", "", delegate(UIList l) 
		LayerPeople.CreateSelect("", "", delegate(BaseList l) 
		{
			foreach (Chara member in EClass.Branch.members)
			{

TraitKeeperOfGarden

public class TraitKeeperOfGarden : TraitUniqueChara

cs
	public override bool CanInvite => false;

	public override bool CanChangeAffinity => false;
	public override ShopType ShopType 
	{ 
		get 
		{ 
			if (!(EClass._zone is Zone_EternalGarden) && !EClass.game.IsSurvival) 
			{ 
				return ShopType.None; 
			} 
			return ShopType.KeeperOfGarden; 
		} 
	} 
	public override CurrencyType CurrencyType => CurrencyType.Influence; 
}

TraitPartyBoard

public override void TrySetAct(ActPlan p)

cs
	{
		if (EClass._zone.IsPCFaction)
		{
			p.TrySetAct("LayerPeople", () => LayerPeople.CreateParty(), owner); 
			p.TrySetAct("party_setup", delegate
			{ 
				LayerPeople.CreateParty(); 
				return false; 
			}, owner); 
		}
	}
}

TraitWhipEgg

public override void TrySetHeldAct(ActPlan p)

cs
		{
			p.TrySetAct("actWhip", delegate
			{
				EClass.pc.Say("use_whip", c, owner); 
				EClass.pc.Say("use_whip", EClass.pc, c, owner.Name); 
				EClass.pc.Say("use_scope2", c);
				EClass.player.forceTalk = true;
				EClass.pc.Talk("egg");

TraitWhipLove

public override void TrySetHeldAct(ActPlan p)

cs
			{
				p.TrySetAct("actWhip", delegate
				{
					EClass.pc.Say("use_whip", c, owner); 
					EClass.pc.Say("use_whip", EClass.pc, c, owner.Name); 
					EClass.pc.Say("use_scope2", c);
					c.Talk("pervert2");
					EClass.pc.PlaySound("whip");

UIHomeInfo

public void RefreshReport()

cs
			b.button1.mainText.SetColor(a.GetFontColor());
			if (a.onClick != null)
			{
				b.AddSubButton(EMono.core.refs.icons.go, a.onClick); 
				b.AddSubButton(EMono.core.refs.icons.go, a.onClick, null, null, "go"); 
			}
			b.Build();
			if (a.onShowTooltip != null)

UIMultiList

public class UIMultiList : MonoBehaviour

cs

	public Window[] windows;

	public UIList[] lists; 
	public UIDynamicList[] lists; 

	public UIHeader[] headers;

+UISearchPeople

File Created
cs
using System.Collections.Generic;
using UnityEngine.UI;

public class UISearchPeople : EMono
{
	public InputField inputSearch;

	public UIButton buttonClearSearch;

	public UIDropdown dropdown;

	public ListOwner list;

	public bool disable;

	public float intervalSearch;

	private int uidFilterZone = -1;

	private float timerSearch;

	private string lastSearch = "";

	public void Init(ListOwner _list)
	{
		if (disable)
		{
			base.gameObject.SetActive(value: false);
			return;
		}
		this.list = _list;
		inputSearch.onValueChanged.AddListener(Search);
		inputSearch.onSubmit.AddListener(Search);
		List<int> list = new List<int> { -1 };
		foreach (FactionBranch child in EMono.pc.faction.GetChildren())
		{
			list.Add(child.owner.uid);
		}
		dropdown.SetList(0, list, delegate(int a, int i)
		{
			object obj;
			if (a != -1)
			{
				obj = EMono.game.spatials.Find(a)?.Name;
				if (obj == null)
				{
					return "???";
				}
			}
			else
			{
				obj = "all".lang();
			}
			return (string)obj;
		}, delegate(int i, int a)
		{
			SE.ClickOk();
			uidFilterZone = a;
			this.list.List();
		});
		this.list.list.funcFilter = FuncFilter;
	}

	private void LateUpdate()
	{
		if (!disable && timerSearch > 0f)
		{
			timerSearch -= Core.delta;
			if (timerSearch <= 0f)
			{
				Search(inputSearch.text);
			}
		}
	}

	public bool FuncFilter(object _c)
	{
		Chara chara = _c as Chara;
		if (uidFilterZone != -1 && (chara.homeZone == null || chara.homeZone.uid != uidFilterZone))
		{
			return false;
		}
		if (!lastSearch.IsEmpty() && !chara.NameBraced.ToLower().Contains(lastSearch))
		{
			return false;
		}
		return true;
	}

	public void Search(string s)
	{
		s = s.ToLower();
		if (s.IsEmpty())
		{
			s = "";
		}
		buttonClearSearch.SetActive(inputSearch.text != "");
		if (!(s == lastSearch))
		{
			timerSearch = intervalSearch;
			lastSearch = s;
			Redraw();
		}
	}

	public void ClearSearch()
	{
		inputSearch.text = "";
		timerSearch = 0f;
		lastSearch = "";
		Redraw();
	}

	public void Redraw()
	{
		list.List();
	}
}

Zone_EternalGarden

public class Zone_EternalGarden : Zone_Civilized

cs
{
	public override void OnActivate()
	{
		base.OnActivate(); 
		if (EClass._map.version.IsBelow(0, 23, 226))
		{
			SetBGM(121, refresh: false);
		}
		base.OnActivate(); 
		int num = 0; 
		foreach (Chara chara in EClass._map.charas) 
		{ 
			if (chara.id == "cat_silver" && !chara.IsPCFaction) 
			{ 
				num++; 
			} 
		} 
		if (num > 0) 
		{ 
			Msg.Say("num_silvercat", num.ToString() ?? ""); 
		} 
	}
}

Zone_LittleGarden

public class Zone_LittleGarden : Zone_Civilized

cs

	public override void OnRegenerate()
	{
		base.OnRegenerate(); 
		base.development = (EClass.player.little_saved * 2 - EClass.player.little_dead * 3) * 10;
	}
	public override void OnActivate() 
	{ 
		base.OnActivate(); 
		int num = 0; 
		foreach (Chara chara in EClass._map.charas) 
		{ 
			if (chara.id == "littleOne" && !chara.IsPCFaction) 
			{ 
				num++; 
			} 
		} 
		if (num > 0) 
		{ 
			Msg.Say("num_little", num.ToString() ?? ""); 
		} 
	} 
}

Zone_Town

public class Zone_Town : Zone_Civilized

cs
	public override bool CanSpawnAdv => base.lv == 0;

	public override bool AllowCriminal => false;
	public override void OnRegenerate() 
	{ 
		if (EClass.rnd(5) == 0) 
		{ 
			Chara chara = CharaGen.Create("mad_rich"); 
			chara.isSubsetCard = true; 
			EClass._zone.AddCard(chara, GetSpawnPos(chara)); 
		} 
	} 
}