Skip to content

EA 23.250 Nightly Patch 1

December 20, 2025

5 files modified.

Important Changes

None.

BaseTileMap

public virtual void DrawTile()

cs
					else
					{
						thingPos.y += num26;
						_actorPos.x += pref.x * (float)((!t.flipX) ? 1 : (-1)); 
						_actorPos.z += pref.z; 
						if (pref.height >= 0f) 
						if (tileType.UseMountHeight) 
						{
							thingPos.z += pref.z; 
							if (tileType != TileType.Illumination || !this.cell.HasObj) 
							{ 
								if (noRoofMode && currentRoom == null && t.altitude >= lowWallObjAltitude) 
								{ 
									continue; 
								} 
								if (hideHang && (this.cell.room?.lot != currentLot || (!this.cell.lotWall && this.cell.room != currentRoom))) 
								{ 
									Room room5 = ((t.dir == 0) ? this.cell.Back.room : this.cell.Left.room); 
									if (t.trait.AlwaysHideOnLowWall) 
									{ 
										if (room5 == null || !room5.data.showWallItem) 
										{ 
											continue; 
										} 
									} 
									else if (t.altitude >= lowWallObjAltitude) 
									{ 
										continue; 
									} 
								} 
							} 
							if (tileType.UseHangZFix) 
							{ 
								flag10 = true; 
							} 
							tileType.GetMountHeight(ref _actorPos, Point.shared.Set(index), t.dir, t); 
							shadow = false; 
							param.liquidLv = 0; 
							if (t.freePos) 
							{ 
								_actorPos.x += t.fx; 
								_actorPos.y += t.fy; 
							} 
						}
						if (!t.TileType.UseMountHeight) 
						else
						{
							thingPos.y += (float)t.altitude * altitudeFix.y;
							thingPos.z += (float)t.altitude * altitudeFix.z;
						}
						_actorPos.x += pref.x * (float)((!t.flipX) ? 1 : (-1)); 
						_actorPos.z += pref.z; 
						if (pref.height >= 0f) 
						{ 
							thingPos.z += pref.z; 
						} 
					}
					if (!tileType.UseMountHeight && m > 10)
					{

public virtual void DrawTile()

cs
					}
				}
			}
			if (isInstalled && tileType.UseMountHeight) 
			{ 
				if (tileType != TileType.Illumination || !this.cell.HasObj) 
				{ 
					if (noRoofMode && currentRoom == null && t.altitude >= lowWallObjAltitude) 
					{ 
						continue; 
					} 
					if (hideHang && (this.cell.room?.lot != currentLot || (!this.cell.lotWall && this.cell.room != currentRoom))) 
					{ 
						Room room5 = ((t.dir == 0) ? this.cell.Back.room : this.cell.Left.room); 
						if (t.trait.AlwaysHideOnLowWall) 
						{ 
							if (room5 == null || !room5.data.showWallItem) 
							{ 
								continue; 
							} 
						} 
						else if (t.altitude >= lowWallObjAltitude) 
						{ 
							continue; 
						} 
					} 
				} 
				if (tileType.UseHangZFix) 
				{ 
					flag10 = true; 
				} 
				tileType.GetMountHeight(ref _actorPos, Point.shared.Set(index), t.dir, t); 
				shadow = false; 
				param.liquidLv = 0; 
				if (t.freePos) 
				{ 
					_actorPos.x += t.fx; 
					_actorPos.y += t.fy; 
				} 
			} 
			else
			if (!isInstalled || !tileType.UseMountHeight) 
			{
				if (t.altitude != 0)
				{

Card

public void Create(string _id, int _idMat = -1, int genLv = -1)

cs
	{
		rarity = bp.rarity;
	}
	else if ((category.slot != 0 && category.slot != 45 && category.slot != 44) || IsRangedWeapon) 
	else if ((category.slot != 0 && category.slot != 45 && category.slot != 44) || category.tag.Contains("randomRarity")) 
	{
		if (EClass.rnd(10) == 0)
		{

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

cs
					num6++;
				}
			}
			if (IsPCParty) 
			if (IsPCFactionOrMinion) 
			{
				dmg = dmg * 100 / Mathf.Min(100 + num5 * 5, 120);
			}

public void TalkRaw(string text, string ref1 = null, string ref2 = null, bool fo

cs
		text = text.Replace("#2", ref2);
	}
	HostRenderer.Say(ApplyNewLine(text));
	text = StripTalkSpeiclaCharacters(text); 
	bool flag = text.StartsWith("*");
	Msg.SetColor(text.StartsWith("(") ? Msg.colors.Thinking : (flag ? Msg.colors.Ono : Msg.colors.Talk));
	if (!flag)

public void TalkRaw(string text, string ref1 = null, string ref2 = null, bool fo

cs
		Msg.Say(text.Replace("&", ""));
	}

	public string StripTalkSpeiclaCharacters(string text) 
	{ 
		switch (text[0]) 
		{ 
		case '@': 
		{ 
			if (text.Length > 1 && int.TryParse(text[1].ToString() ?? "", out var _)) 
			{ 
				return text.Substring(2); 
			} 
			break; 
		} 
		case '^': 
		case '|': 
			return text.Substring(1); 
		} 
		return text; 
	} 
	public string ApplyNewLine(string text)
	{
		if (text.Contains("&"))

Chara

public string TalkTopic(string topic = "calm")

cs
	topicText = ApplyTone(topicText);
	topicText = topicText.Replace("~", "*");
	Msg.SetColor(flag2 ? Msg.colors.Thinking : (flag3 ? Msg.colors.Talk : Msg.colors.Ono));
	Msg.Say(topicText.Replace("&", "")); 
	Msg.Say(StripTalkSpeiclaCharacters(topicText.Replace("&", ""))); 
	if (topic == "dead")
	{
		EClass.ui.popGame.PopText(ApplyNewLine(topicText.StripBrackets()), null, "PopTextDead", default(Color), pos.Position() + EClass.setting.render.tc.textPosDead);

public void TryTakeSharedItems(IEnumerable<Thing> containers, bool msg = true, b

cs
		}
		foreach (Thing thing4 in container.things)
		{
			if (!thing4.c_isImportant && thing4.IsIdentified) 
			if (!thing4.c_isImportant && thing4.IsIdentified && thing4 != EClass.pc.held) 
			{
				if (num4 > 0 && thing4.id == "polish_powder")
				{

TCText

``

cs

public class TCText : TCUI
{
	public static string[] popIDs = new string[2] { "PopTextSys", "PopTextGod" }; 
	public static string[] popIDs = new string[4] { "PopTextSys", "PopTextGod", "PopTextASMR", "PopTextOPA" }; 

	public PopManager pop;

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

cs
	{
		int num = int.Parse(s[1].ToString());
		p = pop.PopText(s.Substring(2), null, popIDs[num], default(Color), default(Vector3), duration);
		if (num == 3) 
		{ 
			Shaker.ShakeCam("opa"); 
		} 
		break;
	}
	case '^':

TraitASMR

using UnityEngine;

cs
using UnityEngine; 
public class TraitASMR : Trait
{
	public int tick;

public class TraitASMR : Trait

cs

	public override void OnCreate(int lv)
	{
		owner.c_idRefCard = GetParam(1) ?? ((EClass.rnd(EClass.debug.enable ? 2 : 10) == 0) ? "opatos" : ((EClass.rnd(2) == 0) ? "jure" : "")); 
		ExcelData.Sheet dialogSheet = Lang.GetDialogSheet("asmr"); 
		owner.c_idRefCard = GetParam(1) ?? ((EClass.rnd(EClass.debug.enable ? 2 : 10) != 0) ? "jure" : dialogSheet.map.RandomItem()["id"]); 
	}

	public override void OnImportMap()

public override void Update()

cs
	tick++;
	if (tick % 5 == 0)
	{
		Debug.Log(owner.c_idRefCard); 
		string[] dialog = Lang.GetDialog("asmr", owner.c_idRefCard.IsEmpty("eyth"));
		if (dialog.IsEmpty())
		{