Skip to content

EA 23.240 Nightly

November 28, 2025

7 files modified. 1 new file created.

Important Changes

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

EClass (1)

cs
public static int curve(int a, int start, int step, int rate = 75) 
public static int curve(int _a, int start, int step, int rate = 75) 

AI_PlayMusic

public override IEnumerable<Status> Run()

cs
		case "cello":
			idSong = "cello_prelude";
			break;
		case "koto":
			idSong = "koto"; 
			break; 
		case "instrument_violin":
		case "panty":
			idSong = "violin_chaconne";

ActThrow

public static EffectIRenderer Throw(Card c, Point p, Card target, Thing t, Throw

cs
			Chara chara4 = Act.TC.Chara;
			if (traitMonsterBall.IsSilvercatBall)
			{
				if (chara4.id != "cat_silver" || chara4.IsPCFactionOrMinion || EClass._zone.id == "startVillage2" || EClass._zone.IsUserZone) 
				if (chara4.id != "cat_silver" || chara4.IsPCFactionOrMinion || EClass._zone.id == "startVillage2" || EClass._zone.IsUserZone || EClass._zone.Boss == chara4 || chara4.c_bossType != 0) 
				{
					Msg.Say("monsterball_invalid");
					break;
				}
				if (chara4.LV > 10) 
				{ 
					Msg.Say("monsterball_lv"); 
					break; 
				} 
			}
			else if (traitMonsterBall.IsDuponneBall)
			{

BaseListPeople

public override void OnClick(Chara c, ItemGeneral i)

cs
		});
		if (c != EClass.pc)
		{
			if (c.sourceCard.idActor.IsEmpty() && c.host == null) 
			if (c.sourceCard.idActor.IsEmpty()) 
			{
				if (c.pccData == null)
				{

EClass

using Newtonsoft.Json;

cs
using Newtonsoft.Json;
using UnityEngine; 

[JsonObject(MemberSerialization.OptIn)]
public class EClass

public static int rnd(int a)

cs
		return Rand.rnd(a);
	}

	public static int curve(int a, int start, int step, int rate = 75) 
	public static int curve(int _a, int start, int step, int rate = 75) 
	{
		if (a <= start) 
		if (_a <= start) 
		{
			return a; 
			return _a; 
		}
		long num = _a; 
		for (int i = 0; i < 10; i++)
		{
			int num = start + i * step; 
			if (a > num) 
			int num2 = start + i * step; 
			if (num <= num2) 
			{
				a = num + (a - num) * rate / 100; 
				continue; 
				break; 
			}
			return a; 
			num = num2 + (num - num2) * rate / 100; 
		}
		return a; 
		return (int)Mathf.Clamp(num, -2.1474836E+09f, 2.1474836E+09f); 
	}

	public static int rndHalf(int a)

LayerShippingResult

public class LayerShippingResult : ELayer

cs
	{
		num = 0;
	}
	if (num == 3 && ELayer.game.cards.globalCharas.Find("farris") == null) 
	{ 
		num = 0; 
	} 
	imageBG.sprite = spriteBG[num];
	Rand.SetSeed();
	base.Awake();

Trait

public void OnBarter(bool reroll = false)

cs
				break;
			case ShopType.Moyer:
			{
				for (int num12 = 1; num12 <= 12; num12++) 
				for (int num12 = 1; num12 <= 13; num12++) 
				{
					AddAdvWeek(num12);
				}

TraitFoodEggFertilized

public class TraitFoodEggFertilized : TraitFoodEgg

cs
public static Chara Incubate(Thing egg, Point pos, Card incubator = null)
{
	egg.SetSale(sale: false);
	string text = ""; 
	string str = ""; 
	CardRow refCard = egg.refCard;
	if (refCard != null)
	{
		text = refCard.id; 
		str = refCard.id; 
		if (refCard.id == "chara" || refCard.quality == 4)
		{
			text = ""; 
			str = ""; 
		}
	}
	if (egg.IsDecayed)
	{
		text = "zombie"; 
		str = "zombie"; 
	}
	if (text == "cat_silver") 
	{ 
		text = "cat"; 
	} 
	Chara chara = CharaGen.Create(text.IsEmpty("chicken")); 
	Chara chara = CharaGen.Create(str.IsEmpty("chicken")); 
	EClass._zone.AddCard(chara, pos.GetNearestPoint(allowBlock: false, allowChara: false) ?? EClass.pc.pos);
	chara.SetLv(1);
	chara.SetMainElement(egg.c_idMainElement, 10, elemental: true);

+TraitGeneratorHamster

File Created
cs
public class TraitGeneratorHamster : TraitGenerator
{
	public override bool UseExtra => owner.isOn;

	public override bool IsAnimeOn => owner.isOn;

	public override string IdSoundToggleOn => "switch_on_spin";

	public override string IdSoundToggleOff => "switch_off_spin";

	public override ToggleType ToggleType => ToggleType.Custom;

	public override bool IsOn => owner.isOn;

	public override bool Waterproof => true;

	public override bool CanUse(Chara c)
	{
		return owner.IsInstalled;
	}

	public override bool OnUse(Chara c)
	{
		Toggle(!owner.isOn);
		return true;
	}
}