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
cs
using Newtonsoft.Json;
using UnityEngine;
[JsonObject(MemberSerialization.OptIn)]
public class EClasscs
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;
}
}