Skip to content

EA 23.135 Nightly

May 8, 2025

13 files modified. 1 new file created.

Important Changes

None.

ABILITY

@@ -2,7 +2,7 @@

cs

public class ABILITY
{
	public const int AI_Drink = 5045; 
	public const int ActChat = 5044; 

	public const int AI_Read = 5041;

@@ -10,7 +10,7 @@ public class ABILITY

cs

	public const int AI_TendAnimal = 5043;

	public const int ActChat = 5044; 
	public const int AI_Drink = 5045; 

	public const int ActInstall = 5046;

@@ -244,7 +244,7 @@ public class ABILITY

cs

	public static readonly int[] IDS = new int[120]
	{
		5045, 5041, 5042, 5043, 5044, 5046, 5047, 5048, 5049, 5050, 
		5044, 5041, 5042, 5043, 5045, 5046, 5047, 5048, 5049, 5050, 
		5051, 5052, 5053, 5054, 5055, 5040, 6001, 6011, 6012, 6013,
		6015, 6018, 6019, 6020, 6050, 6400, 6410, 6420, 6500, 6600,
		6601, 6003, 6602, 5039, 5037, 5007, 5008, 5009, 5010, 5011,

Card

@@ -4877,6 +4877,7 @@ public void SpawnLoot(Card origin)

cs
					list.Add(ThingGen.Create("crystal_earth"));
				}
				break;
			case "golem_fish":
			case "golem_stone":
				if (chance(30))
				{

@@ -6743,6 +6744,10 @@ public int GetValue(PriceType priceType = PriceType.Default, bool sell = false)

cs

	public virtual int GetPrice(CurrencyType currency = CurrencyType.Money, bool sell = false, PriceType priceType = PriceType.Default, Chara c = null)
	{
		if (priceType == PriceType.CopyShop && sell) 
		{ 
			return 0; 
		} 
		if (!sell)
		{
			if (id == "littleball")

Chara

@@ -1655,6 +1655,7 @@ public void RefreshSpeed(Element.BonusInfo info = null)

cs
	if (body.GetSlot(37, onlyEmpty: false)?.thing != null && HasElement(1209))
	{
		_Speed -= 25;
		info?.AddText(-25, EClass.sources.elements.map[1209].GetName()); 
	}
	if (parasite != null)
	{

+ConBreath

File Created
cs
public class ConBreath : BaseBuff
{
}

DOMAIN

@@ -2,42 +2,42 @@

cs

public class DOMAIN
{
	public const int domHealing = 811; 
	public const int domEarth = 812;

	public const int domOblivion = 813;

	public const int domEyth = 814;

	public const int domHarmony = 815; 
	public const int domWind = 807;

	public const int domElement = 806;

	public const int domComm = 805;

	public const int domHealing = 811; 
	public const int domMiracle = 803; 
	public const int domArcane = 804; 

	public const int domLuck = 810;

	public const int domHarvest = 808; 
	public const int domFaith = 802; 

	public const int domMachine = 809; 
	public const int domHarmony = 815; 
	public const int domHarvest = 808; 

	public const int domTest = 800;

	public const int domSurvival = 801;

	public const int domFaith = 802; 
	public const int domMiracle = 803; 

	public const int domArcane = 804; 
	public const int domMachine = 809; 

	public static readonly int[] IDS = new int[16]
	{
		812, 813, 814, 815, 807, 806, 805, 811, 803, 810, 
		808, 809, 800, 801, 802, 804
		811, 812, 813, 814, 807, 806, 805, 804, 810, 802, 
		815, 808, 800, 801, 803, 809
	};
}
public class Domain : EClass

ELEMENT

@@ -5,6 +5,8 @@

cs

public class ELEMENT
{
	public const int comfort = 750; 
	public const int rare = 751;

	public const int cute = 752;

@@ -23,7 +25,7 @@ public class ELEMENT

cs

	public const int roasted = 762;

	public const int comfort = 750; 
	public const int air = 763; 

	public const int purity = 759;

@@ -73,12 +75,12 @@ public class ELEMENT

cs

	public const int poison = 20;

	public static readonly int[] IDS = new int[34] 
	public static readonly int[] IDS = new int[35] 
	{
		751, 752, 753, 754, 755, 756, 760, 761, 762, 750, 
		759, 0, 3, 1, 2, 5, 10, 11, 12, 13, 
		14, 16, 17, 18, 15, 21, 22, 23, 24, 25, 
		26, 29, 85, 20
		750, 751, 752, 753, 754, 755, 756, 760, 761, 762, 
		763, 759, 0, 3, 1, 2, 5, 10, 11, 12, 
		13, 14, 16, 17, 18, 15, 21, 22, 23, 24, 
		25, 26, 29, 85, 20
	};
}
public class Element : EClass

ENC

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

cs

	public const int mod_talisman = 609;

	public const int innocence = 418; 
	public const int negatePoison = 420; 

	public const int mod_scatter = 607;

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

cs

	public const int negateBlind = 421;

	public const int negatePoison = 420; 
	public const int innocence = 418; 

	public const int loving = 417;

@@ -152,38 +152,38 @@ public class ENC

cs

	public const int strongStomach = 480;

	public const int bane_machine = 465; 
	public const int sustain_PER = 443;

	public const int sustain_LER = 444; 
	public const int bane_man = 464; 

	public const int sustain_WIL = 445; 
	public const int bane_animal = 463; 

	public const int sustain_MAG = 446; 
	public const int bane_fairy = 462; 
	public const int bane_undead = 461; 

	public const int bane_dragon = 460;

	public const int sustain_CHA = 447;

	public const int bane_fairy = 462; 
	public const int bane_machine = 465; 

	public const int bane_animal = 463; 
	public const int sustain_MAG = 446; 

	public const int bane_man = 464; 
	public const int sustain_WIL = 445; 

	public const int bane_undead = 461; 
	public const int sustain_LER = 444; 

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

FACTION

@@ -4,29 +4,29 @@

cs

public class FACTION
{
	public const int bfFertile = 3700; 
	public const int bfCave = 3500; 

	public const int bfGeyser = 3701; 
	public const int bfPlain = 3600; 

	public const int bfBeach = 3604; 
	public const int bfForest = 3601; 

	public const int bfSea = 3605; 
	public const int bfSnow = 3602; 

	public const int bfCave = 3500; 
	public const int bfFertile = 3700; 

	public const int bfRuin = 3702; 
	public const int bfGeyser = 3701; 

	public const int bfHill = 3603;

	public const int bfSnow = 3602; 
	public const int bfSea = 3605; 

	public const int bfForest = 3601; 
	public const int fRation = 2207; 

	public const int bfPlain = 3600; 
	public const int bfRuin = 3702; 

	public const int fRation = 2207; 
	public const int bfBeach = 3604; 

	public const int actBuildRecipe = 4005; 
	public const int actBuildCollect = 4004; 

	public const int fSafety = 2205;

@@ -38,10 +38,10 @@ public class FACTION

cs

	public const int fElec = 2201;

	public const int fHeirloom = 2120; 
	public const int bfTranquil = 3703;

	public const int fHeirloom = 2120; 
	public const int fTaxEvasion = 2119;

	public const int fLuck = 2118;

@@ -58,6 +58,8 @@ public class FACTION

cs

	public const int bfFish = 3706;

	public const int actBuildRecipe = 4005; 
	public const int actBuildInspect = 4006;

	public const int actBuildAnywhere = 4003;

@@ -76,11 +78,9 @@ public class FACTION

cs

	public const int bfIce = 3804;

	public const int bfGum = 3803; 
	public const int bfHunt = 3705;

	public const int actBuildCollect = 4004; 
	public const int bfGum = 3803; 

	public const int bfCoal = 3800;

@@ -110,10 +110,10 @@ public class FACTION

cs

	public static readonly int[] IDS = new int[52]
	{
		3700, 3701, 3604, 3605, 3500, 3702, 3603, 3602, 3601, 3600, 
		2207, 4005, 2205, 2204, 2203, 2202, 2201, 2120, 3703, 2119, 
		2118, 2117, 2116, 2206, 3704, 3802, 3706, 4006, 4003, 4002, 
		2115, 4001, 4000, 3900, 3805, 3804, 3803, 3705, 4004, 3800, 
		3500, 3600, 3601, 3602, 3700, 3701, 3603, 3605, 2207, 3702, 
		3604, 4004, 2205, 2204, 2203, 2202, 2201, 3703, 2120, 2119, 
		2118, 2117, 2116, 2206, 3704, 3802, 3706, 4005, 4006, 4003, 
		4002, 2115, 4001, 4000, 3900, 3805, 3804, 3705, 3803, 3800, 
		3784, 3783, 3782, 3781, 3780, 3710, 3709, 3708, 3707, 3801,
		2003, 2200
	};

SKILL

@@ -20,7 +20,7 @@ public class SKILL

cs

	public const int weaponScythe = 110;

	public const int twowield = 131; 
	public const int fishing = 245; 

	public const int mining = 220;

@@ -60,7 +60,7 @@ public class SKILL

cs

	public const int eyeofmind = 134;

	public const int fishing = 245; 
	public const int tactics = 132; 

	public const int EDR = 56;

@@ -132,7 +132,7 @@ public class SKILL

cs

	public const int gathering = 250;

	public const int tactics = 132; 
	public const int twowield = 131; 

	public const int blacksmith = 256;

@@ -269,12 +269,12 @@ public class SKILL

cs
public static readonly int[] IDS = new int[133]
{
	111, 123, 122, 120, 55, 109, 50, 51, 130, 110,
	131, 220, 133, 242, 241, 240, 237, 235, 230, 227, 
	245, 220, 133, 242, 241, 240, 237, 235, 230, 227, 
	226, 225, 210, 207, 200, 152, 151, 150, 135, 134,
	245, 56, 103, 108, 60, 61, 62, 64, 65, 66, 
	132, 56, 103, 108, 60, 61, 62, 64, 65, 66, 
	67, 68, 70, 71, 72, 73, 74, 75, 57, 76,
	78, 79, 80, 90, 91, 92, 93, 100, 101, 102,
	104, 105, 106, 107, 77, 250, 132, 256, 916, 917, 
	104, 105, 106, 107, 77, 250, 131, 256, 916, 917, 
	918, 919, 921, 922, 923, 924, 925, 926, 950, 951,
	952, 953, 915, 954, 956, 957, 958, 959, 960, 961,
	962, 963, 964, 965, 970, 971, 972, 255, 955, 914,

SPELL

@@ -54,7 +54,7 @@ public class SPELL

cs

	public const int hand_Holy = 50409;

	public const int hand_Void = 50416; 
	public const int weapon_Nether = 50806; 

	public const int miasma_Nether = 50706;

@@ -70,10 +70,10 @@ public class SPELL

cs

	public const int puddle_Mind = 50904;

	public const int sword_Mind = 51004; 
	public const int weapon_Void = 50816;

	public const int sword_Mind = 51004; 
	public const int ball_Poison = 50105;

	public const int miasma_Void = 50716;

@@ -90,10 +90,10 @@ public class SPELL

cs

	public const int weapon_Poison = 50805;

	public const int puddle_Poison = 50905; 
	public const int funnel_Void = 50616;

	public const int puddle_Poison = 50905; 
	public const int sword_Poison = 51005;

	public const int ball_Nether = 50106;

@@ -108,7 +108,7 @@ public class SPELL

cs

	public const int funnel_Nether = 50606;

	public const int weapon_Nether = 50806; 
	public const int hand_Void = 50416; 

	public const int bolt_Impact = 50315;

@@ -228,12 +228,10 @@ public class SPELL

cs

	public const int funnel_Acid = 50613;

	public const int weapon_Fire = 50800; 
	public const int miasma_Fire = 50700; 

	public const int sword_Darkness = 51003;

	public const int SpHealLight = 8400; 
	public const int SpHealHeavy = 8401;

	public const int SpHealCritical = 8402;

@@ -258,11 +256,11 @@ public class SPELL

cs

	public const int SpRemoveHex = 8490;

	public const int SpWish = 8390; 
	public const int SpVanishHex = 8491;

	public const int SpCatsEye = 8501; 
	public const int SpHealLight = 8400; 
	public const int SpHolyVeil = 8500; 

	public const int SpHolyShield = 8502;

@@ -272,6 +270,8 @@ public class SPELL

cs

	public const int SpResEle = 8506;

	public const int SpBreath = 8507; 
	public const int SpSpeedUp = 8510;

	public const int SpRebirth = 8550;

@@ -288,13 +288,13 @@ public class SPELL

cs

	public const int SpBane = 8706;

	public const int SpHolyVeil = 8500; 
	public const int SpCatsEye = 8501; 

	public const int SpGravity = 8708; 
	public const int SpWish = 8390; 

	public const int SpMutation = 8380;

	public const int SpReconstruction = 8288; 
	public const int SpLevitate = 8300; 

	public const int ball_ = 7001;

@@ -322,10 +322,10 @@ public class SPELL

cs

	public const int SpReturn = 8220;

	public const int SpLevitate = 8300; 
	public const int SpEvac = 8221;

	public const int SpIdentify = 8230; 
	public const int SpIdentifyG = 8232;

	public const int SpUncurse = 8240;

@@ -352,11 +352,13 @@ public class SPELL

cs

	public const int SpChangeMaterialG = 8286;

	public const int SpIdentify = 8230; 
	public const int SpReconstruction = 8288; 

	public const int SpSpeedDown = 8710; 
	public const int SpGravity = 8708; 

	public const int SpTelepathy = 8770; 
	public const int ball_Mind = 50104; 
	public const int SpSpeedDown = 8710; 

	public const int SpInvisibility = 8775;

@@ -386,7 +388,7 @@ public class SPELL

cs

	public const int bolt_Lightning = 50302;

	public const int miasma_Fire = 50700; 
	public const int weapon_Fire = 50800; 

	public const int hand_Lightning = 50402;

@@ -482,37 +484,37 @@ public class SPELL

cs

	public const int bolt_Fire = 50300;

	public const int ball_Mind = 50104; 
	public const int SpTelepathy = 8770; 

	public const int sword_Void = 51016;

	public static readonly int[] IDS = new int[243] 
	public static readonly int[] IDS = new int[244] 
	{
		50415, 51006, 50107, 50316, 50307, 50407, 50507, 50607, 50707, 50807,
		50907, 51007, 50108, 50116, 50308, 50408, 50508, 50608, 50708, 50808,
		50908, 51008, 50109, 51015, 50309, 50906, 50409, 50416, 50706, 50404, 
		50504, 50604, 50704, 50804, 50904, 51004, 50816, 50105, 50716, 50305, 
		50405, 50505, 50605, 50705, 50805, 50905, 50616, 51005, 50106, 50516, 
		50306, 50406, 50506, 50606, 50806, 50315, 50509, 50709, 50712, 50812, 
		50908, 51008, 50109, 51015, 50309, 50906, 50409, 50806, 50706, 50404, 
		50504, 50604, 50704, 50804, 50904, 50816, 51004, 50105, 50716, 50305, 
		50405, 50505, 50605, 50705, 50805, 50616, 50905, 51005, 50106, 50516, 
		50306, 50406, 50506, 50606, 50416, 50315, 50509, 50709, 50712, 50812, 
		50912, 51012, 50113, 50615, 50313, 50413, 50513, 50304, 50713, 50813,
		50913, 51013, 50114, 50515, 50314, 50414, 50514, 50614, 50714, 50814,
		50914, 51014, 50115, 50612, 50609, 50512, 50312, 50809, 50909, 51009,
		50110, 50915, 50310, 50410, 50510, 50610, 50710, 50810, 50910, 51010,
		50111, 50815, 50311, 50411, 50511, 50611, 50711, 50811, 50911, 51011,
		50112, 50715, 50412, 50613, 50800, 51003, 8400, 8401, 8402, 8403, 
		8404, 8405, 8406, 8430, 8450, 8470, 8471, 8480, 8490, 8390, 
		8491, 8501, 8502, 8503, 8504, 8506, 8510, 8550, 8555, 8700, 
		8702, 8704, 8705, 8706, 8500, 8708, 8380, 8288, 7001, 7002, 
		50112, 50715, 50412, 50613, 50700, 51003, 8401, 8402, 8403, 8404, 
		8405, 8406, 8430, 8450, 8470, 8471, 8480, 8490, 8491, 8400, 
		8500, 8502, 8503, 8504, 8506, 8507, 8510, 8550, 8555, 8700, 
		8702, 8704, 8705, 8706, 8501, 8390, 8380, 8300, 7001, 7002, 
		7003, 7004, 7005, 7006, 7007, 7008, 7800, 8200, 8201, 8202,
		8220, 8300, 8221, 8232, 8240, 8241, 8250, 8251, 8255, 8256, 
		8260, 8280, 8281, 8284, 8285, 8286, 8230, 8710, 8770, 8775, 
		50900, 51000, 50101, 50301, 50401, 50501, 50601, 50701, 50801, 50901, 
		51001, 50102, 50302, 50700, 50402, 50602, 50702, 50802, 50902, 51002, 
		50103, 50303, 50403, 50503, 50603, 50703, 50803, 50903, 50502, 50600, 
		50500, 50400, 8776, 8780, 8790, 8791, 8800, 8801, 9000, 9001, 
		9002, 9003, 9004, 9005, 9006, 9007, 9008, 9009, 9010, 9050, 
		9150, 9151, 9160, 9200, 9500, 9501, 9502, 9503, 50100, 50916, 
		50300, 50104, 51016
		8220, 8221, 8230, 8232, 8240, 8241, 8250, 8251, 8255, 8256, 
		8260, 8280, 8281, 8284, 8285, 8286, 8288, 8708, 50104, 8710, 
		8775, 50900, 51000, 50101, 50301, 50401, 50501, 50601, 50701, 50801, 
		50901, 51001, 50102, 50302, 50800, 50402, 50602, 50702, 50802, 50902, 
		51002, 50103, 50303, 50403, 50503, 50603, 50703, 50803, 50903, 50502, 
		50600, 50500, 50400, 8776, 8780, 8790, 8791, 8800, 8801, 9000, 
		9001, 9002, 9003, 9004, 9005, 9006, 9007, 9008, 9009, 9010, 
		9050, 9150, 9151, 9160, 9200, 9500, 9501, 9502, 9503, 50100, 
		50916, 50300, 8770, 51016
	};
}
public class Spell : Ability

TraitPotionAlchemy

@@ -40,6 +40,9 @@ public override void OnCrafted(Recipe recipe)

cs
		case 756:
			num = 8506;
			break;
		case 763:
			num = 8507; 
			break; 
		}
		if (num != 0)
		{

TraitWhipEgg

@@ -1,5 +1,10 @@

cs
public class TraitWhipEgg : TraitWhipLove
{
	public override void OnCreate(int lv) 
	{ 
		owner.c_charges = 6; 
	} 
	public override void TrySetHeldAct(ActPlan p)
	{
		p.pos.ListCards().ForEach(delegate(Card c)

@@ -26,6 +31,7 @@ public override void TrySetHeldAct(ActPlan p)

cs
					EClass.pc.Say("spellbookCrumble", owner);
					owner.Destroy();
				}
				EClass.player.ModKarma(-1); 
				return true;
			}, c);
		}

WidgetMemo

@@ -1,12 +1,21 @@

cs
using System;
using UnityEngine; 
using UnityEngine.UI;

public class WidgetMemo : Widget
{
	public class Extra
	{ 
		public bool autoHide; 
	} 
	public static WidgetMemo Instance;

	public int id;

	[NonSerialized] 
	public float hideTimer; 
	public InputField input;

	public Window window;

@@ -19,18 +28,37 @@ public class WidgetMemo : Widget

cs

	public UIButton buttonEdit;

	public UIButton buttonAutoHide; 
	public CanvasGroup cgText; 
	public RectTransform inputRect; 
	public Extra extra => base.config.extra as Extra; 
	public override bool AlwaysBottom => true;

	public override Type SetSiblingAfter => typeof(WidgetSideScreen);

	public override object CreateExtra() 
	{ 
		return new Extra(); 
	} 
	public override void OnActivate()
	{
		input.text = ((id == 0) ? EMono.player.memo : EMono.player.memo2);
		buttonEdit.SetOnClick(delegate
		{
			SE.Tab(); 
			ToggleInput(!input.isFocused);
		});
		Instance = this;
		buttonAutoHide.icon.SetAlpha(extra.autoHide ? 0.4f : 1f); 
		if (extra.autoHide) 
		{ 
			cgText.alpha = 0f; 
		} 
	}

	public override void OnDeactivate()

@@ -67,6 +95,15 @@ public void SaveText()

cs
		}
	}

	public void ToggleAutoHide() 
	{ 
		SE.Tab(); 
		extra.autoHide = !extra.autoHide; 
		hideTimer = 0f; 
		cgText.alpha = 1f; 
		buttonAutoHide.icon.SetAlpha(extra.autoHide ? 0.4f : 1f); 
	} 
	private void Update()
	{
		if (!input.isFocused)

@@ -80,5 +117,33 @@ private void Update()

cs
		{
			ToggleInput(enable: true);
		}
		if (extra.autoHide) 
		{ 
			bool flag = InputModuleEX.IsPointerOver(this) || input.isFocused; 
			if (!flag && cgText.alpha != 0f) 
			{ 
				Vector3 point = inputRect.InverseTransformPoint(Input.mousePosition); 
				if (inputRect.rect.Contains(point)) 
				{ 
					flag = true; 
				} 
			} 
			if (flag) 
			{ 
				hideTimer = 0f; 
				cgText.alpha = 1f; 
				return; 
			} 
			hideTimer += Core.delta; 
			if (hideTimer > 1f) 
			{ 
				cgText.alpha = 0f; 
			} 
		} 
		else
		{ 
			cgText.alpha = 1f; 
			hideTimer = 0f; 
		} 
	}
}

Zone

@@ -2585,9 +2585,9 @@ public Chara SpawnMob(Point pos = null, SpawnSetting setting = null)

cs
		}
	}
	BiomeProfile biome = pos.cell.biome;
	if (IsUnderwater && EClass.rnd(10) != 0) 
	if (IsUnderwater && EClass.rnd(15) != 0) 
	{
		biome = ((EClass.rnd(3) == 0) ? EClass.core.refs.biomes.Water : EClass.core.refs.biomes.Sand); 
		biome = ((EClass.rnd(4) != 0) ? EClass.core.refs.biomes.Water : EClass.core.refs.biomes.Sand); 
	}
	SpawnList spawnList = null;
	spawnList = ((setting.idSpawnList != null) ? SpawnList.Get(setting.idSpawnList) : ((EClass._zone is Zone_DungeonYeek) ? SpawnListChara.Get("dungeon_yeek", (SourceChara.Row r) => r.race == "yeek") : ((setting.hostility == SpawnHostility.Neutral || (setting.hostility != SpawnHostility.Enemy && Rand.Range(0f, 1f) < ChanceSpawnNeutral)) ? SpawnList.Get("c_neutral") : ((biome.spawn.chara.Count <= 0) ? SpawnList.Get(biome.name, "chara", new CharaFilter