Skip to content

EA 23.293 Nightly

April 8, 2026

16 files modified.

Important Changes

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

SpawnSetting (1)

cs
public static SpawnSetting Mob(string id, string idEle = null, int fixedLv = -1) 
public static SpawnSetting Mob(string id, string idEle = null, int fixedLv = -1, int addLv = 0) 

AI_Fuck

public void Finish()

cs
	{
	case FuckType.fuck:
	{
		if (variation == Variation.Bloodsuck || variation == Variation.Slime) 
		switch (variation) 
		{
		case Variation.Bloodsuck: 
		case Variation.Slime: 
			if (EClass.rnd(2) == 0)
			{
				chara2.AddCondition<ConConfuse>(500);

public void Finish()

cs
			{
				chara2.AddCondition<ConInsane>(100 + EClass.rnd(100));
			}
		} 
		else
			break; 
		default: 
		{
			for (int i = 0; i < 2; i++)
			{

public void Finish()

cs
					chara2.AddCondition<ConInsane>(100 + EClass.rnd(100));
				}
			}
			break; 
		} 
		case Variation.MotherMilk:
			break; 
		}
		chara.Talk("tail_after");
		bool flag3 = false;

public void Finish()

cs
		chara2.ModAffinity(chara, (flag || (chara.IsPC && chara2.affinity.CanSleepBeside() && EClass.rnd(10) != 0)) ? 10 : (-5));
		if (chara == EClass.pc || chara2 == EClass.pc)
		{
			EClass.player.stats.kimo++; 
			if (variation == Variation.MotherMilk) 
			{ 
				EClass.player.stats.mama++; 
				if (EClass.player.stats.mama >= 20 && !EClass.pc.HasElement(1291)) 
				{ 
					EClass.pc.SetFeat(1291, 1, msg: true); 
				} 
			} 
			else
			{ 
				EClass.player.stats.kimo++; 
			} 
		}
		switch (variation)
		{

AI_Idle

public override IEnumerable<Status> Run()

cs
		{
			owner.Say("drunk_mess", owner, c);
			owner.Talk("drunk_mess");
			bool flag6 = EClass.rnd(5) == 0 && !c.IsPC; 
			bool flag7 = EClass.rnd(5) == 0 && !c.IsPC; 
			if (c.IsPCParty && owner.hostility >= Hostility.Friend)
			{
				flag6 = false; 
				flag7 = false; 
			}
			if (flag6) 
			if (flag7) 
			{
				owner.Say("drunk_counter", c, owner);
				c.Talk("drunk_counter");

public override IEnumerable<Status> Run()

cs
		});
		yield return KeepRunning();
	}
	if (EClass.rnd(100) == 0 && owner.trait is TraitBitch) 
	if (EClass.rnd(100) == 0) 
	{
		Chara chara5 = DoSomethingToNearChara((Chara c) => c.IsIdle && !c.IsPCParty && !(c.trait is TraitBitch) && c.Evalue(418) <= 0); 
		if (chara5 != null) 
		bool flag6 = owner.HasElement(1291); 
		if (owner.trait is TraitBitch || flag6) 
		{
			yield return Do(new AI_Fuck
			Chara chara5 = DoSomethingToNearChara((Chara c) => c.IsIdle && !c.IsPCParty && !(c.trait is TraitBitch) && c.Evalue(418) <= 0); 
			if (chara5 != null) 
			{
				target = chara5, 
				variation = AI_Fuck.Variation.Bitch 
			}); 
				yield return Do(new AI_Fuck
				{ 
					target = chara5, 
					variation = ((!flag6) ? AI_Fuck.Variation.Bitch : AI_Fuck.Variation.MotherMilk) 
				}); 
			} 
		}
	}
	if (EClass.rnd(50) == 0 && owner.trait is TraitBard)

AI_PlayMusic

public override IEnumerable<Status> Run()

