Skip to content

EA 23.153 Nightly

June 14, 2025

13 files modified.

Important Changes

None.

AI_Slaughter

@@ -99,6 +99,7 @@ public override IEnumerable<Status> Run()

cs
				}
				else
				{
					target.Chara.c_uniqueData = null; 
					target.Chara.homeBranch.BanishMember(target.Chara, skipMsg: true);
				}
			}

Card

@@ -2843,9 +2843,9 @@ public Card SetLv(int a)

cs
			}
		}
	}
	if (flag && elements.Base(286) > 50) 
	if (flag) 
	{
		elements.SetTo(286, 50 + (int)Mathf.Sqrt(elements.Base(286) - 50)); 
		ClampInitialSkill(); 
	}
	Rand.SetSeed();
	hp = MaxHP;

@@ -2855,27 +2855,55 @@ public Card SetLv(int a)

cs
		return this;
	}

	public void ClampInitialSkill() 
	{ 
		if (elements.Base(286) > 50) 
		{ 
			elements.SetTo(286, 50 + (int)Mathf.Sqrt(elements.Base(286) - 50)); 
		} 
	} 
	public void AddExp(int a)
	{
		a = a * GetExpMtp() / 100; 
		exp += a; 
		while (exp >= ExpToNext) 
		{ 
			exp -= ExpToNext; 
			LevelUp(); 
		} 
	} 
	public int GetExpMtp() 
	{ 
		int num = 100; 
		if (!IsPC)
		{
			a *= 2; 
			num *= 2; 
			if (IsPCFaction)
			{
				a = a * Mathf.Clamp(100 + Chara.affinity.value / 10, 50, 200) / 100; 
				num = num * GetAffinityExpBonus() / 100; 
				if (EClass.game.principal.petFeatExp)
				{
					a = a * (50 + EClass.game.principal.petFeatExpMtp * 50) / 100; 
					num = num * (50 + EClass.game.principal.petFeatExpMtp * 50) / 100; 
				}
			}
		}
		a = a * (100 + Evalue(1237) * 30) / 100; 
		exp += a; 
		while (exp >= ExpToNext) 
		return num * (100 + Evalue(1237) * 30) / 100; 
	} 
	public int GetAffinityExpBonus() 
	{ 
		return Mathf.Clamp(100 + Chara.affinity.value / 10, 50, 200); 
	} 
	public int GetDaysTogetherBonus() 
	{ 
		if (!IsPCFactionOrMinion) 
		{
			exp -= ExpToNext; 
			LevelUp(); 
			return 100; 
		}
		return 100 + EClass.curve(c_daysWithPC / 100 * 3, 100, 20, 70); 
	}

	public void LevelUp()

