EA 23.284 Nightly Patch 2
March 9, 2026
25 files modified. 2 new files created.
Important Changes
None.
AM_Adv
public override void _OnUpdateInput()
if (AI_PlayMusic.keepPlaying)
{
Thing playingTool = AI_PlayMusic.playingTool;
if (EInput.IsAnyKeyDown() || (playingTool.GetRootCard() != EClass.pc && (!playingTool.ExistsOnMap || playingTool.Dist(EClass.pc) > 1)))
ConSuffocation condition = EClass.pc.GetCondition<ConSuffocation>();
if (EInput.IsAnyKeyDown() || (playingTool.GetRootCard() != EClass.pc && (!playingTool.ExistsOnMap || playingTool.Dist(EClass.pc) > 1)) || (condition != null && condition.GetPhase() > 0))
{
AI_PlayMusic.CancelKeepPlaying();
return;ActEffect
void AddCon<T>(int rate, int power) where T : Condition
{
CC.TryDropBossLoot();
}
if (CC.id == "bell_silver")
{
EClass.player.stats.escapeSilverBell++;
if (EClass.player.stats.escapeSilverBell >= 10)
{
Steam.GetAchievement(ID_Achievement.BELL);
}
}
CC.Destroy();
break;
case EffectId.BurnMana:ActKiss
public override bool CanPerform()
{
return false;
}
if (Act.TC.IsPC && Act.TC.Chara.parasite == null && Act.TC.Chara.ride == null)
{
return false;
}
return true;
}
public override bool Perform()
{
if (Act.CC.IsPC && Act.TC.IsPC)
{
Act.TC = ((EClass.rnd(2) == 0 || EClass.pc.parasite == null) ? EClass.pc.ride : EClass.pc.parasite);
if (Act.TC == null)
{
Act.TC = EClass.pc;
}
}
Act.CC.Kiss(Act.TC.Chara);
return true;
}BaseListPeople
public override void OnRefreshMenu()
List();
});
}
if (!(this is ListPeopleParty))
{
return;
}
menuLeft.AddSpace();
menuLeft.AddHeader("party");
if (EClass.pc.party.members.Count > 1)
{
menuLeft.AddButton("disband", delegate
{
EClass.pc.party.Disband();
SE.Trash();
RefreshAll();
});
}
}
}Card
}
}
public bool isFav
{
get
{
return _bits2[10];
}
set
{
_bits2[10] = value;
}
}
public bool isBackerContent => c_idBacker != 0;
public SourceBacker.Row sourceBackerChara
public bool UseAbility(Act a, Card tc = null, Point pos = null, bool pt = false)
}
else
{
if (IsPC && HasElement(1274) && a.vPotential < 0 && !flag2)
if (IsPC && HasElement(1274) && a.vPotential < 0 && !flag2 && !a.HasTag("dontForget"))
{
Msg.Say("noSpellStock");
EInput.Consume(); }
stealthSeen++;
}
else if (CanSeeLos(chara2) && (!flag2 || EClass.pc.isBlind || EClass.pc.CanSeeLos(chara2)) && (!IsPCFaction || EClass.pc.ai.ShouldAllyAttack(chara2)))
else if (CanSeeLos(chara2) && (!flag2 || EClass.pc.isBlind || EClass.pc.CanSeeLos(chara2)) && (!base.IsPCFactionOrMinion || EClass.pc.ai.ShouldAllyAttack(chara2)))
{
if (!IsPCParty)
{public override void SetSortVal(UIList.SortMode m, CurrencyType currency = Curre
case UIList.SortMode.ByWorkk:
break;
}
if (base.isFav)
{
sortVal -= 100000000;
}
}
public void ClearBed(Map map = null)ConPeaky
owner.PlaySound("bike_kick");
if (owner.host != null)
{
owner.host.ModExp((owner.host.ride == owner) ? 226 : 227, owner.Evalue(1423) * 20);
owner.host.ModExp((owner.host.ride == owner) ? 226 : 227, owner.Evalue(1423) * 50);
}
}
}CoreDebug
}
if (Input.GetKeyDown(KeyCode.F2))
{
EClass.pc.body.AddBodyPart(35);
EClass._zone.development += 10;
EClass._zone.development *= EClass._zone.development;
Chara targetChara = EClass.scene.mouseTarget.TargetChara;DramaManager
public void ParseLine(Dictionary<string, string> item)
EMono.BranchOrHomeBranch.resources.Get(p2).Mod(p3.ToInt());
});
break;
case "getAchievement":
AddEvent(delegate
{
if (new string[1] { "ONEV" }.Contains(p2))
{
Steam.GetAchievement(p2.ToEnum<ID_Achievement>());
}
});
break;
case "bossText":
AddEvent(delegate
{ELEMENT
public void _WriteNote(UINote n, Chara c, Act act)
{
n.AddText("_bullet".lang() + "hintSyncRide".lang());
}
if (EClass.pc.HasElement(1274) && source.tag.Contains("dontForget"))
{
n.AddText("_bullet".lang() + "hintDontForget".lang());
}
if (act.HaveLongPressAction)
{
int i = id;GameDate
{
EClass.world.SendPackage(ThingGen.Create("box_xmas"));
}
foreach (Chara value2 in EClass.game.cards.globalCharas.Values)
{
if (value2.IsPCFaction && value2.IsMarried && !value2.c_love.gotMusicBox)
{
Date date = Date.ToDate(value2.c_love.dateMarriage);
if (date.month == base.month && date.day == base.day)
{
value2.c_love.gotMusicBox = true;
Thing thing3 = ThingGen.Create("musicbox_memory2");
thing3.MakeRefFrom(value2, EClass.pc, simple: true);
Thing thing4 = ThingGen.Create("parchment");
thing4.MakeRefFrom(value2, null, simple: true);
thing4.SetStr(53, "letter_love");
Thing p3 = ThingGen.CreateParcel(null, thing3, thing4);
EClass.world.SendPackage(p3);
}
}
}
}
public void AdvanceMonth()GoalCombat
public override IEnumerable<Status> Run()
}
}
tc = owner.enemy;
if (tc != null && owner.IsPCFaction)
if (tc != null && owner.IsPCFactionOrMinion)
{
if (EClass.pc.isHidden && owner.isHidden)
{GrowSystem
public void PopHarvest(Chara c, Thing t = null, int num = -1)
{
t.SetNum(num);
}
int num3 = t.Num;
TryPick(cell, t, c);
if (flag)
{
c.ModExpParty(207, Mathf.Min(t.c_weight / 100, 500));
c.ModExpParty(207, Mathf.Min(t.c_weight * num3 / 125, 500));
}
}ID_Achievement
DEMITAS,
KETTLE,
FAITH_HEALING,
ONEV
ONEV,
JURE,
BELL
}LayerAbility
public void SelectGroup(string id)
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) && value.vPotential >= 0)) && (value.id != 6020 || ELayer.pc.HasElement(1216)))
if (value.Value != 0 && (!config.hideDepletedSpell || ((!value.PotentialAsStock || value.vPotential > 0 || chara.ability.Has(value.id)) && (value.vPotential >= 0 || value.HasTag("dontForget")))) && (value.id != 6020 || ELayer.pc.HasElement(1216)))
{
if (id == "favAbility" && ELayer.player.favAbility.Contains(value.id))
{LayerPeople
public static LayerPeople CreateReserve()
return layerPeople;
}
public static LayerPeople CreateParty()
{
LayerPeople layerPeople = Create(Mode.Double);
layerPeople.multi.AddOwner(0, new ListPeopleParty
{
textHeader = "candidates"
});
layerPeople.multi.AddOwner(1, new ListPeopleParty
{
textHeader = "faction_Member"
});
ELayer.ui.AddLayer(layerPeople);
return layerPeople;
}
public static LayerPeople CreateBed(TraitBed bed)
{
LayerPeople layerPeople = Create(Mode.Double);ListOwner
public void MoveToOther(object c)
RefreshCaption();
other.RefreshCaption();
}
public void RefreshAll(bool freeze = true)
{
if (freeze)
{
EClass.ui.FreezeScreen(0.1f);
}
List();
other.List();
RefreshCaption();
other.RefreshCaption();
Main.OnRefreshMenu();
}
}+ListPeopleParty
File Created
using System.Linq;
public class ListPeopleParty : BaseListPeople
{
public override void OnCreate()
{
list.sorts = new UIList.SortMode[3]
{
UIList.SortMode.ByFeat,
UIList.SortMode.ByJob,
UIList.SortMode.ByRace
};
list.sortMode = UIList.SortMode.ByFeat;
}
public override void OnInstantiate(Chara c, ItemGeneral i)
{
Zone zone = (main ? c.currentZone : c.homeZone);
i.SetSubText((zone == null) ? "???" : zone.Name, 240);
if (!c.IsPC)
{
UIButton uIButton = i.AddSubButton(EClass.core.refs.icons.fav, delegate
{
SE.ClickGeneral();
c.isFav = !c.isFav;
RefreshAll();
});
uIButton.icon.SetAlpha(c.isFav ? 1f : 0.3f);
uIButton.icon.SetNativeSize();
}
}
public override void OnClick(Chara c, ItemGeneral i)
{
if (main)
{
if (c.isDead || c.HasCondition<ConSuspend>() || c.currentZone == null)
{
SE.Beep();
return;
}
if (c.currentZone != EClass._zone)
{
c.MoveZone(EClass._zone);
c.MoveImmediate(EClass.pc.pos.GetNearestPoint(allowBlock: false, allowChara: false) ?? EClass.pc.pos);
}
EClass.pc.party.AddMemeber(c);
}
else
{
if (c.IsPC)
{
SE.Beep();
return;
}
EClass.pc.party.RemoveMember(c);
if (c.homeZone != EClass._zone)
{
c.MoveZone(c.homeZone);
}
}
MoveToOther(c);
base.Main.OnRefreshMenu();
}
public override void OnList()
{
if (main)
{
foreach (Chara value in EClass.game.cards.globalCharas.Values)
{
if (value.IsPCFaction && !value.IsPCParty && value.memberType == FactionMemberType.Default)
{
list.Add(value);
}
}
return;
}
foreach (Chara member in EClass.pc.party.members)
{
list.Add(member);
}
list.sortMode = UIList.SortMode.ByNone;
}
public HireInfo GetInfo(Chara c)
{
return EClass.Home.listReserve.First((HireInfo a) => a.chara == c);
}
}LoveData
public class LoveData : EClass
[JsonProperty]
public bool gaveCutter;
[JsonProperty]
public bool gotMusicBox;
public bool IsWed => dateWedding != 0;
}Party
}
return num;
}
public void Disband()
{
foreach (Chara item in members.Copy())
{
if (!item.IsPC)
{
RemoveMember(item);
if (item.homeZone != EClass._zone)
{
item.MoveZone(item.homeZone);
}
}
}
}
}Player
[JsonProperty]
public int angryCats;
[JsonProperty]
public int escapeSilverBell;
[JsonProperty]
public long shipMoney;Religion
public int GetOfferingValue(Thing t, int num = -1)
void SetValue(SourceCategory.Row cat, int mtp)
{
v = Mathf.Clamp(t.SelfWeight / 10, 50, 1000);
v *= cat.offer * mtp / 100;
v = v * cat.offer * mtp / 100;
}
}public void JoinFaith(Chara c, ConvertType type = ConvertType.Default)
}
}
EClass.pc.PurgeEythArtifact();
if (this is ReligionHealing)
{
Steam.GetAchievement(ID_Achievement.FAITH_HEALING);
}
}
public void LeaveFaith(Chara c, Religion newFaith, ConvertType type)Trait
public void OnBarter(bool reroll = false)
break;
}
}
Steam.GetAchievement((owner.trait is TraitKettle) ? ID_Achievement.KETTLE : ID_Achievement.DEMITAS);
break;
}
case ShopType.Specific:public void OnBarter(bool reroll = false)
Add("board_map", 1, 0);
Add("board_build", 1, 0);
Add("book_resident", 1, 0);
Add("board_party", 1, 0);
Add("3", 1, 0);
Add("4", 1, 0);
Add("5", 1, 0);TraitGene
public override void WriteNote(UINote n, bool identified)
public override void TrySetHeldAct(ActPlan p)
{
if (!p.pos.Equals(EClass.pc.pos) || !EClass.pc.HasElement(1274))
if (owner.c_DNA == null || !p.pos.Equals(EClass.pc.pos) || !EClass.pc.HasElement(1274))
{
return;
}+TraitPartyBoard
File Created
public class TraitPartyBoard : TraitBoard
{
public override bool IsHomeItem => true;
public override void TrySetAct(ActPlan p)
{
if (EClass._zone.IsPCFaction)
{
p.TrySetAct("LayerPeople", () => LayerPeople.CreateParty(), owner);
}
}
}UIMultiList
public void Build(UIList.SortMode m = UIList.SortMode.ByNone)
{
foreach (ListOwner owner in owners)
{
owner.list.sortMode = m;
owner.list.sortMode = ((owner is ListPeopleParty) ? UIList.SortMode.ByFeat : m);
}
if (Double)
{WindowChara
public static void RefreshNote(Chara chara, UINote n, bool shortMode = false)
foreach (Chara item in list)
{
Date date = Date.ToDate(item.c_love.dateMarriage);
AddText("item_marriage".lang(item.NameBraced, date.year.ToString() ?? "", date.month.ToString() ?? "", item.c_love.nameZoneMarriage) + (item.c_love.IsWed ? "already_wed".lang() : ""));
AddText("item_marriage".lang(item.NameBraced, date.year.ToString() ?? "", date.month.ToString() ?? "", item.c_love.nameZoneMarriage, date.day.ToString() ?? "") + (item.c_love.IsWed ? "already_wed".lang() : ""));
}
}
}