Skip to content

EA 23.42

16 files modified.

AI_PlayMusic

@@ -646,7 +646,7 @@ public void ThrowReward(Chara c, bool punish)

cs
				thing.Destroy();
				return;
			}
			if (this.owner.GetCurrency("money") >= (this.owner.Evalue(241) * 10 + 100) / ((this.owner.memberType == FactionMemberType.Default) ? 1 : 10)) 
			if (this.owner.GetCurrency("money") >= (this.owner.Evalue(241) * 10 + 100) / ((this.owner.IsPCFaction && this.owner.memberType == FactionMemberType.Default) ? 1 : 10)) 
			{
				this.owner.c_allowance += num;
				this.owner.ModCurrency(-num, "money");

AM_Adv

@@ -250,11 +250,7 @@ public void UpdateLangWheel()

cs
		}
		else if (HotItemHeld.CanRotate())
		{
			this.planAll.Update(this.mouseTarget); 
			if (!this.planAll.HasAct) 
			{ 
				this.textMiddle = "textMiddle_rotate".lang(EInput.keys.mouseMiddle.key.ToString() ?? "", null, null, null, null); 
			} 
			this.textMiddle = "textMiddle_rotate".lang(EInput.keys.mouseMiddle.key.ToString() ?? "", null, null, null, null); 
		}
		EClass.ui.hud.textWheel.SetText(this.textWheel.IsEmpty(""));
		EClass.ui.hud.textMiddle.SetText(this.textMiddle.IsEmpty(""));

@@ -579,11 +575,9 @@ public override void _OnUpdateInput()

cs
		}
		if ((EInput.middleMouse.down || EInput.middleMouse.clicked || EInput.middleMouse.pressedLong) && !EClass.ui.contextMenu.isActive)
		{
			this.planAll.Update(this.mouseTarget); 
			bool flag = EClass.pc.held != null && HotItemHeld.taskBuild != null && (HotItemHeld.taskBuild.CanPerform() || !this.planAll.HasAct); 
			if (EInput.middleMouse.clicked)
			{
				if (flag) 
				if (HotItemHeld.CanRotate()) 
				{
					HotItemHeld.taskBuild.recipe.Rotate();
					SE.Rotate();

ActEffect

@@ -2064,7 +2064,7 @@ where con.tag.Contains("random") && con.@group == (hex ? "Debuff" : "Buff")

cs
					return;
				}
				CS$<>8__locals1.TC.Say("cureCorruption", CS$<>8__locals1.TC, null, null);
				CS$<>8__locals1.TC.ModCorruption(-CS$<>8__locals1.power * 2); 
				CS$<>8__locals1.TC.ModCorruption(-CS$<>8__locals1.power * (CS$<>8__locals1.blessed ? 150 : 200) / 100); 
				return;
			case EffectId.Headpat:
				CS$<>8__locals1.CC.Cuddle(CS$<>8__locals1.TC, true);

ActorEx

@@ -113,6 +113,7 @@ public unsafe void Refresh()

cs
	}
	Vector3 vector = *this.owner.pos.PositionCenter();
	vector.z = 0f;
	vector.x -= 0.64f; 
	if (this.audioSource)
	{
		base.transform.position = vector;

BaseGameScreen

@@ -385,7 +385,7 @@ public unsafe virtual void RefreshPosition()

cs
	this._camPos.z = this.camPos.z;
	EMono.scene.cam.transform.localPosition = this._camPos;
	this.camPos.z = 0f;
	EMono.scene.transAudio.position = this.camPos; 
	EMono.scene.transAudio.position = this.camPos + EMono.scene.posAudioListener; 
	if (WidgetMinimap.Instance)
	{
		WidgetMinimap.Instance.OnUpdate();

COBJ

@@ -31,4 +31,6 @@ public class COBJ

cs
	public const int dna = 14;

	public const int charaGenes = 15;

	public const int corruptionHistory = 16; 
}

Card

@@ -1648,6 +1648,18 @@ public CharaGenes c_genes

cs
		}
	}

	public List<int> c_corruptionHistory 
	{ 
		get 
		{ 
			return base.GetObj<List<int>>(16); 
		} 
		set 
		{ 
			base.SetObj(16, value); 
		} 
	} 

	public ContainerUpgrade c_containerUpgrade
	{
		get

@@ -3215,7 +3227,7 @@ public Thing AddThing(Thing t, bool tryStack = true, int destInvX = -1, int dest

cs
			return thing;
		}
	}
	Card.<>c__DisplayClass686_0 CS$<>8__locals1 = new Card.<>c__DisplayClass686_0(); 
	Card.<>c__DisplayClass689_0 CS$<>8__locals1 = new Card.<>c__DisplayClass689_0(); 
	t.isNPCProperty = false;
	t.isGifted = false;
	CS$<>8__locals1.count = 0;