cs
		{
		case "sax":
		case "trumpet":
		case "harmonica":
			idSong = "trumpet_practice";
			break;
		case "piano_gould":

Chara

public override Sprite GetSprite(int dir = 0)

cs
		pCC.Build();
		return pCC.variation.idle[0, 0];
	}
	if (spriteReplacer?.data != null) 
	{ 
		return spriteReplacer.data.GetSprite(); 
	} 
	int skin = 0;
	if (sourceCard.tiles.Length > 1)
	{

Core

public void OnApplicationFocus(bool focus)

cs
					{
						if (row.replacer.isChecked.GetValueOrDefault(row.idSprite) && row.replacer.data != null)
						{
							row.replacer.data.GetSprite(); 
							row.replacer.Validate(); 
						}
					}
					foreach (SpriteReplacer value in SpriteReplacer.dictSkins.Values)

DramaCustomSequence

public void Build(Chara c)

cs
				Choice2(flag2 ? "daBird" : "daTail", "_tail");
			}
			ConTransmuteHuman condition = EClass.pc.GetCondition<ConTransmuteHuman>();
			if (condition != null && condition.IsBaby) 
			bool num2; 
			if (condition == null) 
			{
				Choice2("daMama", "_mama"); 
			} 
			if (c.trait.CanRevive) 
			{ 
				Choice2("daRevive", "_revive").DisableSound(); 
			} 
			if (!c.trait.IDTrainer.IsEmpty() && !EClass._zone.IsUserZone && (Guild.GetCurrentGuild() == null || Guild.GetCurrentGuild().relation.IsMember())) 
			{ 
				Choice2("daTrain", "_train").DisableSound(); 
			} 
			if (c.trait.CanWhore) 
			{ 
				Choice2(flag2 ? "daBirdBuy" : "daTailBuy", "_whore"); 
			} 
			if (c.trait.CanHeal) 
			{ 
				Choice2("daHeal", "_heal"); 
			} 
			if (c.trait.CanServeFood) 
			{ 
				Choice2("daFood", "_food"); 
			} 
			if (c.trait is TraitInformer) 
			{ 
				Choice2("daSellFame", "_sellFame"); 
			} 
			if (EClass._zone.AllowInvest) 
			{ 
				if (c.trait.CanInvestTown && Guild.GetCurrentGuild() == null) 
				{ 
					Choice2("daInvest", "_investZone"); 
				} 
				if (c.trait.CanInvest) 
				{ 
					Choice2("daInvest", "_investShop"); 
				} 
			} 
			if (c.trait.CanIdentify) 
			{ 
				Choice2("daIdentify", "_identify").DisableSound(); 
				Choice2("daIdentifyAll", "_identifyAll"); 
				Choice2("daIdentifySP", "_identifySP").DisableSound(); 
			} 
			if (c.trait.CanPicklock) 
			{ 
				if (c.Evalue(280) < 20) 
				{ 
					c.elements.SetBase(280, 20); 
				} 
				foreach (Thing item4 in EClass.pc.things.List((Thing a) => a.c_lockLv > 0, onlyAccessible: true)) 
				if (EClass.pc.HasElement(1232)) 
				{
					Thing _t4 = item4; 
					Choice2("daPicklock".lang(_t4.Name), "_picklock").SetOnClick(delegate
					{ 
						destThing = _t4; 
					}); 
					goto IL_093e; 
				}
				num2 = EClass.pc.HasElement(1291); 
			}
			if (c.trait is TraitBanker) 
			{ 
				Choice2("daDeposit", "_deposit"); 
			} 
			if (c.IsMaid || (c.trait.CanInvestTown && (EClass._zone.source.faction == "mysilia" || EClass._zone.IsPCFaction))) 
			else
			{
				Choice2("daExtraTax", "_extraTax"); 
				num2 = condition.IsBaby; 
			}
			if ((c.trait is TraitMiko_Mifu || c.trait is TraitMiko_Nefu || c.trait is TraitEureka) && EClass.world.date.IsExpired(c.c_dateStockExpire)) 
			if (num2) 
			{
				Choice2("daBlessing", "_blessing"); 
				goto IL_093e; 
			}
			goto IL_094f; 
		}
		else if (c.isDrunk || c.HasElement(1275) || EClass.debug.enable) 
		if (c.isDrunk || c.HasElement(1275) || EClass.debug.enable) 
		{
			Choice2(flag2 ? "daBird" : "daTail", "_tail");
		}
	}
	goto IL_0d68; 
	IL_0d68: 
	if (c.IsHomeMember())
	{
		if (c.IsMaid)

public void Build(Chara c)

cs
	Talk("what", StepDefault);
	if (!c.IsMarried || EClass.debug.enable)
	{
		foreach (Thing item5 in EClass.pc.things.List((Thing a) => !a.c_isImportant && !a.isEquipped && a.c_uidAttune == 0 && (a.id == "amulet_engagement" || a.id == "ring_engagement"))) 
		foreach (Thing item4 in EClass.pc.things.List((Thing a) => !a.c_isImportant && !a.isEquipped && a.c_uidAttune == 0 && (a.id == "amulet_engagement" || a.id == "ring_engagement"))) 
		{
			Thing _t3 = item5; 
			Choice("daMarry".lang(item5.Name), "_marry").SetOnClick(delegate
			Thing _t4 = item4; 
			Choice("daMarry".lang(item4.Name), "_marry").SetOnClick(delegate
			{
				destThing = _t3; 
				destThing = _t4; 
			});
		}
	}

public void Build(Chara c)

cs
		QuestSupply supply = c.quest as QuestSupply;
		if (supply != null)
		{
			foreach (Thing item6 in supply.ListDestThing()) 
			foreach (Thing item5 in supply.ListDestThing()) 
			{
				Thing _t2 = item6; 
				Choice("daDeliver".lang(supply.GetTitle() ?? "", _t2.GetName(NameStyle.Full, supply.num)), "_deliver").SetOnClick(delegate
				Thing _t3 = item5; 
				Choice("daDeliver".lang(supply.GetTitle() ?? "", _t3.GetName(NameStyle.Full, supply.num)), "_deliver").SetOnClick(delegate
				{
					EClass.game.quests.Start(c.quest);
					destThing = _t2; 
					destThing = _t3; 
					destQuest = supply;
				}).SetOnTooltip(delegate(UITooltip a)
				{
					_t2.WriteNote(a.note); 
					_t3.WriteNote(a.note); 
				});
			}
		}

public void Build(Chara c)

cs
		{
			EClass.pc.party.AddMemeber(c);
		}
		foreach (Chara item7 in EClass.pc.party.members.ToList()) 
		foreach (Chara item6 in EClass.pc.party.members.ToList()) 
		{
			if (item7 != EClass.pc && item7 != c) 
			if (item6 != EClass.pc && item6 != c) 
			{
				EClass.pc.party.RemoveMember(item7); 
				EClass.pc.party.RemoveMember(item6); 
			}
		}
		if (c.host != null)

public void Build(Chara c)

cs
			RumorChill();
		}
	});
	Step("_baby"); 
	Method(delegate
	{ 
		if (c.affinity.CanBecomeMama() || EClass.debug.enable) 
		{ 
			TempTalkTopic("baby_yes", StepEnd); 
			EClass.pc.SetAI(new AI_Fuck
			{ 
				target = c, 
				variation = AI_Fuck.Variation.MotherMilk, 
				sell = true
			}); 
		} 
		else
		{ 
			TempTalkTopic("baby_no", StepDefault); 
			RumorChill(); 
		} 
	}); 
	Step("_whore");
	Method(delegate
	{

public void Build(Chara c)

cs
	Method(delegate
	{
		TempTalkTopic("blooming1", null);
		foreach (Chara item8 in EClass.pc.party.members.Where((Chara c2) => c2.CanBloom())) 
		foreach (Chara item7 in EClass.pc.party.members.Where((Chara c2) => c2.CanBloom())) 
		{
			Chara c4 = item8; 
			Chara c4 = item7; 
			Choice("daBloom".lang(c4.Name), delegate
			{
				if (EClass._zone.influence < 10)

public void Build(Chara c)

cs
				},
				onList = delegate
				{
					foreach (ResearchPlan item9 in plans) 
					foreach (ResearchPlan item8 in plans) 
					{
						list.Add(item9); 
						list.Add(item8); 
					}
				}
			};

void Invest(bool quick)

cs
	Step("_buyLand");
	Method(delegate
	{
		bool num5 = EClass._map.bounds.CanExpand(1); 
		bool num7 = EClass._map.bounds.CanExpand(1); 
		int costLand = CalcGold.ExpandLand();
		GameLang.refDrama1 = "";
		GameLang.refDrama2 = costLand.ToString() ?? "";
		if (!num5) 
		if (!num7) 
		{
			TempTalkTopic("expand3", StepDefault);
		}

void Invest(bool quick)

cs
			{
				onClick = delegate(Element a, ButtonElement b)
				{
					int num4 = (EClass.pc.elements.HasBase(a.id) ? CalcPlat.Train(EClass.pc, a) : CalcPlat.Learn(EClass.pc, a)); 
					if (num4 == 0) 
					int num6 = (EClass.pc.elements.HasBase(a.id) ? CalcPlat.Train(EClass.pc, a) : CalcPlat.Learn(EClass.pc, a)); 
					if (num6 == 0) 
					{
						SE.Beep();
					}
					else if (EClass.pc.TryPay(num4, "plat")) 
					else if (EClass.pc.TryPay(num6, "plat")) 
					{
						if (EClass.pc.elements.HasBase(a.id))
						{

void Invest(bool quick)

cs
				},
				onList = delegate
				{
					foreach (SourceElement.Row item10 in EClass.sources.elements.rows.Where(delegate(SourceElement.Row a) 
					foreach (SourceElement.Row item9 in EClass.sources.elements.rows.Where(delegate(SourceElement.Row a) 
					{
						if (a.tag.Contains("unused"))
						{

void Invest(bool quick)

cs
						return a.category == "skill" && a.categorySub == c.trait.IDTrainer;
					}).ToList())
					{
						list.Add(Element.Create(item10.id)); 
						list.Add(Element.Create(item9.id)); 
					}
				}
			};

void Invest(bool quick)

cs
				{
					SE.Pay();
					EClass.pc.ModCurrency(-costIdentify);
					foreach (Thing item11 in EClass.pc.things.List((Thing t) => !t.IsIdentified, onlyAccessible: true)) 
					foreach (Thing item10 in EClass.pc.things.List((Thing t) => !t.IsIdentified, onlyAccessible: true)) 
					{
						item11.Thing.Identify(show: false); 
						if (!item11.IsInstalled) 
						item10.Thing.Identify(show: false); 
						if (!item10.IsInstalled) 
						{
							numSuperior++;
						}

void Invest(bool quick)

cs
		GameLang.refDrama1 = Lang._currency(EClass.player.extraTax, "money");
		TempTalkTopic("extraTax", null);
		int[] array2 = taxTier;
		foreach (int num3 in array2) 
		foreach (int num5 in array2) 
		{
			int _i2 = num3; 
			int _i2 = num5; 
			Choice(Lang._currency(_i2, showUnit: true), delegate
			{
				EClass.player.extraTax = _i2;

void Invest(bool quick)

cs
		GameLang.refDrama1 = bankMoney.ToString() ?? "";
		TempTalkTopic("banker2", null);
		int[] array = bankTier;
		foreach (int num2 in array) 
		foreach (int num4 in array) 
		{
			int _i = num2; 
			int _i = num4; 
			if (EClass.player.bankMoney >= _i)
			{
				Choice(Lang._currency(_i, showUnit: true), delegate

void Invest(bool quick)

cs
	End();
	Step("_end");
	End();
	return; 
	IL_093e: 
	Choice2("daMama", "_mama"); 
	goto IL_094f; 
	IL_098e: 
	Choice2("daBaby", "_baby"); 
	goto IL_099f; 
	IL_094f: 
	ConTransmuteHuman condition2 = c.GetCondition<ConTransmuteHuman>(); 
	bool num3; 
	if (condition2 == null) 
	{ 
		if (c.HasElement(1232)) 
		{ 
			goto IL_098e; 
		} 
		num3 = c.HasElement(1291); 
	} 
	else
	{ 
		num3 = condition2.IsBaby; 
	} 
	if (num3) 
	{ 
		goto IL_098e; 
	} 
	goto IL_099f; 
	IL_099f: 
	if (c.trait.CanRevive) 
	{ 
		Choice2("daRevive", "_revive").DisableSound(); 
	} 
	if (!c.trait.IDTrainer.IsEmpty() && !EClass._zone.IsUserZone && (Guild.GetCurrentGuild() == null || Guild.GetCurrentGuild().relation.IsMember())) 
	{ 
		Choice2("daTrain", "_train").DisableSound(); 
	} 
	if (c.trait.CanWhore) 
	{ 
		Choice2(flag2 ? "daBirdBuy" : "daTailBuy", "_whore"); 
	} 
	if (c.trait.CanHeal) 
	{ 
		Choice2("daHeal", "_heal"); 
	} 
	if (c.trait.CanServeFood) 
	{ 
		Choice2("daFood", "_food"); 
	} 
	if (c.trait is TraitInformer) 
	{ 
		Choice2("daSellFame", "_sellFame"); 
	} 
	if (EClass._zone.AllowInvest) 
	{ 
		if (c.trait.CanInvestTown && Guild.GetCurrentGuild() == null) 
		{ 
			Choice2("daInvest", "_investZone"); 
		} 
		if (c.trait.CanInvest) 
		{ 
			Choice2("daInvest", "_investShop"); 
		} 
	} 
	if (c.trait.CanIdentify) 
	{ 
		Choice2("daIdentify", "_identify").DisableSound(); 
		Choice2("daIdentifyAll", "_identifyAll"); 
		Choice2("daIdentifySP", "_identifySP").DisableSound(); 
	} 
	if (c.trait.CanPicklock) 
	{ 
		if (c.Evalue(280) < 20) 
		{ 
			c.elements.SetBase(280, 20); 
		} 
		foreach (Thing item11 in EClass.pc.things.List((Thing a) => a.c_lockLv > 0, onlyAccessible: true)) 
		{ 
			Thing _t2 = item11; 
			Choice2("daPicklock".lang(_t2.Name), "_picklock").SetOnClick(delegate
			{ 
				destThing = _t2; 
			}); 
		} 
	} 
	if (c.trait is TraitBanker) 
	{ 
		Choice2("daDeposit", "_deposit"); 
	} 
	if (c.IsMaid || (c.trait.CanInvestTown && (EClass._zone.source.faction == "mysilia" || EClass._zone.IsPCFaction))) 
	{ 
		Choice2("daExtraTax", "_extraTax"); 
	} 
	if ((c.trait is TraitMiko_Mifu || c.trait is TraitMiko_Nefu || c.trait is TraitEureka) && EClass.world.date.IsExpired(c.c_dateStockExpire)) 
	{ 
		Choice2("daBlessing", "_blessing"); 
	} 
	goto IL_0d68; 
	void BackChill()
	{
		Method(RumorChill, null, StepDefault);

ENC

public class ENC

cs

	public const int mod_flurry = 621;

	public const int counter = 380; 
	public const int basher = 381; 

	public const int rusher = 382;

public class ENC

cs

	public const int sustain_WIL = 445;

	public const int basher = 381; 
	public const int counter = 380; 

	public const int sustain_CHA = 447;

	public const int sustain_MAG = 446; 
	public const int mod_splash = 608; 

	public const int mod_scatter = 607;

public class ENC

cs

	public const int mod_rapid = 602;

	public const int mod_splash = 608; 
	public const int sustain_MAG = 446; 

	public const int mod_ammo_knockback = 603;

public class ENC

cs
	865, 660, 622, 850, 620, 422, 423, 424, 425, 426,
	427, 428, 429, 430, 421, 431, 435, 436, 437, 438,
	439, 440, 441, 442, 443, 432, 420, 419, 418, 621,
	380, 382, 383, 400, 401, 402, 403, 404, 405, 406, 
	381, 382, 383, 400, 401, 402, 403, 404, 405, 406, 
	407, 408, 409, 410, 411, 412, 414, 415, 416, 417,
	444, 445, 381, 447, 446, 607, 606, 605, 484, 485, 
	486, 487, 488, 489, 490, 491, 600, 601, 602, 608, 
	444, 445, 380, 447, 608, 607, 606, 605, 484, 485, 
	486, 487, 488, 489, 490, 491, 600, 601, 602, 446, 
	603, 604, 466, 450, 482, 460, 609, 461, 481, 480,
	468, 462, 467, 483, 463, 464, 465
};

FACTION

public class FACTION

cs

	public const int bfCave = 3500;

	public const int actBuildInspect = 4006; 
	public const int bfLandmark1 = 3780;

	public const int actBuildInspect = 4006; 
	public const int actBuildRecipe = 4005;

	public const int actBuildCollect = 4004;

public class FACTION

cs
		2205, 2204, 2203, 2202, 2201, 2200, 2120, 2119, 2118, 2117,
		2116, 2115, 2003, 3784, 3783, 2207, 3781, 3782, 3705, 3704,
		3703, 3706, 3702, 3701, 3700, 3606, 3604, 3603, 3602, 3601,
		3605, 3500, 4006, 3780, 4005, 4004, 4003, 4002, 3707, 3708, 
		3605, 3500, 3780, 4006, 4005, 4004, 4003, 4002, 3707, 3708, 
		3709, 3600, 3710
	};
}

FEAT

public class FEAT

cs

	public const int featEND = 1622;

	public const int featManaMeat = 1421; 
	public const int featExecutioner = 1420; 

	public const int featSTR = 1620;

public class FEAT

cs

	public const int featHealer = 1422;

	public const int featManaMeat = 1421; 
	public const int featSpotting = 1633;

	public const int featExecutioner = 1420; 
	public const int featMilitant = 1419; 

	public const int featDEX = 1621;

public class FEAT

cs

	public const int featFaith = 1636;

	public const int featMilitant = 1419; 
	public const int featSwordsage = 1418; 

	public const int featComat = 1750;

public class FEAT

cs

	public const int featDreamWaker = 1653;

	public const int featSwordsage = 1418; 
	public const int featWitch = 1417; 

	public const int featGod_trickery1 = 1345;

	public const int featInquisitor = 1416; 
	public const int featFoxMaid = 1415; 

	public const int featCosmicHorror = 1233;

public class FEAT

cs

	public const int featAshborn = 1251;

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

	public const int featGoodKarma = 1270;

public class FEAT

cs

	public const int featGoddess = 1290;

	public const int featGod_element1 = 1300; 
	public const int featSadCreature = 1291; 

	public const int featBaby = 1232;

	public const int featGod_earth1 = 1305; 
	public const int featGod_element1 = 1300; 

	public const int featNirvana = 1231;

public class FEAT

cs

	public const int featAdam = 1230;

	public const int featGod_wind1 = 1310; 
	public const int featGod_earth1 = 1305; 

	public const int featAquatic = 1252;

	public const int featGod_healing1 = 1320; 
	public const int featFoxMaid = 1415; 
	public const int featGod_machine1 = 1315; 

	public const int featWhiteVixen = 1414;

public class FEAT

cs

	public const int featPaladin = 1407;

	public const int featGod_machine1 = 1315; 
	public const int featTourist = 1406;

	public const int featGod_wind1 = 1310; 
	public const int featPianist = 1405;

	public const int featArcher = 1404;

public class FEAT

cs

	public const int featGod_harvest1 = 1325;

	public static readonly int[] IDS = new int[147] 
	public const int featGod_healing1 = 1320; 
	public static readonly int[] IDS = new int[148] 
	{
		1624, 1625, 1626, 1631, 1628, 1629, 1630, 1623, 1632, 1627,
		1622, 1421, 1620, 1612, 1611, 1610, 1427, 1426, 1425, 1424, 
		1423, 1422, 1633, 1420, 1621, 1634, 1650, 1636, 1419, 1750, 
		1664, 1663, 1662, 1661, 1660, 1659, 1658, 1657, 1656, 1655, 
		1635, 1654, 1652, 1651, 1649, 1648, 1647, 1646, 1645, 1644, 
		1643, 1642, 1641, 1640, 1653, 1418, 1345, 1416, 1233, 1234, 
		1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 
		1245, 1246, 1247, 1248, 1249, 1250, 1251, 1417, 1270, 1271, 
		1272, 1273, 1274, 1275, 1276, 1290, 1300, 1232, 1305, 1231, 
		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, 
		1230, 1310, 1252, 1320, 1415, 1414, 1413, 1412, 1411, 1410, 
		1409, 1408, 1407, 1315, 1406, 1405, 1404, 1403, 1402, 1401, 
		1400, 1355, 1350, 1340, 1335, 1330, 1325
		1622, 1420, 1620, 1612, 1611, 1610, 1427, 1426, 1425, 1424, 
		1423, 1422, 1421, 1633, 1419, 1621, 1634, 1650, 1636, 1418, 
		1750, 1664, 1663, 1662, 1661, 1660, 1659, 1658, 1657, 1656, 
		1655, 1635, 1654, 1652, 1651, 1649, 1648, 1647, 1646, 1645, 
		1644, 1643, 1642, 1641, 1640, 1653, 1417, 1345, 1415, 1233, 
		1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 
		1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1416, 1270, 
		1271, 1272, 1273, 1274, 1275, 1276, 1290, 1291, 1232, 1300, 
		1231, 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, 1230, 1305, 1252, 1315, 1414, 1413, 1412, 1411, 1410, 
		1409, 1408, 1407, 1406, 1310, 1405, 1404, 1403, 1402, 1401, 
		1400, 1355, 1350, 1340, 1335, 1330, 1325, 1320
	};
}
public class Feat : Element

POLICY

public class POLICY

cs

	public const int license_general = 2820;

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

	public const int license_food = 2818;

public class POLICY

cs

	public const int food_for_people = 2502;

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

	public const int license_furniture = 2819;

public class POLICY

cs

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

Player

public long clean

cs
			}
		}

		public long mama 
		{ 
			get 
			{ 
				return _longs[17]; 
			} 
			set 
			{ 
				_longs[17] = value; 
			} 
		} 
		public int GetShippingBonus(long _a)
		{
			long p = 0L;

SpawnSetting

public class SpawnSetting

cs

	public int fixedLv = -1;

	public int addLv; 
	public int tries = 100;

	public int levelRange = -1;

public static SpawnSetting Encounter(int lv)

cs
		};
	}

	public static SpawnSetting Mob(string id, string idEle = null, int fixedLv = -1) 
	public static SpawnSetting Mob(string id, string idEle = null, int fixedLv = -1, int addLv = 0) 
	{
		return new SpawnSetting
		{
			id = id,
			idEle = idEle,
			fixedLv = fixedLv 
			fixedLv = fixedLv, 
			addLv = addLv 
		};
	}

SpriteData

public void Validate()

cs

	public void Load()
	{
		Texture2D texture2D = IO.LoadPNG(path + ".png"); 
		Debug.Log(texture2D.width + "/" + texture2D.height + "/" + path); 
		if ((bool)tex)
		{
			UnityEngine.Object.Destroy(tex); 
			if (texture2D.width != tex.width || texture2D.height != tex.height) 
			{ 
				tex.Reinitialize(texture2D.width, texture2D.height); 
			} 
			tex.SetPixels32(texture2D.GetPixels32()); 
			tex.Apply(); 
			UnityEngine.Object.Destroy(texture2D); 
		}
		tex = IO.LoadPNG(path + ".png"); 
		Debug.Log(tex.width + "/" + tex.height + "/" + path); 
		int num = tex.width / frame; 
		int height = tex.height; 
		sprites = new Sprite[frame]; 
		Vector2 pivot = new Vector2(0.5f, 0.5f); 
		for (int i = 0; i < frame; i++) 
		else
		{
			sprites[i] = Sprite.Create(tex, new Rect(i * num, 0f, num, height), pivot, 100f, 0u, SpriteMeshType.FullRect); 
			tex = texture2D; 
			int num = tex.width / frame; 
			int height = tex.height; 
			sprites = new Sprite[frame]; 
			Vector2 pivot = new Vector2(0.5f, 0.5f); 
			for (int i = 0; i < frame; i++) 
			{ 
				sprites[i] = Sprite.Create(tex, new Rect(i * num, 0f, num, height), pivot, 100f, 0u, SpriteMeshType.FullRect); 
			} 
		}
		LoadPref(); 
	}
}

SpriteReplacer

public Sprite GetSprite(string suffix = "")

cs
		return value.GetSprite();
	}

	public void Validate() 
	{ 
		data?.Validate(); 
		foreach (SpriteData value in suffixes.Values) 
		{ 
			value?.Validate(); 
		} 
	} 
	public void Reload(string id, RenderData renderData = null)
	{
		data = null;

Zone

public Chara SpawnMob(Point pos = null, SpawnSetting setting = null)

cs
	}
	long num3 = ((setting.fixedLv == -1) ? cardRow.LV : setting.fixedLv);
	bool flag = setting.fixedLv != -1 || DangerLvBoost > 0;
	num3 += setting.addLv; 
	if (ScaleType == ZoneScaleType.Void)
	{
		num3 = (50L + (long)cardRow.LV) * Mathf.Max(1, (num - 1) / 50);

ZonePreEnterEncounter

public override void Execute()

cs
		}
		else
		{
			float num = Mathf.Clamp(EClass.pc.FameLv + 8, 8f, 24f + Mathf.Sqrt(EClass.pc.FameLv)); 
			float num = Mathf.Clamp(EClass.pc.FameLv + 8, 8f, Mathf.Min(24f + Mathf.Sqrt(EClass.pc.FameLv), 100f)); 
			for (int j = 0; j < EClass.rndHalf((int)num); j++)
			{
				Point randomPointInRadius3 = EClass.pc.pos.GetRandomPointInRadius(2, 5, requireLos: false, allowChara: false);
				if (randomPointInRadius3 != null)
				{
					Chara chara3 = EClass._zone.SpawnMob(randomPointInRadius3, SpawnSetting.Mob(mob.id, (mob.MainElement == Element.Void) ? null : mob.MainElement.source.alias.Substring(3))); 
					Chara chara3 = EClass._zone.SpawnMob(randomPointInRadius3, SpawnSetting.Mob(mob.id, (mob.MainElement == Element.Void) ? null : mob.MainElement.source.alias.Substring(3), -1, EClass.player.HasKeyItem("license_adv") ? EClass.rndHalf(EClass.pc.FameLv) : 0)); 
					Hostility hostility2 = (chara3.c_originalHostility = Hostility.Enemy);
					chara3.hostility = hostility2;
					chara3.enemy = EClass.pc.party.members.RandomItem();