Skip to content

EA 23.341 Nightly โ€‹

September 1, 2026

12 files modified.

Important Changes โ€‹

None.

ActEffect โ€‹

void AddCon<T>(int rate, int p2) where T : Condition

cs
{
	CC.PlaySound("spell_missile");
});
for (int num9 = 0; num9 < 8 + EClass.rnd(5); num9++) 
for (int num9 = 0; num9 < 6 + EClass.rnd(7); num9++) 
{
	list7.Clear();
	list7.Add(list8.RandomItem());

ButtonGrid โ€‹

public void SetCard(Card c, Mode mode = Mode.Default, Action<UINote> onWriteNoteโ€ฆ)

cs
}
if (c.IsIdentified)
{
	BlessedState blessedState2 = c.blessedState; 
	if (blessedState2 != BlessedState.Normal) 
	if (c.GetBool(135)) 
	{
		Attach("status_" + blessedState2); 
		Attach("status_SleepLock"); 
	} 
	else
	{ 
		BlessedState blessedState2 = c.blessedState; 
		if (blessedState2 != BlessedState.Normal) 
		{ 
			Attach("status_" + blessedState2); 
		} 
	}
}
else

Chara โ€‹

public bool UseAbility(Act a, Card tc = null, Point pos = null, bool pt = false)

cs
}
else
{
	if (IsPC && HasElement(1274) && a.vPotential < 0 && !flag2 && !a.HasTag("dontForget")) 
	if (IsPC && a.vPotential < 0 && !flag2 && !a.HasTag("dontForget")) 
	{
		Msg.Say("noSpellStock");
		EInput.Consume();

DNA โ€‹

public void WriteNoteExtra(UINote n, Thing owner, Chara tg)

cs
int num2 = tg.MaxGeneSlot - tg.CurrentGeneSlot;
int num3 = num2 - num;
int maxGeneSlot = tg.MaxGeneSlot;
if (owner == null || !(owner.category.id == "relic")) 
{ 
	n.AddText("gene_hint_slot".lang(num2.ToString() ?? "", num3.ToString() ?? "", maxGeneSlot.ToString() ?? ""), (num3 >= 0) ? FontColor.Good : FontColor.Bad); 
} 
n.AddText("gene_hint_slot".lang(num2.ToString() ?? "", num3.ToString() ?? "", maxGeneSlot.ToString() ?? ""), (num3 >= 0) ? FontColor.Good : FontColor.Bad); 
int num4 = cost * tg.GeneCostMTP / 100;
int num5 = tg.feat - num4;
n.AddText("gene_hint_cost".lang(tg.feat.ToString() ?? "", num4 + ((num4 == cost) ? "" : ("(" + cost + ")")), num5.ToString() ?? ""), (num5 >= 0) ? FontColor.Good : FontColor.Bad);

public DNA Relicize()

cs
				i -= 2;
			}
		}
		cost /= 5; 
		cost = cost * Mathf.Clamp(slot, 1, 10) / 10; 
		return this;
	}
}

HotItemEQSet โ€‹

public HotItemEQSet Register()