@@ -3862,7 +3874,7 @@ public void DamageHP(int dmg, AttackSource attackSource = AttackSource.None, Car

cs

	public void DamageHP(int dmg, int ele, int eleP = 100, AttackSource attackSource = AttackSource.None, Card origin = null, bool showEffect = true)
	{
		Card.<>c__DisplayClass727_0 CS$<>8__locals1 = new Card.<>c__DisplayClass727_0(); 
		Card.<>c__DisplayClass730_0 CS$<>8__locals1 = new Card.<>c__DisplayClass730_0(); 
		CS$<>8__locals1.<>4__this = this;
		CS$<>8__locals1.dmg = dmg;
		CS$<>8__locals1.origin = origin;

@@ -4683,13 +4695,13 @@ public void SpawnLoot(Card origin)

cs
		{
			i = 10;
		}
		if (this.<SpawnLoot>g__chance|732_0(i)) 
		if (this.<SpawnLoot>g__chance|735_0(i)) 
		{
			Thing thing = ThingGen.Create("figure", -1, -1);
			thing.MakeFigureFrom(this.id);
			list.Add(thing);
		}
		if (this.<SpawnLoot>g__chance|732_0(i)) 
		if (this.<SpawnLoot>g__chance|735_0(i)) 
		{
			Thing thing2 = ThingGen.Create("figure3", -1, -1);
			thing2.MakeFigureFrom(this.id);

@@ -4731,7 +4743,7 @@ public void SpawnLoot(Card origin)

cs
		}
		list.Add(thing3);
	}
	if (!this.IsPCFaction && this.<SpawnLoot>g__chance|732_0(200)) 
	if (!this.IsPCFaction && this.<SpawnLoot>g__chance|735_0(200)) 
	{
		list.Add(this.Chara.MakeGene(null));
	}

@@ -4748,11 +4760,11 @@ public void SpawnLoot(Card origin)

cs
		}
		if (race.IsMachine)
		{
			if (this.<SpawnLoot>g__chance|732_0(20)) 
			if (this.<SpawnLoot>g__chance|735_0(20)) 
			{
				list.Add(ThingGen.Create("microchip", -1, -1));
			}
			if (this.<SpawnLoot>g__chance|732_0(15)) 
			if (this.<SpawnLoot>g__chance|735_0(15)) 
			{
				list.Add(ThingGen.Create("battery", -1, -1));
			}

@@ -4761,20 +4773,20 @@ public void SpawnLoot(Card origin)

cs
		{
			if (race.IsAnimal)
			{
				if (this.<SpawnLoot>g__chance|732_0(15)) 
				if (this.<SpawnLoot>g__chance|735_0(15)) 
				{
					list.Add(ThingGen.Create("fang", -1, -1));
				}
				if (this.<SpawnLoot>g__chance|732_0(10)) 
				if (this.<SpawnLoot>g__chance|735_0(10)) 
				{
					list.Add(ThingGen.Create("skin", -1, -1));
				}
			}
			if (this.<SpawnLoot>g__chance|732_0(20)) 
			if (this.<SpawnLoot>g__chance|735_0(20)) 
			{
				list.Add(ThingGen.Create("offal", -1, -1));
			}
			if (this.<SpawnLoot>g__chance|732_0(20)) 
			if (this.<SpawnLoot>g__chance|735_0(20)) 
			{
				list.Add(ThingGen.Create("heart", -1, -1));
			}

@@ -5111,11 +5123,11 @@ public void MakeFoodRef(Card c1, Card c2 = null)

cs
{
	Card card = c1;
	Card card2 = c2;
	if (Card.<MakeFoodRef>g__IsIgnoreName|736_0(card)) 
	if (Card.<MakeFoodRef>g__IsIgnoreName|739_0(card)) 
	{
		card = null;
	}
	if (Card.<MakeFoodRef>g__IsIgnoreName|736_0(card2)) 
	if (Card.<MakeFoodRef>g__IsIgnoreName|739_0(card2)) 
	{
		card2 = null;
	}

@@ -5993,7 +6005,7 @@ public void Decay(int a = 10)

cs
			{
				Thing thing = TraitSeed.MakeRandomSeed(true).SetNum(Mathf.Min(this.Num, 3));
				card.AddCard(thing);
				if (!this.<Decay>g__IsParentLocked|803_0()) 
				if (!this.<Decay>g__IsParentLocked|806_0()) 
				{
					this.GetRootCard().Say("seed_rot", this.GetRootCard(), this, thing.Name, null);
				}

@@ -6006,7 +6018,7 @@ public void Decay(int a = 10)

cs
			}
			else if (this.GetRootCard() == EClass.pc)
			{
				if (!this.<Decay>g__IsParentLocked|803_0()) 
				if (!this.<Decay>g__IsParentLocked|806_0()) 
				{
					EClass.pc.Say("rotInv", this, EClass.pc, null, null);
				}

@@ -6020,7 +6032,7 @@ public void Decay(int a = 10)

cs
	}
	else if (this.decay < num2 && this.decay + a >= num2 && this.GetRootCard() == EClass.pc)
	{
		if (!this.<Decay>g__IsParentLocked|803_0()) 
		if (!this.<Decay>g__IsParentLocked|806_0()) 
		{
			EClass.pc.Say("rottingInv", this, EClass.pc, null, null);
		}

@@ -6988,7 +7000,7 @@ public int Dist(Card c)

cs
		int dist = 99;
		this.ForeachPoint(delegate(Point p, bool main)
		{
			int num = Card.<Dist>g__DistMulti|840_0(p, c); 
			int num = Card.<Dist>g__DistMulti|843_0(p, c); 
			if (num < dist)
			{
				dist = num;

@@ -6996,7 +7008,7 @@ public int Dist(Card c)

cs
			});
			return dist;
		}
		return Card.<Dist>g__DistMulti|840_0(this.pos, c); 
		return Card.<Dist>g__DistMulti|843_0(this.pos, c); 
	}

	public int Dist(Point p)

@@ -7199,7 +7211,7 @@ public bool CanBeSheared()

cs
	}

	[CompilerGenerated]
	private bool <SpawnLoot>g__chance|732_0(int i) 
	private bool <SpawnLoot>g__chance|735_0(int i) 
	{
		i = i * 100 / (100 + EClass.player.codex.GetOrCreate(this.id).BonusDropLv * 10);
		if (i < 1)

@@ -7210,7 +7222,7 @@ public bool CanBeSheared()

cs
	}

	[CompilerGenerated]
	internal static bool <MakeFoodRef>g__IsIgnoreName|736_0(Card c) 
	internal static bool <MakeFoodRef>g__IsIgnoreName|739_0(Card c) 
	{
		if (c == null)
		{

@@ -7221,13 +7233,13 @@ public bool CanBeSheared()

cs
	}

	[CompilerGenerated]
	private bool <Decay>g__IsParentLocked|803_0() 
	private bool <Decay>g__IsParentLocked|806_0() 
	{
		return this.parent is Thing && (this.parent as Thing).c_lockLv > 0;
	}

	[CompilerGenerated]
	internal static int <Dist>g__DistMulti|840_0(Point p1, Card c) 
	internal static int <Dist>g__DistMulti|843_0(Point p1, Card c) 
	{
		if (!c.IsMultisize)
		{

Chara

@@ -8025,6 +8025,26 @@ public Hobby GetWork(string id)

cs
		return null;
	}

	public ElementContainer baseWorkElements 
	{ 
		get 
		{ 
			if (this._baseWorkElements == null) 
			{ 
				this._baseWorkElements = new ElementContainer(); 
				foreach (Hobby h in this.ListHobbies(true)) 
				{ 
					this.<get_baseWorkElements>g__Build|494_0(h); 
				} 
				foreach (Hobby h2 in this.ListWorks(true)) 
				{ 
					this.<get_baseWorkElements>g__Build|494_0(h2); 
				} 
			} 
			return this._baseWorkElements; 
		} 
	} 

	public void RefreshWorkElements(ElementContainer parent = null)
	{
		if (this.workElements != null)

@@ -8038,11 +8058,11 @@ public void RefreshWorkElements(ElementContainer parent = null)

cs
	}
	foreach (Hobby h in this.ListHobbies(true))
	{
		this.<RefreshWorkElements>g__TryAdd|492_0(h); 
		this.<RefreshWorkElements>g__TryAdd|495_0(h); 
	}
	foreach (Hobby h2 in this.ListWorks(true))
	{
		this.<RefreshWorkElements>g__TryAdd|492_0(h2); 
		this.<RefreshWorkElements>g__TryAdd|495_0(h2); 
	}
	if (this.workElements != null)
	{

@@ -8182,7 +8202,7 @@ public bool TryWorkOutside(SourceHobby.Row sourceWork)

cs

	public void PerformWork(WorkSession session, bool isHobby = false, bool IsRealTime = false)
	{
		Chara.<>c__DisplayClass503_0 CS$<>8__locals1; 
		Chara.<>c__DisplayClass506_0 CS$<>8__locals1; 
		CS$<>8__locals1.session = session;
		Hobby hobby = new Hobby();
		hobby.id = CS$<>8__locals1.session.id;

@@ -8192,10 +8212,10 @@ public void PerformWork(WorkSession session, bool isHobby = false, bool IsRealTi

cs
	{
		workSummary.progress += EClass.rnd(5) + 5;
	}
	int num = Chara.<PerformWork>g__PerformWork|503_0(hobby, 0, isHobby, ref CS$<>8__locals1); 
	int num2 = Chara.<PerformWork>g__PerformWork|503_0(hobby, 1, isHobby, ref CS$<>8__locals1); 
	int num3 = Chara.<PerformWork>g__PerformWork|503_0(hobby, 2, isHobby, ref CS$<>8__locals1); 
	int num4 = Chara.<PerformWork>g__PerformWork|503_0(hobby, 3, isHobby, ref CS$<>8__locals1); 
	int num = Chara.<PerformWork>g__PerformWork|506_0(hobby, 0, isHobby, ref CS$<>8__locals1); 
	int num2 = Chara.<PerformWork>g__PerformWork|506_0(hobby, 1, isHobby, ref CS$<>8__locals1); 
	int num3 = Chara.<PerformWork>g__PerformWork|506_0(hobby, 2, isHobby, ref CS$<>8__locals1); 
	int num4 = Chara.<PerformWork>g__PerformWork|506_0(hobby, 3, isHobby, ref CS$<>8__locals1); 
	workSummary.money += num;
	workSummary.food += num2;
	workSummary.knowledge += num3;

@@ -8913,6 +8933,15 @@ public bool MutateRandom(int vec = 0, int tries = 100, bool ether = false, Bless

cs
	for (int i = 0; i < tries; i++)
	{
		SourceElement.Row row = ie.RandomItem<SourceElement.Row>();
		if (((i == 0 && vec < 0) & ether) && base.c_corruptionHistory != null && base.c_corruptionHistory.Count > 0) 
		{ 
			row = EClass.sources.elements.map[base.c_corruptionHistory.LastItem<int>()]; 
			base.c_corruptionHistory.RemoveAt(base.c_corruptionHistory.Count - 1); 
			if (base.c_corruptionHistory.Count == 0) 
			{ 
				base.c_corruptionHistory = null; 
			} 
		} 
		Element element = this.elements.GetElement(row.id);
		int num = 1;
		if ((vec <= 0 || ((row.id != 1563 || this.corruption >= 300) && (row.id != 1562 || this.corruption >= 1000 || !base.IsPowerful))) && (vec >= 0 || (element != null && element.Value > 0)) && (vec <= 0 || element == null || element.Value < row.max))

@@ -8927,16 +8956,16 @@ public bool MutateRandom(int vec = 0, int tries = 100, bool ether = false, Bless

cs
			{
				if (state >= BlessedState.Blessed && flag)
				{
					goto IL_3B6; 
					goto IL_44F; 
				}
				if (state <= BlessedState.Cursed && !flag)
				{
					goto IL_3B6; 
					goto IL_44F; 
				}
			}
			else if (vec < 0 && ((state >= BlessedState.Blessed && !flag) || (state <= BlessedState.Cursed && flag)))
			{
				goto IL_3B6; 
				goto IL_44F; 
			}
			bool flag2 = true;
			if (element != null)

@@ -8950,13 +8979,18 @@ public bool MutateRandom(int vec = 0, int tries = 100, bool ether = false, Bless

cs
				flag2 = (num > element.Value);
				if (vec > 0 && !flag2)
				{
					goto IL_3B6; 
					goto IL_44F; 
				}
			}
			base.Say(flag2 ? "mutation_gain" : "mutation_loose", this, null, null);
			this.SetFeat(row.id, num, false);
			if (flag2 & ether)
			{
				if (base.c_corruptionHistory == null) 
				{ 
					base.c_corruptionHistory = new List<int>(); 
				} 
				base.c_corruptionHistory.Add(row.id); 
				if (this.IsPCFaction)
				{
					Element element2 = this.elements.GetElement(row.id);

@@ -8986,7 +9020,7 @@ public bool MutateRandom(int vec = 0, int tries = 100, bool ether = false, Bless

cs
			}
			return true;
		}
		IL_3B6:; 
		IL_44F:; 
	}
	base.Say("nothingHappens", null, null);
	return false;

@@ -9177,7 +9211,7 @@ public void DiminishTempElements(int a = 1)

cs

	public void CureTempElements(int p, bool body, bool mind)
	{
		Chara.<>c__DisplayClass562_0 CS$<>8__locals1; 
		Chara.<>c__DisplayClass565_0 CS$<>8__locals1; 
		CS$<>8__locals1.<>4__this = this;
		CS$<>8__locals1.p = p;
		if (this.tempElements == null)

@@ -9186,11 +9220,11 @@ public void CureTempElements(int p, bool body, bool mind)

cs
		}
		if (body)
		{
			this.<CureTempElements>g__Cure|562_0(Element.List_Body, ref CS$<>8__locals1); 
			this.<CureTempElements>g__Cure|565_0(Element.List_Body, ref CS$<>8__locals1); 
		}
		if (mind)
		{
			this.<CureTempElements>g__Cure|562_0(Element.List_Mind, ref CS$<>8__locals1); 
			this.<CureTempElements>g__Cure|565_0(Element.List_Mind, ref CS$<>8__locals1); 
		}
	}

@@ -9204,7 +9238,22 @@ public void CureTempElements(int p, bool body, bool mind)

cs
	}

	[CompilerGenerated]
	private void <RefreshWorkElements>g__TryAdd|492_0(Hobby h) 
	private void <get_baseWorkElements>g__Build|494_0(Hobby h) 
	{ 
		if (h.source.elements.IsEmpty()) 
		{ 
			return; 
		} 
		for (int i = 0; i < h.source.elements.Length; i += 2) 
		{ 
			int ele = h.source.elements[i]; 
			int v = h.source.elements[i + 1]; 
			this._baseWorkElements.ModBase(ele, v); 
		} 
	} 

	[CompilerGenerated] 
	private void <RefreshWorkElements>g__TryAdd|495_0(Hobby h) 
	{
		if (h.source.elements.IsEmpty())
		{

@@ -9220,26 +9269,26 @@ public void CureTempElements(int p, bool body, bool mind)

cs
			int num = h.source.elements[i];
			int num2 = h.source.elements[i + 1];
			int num3 = 100;
			if (num == 2115) 
			if (num == 2115 || num == 2207) 
			{
				goto IL_6E; 
				goto IL_79; 
			}
			num3 = h.GetEfficiency(this) * this.homeBranch.efficiency / 100;
			if (num3 > 0)
			{
				goto IL_6E; 
				goto IL_79; 
			}
			IL_A2: 
			IL_AD: 
			i += 2;
			continue;
			IL_6E: 
			IL_79: 
			this.workElements.ModBase(num, (num2 < 0) ? (num2 / 10) : Mathf.Max(1, h.source.elements[i + 1] * num3 / 1000));
			goto IL_A2; 
			goto IL_AD; 
		}
	}

	[CompilerGenerated]
	internal static int <PerformWork>g__PerformWork|503_0(Hobby work, int idx, bool isHobby, ref Chara.<>c__DisplayClass503_0 A_3) 
	internal static int <PerformWork>g__PerformWork|506_0(Hobby work, int idx, bool isHobby, ref Chara.<>c__DisplayClass506_0 A_3) 
	{
		if (idx >= work.source.resources.Length)
		{

@@ -9257,7 +9306,7 @@ public void CureTempElements(int p, bool body, bool mind)

cs
	}

	[CompilerGenerated]
	private void <CureTempElements>g__Cure|562_0(int[] eles, ref Chara.<>c__DisplayClass562_0 A_2) 
	private void <CureTempElements>g__Cure|565_0(int[] eles, ref Chara.<>c__DisplayClass565_0 A_2) 
	{
		foreach (int num in eles)
		{

@@ -9455,6 +9504,8 @@ public void CureTempElements(int p, bool body, bool mind)

cs

	public AIAct ai = new NoGoal();

	public ElementContainer _baseWorkElements; 

	private static GoalWork _goalWork = new GoalWork();

	private static GoalHobby _goalHobby = new GoalHobby();

FactionBranch

@@ -123,9 +123,29 @@ public void RefreshEfficiency()

cs
{
	int num = 100;
	int num2 = this.CountMembers(FactionMemberType.Default, false);
	FactionBranch.<>c__DisplayClass52_0 CS$<>8__locals1; 
	CS$<>8__locals1.ration = 0; 
	foreach (Chara chara in this.members) 
	{ 
		if (chara.memberType == FactionMemberType.Default) 
		{ 
			if (chara.IsPCParty || chara.homeBranch == null || chara.homeBranch.owner == null) 
			{ 
				return; 
			} 
			foreach (Hobby h in chara.ListHobbies(true)) 
			{ 
				FactionBranch.<RefreshEfficiency>g__TryAdd|52_0(h, ref CS$<>8__locals1); 
			} 
			foreach (Hobby h2 in chara.ListWorks(true)) 
			{ 
				FactionBranch.<RefreshEfficiency>g__TryAdd|52_0(h2, ref CS$<>8__locals1); 
			} 
		} 
	} 
	if (num2 > this.MaxPopulation)
	{
		num -= (num2 - this.MaxPopulation) * (2000 / (100 + 20 * (int)Mathf.Sqrt((float)this.Evalue(2207)))); 
		num -= (num2 - this.MaxPopulation) * 20 * 100 / (100 + 20 * (int)Mathf.Sqrt((float)CS$<>8__locals1.ration)); 
	}
	this.efficiency = num;
}

@@ -1116,12 +1136,12 @@ public void AddMemeber(Chara c)

cs
		}
		this.members.Add(c);
		EClass.pc.faction.charaElements.OnAddMemeber(c);
		this.RefreshEfficiency(); 
		c.RefreshWorkElements(this.elements);
		if (this.uidMaid == 0 && c.id == "maid")
		{
			this.uidMaid = c.uid;
		}
		this.RefreshEfficiency(); 
	}

	public void ChangeMemberType(Chara c, FactionMemberType type)

@@ -1203,8 +1223,8 @@ public void Recruit(Chara c)

cs
			Point point = ((random != null) ? random.GetPoint() : null) ?? EClass.pc.pos;
			EClass._zone.AddCard(c, point);
		}
		c.RefreshWorkElements(null); 
		this.RefreshEfficiency();
		c.RefreshWorkElements(null); 
		Msg.Say("hire".langGame(c.Name, null, null, null));
	}

@@ -1478,6 +1498,22 @@ public string LogRaw(string text, string col = null)

cs
		return text;
	}

	[CompilerGenerated] 
	internal static void <RefreshEfficiency>g__TryAdd|52_0(Hobby h, ref FactionBranch.<>c__DisplayClass52_0 A_1) 
	{ 
		if (h.source.elements.IsEmpty()) 
		{ 
			return; 
		} 
		for (int i = 0; i < h.source.elements.Length; i += 2) 
		{ 
			if (h.source.elements[i] == 2207) 
			{ 
				A_1.ration += h.source.elements[i + 1]; 
			} 
		} 
	} 

	[CompilerGenerated]
	private void <GenerateGarbage>g__Generate|72_0(Chara c, ref FactionBranch.<>c__DisplayClass72_0 A_2)
	{

GameScreenElona

@@ -111,7 +111,7 @@ public unsafe override void RefreshPosition()

cs
	this.camPos.z = -500f;
	EMono.scene.cam.transform.localPosition = this.camPos;
	this.camPos.z = 0f;
	EMono.scene.transAudio.position = this.camPos; 
	EMono.scene.transAudio.position = this.camPos + EMono.scene.posAudioListener; 
	if (WidgetMinimap.Instance)
	{
		WidgetMinimap.Instance.OnUpdate();

HotItemHeld

@@ -10,7 +10,32 @@ public static bool CanChangeHeightByWheel()

cs

	public static bool CanRotate()
	{
		return !EClass._zone.IsRegion && EClass.pc.held != null && (EClass._zone is Zone_Tent || EClass._zone.IsPCFaction || !EClass.pc.held.trait.CanBeOnlyBuiltInHome) && (!EClass._zone.RestrictBuild || EClass.pc.held.trait.CanBuildInTown) && (EClass.pc.held.trait is TraitTile || (HotItemHeld.taskBuild != null && (HotItemHeld.taskBuild.CanPerform() || !ActionMode.Adv.planAll.HasAct))); 
		if (EClass._zone.IsRegion || EClass.pc.held == null) 
		{ 
			return false; 
		} 
		if (!(EClass._zone is Zone_Tent) && !EClass._zone.IsPCFaction && EClass.pc.held.trait.CanBeOnlyBuiltInHome) 
		{ 
			return false; 
		} 
		if (EClass._zone.RestrictBuild && !EClass.pc.held.trait.CanBuildInTown) 
		{ 
			return false; 
		} 
		if (EClass.pc.held.trait is TraitTile) 
		{ 
			return true; 
		} 
		if (HotItemHeld.taskBuild == null) 
		{ 
			return false; 
		} 
		if (!HotItemHeld.taskBuild.CanPerform()) 
		{ 
			return false; 
		} 
		ActionMode.Adv.planAll.Update(EClass.scene.mouseTarget); 
		return !ActionMode.Adv.planAll.HasAct; 
	}

	public override Act act

Map

@@ -1142,7 +1142,7 @@ public void SetBlockDir(int x, int z, int dir)

cs
public void ModFire(int x, int z, int amount)
{
	Cell cell = this.cells[x, z];
	if (cell.IsTopWaterAndNoSnow) 
	if (cell.IsTopWaterAndNoSnow || cell.IsSnowTile) 
	{
		return;
	}

Scene

@@ -687,14 +687,14 @@ public void ApplyZoneConfig()

cs
	{
		return;
	}
	Scene.<>c__DisplayClass72_0 CS$<>8__locals1; 
	Scene.<>c__DisplayClass73_0 CS$<>8__locals1; 
	CS$<>8__locals1.conf = EMono._map.config;
	LiquidProfile.Apply(CS$<>8__locals1.conf.idLiquid);
	RefractionProfile.Apply(CS$<>8__locals1.conf.idRefraction);
	BaseTileMap tileMap = this.screenElin.tileMap;
	Scene.<ApplyZoneConfig>g__SetOcean|72_0(tileMap.passLiquid.mat, ref CS$<>8__locals1); 
	Scene.<ApplyZoneConfig>g__SetOcean|72_0(tileMap.passFloorWater.mat, ref CS$<>8__locals1); 
	Scene.<ApplyZoneConfig>g__SetOcean|72_0(tileMap.passAutoTileWater.mat, ref CS$<>8__locals1); 
	Scene.<ApplyZoneConfig>g__SetOcean|73_0(tileMap.passLiquid.mat, ref CS$<>8__locals1); 
	Scene.<ApplyZoneConfig>g__SetOcean|73_0(tileMap.passFloorWater.mat, ref CS$<>8__locals1); 
	Scene.<ApplyZoneConfig>g__SetOcean|73_0(tileMap.passAutoTileWater.mat, ref CS$<>8__locals1); 
	ScreenGrading grading = this.camSupport.grading;
	ScreenGradingProfile.Lut lut = grading.lut;
	grading.profile.funcOverlay = (() => EMono.scene.profile.overlay);

@@ -967,7 +967,7 @@ public void DestroyPrefab(string id)

cs
	}

	[CompilerGenerated]
	internal static void <ApplyZoneConfig>g__SetOcean|72_0(Material m, ref Scene.<>c__DisplayClass72_0 A_1) 
	internal static void <ApplyZoneConfig>g__SetOcean|73_0(Material m, ref Scene.<>c__DisplayClass73_0 A_1) 
	{
		m.SetFloat("_GradientWater", EMono.core.config.graphic.gradientWater ? EMono.core.config.graphic.gradientWaterLevel : 0f);
		if (A_1.conf.seaDir != 0)

@@ -1002,6 +1002,8 @@ public void DestroyPrefab(string id)

cs

	public Transform transAudio;

	public Vector3 posAudioListener; 

	public AudioListener audioListener;

	public Camera cam;

UI

@@ -649,7 +649,7 @@ public void ToggleFeedback()

cs
		text2 = "";
		Debug.Log(message);
	}
	if (text2.IsEmpty()) 
	if (!Application.isEditor && text2.IsEmpty()) 
	{
		string text3 = "public";
		try