Skip to content

EA 23.272 Nightly โ€‹

February 20, 2026

17 files modified.

Important Changes โ€‹

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

TraitFakeTile (1) โ€‹

cs
public override SourcePref GetPref() 

AI_Idle โ€‹

public override IEnumerable<Status> Run()

cs
			}
			if (EClass.rnd(3) == 0 && owner.mana.value > 0)
			{
				Act act = null; 
				Act actHeal = null; 
				Act actRevive = null;
				foreach (ActList.Item item in owner.ability.list.items)
				{
					Act act2 = item.act; 
					if (act2.id == 8430) 
					Act act = item.act; 
					if (act.id == 8430) 
					{
						actRevive = act2; 
						actRevive = act; 
					}
					string[] abilityType = act2.source.abilityType; 
					string[] abilityType = act.source.abilityType; 
					if (!abilityType.IsEmpty() && (abilityType[0] == "heal" || abilityType[0] == "hot"))
					{
						act = item.act; 
						actHeal = item.act; 
					}
				}
				if (act != null) 
				if (actHeal != null) 
				{
					List<Chara> list = (owner.IsPCParty ? EClass.pc.party.members : new List<Chara> { owner });
					foreach (Chara item2 in list)
					{
						if (!((float)item2.hp > (float)item2.MaxHP * 0.75f) && owner.CanSeeLos(item2) && (!(act.source.abilityType[0] == "hot") || !item2.HasCondition<ConHOT>())) 
						if (!((float)item2.hp > (float)item2.MaxHP * 0.75f) && owner.CanSeeLos(item2) && (!(actHeal.source.abilityType[0] == "hot") || !item2.HasCondition<ConHOT>())) 
						{
							owner.UseAbility(act, item2); 
							owner.UseAbility(actHeal, item2); 
							yield return KeepRunning();
							break;
						}
					}
					if (owner.id == "priest" && !owner.IsPCParty && owner.Dist(EClass.pc) <= 4) 
					{ 
						if (EClass.pc.hp < EClass.pc.MaxHP) 
						{ 
							if (owner.UseAbility(actHeal, EClass.pc, null, pt: true)) 
							{ 
								owner.AddCooldown(actHeal.id, 5); 
								owner.Talk("no_problem"); 
							} 
						} 
						else if (!EClass.pc.HasCondition<ConHolyVeil>() && owner.UseAbility(8500, EClass.pc, null, pt: true)) 
						{ 
							owner.AddCooldown(8500, 30); 
							owner.Talk("no_problem"); 
						} 
					} 
				}
				if (actRevive != null && owner.IsPCFaction && EClass.game.cards.globalCharas.Where((KeyValuePair<int, Chara> a) => a.Value.isDead && a.Value.faction == EClass.pc.faction && !a.Value.isSummon && a.Value.c_wasInPcParty).ToList().Count > 0 && owner.UseAbility(actRevive.source.alias, owner))
				{

AI_PlayMusic โ€‹

public override IEnumerable<Status> Run()

cs
		case "guitar_ash":
			idSong = "guitar_caccini";
			break;
		case "ocarina":
			idSong = "ocarina_lulu"; 
			break; 
		case "guitar_efrond":
			idSong = "guitar_dusk";
			break;

ActDreamBug โ€‹

public class ActDreamBug : Ability

cs
public class ActDreamBug : Ability
{
	public override bool CanPerform() 
	{ 
		if (Act.CC.HasElement(1216)) 
		{ 
			return base.CanPerform(); 
		} 
		return false; 
	} 
	public override bool Perform()
	{
		if (!Act.TC.isChara || (!Act.TC.IsPC && Act.TC.things.IsFull()))

ActSlime โ€‹

public class ActSlime : ActNTR

cs

	public override bool CanPerform()
	{
		if (Act.TC == null || Act.TC == Act.CC) 
		if (Act.TC == null || !Act.TC.isChara || Act.TC == Act.CC) 
		{
			return false;
		}

CINT โ€‹

public class CINT

cs

	public const int isDisableLoyal = 126;

	public const int isFiamaChest = 127; 
	public const int dateDeathLock = 130;

	public const int fixedValue = 131;

Chara โ€‹

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

cs
				EInput.Consume();
				return false;
			}
			if (num4 > 0 && a.vPotential >= i * 2) 
			if (num4 > 0 && (a.vPotential >= i * 2 || ability.Has(a.id))) 
			{
				a.vPotential -= i * 2;
				num6 = num6 * (100 - num4 * 20) / 100;

DNA โ€‹

public bool CanRemove(Chara c)

cs
			return false;
		case 1228:
		case 1414:
			return !c.IsPC; 
			if (c != null) 
			{ 
				return !c.IsPC; 
			} 
			return true; 
		}
	}
	return true;

ID_Achievement โ€‹

public enum ID_Achievement

cs
{
	TEST,
	LOMIAS,
	LOMIAS2 
	LOMIAS2, 
	FIAMA_CHEST 
}

LayerAbility โ€‹

public void SelectGroup(string id)

cs
			foreach (Element value in ELayer.pc.elements.dict.Values)
			{
				string categorySub = value.source.categorySub;
				if (value.Value != 0 && (!config.hideDepletedSpell || !value.PotentialAsStock || value.vPotential > 0)) 
				if (value.Value != 0 && (!config.hideDepletedSpell || !value.PotentialAsStock || value.vPotential > 0) && (value.id != 6020 || ELayer.pc.HasElement(1216))) 
				{
					if (id == "favAbility" && ELayer.player.favAbility.Contains(value.id))
					{

OBJ โ€‹

public class OBJ : EClass

cs
public class OBJ : EClass
{
	public const int nulu = 0; 
	public const int rainbow_fruit = 90;

	public const int feywood = 118;

QuestFiamaLock โ€‹

public override void OnStart()

cs
	thing.things.DestroyAll();
	thing.AddCard(ThingGen.Create("1172"));
	thing.AddCard(ThingGen.Create("amulet_begger"));
	thing.SetBool(127, enable: true); 
	Card card = thing.AddCard(ThingGen.Create("_meat").MakeFoodFrom("begger"));
	card.decay = card.MaxDecay + 1;
	thing.Install();

Steam โ€‹

public static void GetAchievement(ID_Achievement id)

cs
			{
				achievement.Unlock();
				EClass.ui.Say("sys_acv".lang(achievement.Name), Resources.Load<Sprite>("Media/Graphics/Icon/Achievement/acv_" + id));
				SE.Play("achievement"); 
				achievement.Store(); 
			}
			return;
		}

Trait โ€‹

public virtual LockOpenState TryOpenLock(Chara cc, bool msgFail = true)

cs
			EClass.player.ModKarma(-8);
		}
		owner.isLostProperty = false;
		if (owner.GetBool(127)) 
		{ 
			Steam.GetAchievement(ID_Achievement.FIAMA_CHEST); 
		} 
		return LockOpenState.Success;
	}
	cc.PlaySound("lock");

TraitFakeBlock โ€‹

public class TraitFakeBlock : TraitFakeTile

cs
public class TraitFakeBlock : TraitFakeTile
{
	public SourceBlock.Row block => EClass.sources.blocks.map.TryGetValue(owner.refVal, 1); 
	public override SourcePref GetPref() 
	{ 
		TileType tileType = block.tileType; 
		if (!(tileType is TileTypePillar)) 
		{ 
			if (!(tileType is TileTypeFence)) 
			{ 
				if (!(tileType is TileTypeStairs)) 
				{ 
					if (!(tileType is TileTypeWall)) 
					{ 
						if (tileType is TileTypeSlope) 
						{ 
							return EClass.core.refs.prefs.blockStairs; 
						} 
						return null; 
					} 
					return EClass.core.refs.prefs.blockWall; 
				} 
				return EClass.core.refs.prefs.blockStairs; 
			} 
			return EClass.core.refs.prefs.blockFence; 
		} 
		return EClass.core.refs.prefs.blockPillar; 
	} 
	public override string GetName() 
	{ 
		if (owner.refVal != 0) 
		{ 
			return "_fakeblock".lang(block.GetName().ToLower()); 
		} 
		return base.GetName(); 
	} 
}

TraitFakeObj โ€‹

public GrowSystem growth

cs
		}
	}

	public SourceObj.Row obj => EClass.sources.objs.map[owner.refVal]; 
	public SourceObj.Row obj => EClass.sources.objs.map.TryGetValue(owner.refVal, 0); 

	public override TileMode tileMode => TileMode.FakeObj;

public int GetMaxDir()

cs
		}
		return obj._tiles.Length;
	}
	public override string GetName() 
	{ 
		if (owner.refVal != 0) 
		{ 
			return "_fakeblock".lang(obj.GetName().ToLower()); 
		} 
		return base.GetName(); 
	} 
}