cs
ids.Clear();
foreach (BodySlot slot in EClass.pc.body.slots)
{
	if (slot.elementId != 44 && slot.thing != null) 
	if (slot.elementId != 44 && slot.thing != null && slot.elementId != 46) 
	{
		ids.Add(slot.thing.uid);
	}

public override void Perform()

cs
Dictionary<int, Thing> dictionary = new Dictionary<int, Thing>();
foreach (BodySlot slot2 in EClass.pc.body.slots)
{
	if (slot2.elementId != 44 && slot2.thing != null && slot2.thing.blessedState >= BlessedState.Normal) 
	if (slot2.elementId != 44 && slot2.thing != null && slot2.thing.blessedState >= BlessedState.Normal && slot2.thing.category.id != "relic") 
	{
		dictionary.Add(slot2.thing.c_equippedSlot - 1, slot2.thing);
		EClass.pc.body.Unequip(slot2.thing, refresh: false);

InvOwner โ€‹

public virtual bool AllowHold(Thing t)

cs
{
	return false;
}
if (t.isEquipped && t.IsCursed) 
if (t.isEquipped) 
{
	return false; 
	if (t.IsCursed) 
	{ 
		return false; 
	} 
	if (t.GetBool(135)) 
	{ 
		return false; 
	} 
}
if (Container.isChara && !Container.IsPC)
{

public virtual void OnClick(ButtonGrid button)

cs
	return;
}
bool flag = false;
if (card.Thing.isEquipped && card.Thing.IsEquipmentOrRanged && card.Thing.IsCursed) 
if (card.Thing.isEquipped && card.GetBool(135)) 
{ 
	SE.Play("curse3"); 
} 
else if (card.Thing.isEquipped && card.Thing.IsEquipmentOrRanged && card.Thing.IsCursed) 
{
	SE.Play("curse3");
}

InvOwnerChangeRarity โ€‹

public override Thing CreateDefaultContainer()

cs
public override bool ShouldShowGuide(Thing t)
{
	if (t.IsEquipment && t.rarity <= Rarity.Legendary && !t.HasTag(CTAG.godArtifact)) 
	if (t.IsEquipment && t.rarity <= Rarity.Legendary && !t.HasTag(CTAG.godArtifact) && !t.IsLightsource) 
	{
		return !t.IsLightsource; 
		return t.category.id != "relic"; 
	}
	return false;
}

InvOwnerEnchant โ€‹

public override Thing CreateDefaultContainer()

cs
public override bool ShouldShowGuide(Thing t)
{
	return t.category.IsChildOf(armor ? "armor" : "weapon"); 
	if (t.category.IsChildOf(armor ? "armor" : "weapon")) 
	{ 
		return t.category.id != "relic"; 
	} 
	return false; 
}

public override void _OnProcess(Thing t)

AssemblyInfo โ€‹

using System.Security;

cs
using System.Security;
using System.Security.Permissions;

[assembly: AssemblyFileVersion("0.23.340.3")] 
[assembly: AssemblyInformationalVersion("0.23.340.3+Nightly")] 
[assembly: AssemblyMetadata("GameVersion", "0.23.340.3")] 
[assembly: AssemblyMetadata("GameVersionText", "EA 23.340 Patch 3")] 
[assembly: AssemblyMetadata("GameVersionInt", "23340")] 
[assembly: AssemblyFileVersion("0.23.341.0")] 
[assembly: AssemblyInformationalVersion("0.23.341.0+Nightly")] 
[assembly: AssemblyMetadata("GameVersion", "0.23.341.0")] 
[assembly: AssemblyMetadata("GameVersionText", "EA 23.341")] 
[assembly: AssemblyMetadata("GameVersionInt", "23341")] 
[assembly: AssemblyMetadata("ReleaseChannel", "Nightly")]
[assembly: AssemblyVersion("0.0.0.0")]

Thing โ€‹

public bool CanAutoFire(Chara c, Card tg, bool reloading = false)

cs
{
	Act act = (trait as TraitAbility).act;
	Element element = c.elements.GetElement(act.id);
	if (act is Spell && (element == null || element.vPotential == 0)) 
	if (act is Spell && (element == null || (element.vPotential == 0 && !EClass.pc.ability.Has(element.id)))) 
	{
		return false;
	}

public override void WriteNote(UINote n, Action<UINote> onWriteNote = null, IInsโ€ฆ)

cs
trait.WriteNote(n, flag2);
if (base.c_DNA != null)
{
	bool flag3 = EClass.pc.HasElement(1274) && !LayerDragGrid.Instance; 
	bool flag3 = EClass.pc.HasElement(1274) && !LayerDragGrid.Instance && base.category.id != "relic"; 
	if (base.c_DNA.cost > 0)
	{
		n.AddText("NoteText_enc", "isCostFeatPoint".lang((flag3 ? (base.c_DNA.cost * EClass.pc.GeneCostMTP / 100 + " (" + base.c_DNA.cost + ")") : ((object)base.c_DNA.cost))?.ToString() ?? ""));

TraitBookSecret โ€‹

public class TraitBookSecret : TraitBookExp

cs
{
	public override void OnRead(Chara c)
	{
		if (c.IsPC && EClass.player.stats.kumi >= 5) 
		{ 
			c.Say("book_secret2", c); 
			return; 
		} 
		c.Say("book_secret", c);
		c.Say("dingExp", c);
		c.feat += (c.IsPC ? 1 : 4);

TraitMannequin โ€‹

public override bool OnUse(Chara c)

cs
{
	foreach (Thing item in list)
	{
		owner.AddCard(item); 
		if (!(item.category.id == "relic")) 
		{ 
			owner.AddCard(item); 
		} 
	}
}
else

public override bool OnUse(Chara c)

cs
}
foreach (Thing item2 in list)
{
	owner.AddCard(item2); 
	if (!(item2.category.id == "relic")) 
	{ 
		owner.AddCard(item2); 
	} 
}
foreach (Thing item3 in list2)
{