Skip to content

EA 23.122 Nightly

April 8, 2025

11 files modified.

Important Changes

None.

ActEffect

@@ -1827,7 +1827,7 @@ public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po

cs
		break;
	}
	case EffectId.HealComplete:
		TC.HealHPHost(9999, (actRef.refThing == null) ? HealSource.Magic : HealSource.Item); 
		TC.HealHPHost(100000000, (actRef.refThing == null) ? HealSource.Magic : HealSource.Item); 
		TC.CureHost(CureType.HealComplete, power, state);
		TC.Say("heal_heavy", TC);
		break;

CTAG

@@ -34,5 +34,6 @@ public enum CTAG

cs
	dish_bonus,
	dish_fail,
	random_color,
	noRandomEnc 
	noRandomEnc, 
	noMix 
}

Card

@@ -2050,11 +2050,23 @@ public virtual bool IsMultisize

cs

	public bool IsFood => category.IsChildOf("food");

	public bool IsInheritFoodTraits 
	{ 
		get 
		{ 
			if (!IsFood && !category.IsChildOf("seed") && !(id == "pasture")) 
			{ 
				return id == "grass"; 
			} 
			return true; 
		} 
	} 

	public bool ShowFoodEnc
	{
		get
		{
			if (!IsFood && (Evalue(10) <= 0 || IsEquipmentOrRangedOrAmmo) && !category.IsChildOf("seed") && !(id == "pasture") && !(id == "grass")) 
			if (!IsInheritFoodTraits && (Evalue(10) <= 0 || IsEquipmentOrRangedOrAmmo)) 
			{
				return category.IsChildOf("drug");
			}

@@ -3677,7 +3689,7 @@ public virtual void HealHP(int a, HealSource origin = HealSource.None)

cs
{
	if (origin == HealSource.Magic)
	{
		a = a * Mathf.Max(100 - Evalue(93), 1) / 100; 
		a = (int)Mathf.Min(a * Mathf.Max(100 - Evalue(93), 1) / 100, 100000000f); 
	}
	hp += a;
	if (hp > MaxHP)

Chara

@@ -4942,6 +4942,7 @@ public override void Die(Element e = null, Card origin = null, AttackSource atta

cs
	}
	daysStarved = 0;
	isDead = true;
	ClearTempElements(); 
	enemy = null;
	_cooldowns = null;
	base.isSale = false;

@@ -9364,4 +9365,13 @@ void Cure(int[] eles)

cs
			}
		}
	}

	public void ClearTempElements() 
	{ 
		if (tempElements != null) 
		{ 
			tempElements.SetParent(); 
			tempElements = null; 
		} 
	} 
}

CoreDebug

@@ -448,6 +448,7 @@ public void QuickStart()

cs
		thing.AddCard(ThingGen.Create("mathammer", 102)).SetNum(10);
		thing.AddCard(ThingGen.Create("mathammer", 33)).SetNum(10);
		thing.AddCard(ThingGen.Create("mathammer", 18)).SetNum(10);
		thing.AddCard(ThingGen.Create("mathammer", 10)).SetNum(99); 
		EClass.pc.AddCard(thing);
		thing = ThingGen.Create("pouch");
		for (int l = 0; l < 30; l++)

CraftUtil

@@ -7,7 +7,8 @@ public class CraftUtil : EClass

cs
	public enum MixType
	{
		General,
		Food
		Food, 
		NoMix
	}

	public static string[] ListFoodEffect = new string[2] { "exp", "pot" };

