Skip to content

EA 23.260 Stable Patch 1

January 15, 2026

9 files modified.

Important Changes

None.

ACT

public bool CanPerform(Chara _cc, Card _tc = null, Point _tp = null)

cs
			}
		}
	}
	if (!(this is ActMelee) && tt.Range == TargetRange.Chara && (TC == null || !CC.CanSee(TC) || (TC.Chara?.mimicry != null && CC != TC))) 
	if (!(this is ActMelee) && tt.Range == TargetRange.Chara && (TC == null || !CC.CanSee(TC) || (TC.Chara?.mimicry != null && CC.IsPC && TC != EClass.pc))) 
	{
		return false;
	}

Chara

public void TickConditions()

cs
	case 2:
		if (parasite != null)
		{
			ModExp(227, (EClass._zone.IsRegion ? 5 : 40) * 100 / Mathf.Max(100, 100 + (elements.Base(227) - parasite.LV) * 25)); 
			ModExp(227, (int)((EClass._zone.IsRegion ? 5 : 40) + parasite.affinity.CurrentStage)); 
		}
		if (ride != null)
		{
			ModExp(226, (EClass._zone.IsRegion ? 5 : 40) * 100 / Mathf.Max(100, 100 + (elements.Base(226) - ride.LV) * 25)); 
			ModExp(226, (int)((EClass._zone.IsRegion ? 5 : 40) + ride.affinity.CurrentStage)); 
		}
		break;
	case 3:

DramaCustomSequence

public void Build(Chara c)

cs
			c.MoveZone(c.homeZone);
		}
	});
	Goto("_bye"); 
	Goto("_end"); 
	Step("_banish");
	Goto("_bye");
	Step("_makeLivestock");

void Invest(bool quick)

cs
		c.Talk("bye");
	});
	End();
	Step("_end"); 
	End(); 
	void BackChill()
	{
		Method(RumorChill, null, StepDefault);

GoalCombat

public class ItemAbility

cs
		public bool pt;

		public bool aiPt;
		public bool aiSelf; 
	}

	public Chara destEnemy;

TraitBaseSpellbook

public override bool TryProgress(AIProgress p)

cs
		return false;
	}
	int diff = Mathf.Max(1, Difficulty * ((owner.blessedState >= BlessedState.Blessed) ? 75 : ((owner.blessedState <= BlessedState.Cursed) ? 300 : 100)) / 100);
	int check = Mathf.Max(1, (int)((long)c.Evalue(eleParent) * (long)(100 + c.Evalue(285) * 10) / 100)); 
	long num = (long)c.Evalue(eleParent) * (long)(100 + c.Evalue(285) * 10) / 100; 
	int check = Mathf.Max(1, (int)((num >= 21474836) ? 21474836 : num)); 
	if (ReadCheck() || EClass.debug.godMode || owner.HasEditorTag(EditorTag.NoReadFail))
	{
		return true;

TraitCoffin

public override void Prespawn(int lv)

cs
			ThingGen.CreateTreasureContent(owner.Thing, lv, TreasureType.RandomChest, clearContent: true);
			return;
		}
		PutChara(EClass.sources.charas.rows.Where((SourceChara.Row r) => r.race == "zombie" || r.race == "vampire").RandomItem().id); 
		PutChara(EClass.sources.charas.rows.Where((SourceChara.Row r) => r.race == "zombie" || r.race == "vampire").ToList().RandomItemWeighted((SourceChara.Row c) => c.chance) 
			.id); 
		} 
	}
} 

TraitScrollStatic

using UnityEngine;

cs
using UnityEngine; 
public class TraitScrollStatic : TraitScroll
{
	public override SourceElement.Row source

public override SourceElement.Row source

cs

	public virtual string N1 => owner.sourceCard.vals.TryGet(4);

	public override Sprite GetRefSprite() 
	{ 
		if (idEffect == EffectId.Ally) 
		{ 
			return EClass.sources.elements.alias["ActSummonSpecial"].GetSprite(); 
		} 
		return base.GetRefSprite(); 
	} 
	public override bool CanRead(Chara c)
	{
		return !c.isBlind;

TraitSeed

public static Thing MakeSeed(SourceObj.Row obj, PlantData plant = null)

cs
			}
		}
		thing2.SetEncLv(thing.encLV);
		thing2.elements.SetBase(2, EClass.curve(thing2.encLV, 50, 10, 80)); 
		thing2.c_refText = thing.c_refText;
		thing2.c_seed = thing.c_seed;
		int num = plant?.water ?? 0;

public static Thing MakeSeed(SourceObj.Row obj, PlantData plant = null)

cs
				EClass.pc.PlaySound("seed_level");
			}
		}
		thing2.elements.SetBase(2, EClass.curve(thing2.encLV, 50, 10, 80)); 
		Rand.SetSeed();
	}
	thing2.SetBlessedState(BlessedState.Normal);

UIInventory

public void RefreshMenu()

cs
			bool flag4 = (!con2.isNPCProperty && !con2.isChara && (con2.trait is TraitShippingChest || (con2.GetRoot() is Zone && EMono._zone.IsPCFaction) || con2.GetRootCard() == EMono.pc)) || EMono._zone is Zone_Tent;
			if (con2.IsPC)
			{
				flag4 = true; 
				flag4 = false; 
			}
			if (con2.trait is TraitChestMerchant)
			{