Skip to content

EA 23.230 Nightly

November 3, 2025

11 files modified.

Important Changes

None.

ActPlan

public void _Update(PointTarget target)

cs
						List<Chara> list2 = new List<Chara>();
						foreach (Chara chara in EClass._map.charas)
						{
							if (chara.IsPCPartyMinion && !chara.IsEscorted()) 
							if (chara.IsPCFactionMinion && !chara.IsEscorted()) 
							{
								list2.Add(chara);
							}

Card

public void SpawnLoot(Card origin)

cs
		{
			switch (id)
			{
			case "pumpkin": 
				if (chance(3)) 
				{ 
					list.Add(ThingGen.CreateFromCategory((EClass.rnd(2) == 0) ? "meal_cookie" : "meal_cake", 5 + EClass.rnd(EClass.rnd(50) + 1))); 
				} 
				break; 
			case "isca":
				list.Add(ThingGen.Create("blood_angel"));
				break;

public virtual void SetImage(Image image)

cs
		if (trait is TraitAbility)
		{
			(trait as TraitAbility).act.SetImage(image);
			return; 
		}
		else
		Sprite sprite = GetSprite(); 
		if (!c_idSpriteReplacer.IsEmpty()) 
		{
			sourceRenderCard.SetImage(image, GetSprite(), colorInt, setNativeSize: true, 0, 0, this); 
			SpriteReplacer spriteReplacer = SpriteReplacer.dictSkins.TryGetValue(c_idSpriteReplacer); 
			if (spriteReplacer != null) 
			{ 
				RenderData renderData = ResourceCache.Load<RenderData>("Scene/Render/Data/chara_custom_" + ((spriteReplacer.data.GetSprite().texture.height <= 128) ? "128" : "256")); 
				sprite = spriteReplacer.data.GetSprite(); 
				sourceRenderCard.SetImage(image, sprite, colorInt, setNativeSize: true, 0, 0, renderData, spriteReplacer.data.pref ?? Pref); 
				return; 
			} 
		}
		sourceRenderCard.SetImage(image, sprite, colorInt, setNativeSize: true, 0, 0, this); 
	}

	public void ShowEmo(Emo _emo = Emo.none, float duration = 0f, bool skipSame = true)

ConChampagne

public override void Tick()

cs
		count += 15;
		owner.Talk("champagne");
		int num = Mathf.Max(EClass.curve(owner.CHA * 10, 400, 100), 100);
		if (EClass._zone.IsUserZone && !owner.IsPCFactionOrMinion && num > 500) 
		if (!owner.IsPCFactionOrMinion && num > 500) 
		{
			num = 500;
		}
		foreach (Chara chara in EClass._map.charas)
		{
			if (chara != owner && chara.IsNeutralOrAbove() && owner.Dist(chara) <= 10) 
			if (chara != owner && !chara.IsHostile(owner) && owner.Dist(chara) <= 10) 
			{
				chara.AddCondition<ConHero>(num);
				chara.AddCondition<ConEuphoric>(num);

ConTransmute

public override void Tick()

cs
	public override void OnStart()
	{
		owner._CreateRenderer();
		if (owner.IsPCParty) 
		{ 
			WidgetRoster.SetDirty(); 
		} 
	}

	public override void OnRemoved()
	{
		owner._CreateRenderer();
		if (owner.IsPCParty) 
		{ 
			WidgetRoster.SetDirty(); 
		} 
	}
}

GameDate

public void AdvanceDay()

cs
			EClass.world.SendPackage(p);
		}
	}
	if (base.day == 30 && base.month == 10 && (EClass.game.quests.IsStarted<QuestDebt>() || EClass.debug.enable)) 
	if (base.day == 1 && base.month == 11 && (EClass.game.quests.IsStarted<QuestDebt>() || EClass.debug.enable)) 
	{
		Thing thing2 = ThingGen.Create("parchment");
		thing2.SetStr(53, "letter_crimale");

RenderRow

public virtual SourcePref GetPref()

cs
	}

	public void SetImage(Image image, Sprite sprite = null, int matCol = 0, bool setNativeSize = true, int dir = 0, int idSkin = 0, Card card = null)
	{ 
		bool num = card != null && card.isChara && card.Chara.spriteReplacer != null && !card.HasHost; 
		SourcePref sourcePref = ((card != null) ? card.Pref : GetPref()); 
		RenderData renderData = (num ? card.renderer.data : this.renderData); 
		SetImage(image, sprite, matCol, setNativeSize, dir, idSkin, renderData, sourcePref); 
	} 
	public void SetImage(Image image, Sprite sprite, int matCol, bool setNativeSize, int dir, int idSkin, RenderData _renderData, SourcePref _pref) 
	{
		image.sprite = sprite ?? GetSprite(dir, idSkin);
		int num = ((matCol == 0) ? 104025 : matCol);

public void SetImage(Image image, Sprite sprite = null, int matCol = 0, bool set

cs
	color.a = 1f;
	image.color = color;
	RectTransform rectTransform = image.Rect();
	bool num3 = card != null && card.isChara && card.Chara.spriteReplacer != null && !card.HasHost; 
	SourcePref sourcePref = ((card != null) ? card.Pref : GetPref()); 
	RenderData renderData = (num3 ? card.renderer.data : this.renderData); 
	rectTransform.pivot = renderData.imagePivot - new Vector2(0.01f * (float)sourcePref.pivotX, 0.01f * (float)sourcePref.pivotY); 
	rectTransform.pivot = _renderData.imagePivot - new Vector2(0.01f * (float)_pref.pivotX, 0.01f * (float)_pref.pivotY); 
	float x = Mathf.Abs(image.transform.localScale.x) * (float)((_tiles == null || _tiles.Length == 0 || _tiles[dir % _tiles.Length] >= 0) ? 1 : (-1));
	float y = image.transform.localScale.y;
	image.transform.localScale = new Vector3(x, y, image.transform.localScale.z);
	sourcePref.Validate(); 
	_pref.Validate(); 
	if (setNativeSize)
	{
		image.SetNativeSize();
		if (renderData.imageScale.x != 1f || renderData.imageScale.y != 1f || sourcePref.scaleIcon != 0) 
		if (_renderData.imageScale.x != 1f || _renderData.imageScale.y != 1f || _pref.scaleIcon != 0) 
		{
			rectTransform.sizeDelta = new Vector2(rectTransform.sizeDelta.x * (renderData.imageScale.x + (float)sourcePref.scaleIcon * 0.01f), rectTransform.sizeDelta.y * (renderData.imageScale.y + (float)sourcePref.scaleIcon * 0.01f)); 
			rectTransform.sizeDelta = new Vector2(rectTransform.sizeDelta.x * (_renderData.imageScale.x + (float)_pref.scaleIcon * 0.01f), rectTransform.sizeDelta.y * (_renderData.imageScale.y + (float)_pref.scaleIcon * 0.01f)); 
		}
	}
}

TaskHarvest

public bool HaveHarvestThing()

cs
public void HarvestThing()
{
	string text = GetIdDismantled();
	if (target.id == "934" || target.id == "1002") 
	{ 
		Rand.SetSeed(target.uid); 
		text = ThingGen.CreateFromCategory((EClass.rnd(2) == 0) ? "meal_cookie" : "meal_cake", 5 + EClass.rnd(EClass.rnd(50) + 1)).id; 
		Rand.SetSeed(); 
	} 
	float num = target.Num;
	float num2 = 1.0999999f;
	if (target.trait.CraftNum > 1)

Thing

public override void WriteNote(UINote n, Action<UINote> onWriteNote = null, IIns

cs
				{
					return false;
				}
				if (e.source.categorySub == "eleAttack" && !base.IsWeapon && !base.IsRangedWeapon && !base.IsAmmo && !base.IsThrownWeapon && !(trait is TraitToolMusic)) 
				if (!e.IsGlobalElement) 
				{
					return false; 
					if (e.source.tag.Contains("weaponEnc") && !base.IsWeapon && !base.IsRangedWeapon && !base.IsAmmo && !base.IsThrownWeapon && !(trait is TraitToolMusic)) 
					{ 
						return false; 
					} 
					if (e.source.IsWeaponEnc && !base.category.IsChildOf("shield") && !base.IsWeapon && !base.IsRangedWeapon && !base.IsAmmo && !base.IsThrownWeapon && !(trait is TraitToolMusic)) 
					{ 
						return false; 
					} 
				}
				return (!showEQStats || (e.id != 64 && e.id != 65 && e.id != 66 && e.id != 67)) ? true : false;
			}, null, ElementContainer.NoteMode.Default, addRaceFeat: false, delegate(Element e, string s)

Trait

public void OnBarter(bool reroll = false)

cs
				Add("714", 1, 0);
				Add("1017", 1, 0);
				Add("1155", 1, 0);
				Add("1287", 1, 0); 
				Add("1288", 1, 0); 
				Add("1289", 1, 0); 
				Add("1290", 1, 0); 
				Add("1011", 1, 0);
				AddThing(ThingGen.CreatePerfume(9500, 5));
				AddThing(ThingGen.CreatePerfume(9501, 5));

TraitLumiestCrimAle

public class TraitLumiestCrimAle : TraitFoodMeal

cs
public class TraitLumiestCrimAle : TraitFoodMeal
public class TraitLumiestCrimAle : TraitFoodPrepared
{
	public override bool CanBeHeldAsFurniture => true;

Zone

public void Simulate()

cs
			{
				Msg.ignoreAll = true;
				chara2.Cure(CureType.Boss, 20 + num * 10);
				chara2.HealHP(Mathf.Max(1, chara2.MaxHP) * Mathf.Min(num, 20) / 20); 
				chara2.HealHP((int)((long)Mathf.Max(1, chara2.MaxHP) * (long)Mathf.Min(num, 20) / 20)); 
				chara2.mana.Mod(Mathf.Max(1, chara2.mana.max) * Mathf.Min(num, 20) / 20);
				chara2.stamina.Mod(Mathf.Max(1, chara2.stamina.max) * Mathf.Min(num, 20) / 20);
				Msg.ignoreAll = false;