Skip to content

EA 23.103 Nightly

March 15, 2025

14 files modified. 1 new file created.

Important Changes

None.

AI_Idle

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

cs
	}
	if (EClass.rnd(100) == 0 && owner.trait is TraitBitch)
	{
		Chara chara2 = DoSomethingToNearChara((Chara c) => c.IsIdle && !c.IsPCParty && !(c.trait is TraitBitch)); 
		Chara chara2 = DoSomethingToNearChara((Chara c) => c.IsIdle && !c.IsPCParty && !(c.trait is TraitBitch) && !c.HasElement(418)); 
		if (chara2 != null)
		{
			yield return Do(new AI_Fuck

ActNTR

@@ -2,13 +2,9 @@ public class ActNTR : Ability

cs
{
	public override bool CanPerform()
	{
		if (Act.TC.isChara) 
		if (Act.TC.isChara && (Act.TC.Chara.conSleep != null || Act.CC.HasElement(1239))) 
		{
			if (Act.TC.Chara.conSleep == null) 
			{ 
				return Act.CC.HasElement(1239); 
			} 
			return true; 
			return !Act.TC.HasElement(418); 
		}
		return false;
	}

Card

@@ -5344,7 +5344,7 @@ public virtual Sprite GetSprite(int dir = 0)

cs
		{
			return (trait as TraitAbility).CreateAct()?.GetSprite() ?? EClass.core.refs.icons.defaultAbility;
		}
		return sourceCard.GetSprite(dir, trait.IdSkin, (IsInstalled && pos.cell.IsSnowTile) ? true : false); 
		return sourceCard.GetSprite(dir, trait.IdSkin, (IsInstalled && pos != null && pos.IsValid && pos.cell.IsSnowTile) ? true : false); 
	}

	public virtual Sprite GetImageSprite()

CardRow

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

cs
		int type = ((quality == 3) ? 3 : ((quality < 2) ? 1 : 2));
		if (full && !text2.IsEmpty())
		{
			text = text2.ToTitleCase(wholeText: true) + Lang.space + text.Bracket(type); 
			text = ((text2 == "*r") ? "" : text2.ToTitleCase(wholeText: true)) + Lang.space + text.Bracket(type); 
		}
		return text; 
		return text.TrimStart(' '); 
	}
}

Chara

@@ -4632,7 +4632,7 @@ public void GetRevived()

cs
	{
		return;
	}
	if (!IsPC && (!trait.CanJoinPartyResident || !trait.CanJoinParty)) 
	if (!IsPC && (!trait.CanJoinPartyResident || !trait.CanJoinParty || memberType != 0)) 
	{
		if (homeZone != null && EClass._zone != homeZone)
		{

@@ -7174,7 +7174,7 @@ public void ModAffinity(Chara c, int a, bool show = true, bool showOnlyEmo = fal

cs
		c.ModAffinity(EClass.pc, a, show);
		return;
	}
	int num = StatsHygiene.GetAffinityMod(EClass.pc.hygiene.GetPhase()) + (HasElement(417) ? 20 : 0); 
	int num = StatsHygiene.GetAffinityMod(EClass.pc.hygiene.GetPhase()) + (HasElement(417) ? 30 : 0); 
	if (IsPCFaction && homeBranch != null)
	{
		num += (int)Mathf.Sqrt(homeBranch.Evalue(2117)) * 5;

ConSleep

@@ -179,7 +179,7 @@ public static void SuccubusVisit(Chara tg)

cs
	}
	foreach (Chara chara in EClass._map.charas)
	{
		if (chara == tg || chara.IsPC || EClass.rnd(3) != 0 || chara.IsDisabled || !chara.IsIdle) 
		if (chara == tg || chara.IsPC || chara.HasElement(418) || EClass.rnd(3) != 0 || chara.IsDisabled || !chara.IsIdle) 
		{
			continue;
		}

ContentCodex

@@ -157,6 +157,13 @@ public void OnClickAddCards()

cs
			SE.BeepSmall();
			Msg.Say("noCard");
		}
		if (EClass.debug.enable) 
		{ 
			foreach (SourceChara.Row row in EClass.sources.charas.rows) 
			{ 
				EClass.player.codex.AddCard(row.id); 
			} 
		} 
		RefreshInfo();
	}

CoreDebug

@@ -446,6 +446,8 @@ public void QuickStart()

cs
			thing.AddCard(ThingGen.Create("mathammer", MATERIAL.GetRandomMaterial(100).alias)).SetNum(10);
		}
		thing.AddCard(ThingGen.Create("mathammer", 102)).SetNum(10);
		thing.AddCard(ThingGen.Create("mathammer", 33)).SetNum(10); 
		thing.AddCard(ThingGen.Create("mathammer", 18)).SetNum(10); 
		EClass.pc.AddCard(thing);
		thing = ThingGen.Create("pouch");
		for (int l = 0; l < 30; l++)

ELEMENT

@@ -39,7 +39,7 @@ public class ELEMENT

cs

	public const int hardness = 13;

	public const int growth = 14; 
	public const int water = 15; 

	public const int heat = 16;

@@ -47,7 +47,7 @@ public class ELEMENT

cs

	public const int taste = 18;

	public const int water = 15; 
	public const int growth = 14; 

	public const int fire = 21;

@@ -70,8 +70,8 @@ public class ELEMENT

cs
	public static readonly int[] IDS = new int[31]
	{
		751, 752, 753, 754, 755, 756, 759, 750, 0, 2,
		1, 3, 5, 10, 11, 12, 13, 14, 16, 17, 
		18, 15, 21, 22, 23, 24, 25, 26, 29, 85, 
		1, 3, 5, 10, 11, 12, 13, 15, 16, 17, 
		18, 14, 21, 22, 23, 24, 25, 26, 29, 85, 
		20
	};
}

