Skip to content

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 โ€‹

public bool Has(int id)

cs
				return true;
			}
		}
		if (owner.IsPC && owner.faithElements != null && owner.faithElements.Has(id)) 
		{ 
			return true; 
		} 
		return false;
	}
}

CharaGenes โ€‹

public DNA GetDNA(int idEle)

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 โ€‹

public void QuickStart()

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 โ€‹

public void ApplyFix()

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");

public void ApplyFix()

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 โ€‹

public void OnKillGame()

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() ?? "")); 
		}
	}
}