Skip to content

EA 23.196 Nightly Patch 1

September 8, 2025

6 files modified.

Important Changes

Possible breaking changes. Click the filename to view the chunk.

Card (1)

cs
public void ApplyElementEffect(Element e, int eleP, Card origin) 
public void ApplyElementEffect(Element e, int eleP, Card origin, bool checkHostileAct = false) 

AI_PlayMusic

public override IEnumerable<Status> Run()

cs
		Debug.Log(song.lv);
	}
	List<Chara> reacted = new List<Chara>();
	Progress_Custom seq = new Progress_Custom
	Progress_Custom progress = new Progress_Custom
	{
		maxProgress = 15,
		cancelWhenMoved = false,

public override IEnumerable<Status> Run()

cs
								}
								if (value.source.categorySub == "eleAttack")
								{
									item2.ApplyElementEffect(value, value.Value * 10, owner); 
									item2.ApplyElementEffect(value, value.Value * 10, owner, checkHostileAct: true); 
								}
							}
						}

public override IEnumerable<Status> Run()

cs
						if (EClass.rnd(num2 * num2) <= 30 && item2.pos.FirstChara == item2)
						{
							bool isMinion = item2.IsMinion;
							p.cancelWhenDamaged = false; 
							if (num < item2.LV && EClass.rnd(2) == 0)
							{
								reacted.Add(item2);

public override IEnumerable<Status> Run()

cs
								}
								num2++;
							}
							p.cancelWhenDamaged = true; 
						}
					}
				}

public override IEnumerable<Status> Run()

cs
			Evaluate(success: true);
		}
	}.SetDuration(26);
	yield return Do(seq); 
	yield return Do(progress); 
	if (progress.status == Status.Fail) 
	{ 
		yield return Cancel(); 
	} 
	void LevelSong(int a)
	{
		if (a > 0)

Card

void ProcAbsorb()

cs
		}
	}

	public void ApplyElementEffect(Element e, int eleP, Card origin) 
	public void ApplyElementEffect(Element e, int eleP, Card origin, bool checkHostileAct = false) 
	{
		if (!isChara)
		{
			return;
		}
		bool flag = true;
		bool hostile = false; 
		switch (e.id)
		{
		case 910:
			if (Chance(30 + eleP / 5, 100))
			{
				Chara.AddCondition<ConBurning>(eleP); 
				MarkHostile().AddCondition<ConBurning>(eleP); 
			}
			break;
		case 911:

public void ApplyElementEffect(Element e, int eleP, Card origin)

cs
	case 915:
		if (Chance(30 + eleP / 5, 100))
		{
			Chara.AddCondition<ConPoison>(eleP); 
			MarkHostile().AddCondition<ConPoison>(eleP); 
		}
		break;
	case 913:

public void ApplyElementEffect(Element e, int eleP, Card origin)

cs
		}
		if (Chance(5 + eleP / 25, 40))
		{
			Chara.AddCondition<ConPoison>(eleP / 2); 
			MarkHostile().AddCondition<ConPoison>(eleP / 2); 
		}
		if (Chance(5 + eleP / 25, 40))
		{

public void ApplyElementEffect(Element e, int eleP, Card origin)

cs
	case 924:
		if (Chance(50 + eleP / 10, 100))
		{
			Chara.AddCondition<ConBleed>(eleP); 
			MarkHostile().AddCondition<ConBleed>(eleP); 
		}
		break;
	case 923:

public void ApplyElementEffect(Element e, int eleP, Card origin)

cs
		{
			Chara.conSleep.Kill();
		}
		if (checkHostileAct && hostile && origin != null && origin.isChara) 
		{ 
			origin.Chara.DoHostileAction(this); 
		} 
		static bool Chance(int a, int max)
		{
			return Mathf.Min(a, max) > EClass.rnd(100);
		}
		Chara MarkHostile() 
		{ 
			hostile = true; 
			return Chara; 
		} 
	}

	public virtual void Die(Element e = null, Card origin = null, AttackSource attackSource = AttackSource.None, Chara originalTarget = null)

public void SpawnLoot(Card origin)

cs
				CardRow cardRow = EClass.sources.cards.map[array[0]];
				if (cardRow != null && cardRow.Category.slot != 0 && cardRow.quality == 0 && EClass.pc.Evalue(1660) * 25 > EClass.rnd(100))
				{
					CardBlueprint.SetRarity(Rarity.Legendary); 
					CardBlueprint.SetRarity((EClass.rnd(20) == 0) ? Rarity.Mythical : Rarity.Legendary); 
				}
				list.Add(ThingGen.Create(array[0]).SetNum((num4 < 1000) ? 1 : (num4 / 1000 + ((EClass.rnd(1000) > num4 % 1000) ? 1 : 0)))); 
				list.Add(ThingGen.Create(array[0], -1, LV).SetNum((num4 < 1000) ? 1 : (num4 / 1000 + ((EClass.rnd(1000) > num4 % 1000) ? 1 : 0)))); 
			}
		}
		if (Chara.IsMachine)

CoreDebug

public void QuickStart()

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

SourceElement

public bool IsMaterialEncAppliable(Thing t)

cs
			}
			return true;
		}
		if (!t.IsEquipmentOrRangedOrAmmo && !t.IsThrownWeapon) 
		if (!t.IsEquipmentOrRangedOrAmmo && !t.IsThrownWeapon && !(t.trait is TraitToolMusic)) 
		{
			return false;
		}

Thing

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

cs
	{
		AddText("isBed".lang(traitBed.MaxHolders.ToString() ?? ""), FontColor.Default);
	}
	bool flag3 = base.IsEquipmentOrRangedOrAmmo || base.IsThrownWeapon; 
	bool flag3 = base.IsEquipmentOrRangedOrAmmo || base.IsThrownWeapon || trait is TraitToolMusic; 
	bool showTraits = !flag3 || base.ShowFoodEnc;
	bool infoMode = mode == IInspect.NoteMode.Info;
	List<Element> listTrait = ListValidTraits(isCraft: false, !infoMode);

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) 
				if (e.source.categorySub == "eleAttack" && !base.IsWeapon && !base.IsRangedWeapon && !base.IsAmmo && !base.IsThrownWeapon && !(trait is TraitToolMusic)) 
				{
					return false;
				}

TraitIndulgence

public override void OnRead(Chara c)

cs
{
	c.PlaySound("holyveil");
	c.PlayEffect("holyveil");
	Msg.Say("skillbook_noSkill", c); 
	Msg.Say("indulgence", c); 
	if (c.IsPC)
	{
		EClass.player.ModKarma(20);