TraitFakeTile โ€‹

public override RenderData GetRenderData()

cs
		return EClass.sources.blocks.map[owner.refVal].renderData;
	}

	public override SourcePref GetPref() 
	{ 
		TileType tileType = EClass.sources.blocks.map[owner.refVal].tileType; 
		if (!(tileType is TileTypePillar)) 
		{ 
			if (!(tileType is TileTypeFence)) 
			{ 
				if (!(tileType is TileTypeStairs)) 
				{ 
					if (!(tileType is TileTypeWall)) 
					{ 
						if (tileType is TileTypeSlope) 
						{ 
							return EClass.core.refs.prefs.blockStairs; 
						} 
						return null; 
					} 
					return EClass.core.refs.prefs.blockWall; 
				} 
				return EClass.core.refs.prefs.blockStairs; 
			} 
			return EClass.core.refs.prefs.blockFence; 
		} 
		return EClass.core.refs.prefs.blockPillar; 
	} 
	public override void OnCrafted(Recipe recipe, List<Thing> ings)
	{
		owner.refVal = 0;

Zone โ€‹

public void Generate()

cs
	}
	map.SetZone(this);
	Zone_Field zone_Field = this as Zone_Field;
	if (IdBiome == "Sand" || IdBiome == "Water" || IsUnderwater) 
	bool flag = IdBiome == "Sand" || IdBiome == "Water" || IsUnderwater; 
	if (flag) 
	{
		int num = 1 + EClass.rnd((IdBiome == "Water") ? 3 : 2);
		for (int i = 0; i < num; i++)

public void Generate()

cs
		}
		Crawler crawler = Crawler.Create("pasture");
		int num2 = (EClass.debug.enable ? 3 : EClass.rnd(EClass.rnd(EClass.rnd(EClass.rnd(5) + 1) + 1) + 1));
		bool flag = this is Zone_Field; 
		bool flag2 = this is Zone_Field; 
		Thing seed = null;
		if (IsNefia)
		{

public void Generate()

cs
				seed.elements.SetBase(2, EClass.curve(seed.encLV, 50, 10, 80));
			}
		}
		crawler.CrawlUntil(EClass._map, () => EClass._map.GetRandomPoint(), num2 + (flag ? 4 : 0), delegate(Crawler.Result r) 
		crawler.CrawlUntil(EClass._map, () => EClass._map.GetRandomPoint(), num2 + (flag2 ? 4 : 0), delegate(Crawler.Result r) 
		{
			int num6 = 137;
			foreach (Point point in r.points)

public void Generate()

cs
			}
			return false;
		});
		crawler.CrawlUntil(tries: EClass.rnd(EClass.rnd(5) + 1) + 1 + (flag ? 20 : 0), map: EClass._map, onStart: () => EClass._map.GetRandomPoint(), canComplete: delegate(Crawler.Result r) 
		crawler.CrawlUntil(tries: EClass.rnd(EClass.rnd(5) + 1) + 1 + (flag2 ? 20 : 0), map: EClass._map, onStart: () => EClass._map.GetRandomPoint(), canComplete: delegate(Crawler.Result r) 
		{
			int num5 = 136;
			foreach (Point point2 in r.points)

public void Generate()

cs
			}
			return false;
		});
		crawler.CrawlUntil(tries: EClass.rnd(EClass.rnd(10) + 1) + 3 + (flag ? 40 : 0), map: EClass._map, onStart: () => EClass._map.GetRandomPoint(), canComplete: delegate(Crawler.Result r) 
		crawler.CrawlUntil(tries: EClass.rnd(EClass.rnd(10) + 1) + 3 + (flag2 ? 40 : 0), map: EClass._map, onStart: () => EClass._map.GetRandomPoint(), canComplete: delegate(Crawler.Result r) 
		{
			int idFloor = 121;
			foreach (Point point3 in r.points)

public void Generate()

cs
			SpawnAltar();
		}
		TrySpawnFollower();
		if (!flag && EClass.rnd(EClass.debug.enable ? 1 : 10) == 0) 
		{ 
			Point randomSurface5 = EClass._map.bounds.GetRandomSurface(); 
			if (randomSurface5.IsValid) 
			{ 
				EClass._zone.AddCard(CharaGen.Create("priest"), randomSurface5); 
			} 
		} 
	}
	map.plDay = CreatePlaylist(ref map._plDay, EClass.Sound.GetPlaylist(IDPlayList) ?? EClass.Sound.GetPlaylist("Day"));
}