@@ -7049,7 +7077,7 @@ public virtual int GetPrice(CurrencyType currency = CurrencyType.Money, bool sel

cs
		p *= 0.004999999888241291;
		break;
	default:
		if (IsIdentified || (this.trait is TraitErohon && !sell)) 
		if (IsIdentified || (this.trait is TraitErohon && !sell) || priceType == PriceType.Tourism) 
		{
			if (blessedState == BlessedState.Blessed)
			{

CardRow

@@ -120,8 +120,10 @@ public string GetName(Card c, bool full = false)

cs
	{
		source = c.Chara.MainElement.source;
	}
	text = ((source == Element.Void.source) ? text.Replace("#ele4", "").Replace("#ele3", "").Replace("#ele2", "") 
		.Replace("#ele", "") : text.Replace("#ele4", source.GetAltname(2)).Replace("#ele3", source.GetAltname(1)).Replace("#ele2", source.GetAltname(0)) 
	text = ((source == Element.Void.source) ? text.Replace("#ele5", "").Replace("#ele4", "").Replace("#ele3", "") 
		.Replace("#ele2", "") 
		.Replace("#ele", "") : text.Replace("#ele5", source.GetAltname(3)).Replace("#ele4", source.GetAltname(2)).Replace("#ele3", source.GetAltname(1)) 
		.Replace("#ele2", source.GetAltname(0)) 
		.Replace("#ele", source.GetName().ToLower()));
	string text2 = GetText("aka");
	if (text == "*r")

Chara

@@ -1217,7 +1217,8 @@ public override string GetName(NameStyle style, int num = -1)

cs
		return EClass.sources.backers.map[base.c_idBacker].Name;
	}
	string text = base.c_altName ?? source.GetName(this);
	text = text.Replace("#ele4", MainElement.source.GetAltname(2)).Replace("#ele3", MainElement.source.GetAltname(1)).Replace("#ele2", MainElement.source.GetAltname(0)) 
	text = text.Replace("#ele5", MainElement.source.GetAltname(3)).Replace("#ele4", MainElement.source.GetAltname(2)).Replace("#ele3", MainElement.source.GetAltname(1)) 
		.Replace("#ele2", MainElement.source.GetAltname(0)) 
		.Replace("#ele", MainElement.source.GetName().ToLower());
	if (base.c_bossType == BossType.Evolved)
	{

@@ -1526,6 +1527,7 @@ public override void OnCreate(int genLv)

cs
	}
	_affinity = 0;
	interest = 100;
	ClampInitialSkill(); 
	CalculateMaxStamina();
	Refresh();
	stamina.value = stamina.max;

DramaCustomSequence

@@ -728,7 +728,12 @@ public void Build(Chara c)

cs
	});
	Method(delegate
	{
		if (EClass.player.IsCriminal && !EClass._zone.AllowCriminal && !EClass._zone.IsPCFaction && !c.trait.AllowCriminal) 
		if (c.trait is TraitMerchantBlack && Guild.Thief.relation.rank < 4 && (Guild.Thief.IsCurrentZone || (!(EClass._zone.id == "derphy") && !(EClass._zone.id == "kapul")))) 
		{ 
			SE.Play("click_chat"); 
			TempTalkTopic("shop_blackmarket_noaccess", StepEnd); 
		} 
		else if (EClass.player.IsCriminal && !EClass._zone.AllowCriminal && !EClass._zone.IsPCFaction && !c.trait.AllowCriminal) 
		{
			SE.Play("click_chat");
			TempTalkTopic("shop_criminal", StepEnd);

ElementContainer

@@ -277,6 +277,10 @@ public void ModExp(int ele, int a, bool chain = false)

cs
	{
		return;
	}
	if (!chain && a > 0 && Card != null && Card.isChara) 
	{ 
		a = a * Card.Chara.GetDaysTogetherBonus() / 100; 
	} 
	int value = (element.UsePotential ? element.Potential : 100);
	if (element.UseExpMod && a >= 0)
	{

FactionBranch

@@ -583,7 +583,10 @@ public void OnAdvanceDay()

cs
		{
			continue;
		}
		member.c_daysWithPC++; 
		if (member.IsPCParty || member.currentZone == EClass.pc.currentZone) 
		{ 
			member.c_daysWithPC++; 
		} 
		if (member.memberType == FactionMemberType.Default)
		{
			if (EClass.rnd(3) == 0)

GamePrincipal

@@ -144,6 +144,9 @@ public void SetInt(int value)

cs
	[JsonProperty]
	public bool disableUsermapBenefit;

	[JsonProperty] 
	public bool realAdv; 
	[JsonProperty]
	public bool dropRate;

InvOwner

@@ -256,11 +256,6 @@ public bool Process(bool startTransaction = false)

cs
			Msg.Say("markedImportant");
			return false;
		}
		if (inv.owner.isChara && inv.owner.Chara.IsPCFaction && !inv.owner.IsPC && thing2.IsRangedWeapon) 
		{ 
			thing2.ammoData = null; 
			thing2.c_ammo = 0; 
		} 
		if (startTransaction)
		{
			dragItemCard.from.thing = thing2;

@@ -1037,11 +1032,6 @@ public virtual bool CanShiftClick(ButtonGrid b, bool rightMouse = false)

cs
	{
		return false;
	}
	if (b.invOwner.owner.isChara && b.invOwner.owner.Chara.IsPCFaction && !b.invOwner.owner.IsPC && thing.IsRangedWeapon) 
	{ 
		thing.ammoData = null; 
		thing.c_ammo = 0; 
	} 
	if (EInput.isShiftDown)
	{
		LayerInventory.highlightInv = shitDestOwner;

SourceChara

@@ -111,7 +111,8 @@ public override void SetTiles()

cs
	public override string GetName()
	{
		string text = GetText();
		text = text.Replace("#ele4", "").Replace("#ele3", "").Replace("#ele2", "") 
		text = text.Replace("#ele5", "").Replace("#ele4", "").Replace("#ele3", "") 
			.Replace("#ele2", "") 
			.Replace("#ele", "");
		if (text == "*r")
		{

Thing

@@ -267,7 +267,7 @@ public override void OnCreate(int genLv)

cs
		{
			if (bp.qualityBonus == 0)
			{
				num4 = EClass.rnd(EClass.rnd(11) + 1); 
				num4 = EClass.rnd(EClass.rnd(12) + 1); 
				if (num4 == 1 && EClass.rnd(3) != 0)
				{
					num4 = 0;

@@ -287,7 +287,11 @@ public override void OnCreate(int genLv)

cs
		}
		if (num4 > 0)
		{
			SetEncLv(Mathf.Min(num4, 12)); 
			if (num4 > 12) 
			{ 
				num4 = 12; 
			} 
			SetEncLv(num4); 
		}
	}
	if (HasTag(CTAG.randomSkin))

TraitMerchantBlack

@@ -4,17 +4,7 @@ public class TraitMerchantBlack : TraitMerchant

cs

	public override int CostRerollShop => 2;

	public override ShopType ShopType 
	{ 
		get 
		{ 
			if (!Guild.Thief.IsCurrentZone || Guild.Thief.relation.rank >= 4) 
			{ 
				return ShopType.Blackmarket; 
			} 
			return ShopType.None; 
		} 
	} 
	public override ShopType ShopType => ShopType.Blackmarket; 

	public override bool CanSellStolenGoods => true;

WindowChara

@@ -1,3 +1,4 @@

cs
using System; 
using System.Collections.Generic;
using System.Linq;
using PrimitiveUI.Examples;

@@ -915,9 +916,18 @@ public static void RefreshNote(Chara chara, UINote n, bool shortMode = false)

cs
	{
		AddText("info_criminal".lang());
	}
	if (!chara.IsPC && chara.c_daysWithPC > 0) 
	if (!chara.IsPC) 
	{
		AddText("info_daysWithPC".lang(chara.c_daysWithPC.ToString() ?? "")); 
		int num = chara.GetAffinityExpBonus() - 100; 
		if (num != 0) 
		{ 
			AddText("affinity_exp_bonus".lang(chara.affinity.Name, ((num > 0) ? "+" : "") + num)); 
		} 
		if (chara.c_daysWithPC > 0) 
		{ 
			num = chara.GetDaysTogetherBonus() - 100; 
			AddText("info_daysWithPC".lang(chara.c_daysWithPC.ToString() ?? "") + Environment.NewLine + "daystogether_bonus".lang(((num > 0) ? "+" : "") + num)); 
		} 
	}
	if (EClass.debug.showExtra)
	{