Skip to content

EA 23.246 Nightly

December 11, 2025

44 files modified. 3 new files created.

Important Changes

None.

ABILITY

``

cs

public class ABILITY
{
	public const int AI_OpenLock = 5049; 
	public const int ActCryRage = 6604; 

	public const int ActParasite = 6019; 
	public const int ActRestrain = 5055; 

	public const int ActRide = 6018; 
	public const int AI_PlayMusic = 6001; 

	public const int AI_SelfHarm = 6015; 
	public const int AI_Meditate = 6003; 

	public const int AI_PassTime = 6013; 
	public const int AI_Steal = 6011; 

	public const int ActQuickCraft = 6012;

	public const int AI_Steal = 6011; 
	public const int AI_PassTime = 6013; 

	public const int ActDreamBug = 6020; 
	public const int AI_SelfHarm = 6015; 

	public const int AI_Meditate = 6003; 
	public const int ActRide = 6018; 

	public const int ActRestrain = 5055; 
	public const int ActParasite = 6019; 

	public const int AI_Bladder = 5054; 
	public const int ActDreamBug = 6020; 

	public const int TaskHarvest = 5053; 
	public const int ActPray = 6050; 

	public const int ActBash = 5052; 
	public const int ActEscape = 6400; 

	public const int ActZap = 5051; 
	public const int ActSuicide = 6410; 

	public const int AI_Sleep = 5050; 
	public const int ActDuplicate = 6420; 

	public const int AI_PlayMusic = 6001; 
	public const int AI_Bladder = 5054; 

	public const int ActItem = 5048; 
	public const int ActRush = 6450; 

	public const int ActPray = 6050; 
	public const int ActCurse = 6600; 

	public const int ActSuicide = 6410; 
	public const int ActEntangle = 6601; 

	public const int ActTouchDrown = 6613; 
	public const int ActDraw = 6602; 

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

	public const int ActFear = 6611; 
	public const int ActCrySad = 6605; 

	public const int ActWeaken = 6610; 
	public const int ActBurnMana = 6606; 

	public const int ActBloodsuck = 6607;

	public const int ActBurnMana = 6606; 
	public const int ActWeaken = 6610; 

	public const int ActEscape = 6400; 
	public const int ActFear = 6611; 

	public const int ActCrySad = 6605; 
	public const int ActTouchSleep = 6612; 

	public const int ActDraw = 6602; 
	public const int ActTouchDrown = 6613; 

	public const int ActEntangle = 6601; 
	public const int ActGazeDim = 6620; 

	public const int ActCurse = 6600; 
	public const int ActGazeInsane = 6621; 
	public const int ActGazeMutation = 6622; 

	public const int ActCrabBreathe = 6500;

	public const int ActRush = 6450; 
	public const int TaskHarvest = 5053; 

	public const int ActDuplicate = 6420; 
	public const int ActBash = 5052; 

	public const int ActNTR = 6603; 
	public const int ActZap = 5051; 

	public const int ActGazeDim = 6620; 
	public const int TaskFarm = 5020; 

	public const int ActPick = 5047; 
	public const int TaskTrain = 5021; 

	public const int AI_Drink = 5045; 
	public const int TaskSleepOnBed = 5022; 

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

	public const int AI_Grab = 5025;

	public const int AI_Eat = 5024; 
	public const int AI_Haul = 5026; 

	public const int TaskGoOut = 5023; 
	public const int GoalSleep = 5027; 

	public const int TaskSleepOnBed = 5022; 
	public const int ActReleaseHeld = 5028; 

	public const int TaskTrain = 5021; 
	public const int AI_Offer = 5029; 

	public const int GoalSleep = 5027; 
	public const int AI_ReleaseHeld = 5030; 

	public const int TaskFarm = 5020; 
	public const int AI_Deconstruct = 5031; 

	public const int ActWait = 5000; 
	public const int AI_Equip = 5032; 

	public const int ActMelee = 5001; 
	public const int ActCancelTask = 5033; 

	public const int Melee = 5002; 
	public const int GoalIdle = 5034; 

	public const int Ranged = 5003; 
	public const int TaskBuild = 5035; 

	public const int Sleep = 5004; 
	public const int TaskMoveInstalled = 5036; 

	public const int Wait = 5005; 
	public const int AI_Sleep = 5050; 

	public const int TaskReadBoard = 5019; 
	public const int AI_OpenLock = 5049; 
	public const int ActItem = 5048; 
	public const int ActPick = 5047; 

	public const int ActInstall = 5046;

	public const int ActReleaseHeld = 5028; 
	public const int AI_Drink = 5045; 

	public const int AI_ReleaseHeld = 5030; 
	public const int ActDrainBlood = 6626; 

	public const int ActChat = 5044;

	public const int AI_TendAnimal = 5043; 
	public const int ActKick = 5042;

	public const int AI_Read = 5041;

public class ABILITY

cs

	public const int AI_Fish = 5039;

	public const int AI_Offer = 5029; 
	public const int ActThrow = 5038;

	public const int TaskMoveInstalled = 5036; 
	public const int TaskBuild = 5035; 
	public const int GoalIdle = 5034; 
	public const int ActCancelTask = 5033; 
	public const int AI_Equip = 5032; 
	public const int AI_Deconstruct = 5031; 
	public const int ActNoItem = 5037;

	public const int ActGazeInsane = 6621; 
	public const int AI_TendAnimal = 5043; 

	public const int ActCryRage = 6604; 
	public const int ActCatHuffing = 6627; 

	public const int ActGazeMana = 6623;

	public const int breathe_Lightning = 50202; 
	public const int breathe_Darkness = 50203; 
	public const int breathe_Mind = 50204; 
	public const int breathe_Poison = 50205; 
	public const int ActScream = 6631; 

	public const int breathe_Nether = 50206; 
	public const int ActInsult = 6630; 

	public const int breathe_Sound = 50207;

public class ABILITY

cs

	public const int breathe_Chaos = 50210;

	public const int ActGazeMutation = 6622; 
	public const int breathe_Magic = 50211; 

	public const int breathe_Ether = 50212;

public class ABILITY

cs

	public const int breathe_Cut = 50214;

	public const int breathe_Cold = 50201; 
	public const int breathe_Impact = 50215;

	public const int Shoot = 5006; 
	public const int breathe_Void = 50216; 

	public const int Use = 5007; 
	public const int TaskReadBoard = 5019; 

	public const int General = 5008; 
	public const int TaskPick = 5018; 

	public const int TaskMine = 5009; 
	public const int TaskTalk = 5017; 

	public const int TaskDig = 5010; 
	public const int TaskTame = 5016; 

	public const int TaskCut = 5011; 
	public const int TaskAttack = 5015; 

	public const int AI_Goto = 5012; 
	public const int TaskPlow = 5014; 

	public const int ActAttack = 5013; 
	public const int ActWait = 5000; 

	public const int TaskPlow = 5014; 
	public const int ActMelee = 5001; 

	public const int TaskAttack = 5015; 
	public const int Melee = 5002; 

	public const int TaskTame = 5016; 
	public const int Ranged = 5003; 

	public const int TaskTalk = 5017; 
	public const int Sleep = 5004; 

	public const int TaskPick = 5018; 
	public const int Wait = 5005; 

	public const int breathe_Void = 50216; 
	public const int breathe_Poison = 50205; 

	public const int breathe_Fire = 50200; 
	public const int Shoot = 5006; 

	public const int breathe_Magic = 50211; 
	public const int General = 5008; 

	public const int breathe_ = 7000; 
	public const int TaskMine = 5009; 

	public const int ActDrainBlood = 6626; 
	public const int TaskDig = 5010; 

	public const int ActCatHuffing = 6627; 
	public const int TaskCut = 5011; 

	public const int ActInsult = 6630; 
	public const int AI_Goto = 5012; 

	public const int ActScream = 6631; 
	public const int ActAttack = 5013; 
	public const int Use = 5007; 
	public const int breathe_Mind = 50204; 
	public const int breathe_Nether = 50206; 
	public const int breathe_Lightning = 50202; 

	public const int ActSteal = 6640;

public class ABILITY

cs

	public const int ActNeckHunt = 6650;

	public const int SpTransmuteBat = 8793; 
	public const int ActDropMine = 6660; 

	public const int ActThrowPotion = 6661;

public class ABILITY

cs

	public const int ActBladeStorm2 = 6665;

	public const int ActDropMine = 6660; 
	public const int ActWhirlwind = 6666; 
	public const int breathe_Darkness = 50203; 
	public const int ActSummonSpecial = 6800; 
	public const int ActWombDark = 6801; 

	public const int ActMissileBarrage = 6667;

	public const int ActHeadpat = 6904; 
	public const int StManaCost = 6720; 

	public const int ActWhirlwind = 6666; 
	public const int breathe_Cold = 50201; 
	public const int breathe_Fire = 50200; 
	public const int SpTransmuteBat = 8793; 
	public const int breathe_ = 7000; 
	public const int StTaunt = 6700; 
	public const int ActKizuamiTrick = 6903; 

	public const int ActLulwyTrick = 6902;

	public const int ActJureHeal = 6901; 
	public const int ActHeadpat = 6904; 

	public const int ActManaAbsorb = 6900;

public class ABILITY

cs

	public const int SongSleep = 6750;