ENC

@@ -10,14 +10,16 @@ public class ENC

cs

	public const int r_life = 640;

	public const int mod_flurry = 621; 

	public const int mod_chaser = 620;

	public const int mod_feint = 623;

	public const int mod_splash = 608; 

	public const int mod_cleave = 622;

	public const int mod_flurry = 621; 

	public const int living = 653;

	public const int mod_frustration = 624;

@@ -44,7 +46,7 @@ public class ENC

cs

	public const int convertFire = 850;

	public const int mod_splash = 608; 
	public const int mod_scatter = 607; 

	public const int convertImpact = 865;

@@ -52,13 +54,11 @@ public class ENC

cs

	public const int onlyPet = 655;

	public const int mod_scatter = 607; 

	public const int bane_animal = 463; 
	public const int mod_drill = 606; 

	public const int mod_precision = 605; 
	public const int bane_fairy = 462; 

	public const int allNeckHunt = 428; 
	public const int mod_ammo_recover = 604; 

	public const int negateNeckHunt = 427;

@@ -70,10 +70,12 @@ public class ENC

cs

	public const int negateFear = 423;

	public const int negateBlind = 421; 
	public const int negateParalysis = 422; 

	public const int negatePoison = 420;

	public const int innocence = 418; 

	public const int loving = 417;

	public const int seeInvisible = 416;

@@ -82,7 +84,7 @@ public class ENC

cs

	public const int encHit = 414;

	public const int breathing = 429; 
	public const int allNeckHunt = 428; 

	public const int slowCorruption = 412;

@@ -108,17 +110,15 @@ public class ENC

cs

	public const int negateTeleport = 400;

	public const int mod_drill = 606; 
	public const int mod_precision = 605; 

	public const int encSpell = 411;

	public const int sustain_STR = 440; 

	public const int negateParalysis = 422; 
	public const int breathing = 429; 

	public const int slot_rune = 484; 
	public const int negateBlind = 421; 

	public const int mod_ammo_knockback = 603; 
	public const int optimizeMana = 483; 

	public const int mod_rapid = 602;

@@ -126,7 +126,7 @@ public class ENC

cs

	public const int mod_ammo = 600;

	public const int optimizeMana = 483; 
	public const int slot_rune = 484; 

	public const int force_weapon = 482;

@@ -140,13 +140,13 @@ public class ENC

cs

	public const int bane_god = 466;

	public const int bane_man = 464; 
	public const int bane_machine = 465; 

	public const int bane_fairy = 462; 
	public const int bane_animal = 463; 

	public const int bane_machine = 465; 
	public const int bane_undead = 461; 

	public const int bane_dragon = 460; 
	public const int bane_man = 464; 

	public const int sustain_CHA = 447;

@@ -156,26 +156,28 @@ public class ENC

