EA 23.354 Nightly โ
October 10, 2026
11 files modified.
Important Changes โ
None.
Card โ
public virtual int GetPrice(CurrencyType currency = CurrencyType.Money, bool selโฆ)
cs
case "book_black":
if (!(c_idRefName == "sorin"))
{
return 20;
return 50;
}
return 100;
case "scroll_random":Chara โ
public void SetFeat(int id, int value = 1, bool msg = false)
cs
{
Feat feat = elements.GetElement(id) as Feat;
int num = 0;
if (feat != null && feat.Value > 0)
if (feat != null && feat.ValueWithoutLink > 0)
{
if (value == feat.Value)
if (value == feat.ValueWithoutLink)
{
return;
}
num = feat.Value;
feat.Apply(-feat.Value, elements);
num = feat.ValueWithoutLink;
feat.Apply(-feat.ValueWithoutLink, elements);
}
feat = elements.SetBase(id, value - (feat?.vSource ?? 0)) as Feat;
if (feat != null && feat.Value != 0)
if (feat != null && feat.ValueWithoutLink != 0)
{
feat.Apply(feat.Value, elements);
feat.Apply(feat.ValueWithoutLink, elements);
}
if (EClass.core.IsGameStarted)
{CharaAbility โ
cs
return true;
}
}
if (owner.IsPC && owner.faithElements != null && owner.faithElements.Has(id))
{
return true;
}
return false;
}
}CharaGenes โ
cs
}
return null;
}
public int CountDNA(int idEle)
{
int num = 0;
foreach (DNA item in items)
{
for (int i = 0; i < item.vals.Count; i += 2)
{
if (item.vals[i] == idEle)
{
num++;
}
}
}
return num;
}
}CoreDebug โ
cs
thing8.AddThing("casino_coin").SetNum(30000000);
thing8.AddThing("medal").SetNum(1000);
thing8.ModCurrency(500, "plat");
thing8.ModCurrency(5000, "money3");
EClass.pc.AddThing("record");
EClass.pc.AddThing("deed").SetNum(5);
EClass.pc.AddThing("book_story");CustomDramaExpansion โ
public static bool destroy_item(DramaManager dm, Dictionary<string, string> lineโฆ)
cs
if (item2.Num >= count)
{
item2.ModNum(-count);
continue;
break;
}
count -= item2.Num;
item2.Destroy();Game โ
cs
}
}
});
if (version.IsBelow(0, 23, 354))
{
FixElement(EClass.pc, 1421);
FixElement(EClass.pc, 6904);
}
if (version.IsBelow(0, 23, 345))
{
Zone zone = spatials.Find("oldkeep");cs
{
player.debt = 20000000;
}
static void FixElement(Chara c, int idEle)
{
int num2 = ClassExtension.TryGetValue<int, int>((IDictionary<int, int>)c.race.elementMap, idEle, 0) + ClassExtension.TryGetValue<int, int>((IDictionary<int, int>)c.job.elementMap, idEle, 0);
if (c.c_genes != null)
{
num2 += c.c_genes.CountDNA(idEle);
}
foreach (BodySlot slot in c.body.slots)
{
if (slot.thing != null && slot.thing.c_DNA != null)
{
num2 += ((slot.thing.c_DNA.GetElement(idEle) != null) ? 1 : 0);
}
}
Element orCreateElement = c.elements.GetOrCreateElement(idEle);
if (num2 > 0 && orCreateElement.ValueWithoutLink != num2)
{
Debug.Log("FixElement: " + orCreateElement.Name + "/" + orCreateElement.vBase + "/" + orCreateElement.vSource + "/" + num2);
orCreateElement.vBase = num2 - orCreateElement.vSource;
}
if (orCreateElement is Ability && orCreateElement.Value > 0 && orCreateElement.vPotential < 0)
{
Debug.Log("FixElement(Ability): " + orCreateElement.Name + "/" + orCreateElement.Value + "/" + orCreateElement.vPotential + "/" + num2);
orCreateElement.vPotential = 0;
}
}
void TryAddQuest(string idQuest, string idReqQuest)
{
if (quests.completedIDs.Contains(idReqQuest) && !quests.completedIDs.Contains(idQuest) && quests.GetGlobal(idQuest) == null && quests.Get(idQuest) == null)Scene โ
cs
{
actionMode.Deactivate();
mouseTarget.Clear();
hideBalloon = false;
actionMode = null;
PCC.PurgeCache();
Clear();Trait โ
public virtual void OnBarter(bool reroll = false)
cs
}
else
{
thing2.c_idRefName = EClass.game.cards.globalCharas.Values.Where((Chara a) => a.IsUnique && a.id != "sorin").RandomItem().id;
thing2.c_idRefName = EClass.game.cards.globalCharas.Values.Where((Chara a) => a.IsUnique && a.id != "sorin" && a.race.id != "machinegod" && a.IsPCFaction).RandomItem().id;
AddThing(thing2);
}
Add("1386", 1, 0);TraitBlackNote โ
public class TraitBlackNote : TraitBaseSpellbook
cs
{
public override Type BookType => Type.BlackNote;
public override bool CanStack => owner.isOn;
public override bool CanStack => true;
public override bool HasCharges => false;public class TraitBlackNote : TraitBaseSpellbook
cs
public override int GetActDuration(Chara c)
{
return 100;
if (!EClass.debug.enable)
{
return 100;
}
return 1;
}
public override bool CanStackTo(Thing to)
{
if (to.isOn != owner.isOn)
{
return false;
}
if (to.c_idRefName != owner.c_idRefName)
{
return false;
}
return base.CanStackTo(to);
}
}TraitWeightScale โ
public override void OnStepped(Chara c)
cs
c.Say("trap", c, owner);
if (this is TraitHeightMeasure)
{
owner.TalkRaw("weightScale".langGame(c.Name, c.bio.weight.ToFormat() ?? ""));
owner.TalkRaw("heightMeasure".langGame(c.Name, c.bio.height.ToFormat() ?? ""));
}
else
{
owner.TalkRaw("heightMeasure".langGame(c.Name, c.bio.height.ToFormat() ?? ""));
owner.TalkRaw("weightScale".langGame(c.Name, c.bio.weight.ToFormat() ?? ""));
}
}
}