	public const int ActKizuamiTrick = 6903; 
	public const int StTaunt = 6700; 
	public const int ActSummonSpecial = 6800; 
	public const int StManaCost = 6720; 
	public const int ActJureHeal = 6901; 

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

AI_Idle

public override IEnumerable<Status> Run()

cs
			else if (!EClass._zone.IsRegion && owner.HasElement(1250))
			{
				Chara target = null;
				for (int j = 0; j < 10; j++) 
				for (int k = 0; k < 10; k++) 
				{
					Chara chara = EClass._map.charas.RandomItem();
					if (chara != owner && chara.Evalue(964) <= 0 && (target == null || (chara.c_bloodData != null && (target.c_bloodData == null || CraftUtil.GetFoodScore(chara.c_bloodData) > CraftUtil.GetFoodScore(target.c_bloodData)))))

public override IEnumerable<Status> Run()

cs
					{
						continue;
					}
					for (int k = 0; k < 5; k++) 
					for (int l = 0; l < 5; l++) 
					{
						if (thing9.encLV >= 0)
						{

public override IEnumerable<Status> Run()

cs
	{
		owner.TryAssignBed();
	}
	string text; 
	if (!EClass._zone.IsRegion)
	{
		text = owner.id; 
		if (!(text == "geist")) 
		switch (owner.id) 
		{
			if (text == "mech_scarab" && EClass.rnd(20) == 0 && owner.CanDuplicate() && !EClass._zone.IsUserZone) 
		case "azzrasizzle":
		case "geist":
		{ 
			if (EClass.rnd(20) != 0) 
			{
				int i = 0; 
				owner.pos.ForeachNeighbor(delegate(Point p) 
				break; 
			} 
			Point nearestPoint = EClass.pc.pos.GetNearestPoint(allowBlock: false, allowChara: false); 
			if (nearestPoint == null) 
			{ 
				break; 
			} 
			foreach (Chara item3 in nearestPoint.ListCharasInRadius(owner, 6, (Chara _c) => _c != owner && !_c.IsPCFactionOrMinion && _c.id != "cocoon")) 
			{ 
				item3.Teleport(nearestPoint.GetNearestPoint(allowBlock: false, allowChara: false) ?? nearestPoint); 
			} 
			if (owner != null) 
			{ 
				if (!owner.IsPCFactionOrMinion) 
				{
					if (p.HasChara && p.FirstChara.id == "mech_scarab") 
					{ 
						i++; 
					} 
				}); 
				if (i < 2) 
					EClass.pc.ai.Cancel(); 
				} 
				owner.Teleport(nearestPoint); 
			} 
			yield return Success(); 
			break; 
		} 
		case "spider_queen":
		{ 
			if (EClass.rnd(20) != 0 || !owner.CanDuplicate() || EClass._zone.IsUserZone) 
			{ 
				break; 
			} 
			int i = 0; 
			owner.pos.ForeachNeighbor(delegate(Point p) 
			{ 
				if (p.HasChara && p.FirstChara.id == "cocoon") 
				{
					Point randomPoint = owner.pos.GetRandomPoint(1, requireLos: false, allowChara: false, allowBlocked: false, 20); 
					if (randomPoint != null) 
					{ 
						Card c2 = EClass._zone.AddCard(owner.Duplicate(), randomPoint); 
						if (randomPoint.Distance(EClass.pc.pos) < EClass.pc.GetHearingRadius()) 
						{ 
							Msg.Say("self_dupe", owner, c2); 
						} 
					} 
					i++; 
				} 
			}); 
			if (i < 2) 
			{ 
				Point randomPoint2 = owner.pos.GetRandomPoint(1, requireLos: false, allowChara: false, allowBlocked: false, 20); 
				if (randomPoint2 != null) 
				{ 
					Chara chara3 = EClass._zone.SpawnMob("cocoon", randomPoint2); 
					owner.Say("layegg", owner); 
					chara3.SetHostility(owner.OriginalHostility); 
				}
			}
			break; 
		}
		else if (EClass.rnd(20) == 0) 
		case "mech_scarab":
		{
			Point nearestPoint = EClass.pc.pos.GetNearestPoint(allowBlock: false, allowChara: false); 
			if (nearestPoint != null) 
			if (EClass.rnd(20) != 0 || !owner.CanDuplicate() || EClass._zone.IsUserZone) 
			{ 
				break; 
			} 
			int j = 0; 
			owner.pos.ForeachNeighbor(delegate(Point p) 
			{
				foreach (Chara item3 in nearestPoint.ListCharasInRadius(owner, 6, (Chara _c) => _c != owner && !_c.IsPCFactionOrMinion)) 
				if (p.HasChara && p.FirstChara.id == "mech_scarab") 
				{
					item3.Teleport(nearestPoint.GetNearestPoint(allowBlock: false, allowChara: false) ?? nearestPoint); 
					j++; 
				}
				if (owner != null) 
			}); 
			if (j >= 2) 
			{ 
				break; 
			} 
			Point randomPoint = owner.pos.GetRandomPoint(1, requireLos: false, allowChara: false, allowBlocked: false, 20); 
			if (randomPoint != null) 
			{ 
				Card c2 = EClass._zone.AddCard(owner.Duplicate(), randomPoint); 
				if (randomPoint.Distance(EClass.pc.pos) < EClass.pc.GetHearingRadius()) 
				{
					if (!owner.IsPCFactionOrMinion) 
					{ 
						EClass.pc.ai.Cancel(); 
					} 
					owner.Teleport(nearestPoint); 
					Msg.Say("self_dupe", owner, c2); 
				}
				yield return Success(); 
			}
			break; 
		} 
		}
	}
	if (owner.IsMinion && owner.master != null && owner.master.id == "keeper_garden" && !(owner.master.ai is GoalCombat))

public override IEnumerable<Status> Run()

cs
			else if (EClass.rnd(15) == 0 && EClass._zone.IsTown && owner.hostility >= Hostility.Neutral && !owner.IsPCFaction && !EClass.pc.HasCondition<ConIncognito>())
			{
				bool flag4 = EClass._zone is Zone_Derphy;
				string text2 = ((EClass.player.karma > 10) ? ((EClass.player.karma < 90) ? "" : (flag4 ? "rumor_bad" : "rumor_good")) : (flag4 ? "rumor_good" : "rumor_bad")); 
				if (!text2.IsEmpty()) 
				string text = ((EClass.player.karma > 10) ? ((EClass.player.karma < 90) ? "" : (flag4 ? "rumor_bad" : "rumor_good")) : (flag4 ? "rumor_good" : "rumor_bad")); 
				if (!text.IsEmpty()) 
				{
					owner.Talk(text2); 
					owner.Talk(text); 
				}
				if ((flag4 ? (EClass.player.karma >= 90) : (EClass.player.karma <= 10)) && EClass.rnd(10) == 0)
				{

public override IEnumerable<Status> Run()

cs
	{
		if (EClass.rnd(3) == 0 && owner.IsCat)
		{
			Chara chara3 = ((EClass.rnd(5) == 0) ? EClass.pc.party.members.RandomItem() : EClass._map.charas.RandomItem()); 
			Thing thing5 = chara3.things.Find<TraitFoodChuryu>(); 
			if (chara3 != owner && thing5 != null) 
			Chara chara4 = ((EClass.rnd(5) == 0) ? EClass.pc.party.members.RandomItem() : EClass._map.charas.RandomItem()); 
			Thing thing5 = chara4.things.Find<TraitFoodChuryu>(); 
			if (chara4 != owner && thing5 != null) 
			{
				yield return Do(new AI_Churyu
				{
					churyu = thing5,
					slave = chara3 
					slave = chara4 
				});
			}
		}

public override IEnumerable<Status> Run()

cs
	}
	if (EClass.rnd(100) == 0 && owner.trait is TraitBitch)
	{
		Chara chara4 = DoSomethingToNearChara((Chara c) => c.IsIdle && !c.IsPCParty && !(c.trait is TraitBitch) && c.Evalue(418) <= 0); 
		if (chara4 != null) 
		Chara chara5 = DoSomethingToNearChara((Chara c) => c.IsIdle && !c.IsPCParty && !(c.trait is TraitBitch) && c.Evalue(418) <= 0); 
		if (chara5 != null) 
		{
			yield return Do(new AI_Fuck
			{
				target = chara4, 
				target = chara5, 
				variation = AI_Fuck.Variation.Bitch
			});
		}

public override IEnumerable<Status> Run()

cs
	}
	if (EClass.rnd(35) == 0 && owner.id == "child" && owner.pos.cell.IsSnowTile)
	{
		foreach (Chara chara5 in EClass._map.charas) 
		foreach (Chara chara6 in EClass._map.charas) 
		{
			if (EClass.rnd(3) != 0 && chara5 != owner && chara5.pos.cell.IsSnowTile && chara5.Dist(owner) <= 6 && Los.IsVisible(chara5, owner)) 
			if (EClass.rnd(3) != 0 && chara6 != owner && chara6.pos.cell.IsSnowTile && chara6.Dist(owner) <= 6 && Los.IsVisible(chara6, owner)) 
			{
				Thing t3 = ThingGen.Create("snow");
				ActThrow.Throw(owner, chara5.pos, t3); 
				ActThrow.Throw(owner, chara6.pos, t3); 
				break;
			}
		}

public override IEnumerable<Status> Run()

cs
		}
		else
		{
			foreach (Chara chara6 in EClass._map.charas) 
			foreach (Chara chara7 in EClass._map.charas) 
			{
				if (EClass.rnd(3) != 0 && chara6 != owner && chara6.Dist(owner) <= 6 && chara6.Dist(owner) >= 3 && Los.IsVisible(chara6, owner)) 
				if (EClass.rnd(3) != 0 && chara7 != owner && chara7.Dist(owner) <= 6 && chara7.Dist(owner) >= 3 && Los.IsVisible(chara7, owner)) 
				{
					ActThrow.Throw(owner, chara6.pos, thing6); 
					ActThrow.Throw(owner, chara7.pos, thing6); 
					break;
				}
			}

public override IEnumerable<Status> Run()

cs
	}
	if (EClass.rnd(10) == 0 && !EClass._zone.IsUnderwater && (owner.race.tag.Contains("water") || owner.source.tag.Contains("water")) && !owner.pos.IsDeepWater)
	{
		for (int l = 0; l < 100; l++) 
		for (int m = 0; m < 100; m++) 
		{
			Point randomPoint2 = EClass._map.GetRandomPoint(); 
			if (randomPoint2.IsDeepWater && !randomPoint2.IsBlocked) 
			Point randomPoint3 = EClass._map.GetRandomPoint(); 
			if (randomPoint3.IsDeepWater && !randomPoint3.IsBlocked) 
			{
				yield return DoGoto(randomPoint2); 
				yield return DoGoto(randomPoint3); 
				break;
			}
		}
	}
	text = owner.source.aiIdle; 
	if (!(text == "stand") && !(text == "root")) 
	string aiIdle = owner.source.aiIdle; 
	if (!(aiIdle == "stand") && !(aiIdle == "root")) 
	{
		if (EClass.rnd(15) == 0)
		{

public override IEnumerable<Status> Run()

cs
	yield return Restart();
	Point FindMovePoint(BaseArea.AccessType type)
	{
		for (int m = 0; m < 20; m++) 
		for (int n = 0; n < 20; n++) 
		{
			Point randomPoint3 = owner.pos.GetRandomPoint(5 + m, requireLos: false); 
			if (randomPoint3 != null && randomPoint3.IsInBounds && (randomPoint3.cell.room == null || randomPoint3.cell.room.data.accessType == type)) 
			Point randomPoint4 = owner.pos.GetRandomPoint(5 + n, requireLos: false); 
			if (randomPoint4 != null && randomPoint4.IsInBounds && (randomPoint4.cell.room == null || randomPoint4.cell.room.data.accessType == type)) 
			{
				return randomPoint3; 
				return randomPoint4; 
			}
		}
		return null;

AM_Adv

public void AxisMove()

cs
	timerStartRunning += Core.delta;
	EClass.player.nextMove.x = 0f;
	EClass.player.nextMove.y = 0f;
	if (vector != Vector2.zero && IsEntangled()) 
	{ 
		return; 
	} 
	Point point = EClass.pc.pos.Copy();
	point.x += (int)vector.x;
	point.z += (int)vector.y;

public void SetPressedAction(ButtonState button)

cs
		}
	}

	public bool IsEntangled() 
	{ 
		if (EClass.pc.HasCondition<ConEntangle>()) 
		{ 
			EClass.pc.Say("entangled", EClass.pc); 
			EClass.pc.PlaySound("web"); 
			EClass.pc.PlayAnime(AnimeID.Shiver); 
			EInput.WaitReleaseKey(); 
			return true; 
		} 
		return false; 
	} 
	public bool PressedActionMove(Point pos)
	{
		if (EClass.player.TooHeavyToMove()) 
		if (EClass.player.TooHeavyToMove() || IsEntangled()) 
		{
			return false;
		}

ActEffect

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

cs
	{
	case EffectId.Earthquake:
	{
		List<Point> list7 = EClass._map.ListPointsInCircle(CC.pos, 12f, mustBeWalkable: false); 
		if (list7.Count == 0) 
		List<Point> list = EClass._map.ListPointsInCircle(CC.pos, 12f, mustBeWalkable: false); 
		if (list.Count == 0) 
		{
			list7.Add(CC.pos.Copy()); 
			list.Add(CC.pos.Copy()); 
		}
		CC.Say("spell_earthquake", CC, element.Name.ToLower());
		TryDelay(delegate

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

cs
			Shaker.ShakeCam("ball");
		}
		EClass.Wait(1f, CC);
		DamageEle(CC, id, power, element, list7, actRef, "spell_earthquake"); 
		DamageEle(CC, id, power, element, list, actRef, "spell_earthquake"); 
		break;
	}
	case EffectId.Meteor:

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

cs
		EffectMeteor.Create(cc.pos, 6, 10, delegate
		{
		});
		List<Point> list = EClass._map.ListPointsInCircle(CC.pos, 10f); 
		if (list.Count == 0) 
		List<Point> list3 = EClass._map.ListPointsInCircle(CC.pos, 10f); 
		if (list3.Count == 0) 
		{
			list.Add(CC.pos.Copy()); 
			list3.Add(CC.pos.Copy()); 
		}
		CC.Say("spell_ball", CC, element.Name.ToLower());
		TryDelay(delegate

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

cs
			Shaker.ShakeCam("ball");
		}
		EClass.Wait(1f, CC);
		DamageEle(CC, id, power, element, list, actRef, "spell_ball"); 
		DamageEle(CC, id, power, element, list3, actRef, "spell_ball"); 
		return;
	}
	case EffectId.Hand:

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

cs
	case EffectId.MoonSpear:
	case EffectId.MoonArrow:
	{
		List<Point> list3 = new List<Point>(); 
		list3.Add(tp.Copy()); 
		List<Point> list7 = new List<Point>(); 
		list7.Add(tp.Copy()); 
		CC.Say((id == EffectId.MoonSpear) ? "spell_spear" : "spell_arrow", CC, element.Name.ToLower());
		EClass.Wait(0.5f, CC);
		TryDelay(delegate
		{
			CC.PlaySound((id == EffectId.MoonSpear) ? "spell_moonspear" : "spell_arrow");
		});
		DamageEle(CC, id, power, element, list3, actRef, (id == EffectId.MoonSpear) ? "spell_spear" : "spell_arrow"); 
		DamageEle(CC, id, power, element, list7, actRef, (id == EffectId.MoonSpear) ? "spell_spear" : "spell_arrow"); 
		return;
	}
	case EffectId.Summon:
	{
		if (actRef.n1 == "special") 
		string n = actRef.n1; 
		if (!(n == "special")) 
		{ 
			if (n == "special2") 
			{ 
				if (EClass._zone.HasField(10000)) 
				{ 
					foreach (Chara item in EClass._map.charas.Where((Chara _c) => _c.id == "cocoon").ToList()) 
					{ 
						item.pos.PlayEffect("darkwomb3"); 
						item.HatchEgg(); 
					} 
				} 
				CC.PlayEffect("darkwomb"); 
				SE.Play("ab_womb"); 
			} 
			else
			{ 
				CC.Say("summon_ally", CC); 
			} 
		} 
		else
		{
			SE.Play("warhorn");
			Msg.Say("warhorn");
		}
		CC.Say("summon_ally", CC); 
		if (EClass._zone.CountMinions(CC) >= CC.MaxSummon || CC.c_uidMaster != 0)
		{
			CC.Say("summon_ally_fail", CC);

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

cs
			num3 = Mathf.Clamp(7 + CC.LV / 100, 4, 20);
			num5 = CC.LV;
			break;
		case "special2":
			num3 = 30; 
			num5 = CC.LV; 
			break; 
		}
		num3 += CC.Evalue(1240);
		for (int j = 0; j < num3; j++)

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

cs
			{
				break;
			}
			Point point = tp.GetRandomPoint(radius)?.GetNearestPoint(allowBlock: false, allowChara: false); 
			Point point = null; 
			point = ((!(actRef.n1 == "special2")) ? tp.GetRandomPoint(radius)?.GetNearestPoint(allowBlock: false, allowChara: false) : EClass._map.GetRandomSurface(centered: false, walkable: true, allowWater: true)?.GetNearestPoint(allowBlock: false, allowChara: false)); 
			if (point == null || !point.IsValid)
			{
				continue;

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

cs
					chara = CharaGen.Create((EClass.rnd(20) == 0) ? "imolonac" : "ygolonac");
					break;
				}
				Debug.Log(CardBlueprint.current.idEle); 
				chara = CharaGen.Create("hound", CC.LV);
				if (text.IsEmpty())
				{
					text = chara.MainElement.source.alias;
				}
				break;
			case "special2":
				chara = CharaGen.Create("cocoon"); 
				break; 
			case "yeek":
				chara = CharaGen.CreateFromFilter(SpawnListChara.Get("summon_yeek", (SourceChara.Row r) => r.race == "yeek"), power / 10);
				break;

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

cs
				continue;
			}
			int num6 = -1;
			string n = actRef.n1; 
			n = actRef.n1; 
			if (!(n == "shadow"))
			{
				if (!(n == "special")) 
				if (n == "special2") 
				{ 
					point.PlayEffect("darkwomb2"); 
				} 
				else
				{
					int num7 = 1;
					if (!CC.IsPC)

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

cs
				Hostility hostility2 = (chara.c_originalHostility = Hostility.Enemy);
				chara2.hostility = hostility2;
			}
			else if (!(actRef.n1 == "monster") || actRef.refThing == null) 
			else if (!(chara.id == "cocoon") && (!(actRef.n1 == "monster") || actRef.refThing == null)) 
			{
				chara.MakeMinion(CC);
			}

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

cs
		CC.PlaySound("scream");
		CC.PlayEffect("scream");
		{
			foreach (Point item in EClass._map.ListPointsInCircle(cc.pos, 6f, mustBeWalkable: false, los: false)) 
			foreach (Point item2 in EClass._map.ListPointsInCircle(cc.pos, 6f, mustBeWalkable: false, los: false)) 
			{
				foreach (Chara chara4 in item.Charas) 
				foreach (Chara chara4 in item2.Charas) 
				{
					if (chara4.ResistLv(957) <= 0)
					{

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

cs
		list8.Insert(0, CC);
	}
	bool flag6 = true;
	foreach (Card item2 in list8) 
	foreach (Card item3 in list8) 
	{
		if (tc == null || item2 == tc) 
		if (tc == null || item3 == tc) 
		{
			Proc(id, power, state, CC, item2, actRef); 
			if (flag2 && item2.isChara && item2 != CC) 
			Proc(id, power, state, CC, item3, actRef); 
			if (flag2 && item3.isChara && item3 != CC) 
			{
				CC.DoHostileAction(item2); 
				CC.DoHostileAction(item3); 
			}
			if (actRef.refThing == null || !(actRef.refThing.trait is TraitRod))
			{

BaseCondition

public bool isPerfume

cs

	public virtual bool IsToggle => false;

	public virtual bool WillOverride => false; 
	public virtual bool AllowMultipleInstance => false;

	public virtual bool ConsumeTurn => false;

public virtual bool CanStack(Condition c)

cs
		return true;
	}

	public virtual bool ShouldOverride(Condition c) 
	{ 
		return false; 
	} 
	public virtual bool TryMove(Point p)
	{
		return true;

BaseDebuff

public class BaseDebuff : Condition

cs
public class BaseDebuff : Condition
{
	public override bool WillOverride => true; 
	public override bool ShouldOverride(Condition c) 
	{ 
		return true; 
	} 

	public override int GetPhase()
	{

Card

public void SpawnLoot(Card origin)

cs
	{
		flag2 = false;
	}
	if (Chara.race.id == "spider" && EClass._zone.HasField(10000)) 
	{ 
		flag2 = false; 
	} 
	if (flag2 && !isUserZone)
	{
		string text = Chara.race.corpse[0];

public Thing GiveBirth(Thing t, bool effect)

cs
		return t;
	}

	public void HatchEgg() 
	{ 
		string[] array = new string[6] { "spider_queen", "spider_vampire", "spider_paralyzer", "spider_black", "spider_tarantula", "spider_spotted" }; 
		int num = EClass.rnd(array.Length); 
		Point point = pos.Copy(); 
		PlayEffect("blood").SetParticleColor(EClass.Colors.matColors[material.alias].main).Emit(50); 
		AddBlood(12, (uid % 2 == 0) ? (-1) : 3); 
		Say("egghatch"); 
		PlaySound("egghatch"); 
		Destroy(); 
		for (int i = 0; i < 1 + EClass.rnd(num + 1); i++) 
		{ 
			EClass._zone.SpawnMob(array[num], point.GetNearestPoint(allowBlock: false, allowChara: false)); 
		} 
	} 
	public Card SetHidden(bool hide = true)
	{
		isHidden = hide;

public int GetSightRadius()

cs
		{
			return EClass.player.lightRadius;
		}
		return (EClass._map.IsIndoor ? 4 : 5) + (IsPCFaction ? 1 : 0); 
		return (EClass._map.IsIndoor ? 4 : 5) + (IsPCFaction ? 1 : 0) + EvalueMax(490); 
	}

	public int GetLightRadius()

public void CalculateFOV()

cs
			power = EClass.scene.profile.global.playerLightPowerLimit;
		}
		power *= EClass.scene.profile.light.playerLightMod + (float)EClass.player.customLightMod * EClass.scene.profile.light.playerLightCustomMod;
		radius += EvalueMax(490); 
		EClass.player.lightRadius = radius;
		EClass.player.lightPower = power;
	}

CardRenderer

public override void RenderToRenderCam(RenderParam p)

cs
		Draw(p, ref v, drawShadow: false);
	}

	public void ShowBossText() 
	{ 
		if (owner.Chara.IsNeutralOrAbove()) 
		{ 
			return; 
		} 
		SplashText splashText = Util.Instantiate<SplashText>("Media/Text/SplashText_boss2", EClass.ui.rectDynamic); 
		string text = owner.Chara.Aka.ToTitleCase(wholeText: true); 
		string text2 = owner.Chara.NameSimple.ToTitleCase(); 
		if (!Lang.isBuiltin && Lang.langCode != "CN") 
		{ 
			text = owner.Chara.source.aka.ToTitleCase(wholeText: true); 
			text2 = owner.Chara.source.name.ToTitleCase(); 
		} 
		splashText.textSmall.text = text; 
		splashText.textBig.text = text2; 
		owner.Chara.bossText = false; 
		string id = owner.id; 
		if (!(id == "ungaga_pap")) 
		{ 
			if (!(id == "lurie_boss")) 
			{ 
				return; 
			} 
			if (EClass._zone is Zone_UnderseaTemple) 
			{ 
				if (EClass._map.plDay.list.Count > 0 && EClass._map.plDay.list[0].data.id != 107) 
				{ 
					EClass._zone.SetBGM(107); 
				} 
				if (EClass.game.quests.GetPhase<QuestNegotiationDarkness>() == 2) 
				{ 
					EClass.game.quests.Get<QuestNegotiationDarkness>().NextPhase(); 
				} 
			} 
			owner.PlaySound("warcry"); 
		} 
		else if (EClass._zone is Zone_DungeonMino) 
		{ 
			EClass._zone.SetBGM(107); 
		} 
	} 
	public override void Draw(RenderParam p, ref Vector3 v, bool drawShadow)
	{
		if (skip)

public override void Draw(RenderParam p, ref Vector3 v, bool drawShadow)

cs
	}
	if (isChara && owner.parent == EClass.game.activeZone)
	{
		if (owner.Chara.bossText && !EClass.ui.IsActive && !SplashText.Instance && !LayerDrama.Instance && !owner.Chara.IsNeutralOrAbove()) 
		if (owner.Chara.bossText && !EClass.ui.IsActive && !SplashText.Instance && !LayerDrama.Instance) 
		{
			SplashText splashText = Util.Instantiate<SplashText>("Media/Text/SplashText_boss2", EClass.ui.rectDynamic); 
			string text = owner.Chara.Aka.ToTitleCase(wholeText: true); 
			string text2 = owner.Chara.NameSimple.ToTitleCase(); 
			if (!Lang.isBuiltin && Lang.langCode != "CN") 
			{ 
				text = owner.Chara.source.aka.ToTitleCase(wholeText: true); 
				text2 = owner.Chara.source.name.ToTitleCase(); 
			} 
			splashText.textSmall.text = text; 
			splashText.textBig.text = text2; 
			owner.Chara.bossText = false; 
			string id = owner.id; 
			if (!(id == "ungaga_pap")) 
			{ 
				if (id == "lurie_boss") 
				{ 
					if (EClass._zone is Zone_UnderseaTemple) 
					{ 
						if (EClass._map.plDay.list.Count > 0 && EClass._map.plDay.list[0].data.id != 107) 
						{ 
							EClass._zone.SetBGM(107); 
						} 
						if (EClass.game.quests.GetPhase<QuestNegotiationDarkness>() == 2) 
						{ 
							EClass.game.quests.Get<QuestNegotiationDarkness>().NextPhase(); 
						} 
					} 
					owner.PlaySound("warcry"); 
				} 
			} 
			else if (EClass._zone is Zone_DungeonMino) 
			{ 
				EClass._zone.SetBGM(107); 
			} 
			ShowBossText(); 
		}
		if (owner.Chara.host == null)
		{

Chara

public bool CanDuplicate()

cs
	{
		return false;
	}
	if (id == "mech_scarab" && (isSynced || pos.cell.light > 0 || (!EClass._map.IsIndoor && !pos.cell.HasRoof && !EClass.world.date.IsNight))) 
	string text = id; 
	if (!(text == "mech_scarab")) 
	{ 
		if (text == "spider_queen" && (pos.cell.light > 0 || pos.IsSunLit)) 
		{ 
			return false; 
		} 
	} 
	else if (isSynced || pos.cell.light > 0 || (!EClass._map.IsIndoor && !pos.cell.HasRoof && !EClass.world.date.IsNight)) 
	{
		return false;
	}

public void TickConditions()

cs
			}
		}
	}
	if (id == "tsunami") 
	string text = id; 
	if (!(text == "cocoon")) 
	{
		if (elements.Base(79) < 30) 
		if (text == "tsunami") 
		{
			Die(); 
			return; 
			if (elements.Base(79) < 30) 
			{ 
				Die(); 
				return; 
			} 
			if (IsInCombat) 
			{ 
				elements.SetTo(79, elements.Base(79) * 3 / 4); 
			} 
		}
		if (IsInCombat) 
	} 
	else
	{ 
		if (1.0001f - (float)base.hp / (float)MaxHP > EClass.rndf(1f)) 
		{
			elements.SetTo(79, elements.Base(79) * 3 / 4); 
			HatchEgg(); 
			return; 
		}
		consumeTurn = true; 
	}
	if (!preventRegen)
	{

public void RestockEquip(bool onCreate)

cs
			flag = false;
		}
		break;
	case "azzrasizzle":
		if (onCreate) 
		{ 
			EQ_ID("staff_magius"); 
		} 
		break; 
	case "robot":
		if (onCreate) 
		{ 
			EQ_ID("sword_katana"); 
		} 
		break; 
	}
	if (!TryEquipRanged())
	{

public void TryDropBossLoot()

cs
	}
	switch (id)
	{
	case "azzrasizzle": 
		num = 5; 
		flag = (flag2 = true); 
		EClass.Sound.StopBGM(3f); 
		EClass._zone.SetBGM(1, refresh: false); 
		if (EClass.game.quests.GetPhase<QuestIntoDarkness>() == 5) 
		{ 
			EClass.game.quests.Get<QuestIntoDarkness>().UpdateOnTalk(); 
		} 
		break; 
	case "vernis_boss":
		num = 5;
		flag = (flag2 = true);

public void Kick(Chara t, bool ignoreSelf = false, bool karmaLoss = true, bool s

cs
		t.PlayEffect("kick");
	}

	public bool UseAbility(int idAct, Card tc = null, Point pos = null, bool pt = false) 
	{ 
		return UseAbility(elements.GetElement(idAct)?.act ?? ACT.Create(idAct), tc, pos, pt); 
	} 
	public bool UseAbility(string idAct, Card tc = null, Point pos = null, bool pt = false)
	{
		return UseAbility(elements.GetElement(idAct)?.act ?? ACT.Create(idAct), tc, pos, pt);

public bool UseAbility(Act a, Card tc = null, Point pos = null, bool pt = false)

cs
		RemoveCondition<ConInvisibility>();
		RemoveCondition<ConDark>();
	}
	if (!base.IsPCFactionOrMinion && a.HasTag("specialAbility")) 
	{ 
		string name = a.Name; 
		renderer.Say("| " + name + " "); 
	} 
	return flag2;
	void ForeachEnemy(Action<Chara> action)
	{

public Condition AddCondition(Condition c, bool force = false)

cs
		}
		if (conditions[j].CanStack(c))
		{
			if (conditions[j].WillOverride) 
			if (conditions[j].ShouldOverride(c)) 
			{
				if (num2 > conditions[j].value) 
				if (num2 > conditions[j].value || num2 * conditions[j].value < 0) 
				{
					conditions[j].Kill(silent: true);
					continue;

CharaBody

public void Unequip(BodySlot slot, bool refresh = true)

cs
		WidgetEquip.SetDirty();
	}
	LayerInventory.SetDirty(thing);
	if (slot.elementId == 45 && EClass.core.IsGameStarted) 
	if (!EClass.core.IsGameStarted) 
	{ 
		return; 
	} 
	if (slot.elementId == 45 || thing.HasElement(490)) 
	{
		owner.RecalculateFOV();
	}
	if (refresh && owner.isCreated && EClass.core.IsGameStarted) 
	if (refresh && owner.isCreated) 
	{
		owner.Refresh();
		if (slot.elementId == 37 && owner.HasElement(1209) && !thing.HasElement(419))

public bool Equip(Thing thing, BodySlot slot = null, bool msg = true)

cs
		LayerInventory.SetDirty(thing);
		WidgetEquip.SetDirty();
	}
	if (slot.elementId == 45 && EClass.core.IsGameStarted) 
	{ 
		owner.RecalculateFOV(); 
	} 
	if (owner.isCreated && EClass.core.IsGameStarted) 
	if (EClass.core.IsGameStarted) 
	{
		owner.Refresh(); 
		if (slot.elementId == 45 || thing.HasElement(490)) 
		{ 
			owner.RecalculateFOV(); 
		} 
		if (owner.isCreated) 
		{ 
			owner.Refresh(); 
		} 
	}
	if (owner.isCreated)
	{

ConBuffStats

public override ConditionType Type

cs

	public bool isDebuff => base.refVal2 == 222;

	public override bool WillOverride => true; 
	public override bool AllowMultipleInstance => true;

	public override bool UseElements => true;

public override int EvaluateTurn(int p)

cs
		return base.EvaluateTurn(p) * ((base.refVal == 79) ? 50 : 100) / 100;
	}

	public override bool ShouldOverride(Condition c) 
	{ 
		return true; 
	} 
	public override int GetPhase()
	{
		return 0;

ConDark

public class ConDark : Condition

cs
public class ConDark : Condition
{
	public override bool WillOverride => true; 
	public override bool ShouldRefresh => true;

	public override bool ShouldOverride(Condition c) 
	{ 
		return true; 
	} 
	public override int GetPhase()
	{
		return 0;

ConParalyze

public class ConParalyze : BadCondition

cs

	public override bool ConsumeTurn => true;

	public override bool WillOverride => true; 
	public override int GetPhase()
	{
		return 0;
	}

	public override bool ShouldOverride(Condition c) 
	{ 
		return true; 
	} 
	public override void SetOwner(Chara _owner, bool onDeserialize = false)
	{
		base.SetOwner(_owner);

ConSilence

public class ConSilence : BaseDebuff

cs
public class ConSilence : BaseDebuff
{
	public override bool WillOverride => true; 
}

ConStrife

public class ConStrife : BaseBuff

cs

	public override string TextDuration => "Lv." + lv;

	public override bool WillOverride => false; 
	public int ExpToNext => (lv + 1) * (lv + 1);

	public override bool ShouldOverride(Condition c) 
	{ 
		return false; 
	} 
	public override bool CanStack(Condition c)
	{
		return true;

ConSupress

public class ConSupress : BaseDebuff

cs
public class ConSupress : BaseDebuff
{
	public override bool WillOverride => true; 
	public override BaseNotification CreateNotification()
	{
		return new NotificationCondition

ConWait

public class ConWait : Condition

cs
{
	public override bool ConsumeTurn => true;

	public override bool WillOverride => true; 
	public override int GetPhase()
	{
		return 0;
	}
	public override bool ShouldOverride(Condition c) 
	{ 
		return true; 
	} 
}

CoreDebug

public void QuickStart()

cs
		EClass.game.quests.Add("into_darkness");
		EClass.game.quests.Add("demitas_spellwriter");
		EClass.game.quests.Add("negotiation_darkness");
		EClass.game.quests.Start("into_darkness", EClass.game.cards.globalCharas.Find("kettle")); 
		EClass.game.quests.Get<QuestIntoDarkness>().phase = 4; 
		EClass.player.ModKeyItem("potion_sorin", 1, msg: false); 
		EClass.player.ModKeyItem("potion_farris", 1, msg: false); 
	}
	static Thing AddAbility(string id)
	{

public void UpdateInput()

cs
	}
	if (Input.GetKeyDown(KeyCode.F4))
	{
		for (int j = 0; j < 10; j++) 
		{ 
			EClass._zone.SpawnMob(EClass.pc.pos.GetNearestPoint(allowBlock: false, allowChara: false), new SpawnSetting
			{ 
				id = "gagu", 
				isBoss = true, 
				fixedLv = EClass._zone.DangerLv 
			}); 
		} 
		string text2 = new string[4] { "エターナルフォースブリザード", "Eternal Force Blizzard", "ぬるぽ", "Null Pointer" }.RandomItem(); 
		EClass.pc.renderer.Say("| " + text2 + " "); 
		return;
	}
	if (Input.GetKeyDown(KeyCode.F5))
	{
		string text2 = (Input.GetKey(KeyCode.LeftControl) ? "quick3" : (Input.GetKey(KeyCode.LeftShift) ? "quick2" : "quick")); 
		if (text2 != Game.id) 
		string text3 = (Input.GetKey(KeyCode.LeftControl) ? "quick3" : (Input.GetKey(KeyCode.LeftShift) ? "quick2" : "quick")); 
		if (text3 != Game.id) 
		{
			IO.DeleteDirectory(CorePath.RootSave + text2); 
			IO.CopyAll(CorePath.RootSave + Game.id, CorePath.RootSave + text2); 
			Game.id = text2; 
			IO.DeleteDirectory(CorePath.RootSave + text3); 
			IO.CopyAll(CorePath.RootSave + Game.id, CorePath.RootSave + text3); 
			Game.id = text3; 
		}
		EClass.game.isCloud = false;
		EClass.game.Save();

public void UpdateInput()

cs
		if (Input.GetKey(KeyCode.F9))
		{
			EClass.scene.paused = false;
			for (int k = 0; k < advanceMin; k++) 
			for (int j = 0; j < advanceMin; j++) 
			{
				EClass.game.updater.FixedUpdate();
			}

DOMAIN

``

cs

public class DOMAIN
{
	public const int domHarmony = 815; 
	public const int domFaith = 802; 

	public const int domEarth = 812; 
	public const int domSurvival = 801; 

	public const int domHealing = 811; 
	public const int domTest = 800; 

	public const int domLuck = 810; 
	public const int domElement = 806; 

	public const int domMachine = 809; 
	public const int domMiracle = 803; 

	public const int domHarvest = 808; 
	public const int domArcane = 804; 

	public const int domTest = 800; 
	public const int domComm = 805; 

	public const int domWind = 807;

	public const int domElement = 806; 
	public const int domSurvival = 801; 
	public const int domHarvest = 808; 

	public const int domComm = 805; 
	public const int domLuck = 810; 

	public const int domArcane = 804; 
	public const int domHealing = 811; 

	public const int domMiracle = 803; 
	public const int domEarth = 812; 

	public const int domFaith = 802; 
	public const int domOblivion = 813; 

	public const int domEyth = 814;

	public const int domOblivion = 813; 
	public const int domHarmony = 815; 
	public const int domMachine = 809; 

	public static readonly int[] IDS = new int[16]
	{
		815, 812, 811, 810, 809, 808, 800, 807, 806, 801, 
		805, 804, 803, 802, 814, 813
		802, 801, 800, 806, 803, 804, 805, 807, 808, 810, 
		811, 812, 813, 814, 815, 809
	};
}
public class Domain : EClass

DramaManager

public void ParseLine(Dictionary<string, string> item)

cs
		{
			AddEvent(delegate
			{
				EMono.player.ModKeyItem(p2); 
				int num2 = p3.ToInt(); 
				EMono.player.ModKeyItem(p2, (num2 == 0) ? 1 : num2); 
			});
		}
		break;

public void ParseLine(Dictionary<string, string> item)

cs
			EMono.BranchOrHomeBranch.resources.Get(p2).Mod(p3.ToInt());
		});
		break;
	case "bossText":
		AddEvent(delegate
		{ 
			foreach (Chara chara3 in EMono._map.charas) 
			{ 
				if (chara3.bossText) 
				{ 
					chara3.renderer.ShowBossText(); 
				} 
			} 
		}); 
		break; 
	case "shake":
		AddEvent(delegate
		{

public void ParseLine(Dictionary<string, string> item)

cs
		AddEvent(delegate
		{
			Thing thing = EMono.pc.things.Find(p2);
			int num2 = p3.ToInt(); 
			thing?.ModNum((num2 == 0) ? (-1) : (-num2)); 
			int num3 = p3.ToInt(); 
			thing?.ModNum((num3 == 0) ? (-1) : (-num3)); 
		});
		break;
	case "destroyItem":

DramaOutcome

public void event_swordkeeper()

cs
		EMono._zone.AddChara("swordkeeper", 45, 52);
	}

	public void event_az() 
	{ 
		Chara chara = EMono._zone.AddChara("azzrasizzle", new Point(11, 15).GetNearestPoint(allowBlock: false, allowChara: false)); 
		chara.LookAt(EMono.pc); 
		for (int i = 0; i < 6; i++) 
		{ 
			EMono._zone.AddChara("cocoon", chara.pos.GetRandomPointInRadius(3, 5, requireLos: false, allowChara: false)?.GetNearestPoint(allowBlock: false, allowChara: false) ?? chara.pos); 
		} 
	} 
	public void event_az2() 
	{ 
		EMono._map.FindChara("azzrasizzle")?.TalkRaw("azaz".lang()); 
	} 
	public void event_az3() 
	{ 
		Chara chara = EMono._map.FindChara("azzrasizzle"); 
		if (chara != null) 
		{ 
			chara.DoHostileAction(EMono.pc); 
			chara.UseAbility(6801); 
		} 
	} 
	public void upgrade_miscreation()
	{
		Chara chara = EMono.pc.party.members.Find((Chara c) => !c.IsPC && c.HasElement(1248));

ELEMENT

``

cs

public class ELEMENT
{
	public const int difficulty = 765; 
	public const int air = 763; 
	public const int cute = 752; 

	public const int roasted = 762; 
	public const int antidote = 753; 

	public const int recharge = 761; 
	public const int nerve = 754; 

	public const int purity = 759; 
	public const int blood = 755; 

	public const int hotspring = 756;

	public const int roasted = 762; 
	public const int stimulant = 760;

	public const int blood = 755; 
	public const int recharge = 761; 

	public const int nerve = 754; 
	public const int air = 763; 

	public const int antidote = 753; 
	public const int difficulty = 765; 

	public const int comfort = 750; 
	public const int rare = 751; 

	public const int cute = 752; 
	public const int purity = 759; 

	public const int rare = 751; 
	public const int comfort = 750; 

	public const int _void = 0;

	public const int quality = 2; 
	public const int lv = 1; 
	public const int old_antidote = 25; 

	public const int d = 3; 
	public const int piety = 85; 

	public const int socket = 5; 
	public const int race = 29; 

	public const int nutrition = 10; 
	public const int cure = 26; 

	public const int weight = 11; 
	public const int old_heal = 24; 

	public const int size = 12; 
	public const int old_detox = 23; 

	public const int hardness = 13; 
	public const int cut = 22; 

	public const int water = 15; 
	public const int fire = 21; 

	public const int heat = 16; 
	public const int taste = 18; 

	public const int decay = 17;

	public const int taste = 18; 
	public const int heat = 16; 
	public const int poison = 20; 

	public const int growth = 14;

	public const int fire = 21; 
	public const int lv = 1; 

	public const int cut = 22; 
	public const int water = 15; 

	public const int old_detox = 23; 
	public const int d = 3; 

	public const int old_heal = 24; 
	public const int socket = 5; 

	public const int old_antidote = 25; 
	public const int quality = 2; 

	public const int cure = 26; 
	public const int weight = 11; 

	public const int race = 29; 
	public const int size = 12; 

	public const int piety = 85; 
	public const int hardness = 13; 

	public const int poison = 20; 
	public const int nutrition = 10; 

	public static readonly int[] IDS = new int[36]
	{
		765, 763, 762, 761, 759, 756, 760, 755, 754, 753, 
		750, 752, 751, 0, 2, 1, 3, 5, 10, 11, 
		12, 13, 15, 16, 17, 18, 14, 21, 22, 23, 
		24, 25, 26, 29, 85, 20
		752, 753, 754, 755, 756, 762, 760, 761, 763, 765, 
		751, 759, 750, 0, 25, 85, 29, 26, 24, 23, 
		22, 21, 18, 17, 16, 20, 14, 1, 15, 3, 
		5, 2, 11, 12, 13, 10
	};
}
public class Element : EClass

public void _WriteNote(UINote n, Chara c, Act act)

cs
		n.Space();
		n.AddText("isGlobalAct".lang());
	}
	if (cost.type == Act.CostType.None || cost.cost == 0) 
	if (cost.type == Act.CostType.None || cost.cost == 0 || act.owner is ElementContainerField) 
	{
		return;
	}

public void AddHeaderAbility(UINote n)

cs

	public void _WriteNote(UINote n, ElementContainer owner, Action<UINote> onWriteNote, bool isRef, bool addHeader = true)
	{
		bool flag = this is FieldEffect && owner.Chara == null; 
		if (addHeader)
		{
			if (isRef)

public void _WriteNote(UINote n, ElementContainer owner, Action<UINote> onWriteN

cs
			UIText.globalSizeMod = -2;
			n.AddHeader("prevElement".lang(FullName));
		}
		else if (this is Act) 
		else if (this is Act && !flag) 
		{
			AddHeaderAbility(n);
			n.Space(8);

public void _WriteNote(UINote n, ElementContainer owner, Action<UINote> onWriteN

cs
	{
		num += EClass.pc.faction.charaElements.Value(id);
	}
	bool flag = ShowValue; 
	bool flag2 = ShowRelativeAttribute; 
	bool flag2 = ShowValue; 
	bool flag3 = ShowRelativeAttribute && !flag; 
	if (source.category == "landfeat")
	{
		flag = false; 
		flag2 = false;
		flag3 = false; 
	}
	if (this is Act) 
	{ 
		Act act = ACT.Create(source.id); 
		UIItem uIItem = n.AddItem("ItemAbility"); 
		uIItem.text1.text = "vValue".lang(DisplayValue.ToString() ?? "", ValueWithoutLink + ((num == 0) ? "" : ((num > 0) ? (" + " + num) : (" - " + -num)))); 
		uIItem.text2.text = act.TargetType.ToString().lang(); 
		uIItem.text3.text = ((this is Spell) ? (owner.Chara.CalcCastingChance(owner.GetOrCreateElement(act.source.id)) + "%") : "-") ?? ""; 
	} 
	else if (flag) 
	if (!flag) 
	{
		n.AddTopic("TopicLeft", "vCurrent".lang(), "vValue".lang(DisplayValue.ToString() ?? "", ValueWithoutLink + ((num == 0) ? "" : ((num > 0) ? (" + " + num) : (" - " + -num))))); 
		if (ShowPotential) 
		if (this is Act) 
		{
			num = vTempPotential; 
			n.AddTopic("TopicLeft", "vPotential".lang(), "vValue".lang(Potential.ToString() ?? "", vPotential + vSourcePotential + MinPotential + ((num == 0) ? "" : ((num > 0) ? (" + " + num) : (" - " + -num))))); 
			Act act = ACT.Create(source.id); 
			UIItem uIItem = n.AddItem("ItemAbility"); 
			uIItem.text1.text = "vValue".lang(DisplayValue.ToString() ?? "", ValueWithoutLink + ((num == 0) ? "" : ((num > 0) ? (" + " + num) : (" - " + -num)))); 
			uIItem.text2.text = act.TargetType.ToString().lang(); 
			uIItem.text3.text = ((this is Spell && owner.Chara != null) ? (owner.Chara.CalcCastingChance(owner.GetOrCreateElement(act.source.id)) + "%") : "-") ?? ""; 
		} 
		else if (flag2) 
		{ 
			n.AddTopic("TopicLeft", "vCurrent".lang(), "vValue".lang(DisplayValue.ToString() ?? "", ValueWithoutLink + ((num == 0) ? "" : ((num > 0) ? (" + " + num) : (" - " + -num))))); 
			if (ShowPotential) 
			{ 
				num = vTempPotential; 
				n.AddTopic("TopicLeft", "vPotential".lang(), "vValue".lang(Potential.ToString() ?? "", vPotential + vSourcePotential + MinPotential + ((num == 0) ? "" : ((num > 0) ? (" + " + num) : (" - " + -num))))); 
			} 
			_ = PotentialAsStock; 
		}
		_ = PotentialAsStock; 
	}
	if (flag2 && !source.aliasParent.IsEmpty()) 
	if (flag3 && !source.aliasParent.IsEmpty()) 
	{
		Element element = Create(source.aliasParent);
		UIItem uIItem2 = n.AddItem("ItemRelativeAttribute");
		uIItem2.text1.SetText(element.Name);
		element.SetImage(uIItem2.image1);
		bool flag3 = source.lvFactor > 0 && this is Act; 
		uIItem2.text2.SetActive(flag3); 
		uIItem2.text3.SetActive(flag3); 
		if (flag3) 
		bool flag4 = source.lvFactor > 0 && this is Act; 
		uIItem2.text2.SetActive(flag4); 
		uIItem2.text3.SetActive(flag4); 
		if (flag4) 
		{
			uIItem2.text2.SetText(GetPower(EClass.pc).ToString() ?? "");
		}

ENC

public class ENC

cs
public class ENC
{
	public const int living = 653; 
	public const int eco = 652; 
	public const int negateParalysis = 422; 

	public const int r_PV = 651; 
	public const int seeInvisible = 416; 

	public const int r_DV = 650; 
	public const int loving = 417; 

	public const int r_mana = 641; 
	public const int innocence = 418; 

	public const int mod_flurry = 621; 
	public const int encTail = 419; 

	public const int mod_frustration = 624; 
	public const int invisibility = 415; 

	public const int mod_chaser = 620; 
	public const int negatePoison = 420; 

	public const int mod_feint = 623; 
	public const int negateBlind = 421; 

	public const int mod_cleave = 622; 
	public const int encRagnarok = 667; 

	public const int noDamage = 654; 
	public const int negateSleep = 424; 

	public const int r_life = 640; 
	public const int planter = 665; 

	public const int onlyPet = 655; 
	public const int boostMachine = 664; 

	public const int convertCold = 851; 
	public const int eheluck = 663; 

	public const int absorbHP = 660; 
	public const int absorbSP = 662; 

	public const int absorbMP = 661;

	public const int absorbSP = 662; 
	public const int eheluck = 663; 
	public const int absorbHP = 660; 

	public const int boostMachine = 664; 
	public const int encHit = 414; 

	public const int planter = 665; 
	public const int permaCurse = 656; 

	public const int meleeDistance = 666;

	public const int encRagnarok = 667; 
	public const int slowCorruption = 412; 

	public const int convertFire = 850; 
	public const int negateTeleport = 400; 

	public const int mod_talisman = 609; 
	public const int throwReturn = 410; 
	public const int negateFear = 423; 

	public const int convertImpact = 865;

	public const int convertLightning = 852;

	public const int permaCurse = 656; 
	public const int convertCold = 851; 

	public const int mod_splash = 608; 
	public const int counter = 380; 

	public const int negateShockwave = 430; 
	public const int basher = 381; 

	public const int mod_drill = 606; 
	public const int rusher = 382; 

	public const int loving = 417; 
	public const int redirect_blaser = 383; 

	public const int innocence = 418; 
	public const int encSpell = 411; 

	public const int encTail = 419; 
	public const int onlyPet = 655; 

	public const int negatePoison = 420; 
	public const int searchRange = 402; 

	public const int negateBlind = 421; 
	public const int expMod = 403; 

	public const int negateParalysis = 422; 
	public const int weightMod = 404; 

	public const int negateFear = 423; 
	public const int slowDecay = 405; 

	public const int negateSleep = 424; 
	public const int resMutation = 406; 

	public const int negateConfusion = 425; 
	public const int travelSpeed = 407; 

	public const int negateSteal = 426; 
	public const int resWeather = 408; 

	public const int negateNeckHunt = 427; 
	public const int corruption = 409; 

	public const int allNeckHunt = 428; 
	public const int levitation = 401; 

	public const int breathing = 429; 
	public const int noDamage = 654; 

	public const int negateSunburn = 431; 
	public const int convertFire = 850; 

	public const int sanctified = 432; 
	public const int eco = 652; 

	public const int seeInvisible = 416; 
	public const int sustain_CHA = 447; 

	public const int invisibility = 415; 
	public const int sustain_figure = 450; 

	public const int encHit = 414; 
	public const int bane_dragon = 460; 

	public const int slowCorruption = 412; 
	public const int bane_undead = 461; 

	public const int counter = 380; 
	public const int bane_fairy = 462; 

	public const int basher = 381; 
	public const int bane_animal = 463; 

	public const int rusher = 382; 
	public const int bane_man = 464; 

	public const int redirect_blaser = 383; 
	public const int bane_machine = 465; 

	public const int negateTeleport = 400; 
	public const int bane_god = 466; 

	public const int levitation = 401; 
	public const int bane_fish = 467; 

	public const int searchRange = 402; 
	public const int bane_all = 468; 

	public const int defense_range = 435; 
	public const int revealFaith = 481; 

	public const int expMod = 403; 
	public const int force_weapon = 482; 

	public const int slowDecay = 405; 
	public const int optimizeMana = 483; 

	public const int resMutation = 406; 
	public const int slot_rune = 484; 

	public const int travelSpeed = 407; 
	public const int sustain_MAG = 446; 

	public const int mod_scatter = 607; 
	public const int sustain_WIL = 445; 

	public const int corruption = 409; 
	public const int sustain_LER = 444; 

	public const int throwReturn = 410; 
	public const int sustain_PER = 443; 

	public const int encSpell = 411; 
	public const int living = 653; 

	public const int weightMod = 404; 
	public const int negateSteal = 426; 

	public const int guts = 436; 
	public const int negateNeckHunt = 427; 

	public const int resWeather = 408; 
	public const int allNeckHunt = 428; 

	public const int knightly = 438; 
	public const int breathing = 429; 

	public const int strongStomach = 480; 
	public const int negateShockwave = 430; 

	public const int revealFaith = 481; 
	public const int negateSunburn = 431; 

	public const int force_weapon = 482; 
	public const int nonLethal = 485; 

	public const int optimizeMana = 483; 
	public const int sanctified = 432; 

	public const int slot_rune = 484; 
	public const int guts = 436; 

	public const int nonLethal = 485; 
	public const int parry = 437; 

	public const int safetyMeasure = 486; 
	public const int knightly = 438; 

	public const int bane_all = 468; 
	public const int negateParry = 439; 

	public const int creativeChef = 487; 
	public const int sustain_STR = 440; 

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

	public const int mod_reload = 601; 
	public const int sustain_DEX = 442; 

	public const int mod_rapid = 602; 
	public const int defense_range = 435; 

	public const int mod_ammo_knockback = 603; 
	public const int safetyMeasure = 486; 

	public const int mod_ammo_recover = 604; 
	public const int strongStomach = 480; 

	public const int mod_precision = 605; 
	public const int deathagony = 488; 

	public const int parry = 437; 
	public const int mod_chaser = 620; 

	public const int deathagony = 488; 
	public const int negateConfusion = 425; 

	public const int bane_fish = 467; 
	public const int mod_feint = 623; 

	public const int music_drunk = 489; 
	public const int mod_frustration = 624; 

	public const int bane_machine = 465; 
	public const int r_life = 640; 

	public const int negateParry = 439; 
	public const int r_mana = 641; 

	public const int bane_god = 466; 
	public const int creativeChef = 487; 

	public const int sustain_STR = 440; 
	public const int r_DV = 650; 

	public const int sustain_END = 441; 
	public const int mod_talisman = 609; 

	public const int sustain_PER = 443; 
	public const int mod_splash = 608; 

	public const int sustain_LER = 444; 
	public const int mod_flurry = 621; 

	public const int sustain_WIL = 445; 
	public const int mod_drill = 606; 

	public const int sustain_DEX = 442; 
	public const int mod_scatter = 607; 

	public const int sustain_CHA = 447; 
	public const int mod_rapid = 602; 

	public const int sustain_figure = 450; 
	public const int music_drunk = 489; 

	public const int bane_dragon = 460; 
	public const int farsee = 490; 

	public const int bane_man = 464; 
	public const int mod_ammo = 600; 

	public const int bane_undead = 461; 
	public const int r_PV = 651; 

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

	public const int sustain_MAG = 446; 
	public const int mod_precision = 605; 

	public const int bane_animal = 463; 
	public const int mod_cleave = 622; 
	public const int mod_ammo_knockback = 603; 
	public const int mod_ammo_recover = 604; 

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

EffectId

public enum EffectId

cs
	StripBlessing = 309,
	Flare = 310,
	GravityGun = 311,
	TransBlood = 312
	TransBlood = 312, 
	Field = 313
}

+ElementContainerField

File Created
cs
public class ElementContainerField : ElementContainer
{
}

FACTION

``

cs

public class FACTION
{
	public const int bfForest = 3601; 
	public const int bfLandmark3 = 3782; 

	public const int bfSnow = 3602; 
	public const int bfLandmark1 = 3780; 

	public const int bfHill = 3603; 
	public const int bfBreed = 3710; 

	public const int bfBeach = 3604; 
	public const int bfLandmark4 = 3783; 

	public const int bfUndersea = 3606; 
	public const int bfMonster = 3707; 

	public const int bfFertile = 3700; 
	public const int bfFreshAir = 3708; 

	public const int bfGeyser = 3701; 
	public const int bfLandmark5 = 3784; 

	public const int bfPlain = 3600; 
	public const int bfLandmark2 = 3781; 

	public const int bfRuin = 3702; 
	public const int bfBasin = 3709; 

	public const int bfSea = 3605; 
	public const int fLuck = 2118; 

	public const int bfCave = 3500; 
	public const int fAdmin = 2115; 

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

	public const int fSafety = 2205; 
	public const int fLoyal = 2117; 

	public const int fFood = 2204; 
	public const int fTaxEvasion = 2119; 

	public const int fMoral = 2203; 
	public const int fHeirloom = 2120; 

	public const int fPromo = 2202; 
	public const int fSoil = 2200; 

	public const int fElec = 2201;

	public const int fSoil = 2200; 
	public const int fPromo = 2202; 

	public const int fTaxEvasion = 2119; 
	public const int fRation = 2207; 

	public const int fLuck = 2118; 
	public const int fMoral = 2203; 

	public const int fLoyal = 2117; 
	public const int fFood = 2204; 

	public const int fEducation = 2116; 
	public const int fAttraction = 2206; 

	public const int bfTranquil = 3703; 
	public const int bfCoal = 3800; 

	public const int fAttraction = 2206; 
	public const int fSafety = 2205; 

	public const int bfVolcano = 3704; 
	public const int fConstruction = 2003; 

	public const int bfStart = 3900; 
	public const int bfMushroom = 3801; 

	public const int bfFish = 3706; 
	public const int bfChitin = 3805; 

	public const int fAdmin = 2115; 
	public const int bfGum = 3803; 

	public const int actBuildInspect = 4006; 
	public const int bfSilica = 3802; 

	public const int actBuildRecipe = 4005; 
	public const int bfPlain = 3600; 

	public const int actBuildCollect = 4004; 
	public const int bfForest = 3601; 

	public const int actBuildAnywhere = 4003; 
	public const int bfSnow = 3602; 

	public const int actBuildTerrain = 4002; 
	public const int bfHill = 3603; 

	public const int actBuildMine = 4001; 
	public const int bfBeach = 3604; 

	public const int actBuildCut = 4000; 
	public const int bfSea = 3605; 

	public const int bfChitin = 3805; 
	public const int bfFertile = 3700; 

	public const int bfIce = 3804; 
	public const int bfGeyser = 3701; 

	public const int bfGum = 3803; 
	public const int bfRuin = 3702; 

	public const int bfSilica = 3802; 
	public const int bfTranquil = 3703; 

	public const int bfMushroom = 3801; 
	public const int bfVolcano = 3704; 

	public const int bfCoal = 3800; 
	public const int bfUndersea = 3606; 

	public const int bfLandmark5 = 3784; 
	public const int bfFish = 3706; 

	public const int bfLandmark4 = 3783; 
	public const int bfIce = 3804; 

	public const int bfLandmark3 = 3782; 
	public const int bfHunt = 3705; 

	public const int bfLandmark2 = 3781; 
	public const int bfStart = 3900; 

	public const int bfLandmark1 = 3780; 
	public const int actBuildCut = 4000; 

	public const int bfBreed = 3710; 
	public const int actBuildMine = 4001; 

	public const int bfBasin = 3709; 
	public const int actBuildTerrain = 4002; 

	public const int bfFreshAir = 3708; 
	public const int bfCave = 3500; 

	public const int bfMonster = 3707; 
	public const int actBuildCollect = 4004; 

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

	public const int fConstruction = 2003; 
	public const int actBuildInspect = 4006; 

	public const int fRation = 2207; 
	public const int actBuildAnywhere = 4003; 

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

FEAT

``

cs

public class FEAT
{
	public const int featSplit = 1222; 
	public const int featSTR = 1620; 

	public const int featDefender = 1649; 
	public const int featSPD = 1629; 

	public const int featRapidMagic = 1648; 
	public const int featLuck = 1628; 

	public const int featSummoner = 1647; 
	public const int featCHA = 1627; 

	public const int featLonelySoul = 1646; 
	public const int featWIL = 1626; 

	public const int featParty = 1645; 
	public const int featMAG = 1625; 

	public const int featBodyParts = 1644; 
	public const int featLER = 1624; 

	public const int featSorter = 1643; 
	public const int featPER = 1623; 

	public const int featSleeper = 1642; 
	public const int featEND = 1622; 

	public const int featResCurse = 1641; 
	public const int featDefense = 1631; 

	public const int featAnimalLover = 1640; 
	public const int featDEX = 1621; 

	public const int featFaith = 1636; 
	public const int featHardy = 1630; 

	public const int featMartial = 1635; 
	public const int featFoxMaid = 1415; 

	public const int featNegotiate = 1634; 
	public const int featMana = 1611; 

	public const int featSpotting = 1633; 
	public const int featLife = 1610; 

	public const int featGourmet = 1650; 
	public const int featHealer = 1422; 
	public const int featManaMeat = 1421; 
	public const int featExecutioner = 1420; 
	public const int featMilitant = 1419; 
	public const int featSwordsage = 1418; 
	public const int featWitch = 1417; 
	public const int featInquisitor = 1416; 

	public const int featEvade = 1632;

	public const int featHardy = 1630; 
	public const int featWhiteVixen = 1414; 

	public const int featSPD = 1629; 
	public const int featFairysan = 1413; 

	public const int featLuck = 1628; 
	public const int featStamina = 1612; 

	public const int featCHA = 1627; 
	public const int featSpotting = 1633; 

	public const int featWIL = 1626; 
	public const int featDefender = 1649; 

	public const int featMAG = 1625; 
	public const int featMartial = 1635; 

	public const int featLER = 1624; 
	public const int featLuckyCat = 1412; 

	public const int featPER = 1623; 
	public const int featComat = 1750; 

	public const int featEND = 1622; 
	public const int featGoldenFinger = 1662; 

	public const int featDEX = 1621; 
	public const int featDismantler = 1661; 

	public const int featSTR = 1620; 
	public const int featLooter = 1660; 

	public const int featStamina = 1612; 
	public const int featFisher = 1659; 

	public const int featMana = 1611; 
	public const int featChef = 1658; 

	public const int featLife = 1610; 
	public const int featManaCost = 1657; 

	public const int featDefense = 1631; 
	public const int featScavenger = 1656; 

	public const int featMagicManner = 1651; 
	public const int featModelBeliever = 1655; 

	public const int featRapidArrow = 1652; 
	public const int featHeavyCasting = 1654; 

	public const int featDreamWaker = 1653;

	public const int featSpike = 1221; 
	public const int featRapidArrow = 1652; 

	public const int featSlowFood = 1200; 
	public const int featMagicManner = 1651; 

	public const int featManaBond = 1201; 
	public const int featGourmet = 1650; 

	public const int featFastLearner = 1202; 
	public const int featRapidMagic = 1648; 

	public const int featGrowParts = 1203; 
	public const int featSummoner = 1647; 

	public const int featFairyWeak = 1204; 
	public const int featLonelySoul = 1646; 

	public const int featCannibalism = 1205; 
	public const int featParty = 1645; 

	public const int featMelilithCurse = 1206; 
	public const int featBodyParts = 1644; 

	public const int featFoxBless = 1207; 
	public const int featSorter = 1643; 

	public const int featFoxLearn = 1208; 
	public const int featSleeper = 1642; 

	public const int featFluffyTail = 1209; 
	public const int featResCurse = 1641; 

	public const int featUndead = 1210; 
	public const int featAnimalLover = 1640; 

	public const int featSnail = 1211; 
	public const int featFaith = 1636; 

	public const int featFairyResist = 1212; 
	public const int featNegotiate = 1634; 

	public const int featElea = 1213; 
	public const int featEarthStrength = 1411; 

	public const int featManaPrecision = 1214; 
	public const int featHeavyEater = 1234; 

	public const int featDwarf = 1215; 
	public const int featBoost = 1409; 

	public const int featHeavyCasting = 1654; 
	public const int featAdam = 1230; 

	public const int featModelBeliever = 1655; 
	public const int featNirvana = 1231; 

	public const int featScavenger = 1656; 
	public const int featBaby = 1232; 

	public const int featManaCost = 1657; 
	public const int featCosmicHorror = 1233; 

	public const int featChef = 1658; 
	public const int featLightEater = 1235; 

	public const int featFisher = 1659; 
	public const int featNorland = 1236; 

	public const int featHealer = 1422; 
	public const int featRoran = 1237; 

	public const int featLooter = 1660; 
	public const int featElder = 1238; 

	public const int featGoldenFinger = 1662; 
	public const int featDemon = 1239; 

	public const int featFate = 1220; 
	public const int featMassSummoner = 1240; 

	public const int featElderCrab = 1219; 
	public const int featMeatCushion = 1241; 

	public const int featMetal = 1218; 
	public const int featGeneSlot = 1242; 

	public const int featGolem = 1217; 
	public const int featLittleOne = 1229; 

	public const int featSuccubus = 1216; 
	public const int featEternalYouth = 1243; 

	public const int featDismantler = 1661; 
	public const int featReboot = 1410; 

	public const int featManaMeat = 1421; 
	public const int featPegasus = 1246; 

	public const int featComat = 1750; 
	public const int featLibra = 1247; 

	public const int featMilitant = 1419; 
	public const int featMiscreation = 1248; 

	public const int featBloodBond = 1249;

public class FEAT

cs

	public const int featGoddess = 1290;

	public const int featGod_element1 = 1300; 
	public const int featCentaur = 1244; 

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

	public const int featGod_wind1 = 1310; 
	public const int featDemigod = 1228; 

	public const int featGod_machine1 = 1315; 
	public const int featUnderground = 1226; 

	public const int featGod_harvest1 = 1325; 
	public const int featSlowFood = 1200; 

	public const int featGod_luck1 = 1330; 
	public const int featManaBond = 1201; 

	public const int featGod_harmony1 = 1335; 
	public const int featFastLearner = 1202; 

	public const int featGod_oblivion1 = 1340; 
	public const int featGrowParts = 1203; 

	public const int featGod_trickery1 = 1345; 
	public const int featFairyWeak = 1204; 

	public const int featGod_moonshadow1 = 1350; 
	public const int featCannibalism = 1205; 

	public const int featGod_strife1 = 1355; 
	public const int featMelilithCurse = 1206; 

	public const int featWarrior = 1400; 
	public const int featFoxBless = 1207; 

	public const int featThief = 1401; 
	public const int featFoxLearn = 1208; 

	public const int featWizard = 1402; 
	public const int featFluffyTail = 1209; 

	public const int featFarmer = 1403; 
	public const int featUndead = 1210; 

	public const int featMiscreation = 1248; 
	public const int featSnail = 1211; 

	public const int featArcher = 1404; 
	public const int featServant = 1227; 

	public const int featLibra = 1247; 
	public const int featFairyResist = 1212; 

	public const int featSevenSense = 1245; 
	public const int featManaPrecision = 1214; 

	public const int featAdam = 1230; 
	public const int featDwarf = 1215; 

	public const int featLittleOne = 1229; 
	public const int featSuccubus = 1216; 

	public const int featExecutioner = 1420; 
	public const int featGolem = 1217; 

	public const int featDemigod = 1228; 
	public const int featMetal = 1218; 

	public const int featServant = 1227; 
	public const int featElderCrab = 1219; 

	public const int featUnderground = 1226; 
	public const int featFate = 1220; 

	public const int featLoyal = 1225; 
	public const int featSpike = 1221; 

	public const int featShiva = 1224; 
	public const int featSplit = 1222; 

	public const int featAcidBody = 1223;

	public const int featNirvana = 1231; 
	public const int featBaby = 1232; 
	public const int featCosmicHorror = 1233; 
	public const int featShiva = 1224; 

	public const int featHeavyEater = 1234; 
	public const int featLoyal = 1225; 

	public const int featLightEater = 1235; 
	public const int featElea = 1213; 

	public const int featNorland = 1236; 
	public const int featGod_earth1 = 1305; 

	public const int featRoran = 1237; 
	public const int featSevenSense = 1245; 

	public const int featElder = 1238; 
	public const int featGod_machine1 = 1315; 

	public const int featDemon = 1239; 
	public const int featPaladin = 1407; 

	public const int featMassSummoner = 1240; 
	public const int featTourist = 1406; 

	public const int featMeatCushion = 1241; 
	public const int featPianist = 1405; 

	public const int featGeneSlot = 1242; 
	public const int featArcher = 1404; 

	public const int featEternalYouth = 1243; 
	public const int featFarmer = 1403; 

	public const int featCentaur = 1244; 
	public const int featWizard = 1402; 

	public const int featPegasus = 1246; 
	public const int featThief = 1401; 

	public const int featPianist = 1405; 
	public const int featWarrior = 1400; 

	public const int featGod_healing1 = 1320; 
	public const int featGod_strife1 = 1355; 

	public const int featPaladin = 1407; 
	public const int featGod_moonshadow1 = 1350; 

	public const int featSwordsage = 1418; 
	public const int featGod_wind1 = 1310; 

	public const int featWitch = 1417; 
	public const int featGod_trickery1 = 1345; 

	public const int featInquisitor = 1416; 
	public const int featGod_oblivion1 = 1340; 

	public const int featFoxMaid = 1415; 
	public const int featGod_harmony1 = 1335; 

	public const int featWhiteVixen = 1414; 
	public const int featGod_luck1 = 1330; 

	public const int featTourist = 1406; 
	public const int featGod_harvest1 = 1325; 

	public const int featLuckyCat = 1412; 
	public const int featGod_healing1 = 1320; 

	public const int featPaladin2 = 1408;

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

FOOD

public class FOOD

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

	public const int food_love = 703; 
	public const int food_god = 758; 

	public const int food_blood = 710; 
	public const int justcooked = 757; 

	public const int food_CHA = 700;

	public const int food_cat = 701; 
	public const int food_poison = 702; 
	public const int food_bug = 704; 
	public const int gainWeight = 705;

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

	public const int kirimi = 707;

public class FOOD

cs

	public const int food_undead = 709;

	public const int food_bug = 704; 
	public const int justcooked = 757; 
	public const int creativeDish = 764; 
	public const int food_blood = 710; 

	public const int food_god = 758; 
	public const int loseWeight = 706; 

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

+FieldEffect

File Created
cs
public class FieldEffect : Spell
{
	public UIButton button;
}

+FieldEffectSpider

File Created
cs
public class FieldEffectSpider : FieldEffect
{
}

GoalCombat

public virtual bool TryUseAbility(int dist, bool beforeMove = false)

cs
	foreach (ItemAbility ability in abilities)
	{
		Act act = ability.act;
		if (act.id == 8801 && owner.race.id == "spider" && EClass._zone.HasField(10000) && !owner.IsPCFactionOrMinion) 
		{ 
			ability.act = ACT.Create(50413); 
		} 
		ability.priority = 0;
		ability.tg = null;
		ability.pt = false;
		if (EClass.rnd(100) >= ability.chance || (isBlind && ability.act.HasTag("reqSight")) || (owner.isBerserk && !(act is ActMelee) && !(act is ActRanged) && !(act is ActBreathe) && !(act is ActThrow))) 
		if (EClass.rnd(100) >= ability.chance || (isBlind && act.HasTag("reqSight")) || (owner.isBerserk && !(act is ActMelee) && !(act is ActRanged) && !(act is ActBreathe) && !(act is ActThrow))) 
		{
			continue;
		}

public virtual bool TryUseAbility(int dist, bool beforeMove = false)

cs
			num = 50;
			break;
		case "item":
			num = (ability.act as ActItem).BuildAct(owner); 
			num = (act as ActItem).BuildAct(owner); 
			break;
		case "wait":
			if (owner.IsPCParty)

public virtual bool TryUseAbility(int dist, bool beforeMove = false)

cs
			{
				continue;
			}
			bool flag6 = ability.act is ActBolt; 
			bool flag6 = act is ActBolt; 
			if (!flag || (owner.IsPCParty && (EClass._zone.IsTown || EClass._zone.IsPCFaction)) || (act.id == 9150 && EClass._zone.IsPCFaction && owner.IsNeutralOrAbove()))
			{
				continue;

public virtual bool TryUseAbility(int dist, bool beforeMove = false)

cs
			}
			num = 1000;
			break;
		case "summonSpecial2":
			num = 1000; 
			break; 
		case "suicide":
			if (owner.IsPC || owner.HasCondition<ConWet>())
			{

LayerSleep

public void Advance()

cs
			if (chara.affinity.GetLunchChance() > ELayer.rnd(100) && chara.GetInt(71) == -1)
			{
				chara.SetInt(71, -2);
				if (!chara.elements.Has(287)) 
				if (!chara.elements.HasBase(287)) 
				{
					chara.elements.Learn(287);
				}

MUTATION

public class MUTATION

cs
public class MUTATION
{
	public const int mutationSpeed = 1518; 
	public const int mutationCha = 1522; 
	public const int mutationRegen = 1516; 
	public const int mutationDexN = 1515;

	public const int mutationDex = 1514; 
	public const int mutationEyeN = 1513; 
	public const int mutationEye = 1512; 
	public const int mutationSkinN = 1511; 
	public const int mutationSkin = 1510;

	public const int mutationSpeedN = 1519; 
	public const int mutationSkinN = 1511; 

	public const int mutationStr = 1520; 
	public const int mutationEye = 1512; 

	public const int mutationStrN = 1521; 
	public const int mutationDex = 1514; 

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

	public const int mutationChaN = 1523; 
	public const int mutationEyeN = 1513; 

	public const int mutationBrainN = 1525; 
	public const int mutationSpeed = 1518; 

	public const int etherPoisonHand = 1565;

public class MUTATION

cs

	public const int etherArmor = 1562;

	public const int mutationBrain = 1524; 
	public const int etherStupid = 1561; 

	public const int etherWeak = 1560;

public class MUTATION

cs

	public const int etherHead = 1557;

	public const int etherViolence = 1556; 
	public const int mutationRegenN = 1517; 

	public const int etherNeck = 1555;

	public const int etherWing = 1554;

	public const int etherStupid = 1561; 
	public const int etherEye = 1553; 

	public const int etherFeet = 1552;

	public const int etherEye = 1553; 
	public const int etherUgly = 1551; 

	public const int mutationCold = 1526; 
	public const int etherViolence = 1556; 

	public const int mutationColdN = 1527; 
	public const int mutationHairN = 1533; 

	public const int mutationLightningN = 1529; 
	public const int mutationSpeedN = 1519; 

	public const int mutationBody = 1530; 
	public const int etherGravity = 1550; 

	public const int mutationLightning = 1528; 
	public const int mutationStrN = 1521; 

	public const int mutationHair = 1532; 
	public const int mutationCha = 1522; 

	public const int mutationHairN = 1533; 
	public const int mutationChaN = 1523; 

	public const int etherGravity = 1550; 
	public const int mutationBrain = 1524; 

	public const int etherUgly = 1551; 
	public const int mutationBrainN = 1525; 
	public const int mutationStr = 1520; 
	public const int mutationColdN = 1527; 
	public const int mutationLightning = 1528; 
	public const int mutationLightningN = 1529; 
	public const int mutationBody = 1530; 

	public const int mutationBodyN = 1531;

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

POLICY

``

cs

public class POLICY
{
	public const int license_general = 2820; 
	public const int store_ripoff = 2816; 
	public const int store_premium = 2817;

	public const int license_food = 2818;

	public const int license_furniture = 2819;

	public const int license_general = 2820; 
	public const int legendary_heirloom = 2821;

	public const int breed_season = 2827; 
	public const int celeb = 2822; 

	public const int legendary_exhibition = 2823; 
	public const int milk_fan = 2825; 

	public const int license_stolen = 2824;

	public const int milk_fan = 2825; 
	public const int egg_fan = 2826;

	public const int license_slaver = 2828; 
	public const int platinum_ticket = 2815; 
	public const int celeb = 2822; 
	public const int mass_exhibition = 2814; 
	public const int trash_sort = 2701; 
	public const int breed_season = 2827; 

	public const int bed_quality = 2812; 
	public const int license_slaver = 2828; 

	public const int resident_wanted = 2513; 
	public const int store_ripoff = 2816; 

	public const int legal_drug = 2505; 
	public const int legendary_exhibition = 2823; 

	public const int suite_room = 2813; 
	public const int platinum_ticket = 2815; 

	public const int wealth_tax = 2500;

	public const int faith_tax = 2501; 
	public const int suite_room = 2813; 

	public const int resident_tax = 2512; 
	public const int stop_growth = 2515; 

	public const int taxfree = 2514;

	public const int food_for_people = 2502; 
	public const int resident_wanted = 2513; 
	public const int resident_tax = 2512; 

	public const int self_sufficient = 2511;

public class POLICY

cs

	public const int human_right = 2506;

	public const int prohibition = 2503; 
	public const int stop_growth = 2515; 
	public const int legal_drug = 2505; 

	public const int impressment = 2504;

	public const int energy_conservation = 2700; 
	public const int taxTransfer = 2705; 
	public const int prohibition = 2503; 

	public const int border_watch = 2704; 
	public const int faith_tax = 2501; 

	public const int demon_invocation = 2706; 
	public const int mass_exhibition = 2814; 

	public const int speed_growth = 2516;

	public const int noDM = 2708; 
	public const int energy_conservation = 2700; 

	public const int noAnimal = 2709; 
	public const int food_for_people = 2502; 

	public const int noMother = 2710; 
	public const int trash_no = 2702; 

	public const int auto_farm = 2707; 
	public const int trash_sort = 2701; 

	public const int forcePanty = 2712; 
	public const int bed_quality = 2812; 

	public const int livestock_priv = 2715; 
	public const int open_business = 2810; 

	public const int home_discount = 2800;

	public const int open_business = 2810; 
	public const int livestock_priv = 2715; 
	public const int forcePanty = 2712; 
	public const int incomeTransfer = 2711; 

	public const int tourist_safety = 2811;

	public const int weed_no = 2703; 
	public const int noAnimal = 2709; 

	public const int trash_no = 2702; 
	public const int noDM = 2708; 

	public const int incomeTransfer = 2711; 
	public const int auto_farm = 2707; 
	public const int demon_invocation = 2706; 
	public const int taxTransfer = 2705; 
	public const int border_watch = 2704; 
	public const int noMother = 2710; 
	public const int weed_no = 2703; 

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

SKILL

public class SKILL

cs
public class SKILL
{
	public const int fireproof = 50; 
	public const int marksman = 133; 

	public const int climbing = 242; 
	public const int tactics = 132; 

	public const int throwing = 108; 
	public const int twowield = 131; 

	public const int weaponCrossbow = 109; 
	public const int twohand = 130; 
	public const int shield = 123; 
	public const int armorHeavy = 122; 

	public const int weaponScythe = 110;

	public const int weaponBlunt = 111;

	public const int armorLight = 120; 
	public const int weaponCrossbow = 109; 

	public const int armorHeavy = 122; 
	public const int throwing = 108; 

	public const int twohand = 130; 
	public const int weaponDagger = 107; 

	public const int twowield = 131; 
	public const int eyeofmind = 134; 

	public const int music = 241; 
	public const int weaponPolearm = 106; 

	public const int travel = 240; 
	public const int armorLight = 120; 

	public const int taming = 237; 
	public const int strategy = 135; 

	public const int milking = 235; 
	public const int lumberjack = 225; 

	public const int digging = 230; 
	public const int evasionPlus = 151; 

	public const int parasite = 227; 
	public const int stealth = 152; 

	public const int riding = 226; 
	public const int swimming = 200; 

	public const int lumberjack = 225; 
	public const int weightlifting = 207; 

	public const int shield = 123; 
	public const int spotting = 210; 

	public const int mining = 220;

	public const int weightlifting = 207; 
	public const int riding = 226; 

	public const int stealth = 152; 
	public const int parasite = 227; 

	public const int evasionPlus = 151; 
	public const int digging = 230; 

	public const int evasion = 150; 
	public const int milking = 235; 

	public const int strategy = 135; 
	public const int taming = 237; 

	public const int eyeofmind = 134; 
	public const int travel = 240; 

	public const int marksman = 133; 
	public const int music = 241; 

	public const int tactics = 132; 
	public const int weaponGun = 105; 

	public const int spotting = 210; 
	public const int evasion = 150; 

	public const int swimming = 200; 
	public const int weaponBow = 104; 

	public const int weaponSword = 101; 
	public const int DEX = 72; 

	public const int weaponPolearm = 106; 
	public const int weaponAxe = 102; 

	public const int END = 71; 
	public const int fireproof = 50; 

	public const int STR = 70; 
	public const int acidproof = 51; 

	public const int FPV = 68; 
	public const int PDR = 55; 

	public const int DMG = 67; 
	public const int EDR = 56; 

	public const int HIT = 66; 
	public const int evasionPerfect = 57; 

	public const int PV = 65; 
	public const int life = 60; 

	public const int DEX = 72; 
	public const int mana = 61; 

	public const int DV = 64; 
	public const int vigor = 62; 

	public const int mana = 61; 
	public const int PV = 65; 

	public const int life = 60; 
	public const int HIT = 66; 

	public const int evasionPerfect = 57; 
	public const int DMG = 67; 

	public const int EDR = 56; 
	public const int FPV = 68; 

	public const int PDR = 55; 
	public const int STR = 70; 

	public const int acidproof = 51; 
	public const int END = 71; 

	public const int vigor = 62; 
	public const int weaponStaff = 103; 

	public const int weaponDagger = 107; 
	public const int climbing = 242; 

	public const int PER = 73; 
	public const int LER = 74; 

	public const int WIL = 75;

	public const int weaponBow = 104; 
	public const int MAG = 76; 

	public const int weaponStaff = 103; 
	public const int CHA = 77; 

	public const int weaponAxe = 102; 
	public const int LUC = 78; 

	public const int martial = 100; 
	public const int SPD = 79; 

	public const int dmgDealt = 94; 
	public const int INT = 80; 

	public const int antiMagic = 93; 
	public const int critical = 90; 

	public const int LER = 74; 
	public const int vopal = 91; 

	public const int penetration = 92;

	public const int critical = 90; 
	public const int INT = 80; 
	public const int SPD = 79; 
	public const int antiMagic = 93; 

	public const int LUC = 78; 
	public const int dmgDealt = 94; 

	public const int CHA = 77; 
	public const int martial = 100; 

	public const int MAG = 76; 
	public const int weaponSword = 101; 

	public const int vopal = 91; 
	public const int PER = 73; 

	public const int fishing = 245;

	public const int weaponGun = 105; 
	public const int DV = 64; 

	public const int carpentry = 255;

public class SKILL

cs

	public const int resHoly = 960;

	public const int resCurse = 972; 
	public const int resMagic = 961;

	public const int resEther = 962;

public class SKILL

cs

	public const int resDamage = 971;

	public const int resCurse = 972; 
	public const int gathering = 250;

	public const int resPoison = 955;

public class SKILL

cs

	public const int controlmana = 302;

	public const int meditation = 301; 
	public const int memorization = 307;

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

SLOT

public class SLOT

cs

	public const int finger = 36;

	public const int token = 43; 
	public const int range = 41; 

	public const int head = 30;

	public const int ammo = 42; 
	public const int token = 43; 

	public const int range = 41; 
	public const int ammo = 42; 

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

SPELL

public class SPELL

cs
public class SPELL
{
	public const int puddle_Nerve = 50908; 
	public const int bolt_Nerve = 50308; 

	public const int weapon_Nerve = 50808; 
	public const int sword_Void = 51016; 

	public const int miasma_Nerve = 50708; 
	public const int puddle_Mind = 50904; 

	public const int funnel_Nerve = 50608; 
	public const int hand_Nerve = 50408; 

	public const int puddle_Mind = 50904; 
	public const int bit_Nerve = 51108; 

	public const int arrow_Nerve = 50508;

	public const int bolt_Nerve = 50308; 
	public const int sword_Mind = 51004; 
	public const int funnel_Nerve = 50608; 

	public const int ball_Nerve = 50108;

	public const int flare_Sound = 51207; 
	public const int miasma_Nerve = 50708; 

	public const int bit_Sound = 51107; 
	public const int weapon_Nerve = 50808; 

	public const int hand_Nerve = 50408; 
	public const int puddle_Nerve = 50908; 

	public const int funnel_Poison = 50605; 
	public const int sword_Nerve = 51008; 

	public const int bit_Nerve = 51108; 
	public const int sword_Mind = 51004; 

	public const int flare_Nerve = 51208;

	public const int funnel_Poison = 50605; 
	public const int ball_Holy = 50109;

	public const int weapon_Mind = 50804;

	public const int miasma_Mind = 50704; 
	public const int bolt_Holy = 50309;

	public const int hand_Holy = 50409;

	public const int miasma_Mind = 50704; 
	public const int funnel_Mind = 50604; 

	public const int arrow_Holy = 50509;

public class SPELL

cs

	public const int flare_Holy = 51209;

	public const int sword_Nerve = 51008; 
	public const int flare_Sound = 51207; 

	public const int sword_Sound = 51007; 
	public const int bit_Sound = 51107; 

	public const int weapon_Sound = 50807; 
	public const int puddle_Sound = 50907; 

	public const int miasma_Sound = 50707; 
	public const int arrow_Poison = 50505; 

	public const int miasma_Poison = 50705;

public class SPELL

cs

	public const int bit_Poison = 51105;

	public const int arrow_Poison = 50505; 
	public const int flare_Poison = 51205;

	public const int ball_Nether = 50106;

public class SPELL

cs

	public const int bolt_Nether = 50306;

	public const int hand_Nether = 50406; 
	public const int bolt_Poison = 50305;

	public const int arrow_Nether = 50506; 
	public const int hand_Nether = 50406; 

	public const int puddle_Sound = 50907; 
	public const int arrow_Nether = 50506; 

	public const int funnel_Nether = 50606;

	public const int miasma_Nether = 50706; 
	public const int weapon_Nether = 50806;

	public const int puddle_Nether = 50906;

public class SPELL

cs

	public const int ball_Chaos = 50110;

	public const int flare_Mind = 51204; 
	public const int bolt_Sound = 50307;

	public const int hand_Sound = 50407;

public class SPELL

cs

	public const int funnel_Sound = 50607;

	public const int flare_Mind = 51204; 
	public const int miasma_Sound = 50707; 
	public const int bit_Mind = 51104;

	public const int miasma_Nether = 50706; 
	public const int weapon_Sound = 50807; 
	public const int sword_Sound = 51007; 

	public const int ball_Poison = 50105;

	public const int ball_Acid = 50113; 
	public const int flare_Ether = 51212; 

	public const int hand_Chaos = 50410;

	public const int ball_Impact = 50115; 
	public const int flare_Cut = 51214;

	public const int bit_Cut = 51114;

public class SPELL

cs

	public const int miasma_Cut = 50714;

	public const int funnel_Cut = 50614; 
	public const int ball_Impact = 50115; 

	public const int arrow_Cut = 50514; 
	public const int funnel_Cut = 50614; 

	public const int hand_Cut = 50414;

public class SPELL

cs

	public const int sword_Acid = 51013;

	public const int bolt_Impact = 50315; 
	public const int arrow_Cut = 50514; 

	public const int puddle_Acid = 50913; 
	public const int bolt_Impact = 50315; 

	public const int hand_Impact = 50415;

	public const int funnel_Impact = 50615; 
	public const int sword_Void = 51016; 
	public const int arrow_Impact = 50515; 

	public const int puddle_Void = 50916;

public class SPELL

cs

	public const int miasma_Impact = 50715;

	public const int arrow_Impact = 50515; 
	public const int funnel_Impact = 50615; 
	public const int puddle_Acid = 50913; 

	public const int bolt_Chaos = 50310;

public class SPELL

cs

	public const int funnel_Acid = 50613;

	public const int weapon_Magic = 50811; 
	public const int miasma_Magic = 50711;

	public const int funnel_Magic = 50611;

public class SPELL

cs

	public const int ball_Magic = 50111;

	public const int flare_Chaos = 51210; 
	public const int weapon_Magic = 50811; 

	public const int bit_Chaos = 51110; 
	public const int flare_Chaos = 51210; 

	public const int sword_Chaos = 51010;

public class SPELL

cs

	public const int arrow_Chaos = 50510;

	public const int puddle_Magic = 50911; 
	public const int bit_Chaos = 51110; 

	public const int miasma_Acid = 50713; 
	public const int puddle_Magic = 50911; 

	public const int sword_Magic = 51011;

	public const int flare_Magic = 51211; 
	public const int bit_Magic = 51111; 

	public const int arrow_Acid = 50513;

public class SPELL

cs

	public const int bolt_Acid = 50313;

	public const int funnel_Mind = 50604; 
	public const int flare_Ether = 51212; 
	public const int ball_Acid = 50113; 

	public const int bit_Ether = 51112;

public class SPELL

cs

	public const int ball_Ether = 50112;

	public const int bit_Magic = 51111; 
	public const int flare_Magic = 51211; 
	public const int miasma_Acid = 50713; 

	public const int arrow_Mind = 50504;

	public const int funnel_Cold = 50601; 
	public const int SpTransmuteBroom = 8790; 

	public const int bolt_Mind = 50304;

	public const int SpHero = 8504; 
	public const int SpWisdom = 8503;

	public const int SpHolyShield = 8502;

public class SPELL

cs

	public const int SpHealEris = 8404;

	public const int SpResEle = 8506; 
	public const int SpHeal = 8403;

	public const int SpBreath = 8507; 
	public const int SpHero = 8504; 

	public const int SpRebirth = 8550; 
	public const int SpHealCritical = 8402; 

	public const int SpTransmutePutit = 8791; 
	public const int SpResEle = 8506; 

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

	public const int SpIncognito = 8780;

public class SPELL

cs

	public const int SpBrightnessOfLife = 8555;

	public const int SpSpeedUp = 8510; 
	public const int SpRebirth = 8550; 

	public const int SpTransmuteCat = 8792; 
	public const int SpBreath = 8507; 

	public const int SpHealCritical = 8402; 
	public const int SpTransmuteCat = 8792; 

	public const int SpHealLight = 8400; 
	public const int SpHealHeavy = 8401; 

	public const int SpReturn = 8220; 
	public const int SpWish = 8390; 

	public const int SpGate = 8202;

public class SPELL

cs

	public const int ball_ = 7001;

	public const int SpEvac = 8221; 
	public const int bit_Void = 51116; 

	public const int SpHealHeavy = 8401; 
	public const int SpReturn = 8220; 

	public const int SpIdentify = 8230; 
	public const int SpHealLight = 8400; 

	public const int SpUncurse = 8240; 
	public const int SpEvac = 8221; 

	public const int SpWish = 8390; 
	public const int SpIdentifyG = 8232; 

	public const int SpMutation = 8380;

public class SPELL

cs

	public const int SpUncurseG = 8241;

	public const int SpIdentifyG = 8232; 
	public const int SpUncurse = 8240; 

	public const int hand_Mind = 50404; 
	public const int SpIdentify = 8230; 

	public const int SpDarkness = 8800;

	public const int SpWeb = 8801; 
	public const int SpSummon = 9000;

	public const int arrow_Lightning = 50502;

public class SPELL

cs

	public const int miasma_Cold = 50701;

	public const int funnel_Cold = 50601; 
	public const int arrow_Cold = 50501;

	public const int hand_Cold = 50401;

public class SPELL

cs

	public const int ball_Cold = 50101;

	public const int flare_Fire = 51200; 
	public const int funnel_Lightning = 50602;

	public const int bit_Fire = 51100; 
	public const int flare_Fire = 51200; 

	public const int miasma_Lightning = 50702;

public class SPELL

cs

	public const int weapon_Lightning = 50802;

	public const int SpWeb = 8801; 
	public const int bit_Fire = 51100; 

	public const int sword_Fire = 51000;

	public const int weapon_Fire = 50800; 
	public const int puddle_Fire = 50900; 

	public const int SpSummonDragon = 9054;

public class SPELL

cs

	public const int SpSummonUndead = 9055;

	public const int puddle_Fire = 50900; 
	public const int SpMeteor = 9150;

	public const int SpEarthquake = 9151; 
	public const int SpMoonSpear = 9155;

	public const int weapon_Fire = 50800; 
	public const int miasma_Fire = 50700;

	public const int funnel_Fire = 50600;

public class SPELL

cs

	public const int bolt_Fire = 50300;

	public const int bit_Void = 51116; 
	public const int ball_Fire = 50100;

	public const int SpDrawBacker = 9503; 
	public const int hand_Mind = 50404; 
	public const int FieldSpider = 10000; 

	public const int SpDrawMetal = 9502;

public class SPELL

cs

	public const int SpMoonArrow = 9156;

	public const int SpEarthquake = 9151; 
	public const int SpDrawBacker = 9503; 

	public const int flare_Void = 51216;

	public static readonly int[] IDS = new int[290] 
	public static readonly int[] IDS = new int[291] 
	{
		50908, 50808, 50708, 50608, 50904, 50508, 50308, 51004, 50108, 51207, 
		51107, 50408, 50605, 51108, 51208, 50109, 50804, 50309, 50409, 50704, 
		50509, 50609, 50709, 50809, 50909, 51009, 51109, 51209, 51008, 51007, 
		50807, 50707, 50705, 50805, 50905, 51005, 51105, 50505, 51205, 50106, 
		50405, 50306, 50406, 50305, 50506, 50907, 50606, 50806, 50906, 51006, 
		51106, 51206, 50107, 50110, 51204, 50307, 50407, 50507, 50607, 51104, 
		50706, 50105, 50113, 50410, 50115, 51214, 51114, 51014, 50914, 50814, 
		50714, 50614, 50514, 50414, 50314, 50114, 51213, 51113, 51013, 50315, 
		50913, 50415, 50615, 51016, 50916, 50816, 50716, 50616, 50516, 50416, 
		50316, 50116, 51215, 51115, 51015, 50915, 50815, 50715, 50515, 50310, 
		50813, 50613, 50811, 50711, 50611, 50511, 50411, 50311, 50111, 51210, 
		51110, 51010, 50910, 50810, 50710, 50610, 50510, 50911, 50713, 51011, 
		51211, 50513, 50413, 50313, 50604, 51212, 51112, 51012, 50912, 50812, 
		50712, 50612, 50512, 50412, 50312, 50112, 51111, 50504, 50601, 50304, 
		8504, 8503, 8502, 8501, 8500, 8491, 8490, 8480, 8471, 8470, 
		8450, 8430, 8406, 8405, 8404, 8506, 8403, 8507, 8550, 8791, 
		8790, 8780, 8776, 8775, 8770, 8710, 8708, 8707, 8706, 8705, 
		8704, 8702, 8700, 8555, 8510, 8792, 8402, 8400, 8220, 8202, 
		8201, 8200, 7800, 7010, 7009, 7008, 7007, 7006, 7005, 7004, 
		7003, 7002, 7001, 8221, 8401, 8230, 8240, 8390, 8380, 8300, 
		8288, 8286, 8285, 8284, 8281, 8280, 8260, 8256, 8255, 8251, 
		8250, 8241, 8232, 50404, 8800, 9000, 50502, 50402, 50302, 50102, 
		51201, 51101, 51001, 50901, 50801, 50701, 50501, 50401, 50301, 50101, 
		51200, 50602, 51100, 50702, 50902, 50104, 51203, 51103, 51003, 50903, 
		50308, 51016, 50904, 50408, 51108, 50508, 50608, 50108, 50708, 50808, 
		50908, 51008, 51004, 51208, 50605, 50109, 50804, 50704, 50309, 50409, 
		50604, 50509, 50609, 50709, 50809, 50909, 51009, 51109, 51209, 51207, 
		51107, 50907, 50505, 50705, 50805, 50905, 51005, 51105, 51205, 50106, 
		50405, 50306, 50305, 50406, 50506, 50606, 50706, 50806, 50906, 51006, 
		51106, 51206, 50107, 50110, 50307, 50407, 50507, 50607, 51204, 50707, 
		51104, 50807, 51007, 50105, 51212, 50410, 51214, 51114, 51014, 50914, 
		50814, 50714, 50115, 50614, 50414, 50314, 50114, 51213, 51113, 51013, 
		50514, 50315, 50415, 50515, 50916, 50816, 50716, 50616, 50516, 50416, 
		50316, 50116, 51215, 51115, 51015, 50915, 50815, 50715, 50615, 50913, 
		50310, 50813, 50613, 50711, 50611, 50511, 50411, 50311, 50111, 50811, 
		51210, 51010, 50910, 50810, 50710, 50610, 50510, 51110, 50911, 51011, 
		51111, 50513, 50413, 50313, 50113, 51112, 51012, 50912, 50812, 50712, 
		50612, 50512, 50412, 50312, 50112, 51211, 50713, 50504, 8790, 50304, 
		8503, 8502, 8501, 8500, 8491, 8490, 8480, 8471, 8470, 8450, 
		8430, 8406, 8405, 8404, 8403, 8504, 8402, 8506, 8510, 8791, 
		8780, 8776, 8775, 8770, 8710, 8708, 8707, 8706, 8705, 8704, 
		8702, 8700, 8555, 8550, 8507, 8792, 8401, 8390, 8202, 8201, 
		8200, 7800, 7010, 7009, 7008, 7007, 7006, 7005, 7004, 7003, 
		7002, 7001, 51116, 8220, 8400, 8221, 8232, 8380, 8300, 8288, 
		8286, 8285, 8284, 8281, 8280, 8260, 8256, 8255, 8251, 8250, 
		8241, 8240, 8230, 8800, 8801, 9000, 50502, 50402, 50302, 50102, 
		51201, 51101, 51001, 50901, 50801, 50701, 50601, 50501, 50401, 50301, 
		50101, 50602, 51200, 50702, 50902, 50104, 51203, 51103, 51003, 50903, 
		50803, 50703, 50603, 50503, 50403, 50303, 50103, 51202, 51102, 51002,
		50802, 8801, 51000, 50800, 9054, 9053, 9052, 9051, 9050, 9010, 
		50802, 51100, 51000, 50900, 9054, 9053, 9052, 9051, 9050, 9010, 
		9009, 9008, 9007, 9006, 9005, 9004, 9003, 9002, 9001, 9055,
		50900, 9150, 9155, 50700, 50600, 50500, 50400, 50300, 51116, 50100, 
		9503, 9502, 9501, 9500, 9210, 9200, 9160, 9156, 9151, 51216
		9150, 9151, 9155, 50800, 50700, 50600, 50500, 50400, 50300, 50100, 
		50404, 10000, 9502, 9501, 9500, 9210, 9200, 9160, 9156, 9503, 
		51216
	};
}
public class Spell : Ability

TCText

public void Say(string s, float duration = 0f)

cs
	case '^':
		p = pop.PopText(s.Substring(1), null, "PopTextBroadcast", default(Color), default(Vector3), duration);
		break;
	case '|':
		p = pop.PopText(s.Substring(1), null, "PopTextAbility", default(Color), default(Vector3), duration); 
		break; 
	default:
		p = pop.PopText(s, null, EMono.core.config.ui.balloonBG ? "PopText_alt" : "PopText", default(Color), default(Vector3), duration);
		break;

Thing

public override string GetHoverText()

cs
public override string GetExtraName()
{
	string text = "";
	if (trait.ShowChildrenNumber && base.c_lockLv == 0) 
	if (trait.ShowChildrenNumber && base.c_lockLv == 0 && EClass._zone.IsPCFactionOrTent) 
	{
		if (things.Count > 0)
		{

Trait

public void OnBarter(bool reroll = false)

cs
		NoRestock(ThingGen.Create("lucky_coin").SetNum(10));
		NoRestock(ThingGen.CreateSkillbook(6662));
		NoRestock(ThingGen.CreateSkillbook(6664));
		Add("book_exp", 3, 0); 
		Add("book_exp", 10, 0); 
		break;
	case ShopType.Copy:
	{

public void OnBarter(bool reroll = false)

cs
					{
						break;
					}
					if (!owner.Chara.HasElement(287)) 
					if (!owner.Chara.elements.HasBase(287)) 
					{
						owner.Chara.elements.SetBase(287, (!EClass.debug.enable) ? 1 : 50);
					}

TraitBaseContainer

public class TraitBaseContainer : Trait

cs
{
	public bool HasChara => owner.c_idRefCard != null;

	public override bool ShowChildrenNumber 
	{ 
		get 
		{ 
			if (!HasChara) 
			{ 
				return base.ShowChildrenNumber; 
			} 
			return false; 
		} 
	} 
	public override string IDInvStyle
	{
		get

public virtual void Prespawn(int lv)

cs
	public void PutChara(string id)
	{
		owner.c_idRefCard = id;
		owner.AddCard(ThingGen.Create("junk")); 
		owner.AddCard(ThingGen.CreateFromCategory("furniture", EClass.pc.LV + 10)); 
	}

	public override void SetName(ref string s)

TraitCoffin

public override void Prespawn(int lv)

cs
			ThingGen.CreateTreasureContent(owner.Thing, lv, TreasureType.RandomChest, clearContent: true);
			return;
		}
		owner.c_idRefCard = EClass.sources.charas.rows.Where((SourceChara.Row r) => r.race == "zombie" || r.race == "vampire").RandomItem().id; 
		PutChara(EClass.sources.charas.rows.Where((SourceChara.Row r) => r.race == "zombie" || r.race == "vampire").RandomItem().id); 
	}
}

TraitDamnPool

public class TraitDamnPool : Trait

cs
public class TraitDamnPool : Trait
public class TraitDamnPool : TraitItem
{
	public override bool CanBeHeld => false;

public class TraitDamnPool : Trait

cs
	public override bool CanOnlyCarry => true;

	public override bool CanPutAway => false;
	public override bool CanUse(Chara c) 
	{ 
		return EClass.game.quests.GetPhase<QuestIntoDarkness>() == 4; 
	} 
	public override bool OnUse(Chara c) 
	{ 
		EClass.game.quests.Get<QuestIntoDarkness>().UpdateOnTalk(); 
		return false; 
	} 
}

WidgetDate

public class Extra

cs

	public RectTransform rectClock;

	public RectTransform rectFieldEffect; 
	public GridLayoutGroup gridFieldEffect; 
	public Image imageHour;

	public Color colorFestival;

	public UIButton moldButtonFieldEffect; 
	public Extra extra => base.config.extra as Extra;

	public override object CreateExtra()

public void _Refresh()

cs
		this.Rect().SetPivot(flag ? 1 : 0, 0f);
		rectClock.SetAnchor(flag ? 1 : 0, 1f, flag ? 1 : 0, 1f);
		rectClock.anchoredPosition = new Vector2(flag ? (-60) : 60, -75f);
		rectFieldEffect.SetAnchor(flag ? 1 : 0, 1f, flag ? 1 : 0, 1f); 
		rectFieldEffect.anchoredPosition = new Vector2(flag ? (-120) : 120, -75f); 
		gridFieldEffect.startCorner = (flag ? GridLayoutGroup.Corner.UpperRight : GridLayoutGroup.Corner.UpperLeft); 
		gridFieldEffect.childAlignment = (flag ? TextAnchor.UpperRight : TextAnchor.UpperLeft); 
		foreach (UIButton componentsInDirectChild in gridFieldEffect.GetComponentsInDirectChildren<UIButton>()) 
		{ 
			if (!(componentsInDirectChild.refObj is FieldEffect fieldEffect) || fieldEffect.owner != EMono._zone.fieldElements || fieldEffect.Value == 9) 
			{ 
				UnityEngine.Object.DestroyImmediate(componentsInDirectChild.gameObject); 
			} 
		} 
		foreach (Element e in EMono._zone.fieldElements.dict.Values) 
		{ 
			FieldEffect f = e as FieldEffect; 
			if (f.button == null) 
			{ 
				UIButton uIButton = Util.Instantiate(moldButtonFieldEffect, gridFieldEffect); 
				f.button = uIButton; 
				uIButton.refObj = e; 
			} 
			f.button.icon.sprite = f.GetSprite(); 
			f.button.SetTooltip("note", delegate(UITooltip t) 
			{ 
				e.WriteNote(t.note, EMono._zone.fieldElements, delegate
				{ 
					e._WriteNote(t.note, EMono.pc, f); 
				}); 
			}); 
		} 
		textTime.RebuildLayout();
	}

WidgetManager

public void Reset(bool toggleTheme)

cs
	{
		EMono.player.useSubWidgetTheme = !EMono.player.useSubWidgetTheme;
	}
	EMono.player.hotbars.ResetHotbar(4); 
	EMono.player.hotbars.ResetHotbar(7); 
	OnGameInstantiated();
	OnActivateZone();
	OnChangeActionMode();

Zone

public class PortalReturnData

cs
	[JsonProperty]
	public ElementContainerZone elements = new ElementContainerZone();

	[JsonProperty] 
	public ElementContainerField fieldElements = new ElementContainerField(); 
	[JsonProperty]
	public MapBounds bounds;

public void OnVisit()

cs
			base.visitCount++;
		}
		base.version = EClass.core.version.GetInt();
		if (fieldElements.dict.Count() > 0) 
		{ 
			Tutorial.Reserve("field"); 
		} 
	}

	public void Revive()

public Chara AddChara(string id, int x, int z)

cs
		return AddCard(CharaGen.Create(id), x, z) as Chara;
	}

	public Chara AddChara(string id, Point p) 
	{ 
		return AddChara(id, p.x, p.z); 
	} 
	public Card AddThing(string id, int x, int z)
	{
		return AddCard(ThingGen.Create(id), x, z);

public Point GetSpawnPos(SpawnPosition type, int tries = 100)

cs
		return null;
	}

	public Chara SpawnMob(string id, Point pos = null) 
	{ 
		return SpawnMob(pos, new SpawnSetting
		{ 
			id = id 
		}); 
	} 
	public Chara SpawnMob(Point pos = null, SpawnSetting setting = null)
	{
		if (setting == null)

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

cs
		return chara;
	}

	public bool HasField(int idEle) 
	{ 
		return fieldElements.Has(idEle); 
	} 
	public void SetFieldEffect(int idEle, int a) 
	{ 
		fieldElements.SetBase(idEle, a); 
	} 
	public void RefreshElectricity()
	{
		dirtyElectricity = false;

Zone_DungeonDead

public override void OnGenerateMap()

cs
		base.OnGenerateMap();
		EClass._map.config.fog = FogType.CaveDeep;
	}
	public override void OnActivate() 
	{ 
		if (IsBossLv) 
		{ 
			SetFieldEffect(10000, 1); 
			if (EClass.game.quests.GetPhase<QuestIntoDarkness>() == 4) 
			{ 
				EClass._zone.SetBGM(1); 
			} 
		} 
	} 
}