cs

	public const int sustain_LER = 444;

	public const int bane_undead = 461; 

	public const int sustain_PER = 443;

	public const int bane_dragon = 460; 

	public const int sustain_DEX = 442;

	public const int sustain_END = 441;

	public const int mod_ammo_recover = 604; 
	public const int sustain_STR = 440; 

	public const int mod_ammo_knockback = 603; 

	public static readonly int[] IDS = new int[83] 
	public static readonly int[] IDS = new int[84] 
	{
		652, 651, 650, 641, 640, 621, 620, 623, 622, 653, 
		624, 654, 851, 656, 660, 661, 662, 663, 664, 665, 
		666, 850, 608, 865, 852, 655, 607, 463, 605, 428, 
		427, 426, 425, 424, 423, 421, 420, 417, 416, 415, 
		414, 429, 412, 410, 409, 408, 407, 406, 405, 404, 
		403, 402, 401, 400, 606, 411, 440, 422, 484, 603, 
		602, 601, 600, 483, 482, 481, 480, 468, 467, 466, 
		464, 462, 465, 460, 447, 446, 445, 444, 461, 443, 
		442, 441, 604
		652, 651, 650, 641, 640, 620, 623, 608, 622, 621, 
		653, 624, 654, 851, 656, 660, 661, 662, 663, 664, 
		665, 666, 850, 607, 865, 852, 655, 606, 462, 604, 
		427, 426, 425, 424, 423, 422, 420, 418, 417, 416, 
		415, 414, 428, 412, 410, 409, 408, 407, 406, 405, 
		404, 403, 402, 401, 400, 605, 411, 429, 421, 483, 
		602, 601, 600, 484, 482, 481, 480, 468, 467, 466, 
		465, 463, 461, 464, 447, 446, 445, 444, 443, 460, 
		442, 441, 440, 603
	};
}

GoalCombat

@@ -511,6 +511,13 @@ public virtual bool TryUseAbility(int dist, bool beforeMove = false)

cs
				continue;
			}
			break;
		case 8790:
		case 8791:
			if (tc.host != null) 
			{ 
				continue; 
			} 
			break; 
		}
		bool isHOT;
		switch (text)

GrowSystemDeco

@@ -8,6 +8,11 @@ public class GrowSystemDeco : GrowSystem

cs

	public override int StageLength => 2;

	public override bool CanReapSeed() 
	{ 
		return true; 
	} 

	public override void OnExceedLastStage()
	{
		SetStage(1);

Portrait

@@ -146,7 +146,7 @@ public void SetChara(Chara c, PCCData pccData = null)

cs
		if (fixSpritePos)
		{
			imageChara.transform.localScale = (c.IsPCC ? new Vector3(1.3f, 1.4f, 1f) : new Vector3(1f, 1f, 1f)) * charaScale;
			imageChara.rectTransform.pivot = (c.IsPCC ? new Vector2(0.5f, 0.4f) : new Vector2(0.5f, 0.2f)); 
			imageChara.rectTransform.pivot = (c.IsPCC ? new Vector2(0.5f, 0.3f) : new Vector2(0.5f, 0.2f)); 
			imageChara.rectTransform.anchoredPosition = (c.IsPCC ? new Vector2(-25f, 20f) : new Vector2(-25f, 20f));
		}
	}

+TraitEspressoMachine

File Created
cs
public class TraitEspressoMachine : TraitCookerMicrowave
{
}

TraitStoryBookHome

@@ -9,6 +9,7 @@ public override void OnRead(Chara c)

cs
	List<SourceQuest.Row> list = EClass.sources.quests.rows.Where((SourceQuest.Row q) => IsAvailable(q)).ToList();
	EClass.ui.AddLayer<LayerList>().SetSize().SetList2(list, (SourceQuest.Row a) => GetTitle(a), delegate(SourceQuest.Row a, ItemGeneral b)
	{
		EClass.ui.GetLayer<LayerList>().SetActive(enable: false); 
		LayerDrama.fromBook = true;
		string text3 = a.drama[0];
		string idStep = "quest_" + a.id;

@@ -16,7 +17,10 @@ public override void OnRead(Chara c)

cs
		{
			idStep = "loytelEscaped";
		}
		LayerDrama.Activate(text3, text3, idStep, GetChara(text3)); 
		LayerDrama.Activate(text3, text3, idStep, GetChara(text3)).SetOnKill(delegate
		{ 
			EClass.ui.GetLayer<LayerList>().SetActive(enable: true); 
		}); 
	}, delegate
	{
	}, autoClose: false);