@@ -142,18 +143,22 @@ public static Thing MixIngredients(string idProduct, List<Thing> ings, MixType t

cs

	public static Card MixIngredients(Card product, List<Thing> ings, MixType type, int maxQuality, Chara crafter = null)
	{
		bool noMix = type == MixType.NoMix || product.HasTag(CTAG.noMix); 
		bool isFood = type == MixType.Food;
		int nutFactor = 100 - (ings.Count - 1) * 5;
		if (crafter != null && crafter.Evalue(1650) >= 3)
		{
			nutFactor -= 10;
		}
		foreach (Element value2 in product.elements.dict.Values) 
		if (!noMix) 
		{
			int id = value2.id; 
			if ((uint)(id - 914) > 1u && value2.Value >= 0 && (value2.HasTag("noInherit") || IsValidTrait(value2))) 
			foreach (Element value2 in product.elements.dict.Values) 
			{
				product.elements.SetTo(value2.id, 0); 
				int id = value2.id; 
				if ((uint)(id - 914) > 1u && value2.Value >= 0 && (value2.HasTag("noInherit") || IsValidTrait(value2))) 
				{ 
					product.elements.SetTo(value2.id, 0); 
				} 
			}
		}
		if (product.HasCraftBonusTrait())

@@ -248,7 +253,7 @@ bool IsValidTrait(Element e)

cs
			}
			if (e.IsFoodTrait)
			{
				return product.ShowFoodEnc; 
				return product.IsInheritFoodTraits; 
			}
			break;
		case MixType.Food:

@@ -266,7 +271,7 @@ void MixElements(Card t)

cs
		{
			foreach (Element value3 in t.elements.dict.Values)
			{
				if (IsValidTrait(value3)) 
				if (IsValidTrait(value3) && (!noMix || value3.id == 2)) 
				{
					if (isFood && value3.IsFoodTraitMain)
					{

Game

@@ -445,22 +445,6 @@ public void OnLoad()

cs
			}
		}
	});
	QuestDebt questDebt = EClass.game.quests.Get<QuestDebt>(); 
	if (questDebt != null && questDebt.stage == 6) 
	{ 
		if (player.debt == 19900000) 
		{ 
			EClass.pc.AddCard(ThingGen.Create("ticket_champagne")); 
			questDebt.stage = 3; 
		} 
		if (player.debt == 19530000) 
		{ 
			EClass.pc.AddCard(ThingGen.Create("loytel_mart")); 
			EClass.pc.AddCard(ThingGen.Create("ticket_massage")); 
			player.debt = 19500000; 
			questDebt.stage = 5; 
		} 
	} 
	TryAddQuest("into_darkness", "exile_kettle");
	if (version.IsBelow(0, 23, 100))
	{

Thing

@@ -1060,6 +1060,10 @@ public override void WriteNote(UINote n, Action<UINote> onWriteNote = null, IIns

cs
	{
		AddText("isCopy", FontColor.Default);
	}
	if (flag && HasTag(CTAG.noMix)) 
	{ 
		AddText("isNoMix", FontColor.Default); 
	} 
	if (!trait.CanBeDestroyed)
	{
		AddText("isIndestructable", FontColor.Default);

TraitCrafter

@@ -16,7 +16,8 @@ public enum MixType

cs
		Scratch,
		Incubator,
		Fortune,
		RuneMold 
		RuneMold, 
		FixedResource 
	}

	public enum AnimeType

@@ -281,6 +282,7 @@ public virtual Thing Craft(AI_UseCrafter ai)

cs
	MixType mixType = source.type.ToEnum<MixType>();
	int num = source.num.Calc();
	Thing t = null;
	string[] array = thing3.Split('%'); 
	bool claimed;
	switch (mixType)
	{

@@ -288,11 +290,9 @@ public virtual Thing Craft(AI_UseCrafter ai)

cs
		t = CraftUtil.MixIngredients(thing3, ai.ings, CraftUtil.MixType.General, 0, EClass.pc);
		break;
	case MixType.Resource:
	{ 
		string[] array = thing3.Split('%'); 
		t = CraftUtil.MixIngredients(ThingGen.Create(array[0], (array.Length > 1) ? EClass.sources.materials.alias[array[1]].id : thing.material.id), ai.ings, CraftUtil.MixType.General, 999, EClass.pc).Thing; 
	case MixType.FixedResource:
		t = CraftUtil.MixIngredients(ThingGen.Create(array[0], (array.Length > 1) ? EClass.sources.materials.alias[array[1]].id : thing.material.id), ai.ings, (mixType == MixType.FixedResource) ? CraftUtil.MixType.NoMix : CraftUtil.MixType.General, 999, EClass.pc).Thing; 
		break;
	} 
	case MixType.Dye:
		t = ThingGen.Create(thing3, thing2.material.id);
		break;

TraitPotionAlchemy

@@ -20,6 +20,7 @@ public override void OnCrafted(Recipe recipe)

cs
		case 750:
		case 753:
			num = ((num2 >= 6) ? 8402 : ((num2 >= 4) ? 8401 : 8400));
			Debug.Log(num.ToString() + num2); 
			break;
		case 754:
			num = 8471;

UIDragGridInfo

@@ -84,11 +84,11 @@ public void Init(Card _owner)

cs
					{
						Util.Instantiate(moldOr, b);
					}
					AddThing(text2); 
					AddThing(text2, null); 
				}
			}
			Util.Instantiate(moldEqual, b);
			AddThing(a.thing); 
			AddThing(a.thing, (a.type == "FixedResource") ? "noInherit" : null); 
		},
		onList = delegate
		{

@@ -110,11 +110,11 @@ public void Init(Card _owner)

cs
	}
	window.SetActive(enable: true);
	window.RebuildLayout(recursive: true);
	void AddThing(string id) 
	void AddThing(string id, string lang) 
	{
		if (id.IsEmpty() || id == "notImplemented" || id == "any")
		{
			Util.Instantiate(moldUnknown, P_1.b).GetComponentInChildren<UIButton>().tooltip.lang = "???"; 
			Util.Instantiate(moldUnknown, P_2.b).GetComponentInChildren<UIButton>().tooltip.lang = "???"; 
		}
		else
		{

@@ -133,17 +133,19 @@ void AddThing(string id)

cs
			{
				mat = ((!(array[1] == "gelatin")) ? EMono.sources.materials.alias[array[1]] : EMono.sources.materials.alias["jelly"]);
			}
			Transform transform = Util.Instantiate(moldThing, P_1.b); 
			Transform transform = Util.Instantiate(moldThing, P_2.b); 
			Image componentInChildren = transform.GetComponentInChildren<Image>();
			UIButton component = componentInChildren.GetComponent<UIButton>();
			cardRow.SetImage(componentInChildren, null, cardRow.GetColorInt(mat));
			string s = cardRow.GetName();
			if (!text.IsEmpty()) 
			if (!text.IsEmpty() || lang != null) 
			{
				Transform obj = Util.Instantiate(moldCat, transform); 
				string @ref = EMono.sources.categories.map[text].GetName(); 
				obj.GetComponentInChildren<UIText>().SetText("category".lang()); 
				s = "ingCat".lang(@ref); 
				Util.Instantiate(moldCat, transform).GetComponentInChildren<UIText>().SetText((lang ?? "category").lang()); 
				if (lang == null) 
				{ 
					string @ref = EMono.sources.categories.map[text].GetName(); 
					s = "ingCat".lang(@ref); 
				} 
			}
			component.tooltip.lang = s.ToTitleCase();
		}