Skip to content

EA 23.328 Nightly

July 18, 2026

23 files modified.

Important Changes

Possible breaking changes. Click the filename to view the chunk.

ABILITY (1)

cs
public static int GetSongPower(Chara c, int idSkill, int power) 

TaskClean (1)

cs
public static Point GetTarget(Point dest) 
public static Point GetTarget(Point dest, int ranage) 

ABILITY

public class ABILITY

cs
{
	public const int ActMoneyDump = 5058;

	public const int ActEscape = 6400; 
	public const int ActPray = 6050;

	public const int ActDreamBug = 6020;

public class ABILITY

cs

	public const int AI_Bladder = 5054;

	public const int TaskHarvest = 5053; 
	public const int ActEscape = 6400; 
	public const int ActSuicide = 6410;

	public const int ActDuplicate = 6420;

	public const int ActRush = 6450;

	public const int ActCrabBreathe = 6500; 
	public const int ActGazeMana = 6623; 
	public const int ActGazeMutation = 6622;

	public const int ActGazeInsane = 6621;

public class ABILITY

cs

	public const int ActFear = 6611;

	public const int ActWeaken = 6610; 
	public const int TaskHarvest = 5053; 

	public const int ActBash = 5052; 
	public const int ActWeaken = 6610; 

	public const int ActBloodsuck = 6607; 
	public const int ActBurnMana = 6606; 

	public const int ActCrySad = 6605;

public class ABILITY

cs

	public const int ActCurse = 6600;

	public const int ActCrabBreathe = 6500; 
	public const int ActBloodsuck = 6607; 

	public const int ActBurnMana = 6606; 
	public const int ActBash = 5052; 

	public const int ActZap = 5051;

	public const int AI_Sleep = 5050;

	public const int AI_OpenLock = 5049; 
	public const int Sleep = 5004; 

	public const int Wait = 5005;

public class ABILITY

cs

	public const int TaskDig = 5010;

	public const int TaskCut = 5011; 
	public const int Ranged = 5003; 

	public const int Sleep = 5004; 
	public const int TaskCut = 5011; 

	public const int AI_Goto = 5012; 
	public const int ActAttack = 5013; 

	public const int TaskPlow = 5014;

public class ABILITY

cs

	public const int TaskReadBoard = 5019;

	public const int TaskFarm = 5020; 
	public const int AI_Goto = 5012; 

	public const int ActAttack = 5013; 
	public const int ActDrainBlood = 6626; 

	public const int ActGazeMana = 6623; 
	public const int Melee = 5002; 

	public const int Ranged = 5003; 
	public const int ActWait = 5000; 

	public const int ActMelee = 5001; 
	public const int AI_OpenLock = 5049; 

	public const int ActItem = 5048;

public class ABILITY

cs

	public const int AI_TendAnimal = 5043;

	public const int ActKick = 5042; 
	public const int ActMelee = 5001; 

	public const int Melee = 5002; 
	public const int ActKick = 5042; 

	public const int AI_Read = 5041; 
	public const int ActRanged = 5040; 

	public const int AI_Fish = 5039;

public class ABILITY

cs

	public const int GoalIdle = 5034;

	public const int ActWait = 5000; 
	public const int ActRanged = 5040; 
	public const int AI_Read = 5041; 

	public const int ActDrainBlood = 6626; 
	public const int ActCatHuffing = 6627; 

	public const int ActSlime = 6608;

	public const int ActKiss = 6628; 
	public const int ActDeepKiss = 6629; 
	public const int breathe_Magic = 50211; 

	public const int breathe_Chaos = 50210;

	public const int breathe_Holy = 50209; 
	public const int ActKiss = 6628; 

	public const int ActCatHuffing = 6627; 
	public const int breathe_Nerve = 50208; 

	public const int breathe_Sound = 50207;

	public const int breathe_Nether = 50206;

	public const int breathe_Poison = 50205; 
	public const int breathe_Ether = 50212; 

	public const int breathe_Magic = 50211; 
	public const int breathe_Poison = 50205; 

	public const int breathe_Mind = 50204; 
	public const int breathe_Darkness = 50203; 

	public const int breathe_Lightning = 50202;

public class ABILITY

cs

	public const int SpTransmuteShadow = 8795;

	public const int SpTransmuteMimic = 8794; 
	public const int breathe_Darkness = 50203; 
	public const int breathe_Ether = 50212; 
	public const int breathe_Mind = 50204; 

	public const int breathe_Acid = 50213;

	public const int breathe_Cut = 50214;

	public const int breathe_Impact = 50215; 
	public const int ActCancelTask = 5033;

	public const int AI_Equip = 5032;

public class ABILITY

cs

	public const int TaskTrain = 5021;

	public const int TaskFarm = 5020; 
	public const int breathe_Void = 50216;

	public const int breathe_Impact = 50215; 
	public const int SpTransmuteMimic = 8794; 

	public const int SpTransmuteBat = 8793;

	public const int breathe_ = 7000; 
	public const int breathe_Nerve = 50208; 
	public const int ActKizuamiTrick = 6903; 
	public const int breathe_Holy = 50209; 

	public const int ActDeepKiss = 6629; 
	public const int ActHeadpat = 6904; 

	public const int ActInsult = 6630;

public class ABILITY

cs

	public const int ActThrowPotion = 6661;

	public const int ActHeadpat = 6904; 
	public const int breathe_ = 7000; 

	public const int ActSwarm = 6662; 
	public const int ActMultiHit = 6663; 

	public const int ActBladeStorm = 6664;

public class ABILITY

cs

	public const int ActWhirlwind = 6666;

	public const int ActMultiHit = 6663; 
	public const int ActMissileBarrage = 6667; 
	public const int ActSwarm = 6662; 
	public const int ActSummonSpecial = 6800; 

	public const int ActMissileBarrage2 = 6668;

public class ABILITY

cs

	public const int StManaCost = 6720;

	public const int ActMissileBarrage = 6667; 
	public const int StTaunt = 6700; 
	public const int StMama = 6701;

	public const int ActSummonSpecial = 6800; 
	public const int ActKizuamiTrick = 6903; 
	public const int StTaunt = 6700; 

	public const int ActDeathSentense = 6802;

public class ABILITY

cs

	public static readonly int[] IDS = new int[148]
	{
		5058, 6050, 6020, 6019, 6018, 6015, 6013, 6012, 6011, 6003, 
		6001, 5057, 5056, 5055, 5054, 5053, 6400, 6410, 6420, 6450, 
		6622, 6621, 6620, 6613, 6612, 6611, 6610, 5052, 6607, 6605, 
		6604, 6603, 6602, 6601, 6600, 6500, 6606, 5051, 5050, 5049, 
		5005, 5006, 5007, 5008, 5009, 5010, 5011, 5004, 5012, 5014, 
		5015, 5016, 5017, 5018, 5019, 5020, 5013, 6623, 5003, 5001, 
		5048, 5047, 5046, 5045, 5044, 5043, 5042, 5002, 5041, 5039, 
		5038, 5037, 5036, 5035, 5034, 5000, 5040, 6626, 6608, 6628, 
		50210, 50209, 6627, 50207, 50206, 50205, 50211, 50204, 50202, 50201, 
		50200, 8796, 8795, 8794, 50203, 50212, 50213, 50214, 5033, 5032, 
		5058, 6400, 6050, 6020, 6019, 6018, 6015, 6013, 6012, 6011, 
		6003, 6001, 5057, 5056, 5055, 5054, 6410, 6420, 6450, 6500, 
		6623, 6622, 6621, 6620, 6613, 6612, 6611, 5053, 6610, 6606, 
		6605, 6604, 6603, 6602, 6601, 6600, 6607, 5052, 5051, 5050, 
		5004, 5005, 5006, 5007, 5008, 5009, 5010, 5003, 5011, 5013, 
		5014, 5015, 5016, 5017, 5018, 5019, 5012, 6626, 5002, 5000, 
		5049, 5048, 5047, 5046, 5045, 5044, 5043, 5001, 5042, 5040, 
		5039, 5038, 5037, 5036, 5035, 5034, 5041, 6627, 6608, 6629, 
		50211, 50210, 6628, 50208, 50207, 50206, 50212, 50205, 50203, 50202, 
		50201, 50200, 8796, 8795, 50204, 50213, 50214, 50215, 5033, 5032, 
		5031, 5030, 5029, 5028, 5027, 5026, 5025, 5024, 5023, 5022,
		5021, 50216, 50215, 8793, 7000, 50208, 6903, 6629, 6630, 6631, 
		6632, 6640, 6641, 6642, 6650, 6660, 6661, 6904, 6662, 6664, 
		6665, 6666, 6663, 6668, 6902, 6901, 6900, 6753, 6752, 6751, 
		6750, 6720, 6667, 6700, 6701, 6800, 6802, 6801
		5021, 5020, 50216, 8794, 8793, 50209, 6904, 6630, 6631, 6632, 
		6640, 6641, 6642, 6650, 6660, 6661, 7000, 6663, 6664, 6665, 
		6666, 6667, 6662, 6800, 6668, 6902, 6901, 6900, 6753, 6752, 
		6751, 6750, 6720, 6701, 6903, 6700, 6802, 6801
	};
}
public class Ability : Act

public override int GetPower(Card c)

cs
		}
	}
	a = EClass.curve(a, 400, 100);
	if (this is Spell || this is Song) 
	if (this is Song) 
	{ 
		a = a * Mathf.Max(100 + c.Evalue(411) / 3, 1) / 100 * Mathf.Clamp(50 + EClass.curve(c.Evalue(241), 50, 10, 50) * 2, 1, 300) / 100; 
	} 
	else if (this is Spell) 
	{
		a = a * Mathf.Max(100 + c.Evalue(411) - c.Evalue(93), 1) / 100;
	}

public override int GetPower(Card c)

cs
		return (int)a;
	}

	public static int GetSongPower(Chara c, int idSkill, int power) 
	{ 
		long a = MathEx.Max(c.LV * 6 + 30, (long)c.Evalue(idSkill) * 4L + 30); 
		a = EClass.curve(a, 400, 100); 
		a = a * Mathf.Max(100 + c.Evalue(411) - c.Evalue(93), 1) / 100; 
		if (a > 214748364) 
		{ 
			a = 214748364L; 
		} 
		return (int)a; 
	} 
	public override void OnChangeValue()
	{
		Card card = owner.Card;

AI_Idle

public override IEnumerable<Status> Run()

cs
		case "azzrasizzle":
		case "geist":
		{
			if ((owner.IsPCFactionOrMinion && owner.IsPCParty) || EClass.rnd(20) != 0) 
			if (owner.IsPCFactionOrMinion || owner.IsPCParty || EClass.rnd(20) != 0) 
			{
				break;
			}

ActEffect

void AddCon<T>(int rate, int power) where T : Condition

cs
	case EffectId.DamageMindGreat:
	case EffectId.Weaken:
	{
		bool flag10 = id == EffectId.DamageBody || id == EffectId.DamageBodyGreat; 
		bool flag9 = id == EffectId.DamageBody || id == EffectId.DamageBodyGreat; 
		bool mind = id == EffectId.DamageMind || id == EffectId.DamageMindGreat;
		int num9 = ((id == EffectId.DamageBody || id == EffectId.DamageMind) ? 1 : (4 + EClass.rnd(4)));
		if (id == EffectId.Weaken)
		{
			flag10 = EClass.rnd(2) == 0; 
			mind = !flag10; 
			flag9 = EClass.rnd(2) == 0; 
			mind = !flag9; 
			num9 = 1;
		}
		else

void AddCon<T>(int rate, int power) where T : Condition

cs
			TC.PlayEffect("debuff");
			TC.PlaySound("debuff");
		}
		TC.Say(flag10 ? "damageBody" : "damageMind", TC); 
		TC.Say(flag9 ? "damageBody" : "damageMind", TC); 
		for (int k = 0; k < num9; k++)
		{
			TC.DamageTempElements(power, flag10, mind, id != EffectId.Weaken); 
			TC.DamageTempElements(power, flag9, mind, id != EffectId.Weaken); 
		}
		if (TC.IsPC)
		{

void AddCon<T>(int rate, int power) where T : Condition

cs
	case EffectId.RestoreBody:
	case EffectId.RestoreMind:
	{
		bool flag9 = id == EffectId.RestoreBody; 
		bool flag10 = id == EffectId.RestoreBody; 
		if (flag)
		{
			Redirect(flag9 ? EffectId.DamageBodyGreat : EffectId.DamageMindGreat, BlessedState.Normal, default(ActRef)); 
			Redirect(flag10 ? EffectId.DamageBodyGreat : EffectId.DamageMindGreat, BlessedState.Normal, default(ActRef)); 
			break;
		}
		TC.Say(flag9 ? "restoreBody" : "restoreMind", TC); 
		TC.Say(flag10 ? "restoreBody" : "restoreMind", TC); 
		TC.PlaySound("heal");
		TC.PlayEffect("heal");
		TC.CureHost(flag9 ? CureType.CureBody : CureType.CureMind, power, state); 
		TC.CureHost(flag10 ? CureType.CureBody : CureType.CureMind, power, state); 
		if (blessed)
		{
			Redirect(flag9 ? EffectId.EnhanceBodyGreat : EffectId.EnhanceMindGreat, BlessedState.Normal, default(ActRef)); 
			Redirect(flag10 ? EffectId.EnhanceBodyGreat : EffectId.EnhanceMindGreat, BlessedState.Normal, default(ActRef)); 
		}
		break;
	}

void AddCon<T>(int rate, int power) where T : Condition

cs
			TC.PlayEffect("buff");
			TC.PlaySound("offering");
			int num18 = TC.Evalue(1423);
			if (num18 > 1 && num18 < 15) 
			if (flag && num18 > 1) 
			{
				if (flag) 
				{ 
					TC.SetFeat(1423, num18 - 1, msg: true); 
				} 
				else
				{ 
					TC.SetFeat(1423, Mathf.Min(num18 + ((!blessed) ? 1 : 2), 15), msg: true); 
				} 
				TC.SetFeat(1423, num18 - 1, msg: true); 
			} 
			else if (num18 < 15) 
			{ 
				TC.SetFeat(1423, Mathf.Min(num18 + ((!blessed) ? 1 : 2), 15), msg: true); 
			}
		}
		if (flag)

ActNTR

public class ActNTR : Ability

cs
{
	public override bool CanPerform()
	{
		if (Act.CC.GetInt(119) != 0) 
		{ 
			return false; 
		} 
		if (Act.TC == null || !Act.TC.isChara)
		{
			return false;

ActSlime

public class ActSlime : ActNTR

cs

	public override bool CanPerform()
	{
		if (Act.CC.GetInt(119) != 0) 
		{ 
			return false; 
		} 
		if (Act.TC == null || !Act.TC.isChara || Act.TC == Act.CC)
		{
			return false;

BaseSong

public override void Tick()

cs
		{
			owner.elements.ModExp(element.id, 20f);
		}
		if (EClass.rnd(10) == 0) 
		{ 
			owner.elements.ModExp(241, owner.IsPC ? 10 : 100); 
		} 
		TickSong();
	}

CINT

public class CINT

cs

	public const int seedBlood = 118;

	public const int isDisableFuck = 119; 
	public const int isTrained = 120;

	public const int isPrayed = 121;

Chara

public void ShowDialog()

cs
			ShowDialog("_chara", "invisible");
			return;
		}
		if (!IsPC && !EClass.player.codex.DroppedCard(id) && affinity.CanGiveCard()) 
		if (!IsPC && !EClass.player.codex.DroppedCard(id) && affinity.CanGiveCard() && source.LV < 10000) 
		{
			EClass.player.codex.MarkCardDrop(id);
			ShowDialog("_chara", "give_card");

ConSleep

public static void SuccubusVisit(Chara tg)

cs
	}
	foreach (Chara chara in EClass._map.charas)
	{
		if (chara == tg || chara.IsPC || chara.host != null || chara.IsDisabled || !chara.IsIdle || chara.Evalue(418) > 0 || tg.Evalue(418) > 0) 
		if (chara == tg || chara.IsPC || chara.host != null || chara.IsDisabled || !chara.IsIdle || chara.Evalue(418) > 0 || tg.Evalue(418) > 0 || chara.GetInt(119) != 0) 
		{
			continue;
		}

DNA

public bool CanRemove(Chara c)

cs
{
	for (int i = 0; i < vals.Count; i += 2)
	{
		switch (vals[i]) 
		if (EClass.sources.elements.map[vals[i]].tag.Contains("permaGene")) 
		{
		case 1237: 
		case 1415: 
			return false;
		case 1228: 
		case 1414: 
		} 
		int num = vals[i]; 
		if (num == 1228 || num == 1414) 
		{ 
			if (c != null)
			{
				return !c.IsPC;

DOMAIN

``

cs

public class DOMAIN
{
	public const int domLuck = 810; 
	public const int domFaith = 802; 
	public const int domOblivion = 813; 
	public const int domHarmony = 815; 

	public const int domEarth = 812;

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

	public const int domArcane = 804; 
	public const int domLuck = 810; 

	public const int domEyth = 814; 
	public const int domMachine = 809; 

	public const int domComm = 805; 
	public const int domHarvest = 808; 

	public const int domHealing = 811; 
	public const int domWind = 807; 

	public const int domElement = 806;

	public const int domWind = 807; 
	public const int domHarvest = 808; 
	public const int domComm = 805; 

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

	public const int domHarmony = 815; 
	public const int domMiracle = 803; 

	public const int domTest = 800;

	public const int domFaith = 802; 
	public const int domSurvival = 801;

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

DramaCustomSequence

public void Build(Chara c)

cs
	{
		Choice((c.GetInt(126) == 0) ? "daDisableLoyal" : "daDisableLoyal2", "_disableLoyal");
	}
	if (c.IsSlimeEvolvable || c.ability.Has(6603) || c.HasElement(1216)) 
	{ 
		Choice((c.GetInt(119) == 0) ? "daDisableFuck" : "daDisableFuck2", "_disableFuck"); 
	} 
	if (c.GetInt(113) == 0)
	{
		Choice("daEquipSharedOff", "_toggleSharedEquip");

public void Build(Chara c)

cs
	});
	_Talk("tg", GetTopic(c, (c.GetInt(126) == 0) ? "shutup" : "shutup2"));
	End();
	Step("_disableFuck"); 
	Method(delegate
	{ 
		c.SetInt(119, (c.GetInt(119) == 0) ? 1 : 0); 
	}); 
	_Talk("tg", GetTopic(c, (c.GetInt(119) == 0) ? "shutup" : "shutup2")); 
	End(); 
	Step("_suck");
	_Talk("tg", GetTalk("pervert4"));
	Method(delegate

ELEMENT

``

cs

public class ELEMENT
{
	public const int rare = 751; 
	public const int difficulty = 765;

	public const int stimulant = 760; 
	public const int air = 763;

	public const int roasted = 762;

	public const int rare = 751; 
	public const int cute = 752; 
	public const int recharge = 761; 

	public const int antidote = 753; 
	public const int purity = 759; 

	public const int nerve = 754; 
	public const int hotspring = 756; 

	public const int blood = 755;

	public const int hotspring = 756; 
	public const int nerve = 754; 

	public const int purity = 759; 
	public const int antidote = 753; 

	public const int stimulant = 760; 
	public const int cute = 752; 

	public const int recharge = 761; 
	public const int comfort = 750; 

	public const int forbidden = 766;

	public const int comfort = 750; 
	public const int _void = 0;

	public const int weight = 11;

public class ELEMENT

cs

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

FEAT

``

cs

public class FEAT
{
	public const int featLightEater = 1235; 
	public const int featHeavyEater = 1234; 
	public const int featSleeper = 1642; 

	public const int featSorter = 1643;

public class FEAT

cs

	public const int featRapidMagic = 1648;

	public const int featDefender = 1649; 
	public const int featResCurse = 1641; 

	public const int featSleeper = 1642; 
	public const int featDefender = 1649; 

	public const int featGourmet = 1650; 
	public const int featMagicManner = 1651; 

	public const int featRapidArrow = 1652;

public class FEAT

cs

	public const int featManaCost = 1657;

	public const int featChef = 1658; 
	public const int featMagicManner = 1651; 
	public const int featGourmet = 1650; 

	public const int featResCurse = 1641; 
	public const int featChef = 1658; 

	public const int featAnimalLover = 1640;

	public const int featFaith = 1636; 
	public const int featMartial = 1635; 

	public const int featStamina = 1612;

public class FEAT

cs

	public const int featMAG = 1625;

	public const int featWIL = 1626; 
	public const int featFaith = 1636; 

	public const int featCHA = 1627; 
	public const int featWIL = 1626; 

	public const int featLuck = 1628;

public class FEAT

cs

	public const int featNegotiate = 1634;

	public const int featMartial = 1635; 
	public const int featCHA = 1627; 

	public const int featFisher = 1659;

	public const int featMana = 1611; 
	public const int featLooter = 1660;

	public const int featGoldenFinger = 1662; 
	public const int featDismantler = 1661; 

	public const int featManaPrecision = 1214;

public class FEAT

cs

	public const int featSlowFood = 1200;

	public const int featHeavyEater = 1234; 
	public const int featCosmicHorror = 1233; 

	public const int featMelilithCurse = 1206;

public class FEAT

cs

	public const int featMetal = 1218;

	public const int featGoldenFinger = 1662; 
	public const int featFastEater = 1663;

	public const int featFastFucker = 1664;

	public const int featComat = 1750;

	public const int featCosmicHorror = 1233; 
	public const int featBaby = 1232;

	public const int featAdam = 1230;

public class FEAT

cs

	public const int featElderCrab = 1219;

	public const int featDismantler = 1661; 
	public const int featMana = 1611; 

	public const int featLife = 1610;

	public const int featNirvana = 1231;

	public const int featWizard = 1402; 
	public const int featThief = 1401; 
	public const int featArcher = 1404; 
	public const int featPianist = 1405; 

	public const int featTourist = 1406;

public class FEAT

cs

	public const int featFairysan = 1413;

	public const int featPianist = 1405; 
	public const int featWhiteVixen = 1414;

	public const int featFoxMaid = 1415; 
	public const int featInquisitor = 1416;

	public const int featWitch = 1417;

public class FEAT

cs

	public const int featHealer = 1422;

	public const int featPeaky = 1423; 
	public const int featFarmer = 1403; 

	public const int featFoxMaid = 1415; 
	public const int featPeaky = 1423; 

	public const int featArcher = 1404; 
	public const int featWizard = 1402; 

	public const int featFarmer = 1403; 
	public const int featWarrior = 1400; 

	public const int featHarem = 1276;

	public const int featColdHearted = 1277; 
	public const int featGoddess = 1290;

	public const int featSadCreature = 1291;

public class FEAT

cs

	public const int featSevenPillars = 1293;

	public const int featGod_element1 = 1300; 
	public const int featLightEater = 1235; 

	public const int featNorland = 1236; 
	public const int featGod_element1 = 1300; 

	public const int featGod_earth1 = 1305;

public class FEAT

cs

	public const int featGod_strife1 = 1355;

	public const int featWarrior = 1400; 
	public const int featThief = 1401; 
	public const int featSlimeEvolution = 1274; 

	public const int featElite = 1424;

public class FEAT

cs

	public const int featNeckHunter = 1426;

	public const int featDisguise = 1427; 
	public const int featDemon = 1239;

	public const int featMassSummoner = 1240; 
	public const int featElder = 1238; 

	public const int featMeatCushion = 1241; 
	public const int featRoran = 1237; 
	public const int featNorland = 1236; 

	public const int featGeneSlot = 1242;

	public const int featBelovedOne = 1275; 
	public const int featEternalYouth = 1243;

	public const int featCentaur = 1244;

public class FEAT

cs

	public const int featPegasus = 1246;

	public const int featElder = 1238; 
	public const int featLibra = 1247;

	public const int featMiscreation = 1248; 
	public const int featBloodBond = 1249;

	public const int featVampire = 1250;

public class FEAT

cs

	public const int featBadKarma = 1271;

	public const int featMiscreation = 1248; 
	public const int featColdHearted = 1277; 
	public const int featRoran = 1237; 
	public const int featPeacemaker = 1272; 

	public const int featMurderer = 1428; 
	public const int featBloom = 1273; 

	public const int featManyFace = 1429; 
	public const int featDeviant = 1431; 

	public const int featAstralBody = 1430;

	public const int featDeviant = 1431; 
	public const int featManyFace = 1429; 

	public const int featBelovedOne = 1275; 
	public const int featMurderer = 1428; 

	public const int featSlimeEvolution = 1274; 
	public const int featDisguise = 1427; 

	public const int featBloom = 1273; 
	public const int featMassSummoner = 1240; 

	public const int featPeacemaker = 1272; 
	public const int featMeatCushion = 1241; 

	public static readonly int[] IDS = new int[157]
	{
		1235, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1642, 1650, 
		1652, 1653, 1654, 1655, 1656, 1657, 1658, 1651, 1641, 1640, 
		1636, 1612, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 
		1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1659, 1611, 
		1660, 1662, 1214, 1213, 1212, 1211, 1210, 1209, 1208, 1215, 
		1207, 1205, 1204, 1203, 1202, 1201, 1200, 1234, 1206, 1216, 
		1217, 1218, 1663, 1664, 1750, 1233, 1232, 1230, 1229, 1228, 
		1227, 1226, 1225, 1224, 1223, 1222, 1221, 1220, 1219, 1661, 
		1610, 1231, 1402, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 
		1413, 1405, 1414, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 
		1423, 1415, 1404, 1403, 1276, 1290, 1291, 1292, 1293, 1300, 
		1236, 1305, 1310, 1315, 1320, 1325, 1330, 1335, 1340, 1345, 
		1350, 1355, 1400, 1401, 1424, 1425, 1426, 1427, 1239, 1240, 
		1241, 1242, 1243, 1244, 1245, 1246, 1238, 1247, 1249, 1250, 
		1251, 1252, 1253, 1254, 1270, 1271, 1248, 1277, 1237, 1428, 
		1429, 1430, 1431, 1275, 1274, 1273, 1272
		1234, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1641, 1649, 
		1651, 1652, 1653, 1654, 1655, 1656, 1657, 1650, 1658, 1640, 
		1635, 1612, 1620, 1621, 1622, 1623, 1624, 1625, 1636, 1626, 
		1628, 1629, 1630, 1631, 1632, 1633, 1634, 1627, 1659, 1660, 
		1661, 1214, 1213, 1212, 1211, 1210, 1209, 1208, 1215, 1207, 
		1205, 1204, 1203, 1202, 1201, 1200, 1233, 1206, 1216, 1217, 
		1218, 1662, 1663, 1664, 1750, 1232, 1230, 1229, 1228, 1227, 
		1226, 1225, 1224, 1223, 1222, 1221, 1220, 1219, 1611, 1610, 
		1231, 1401, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 
		1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 
		1422, 1403, 1423, 1402, 1400, 1276, 1277, 1290, 1291, 1292, 
		1293, 1235, 1300, 1305, 1310, 1315, 1320, 1325, 1330, 1335, 
		1340, 1345, 1350, 1355, 1274, 1424, 1425, 1426, 1239, 1238, 
		1237, 1236, 1242, 1275, 1243, 1244, 1245, 1246, 1247, 1248, 
		1249, 1250, 1251, 1252, 1253, 1254, 1270, 1271, 1272, 1273, 
		1431, 1430, 1429, 1428, 1427, 1240, 1241
	};
}
public class Feat : Element

FOOD

public class FOOD

cs
{
	public const int food_god = 758;

	public const int creativeDish = 764; 
	public const int food_cat = 701; 
	public const int justcooked = 757; 

	public const int food_love = 703; 
	public const int food_catechin = 711; 

	public const int food_bug = 704; 
	public const int food_blood = 710; 

	public const int gainWeight = 705; 
	public const int food_undead = 709; 

	public const int loseWeight = 706; 
	public const int food_human = 708; 

	public const int kirimi = 707;

	public const int food_human = 708; 
	public const int loseWeight = 706; 

	public const int food_undead = 709; 
	public const int gainWeight = 705; 

	public const int food_blood = 710; 
	public const int food_bug = 704; 

	public const int justcooked = 757; 
	public const int food_love = 703; 

	public const int food_poison = 702;

	public const int food_cat = 701; 
	public const int creativeDish = 764; 
	public const int food_CHA = 700;

	public static readonly int[] IDS = new int[14] 
	public static readonly int[] IDS = new int[15] 
	{
		758, 764, 701, 703, 704, 705, 706, 707, 708, 709, 
		710, 757, 702, 700
		758, 757, 711, 710, 709, 708, 707, 706, 705, 704, 
		703, 702, 701, 764, 700
	};
}

FoodEffect

public static void ProcNutrition(Chara c, Thing food, float effP, float validFil

cs
		}
		string[] foodEffect = value.source.foodEffect;
		int id = value.id;
		float num = effP * (float)Mathf.Min(value.Value, 10000); 
		float v = effP * (float)Mathf.Min(value.Value, 10000); 
		if (value.source.category == "food" && c.IsPC)
		{
			bool flag2 = num >= 0f; 
			bool flag2 = v >= 0f; 
			string text = value.source.GetText(flag2 ? "textInc" : "textDec", returnNull: true);
			if (text != null)
			{

public static void ProcNutrition(Chara c, Thing food, float effP, float validFil

cs
		case "exp":
		{
			id = ((foodEffect.Length > 1) ? EClass.sources.elements.alias[foodEffect[1]].id : value.id);
			int a = (int)(num * (float)((foodEffect.Length > 2) ? foodEffect[2].ToInt() : 4)) * 2 / 3; 
			int a = (int)(v * (float)((foodEffect.Length > 2) ? foodEffect[2].ToInt() : 4)) * 2 / 3; 
			c.ModExp(id, a);
			break;
		}
		case "pot":
		{ 
			id = ((foodEffect.Length > 1) ? EClass.sources.elements.alias[foodEffect[1]].id : value.id);
			int vTempPotential = c.elements.GetElement(id).vTempPotential; 
			int num2 = EClass.rndHalf((int)(num / 5f) + 1); 
			num2 = num2 * 100 / Mathf.Max(100, vTempPotential * 2 / 3); 
			c.elements.ModTempPotential(id, num2, 8); 
			AddPotential(id); 
			break; 
		case "catechin":
			AddPotential(71); 
			AddPotential(75); 
			c.ModWeight(-EClass.rndHalf(value.Value / 5)); 
			break;
		} 
		case "karma":
			if (c.IsPCParty)
			{

public static void ProcNutrition(Chara c, Thing food, float effP, float validFil

cs
			{
				c.Say("little_eat", c);
				c.PlaySound("ding_potential");
				int v = Mathf.Max(5 - @int / 2, 1); 
				Debug.Log("sister eaten:" + @int + "/" + v); 
				int v2 = Mathf.Max(5 - @int / 2, 1); 
				Debug.Log("sister eaten:" + @int + "/" + v2); 
				foreach (Element value3 in c.elements.dict.Values)
				{
					if (value3.IsMainAttribute)
					{
						c.elements.ModPotential(value3.id, v); 
						c.elements.ModPotential(value3.id, v2); 
					}
				}
			}

public static void ProcNutrition(Chara c, Thing food, float effP, float validFil

cs
				break;
			}
			}
			void AddPotential(int idEle) 
			{ 
				int vTempPotential = c.elements.GetElement(idEle).vTempPotential; 
				int num = EClass.rndHalf((int)(v / 5f) + 1); 
				num = num * 100 / Mathf.Max(100, vTempPotential * 2 / 3); 
				c.elements.ModTempPotential(idEle, num, 8); 
			} 
		}
	}

MUTATION

public class MUTATION

cs
public class MUTATION
{
	public const int mutationDexN = 1515; 
	public const int mutationEyeN = 1513; 

	public const int mutationRegen = 1516; 
	public const int mutationDex = 1514; 

	public const int mutationSkin = 1510;

	public const int mutationHairN = 1533; 
	public const int mutationBodyN = 1531;

	public const int mutationBody = 1530; 
	public const int mutationLightningN = 1529;

	public const int mutationLightning = 1528;

public class MUTATION

cs

	public const int mutationCold = 1526;

	public const int etherGravity = 1550; 
	public const int mutationBrainN = 1525;

	public const int mutationChaN = 1523; 
	public const int mutationBrain = 1524; 

	public const int mutationCha = 1522; 
	public const int mutationHair = 1532; 
	public const int mutationChaN = 1523; 

	public const int mutationStrN = 1521;

public class MUTATION

cs

	public const int mutationRegenN = 1517;

	public const int mutationBrain = 1524; 
	public const int mutationRegen = 1516; 

	public const int etherUgly = 1551; 
	public const int mutationDexN = 1515; 

	public const int mutationHair = 1532; 
	public const int mutationCha = 1522; 

	public const int etherEye = 1553; 
	public const int mutationHairN = 1533; 

	public const int mutationSkinN = 1511; 
	public const int mutationBody = 1530; 

	public const int mutationEye = 1512; 
	public const int etherUgly = 1551; 

	public const int mutationEyeN = 1513; 
	public const int mutationSkinN = 1511; 

	public const int mutationDex = 1514; 
	public const int mutationEye = 1512; 

	public const int etherPoisonHand = 1565;

	public const int etherFeet = 1552; 
	public const int etherManaBattery = 1564; 

	public const int etherProvoke = 1563;

	public const int etherArmor = 1562; 
	public const int etherGravity = 1550; 

	public const int etherManaBattery = 1564; 
	public const int etherStupid = 1561; 

	public const int etherWeak = 1560;

	public const int etherAddict = 1559; 
	public const int etherArmor = 1562; 

	public const int etherRain = 1558;

public class MUTATION

cs

	public const int etherWing = 1554;

	public const int etherStupid = 1561; 
	public const int etherEye = 1553; 
	public const int etherFeet = 1552; 
	public const int etherAddict = 1559; 

	public static readonly int[] IDS = new int[40]
	{
		1515, 1516, 1510, 1533, 1531, 1530, 1529, 1528, 1527, 1526, 
		1550, 1525, 1523, 1522, 1521, 1520, 1519, 1518, 1517, 1524, 
		1551, 1532, 1553, 1511, 1512, 1513, 1514, 1565, 1552, 1563, 
		1562, 1564, 1560, 1559, 1558, 1557, 1556, 1555, 1554, 1561
		1513, 1514, 1510, 1531, 1529, 1528, 1527, 1526, 1525, 1524, 
		1532, 1523, 1521, 1520, 1519, 1518, 1517, 1516, 1515, 1522, 
		1533, 1530, 1551, 1511, 1512, 1565, 1564, 1563, 1550, 1561, 
		1560, 1562, 1558, 1557, 1556, 1555, 1554, 1553, 1552, 1559
	};
}
public class Mutation : Feat

POLICY

public class POLICY

cs

	public const int legendary_heirloom = 2821;

	public const int incomeTransfer = 2711; 
	public const int noMother = 2710; 

	public const int license_furniture = 2819;

public class POLICY

cs

	public const int taxfree = 2514;

	public const int resident_wanted = 2513; 
	public const int ban_radio = 2510;

	public const int license_general = 2820;

	public const int wealth_tax = 2500;

	public const int trash_sort = 2701; 
	public const int faith_tax = 2501;

	public const int prohibition = 2503; 
	public const int trash_sort = 2701; 
	public const int food_for_people = 2502; 

	public const int impressment = 2504;

public class POLICY

cs

	public const int nocturnal_life = 2508;

	public const int resident_wanted = 2513; 
	public const int resident_tax = 2512;

	public const int self_sufficient = 2511;

	public const int food_for_people = 2502; 
	public const int prohibition = 2503; 

	public const int trash_no = 2702;

public class POLICY

cs

	public const int weed_no = 2703;

	public const int incomeTransfer = 2711; 
	public const int forcePanty = 2712;

	public const int livestock_priv = 2715;

public class POLICY

cs

	public const int tourist_safety = 2811;

	public const int noMother = 2710; 
	public const int bed_quality = 2812; 

	public const int suite_room = 2813;

	public const int mass_exhibition = 2814; 
	public const int noAnimal = 2709; 

	public const int bed_quality = 2812; 
	public const int platinum_ticket = 2815; 

	public const int store_ripoff = 2816;

public class POLICY

cs

	public const int license_food = 2818;

	public const int noAnimal = 2709; 
	public const int noDM = 2708;

	public const int auto_farm = 2707;

public class POLICY

cs

	public const int taxTransfer = 2705;

	public const int platinum_ticket = 2815; 
	public const int mass_exhibition = 2814; 

	public static readonly int[] IDS = new int[51]
	{
		2822, 2828, 2827, 2826, 2825, 2824, 2823, 2821, 2711, 2819, 
		2700, 2516, 2515, 2514, 2513, 2510, 2820, 2500, 2701, 2501, 
		2503, 2504, 2505, 2506, 2507, 2508, 2512, 2511, 2502, 2702, 
		2509, 2704, 2703, 2712, 2715, 2800, 2810, 2811, 2710, 2813, 
		2814, 2812, 2816, 2817, 2818, 2709, 2708, 2707, 2706, 2705, 
		2815
		2822, 2828, 2827, 2826, 2825, 2824, 2823, 2821, 2710, 2819, 
		2700, 2516, 2515, 2514, 2510, 2820, 2500, 2501, 2701, 2502, 
		2504, 2505, 2506, 2507, 2508, 2513, 2512, 2511, 2503, 2702, 
		2509, 2704, 2703, 2711, 2712, 2715, 2800, 2810, 2811, 2812, 
		2813, 2709, 2815, 2816, 2817, 2818, 2708, 2707, 2706, 2705, 
		2814
	};
}
public class Policy : EClass

SKILL

public class SKILL

cs
public class SKILL
{
	public const int shield = 123; 
	public const int armorHeavy = 122; 

	public const int fireproof = 50;

public class SKILL

cs

	public const int fishing = 245;

	public const int twohand = 130; 
	public const int eyeofmind = 134; 
	public const int marksman = 133; 

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

	public const int climbing = 242;

public class SKILL

cs

	public const int digging = 230;

	public const int riding = 226; 
	public const int parasite = 227; 

	public const int lumberjack = 225;

	public const int mining = 220; 
	public const int twohand = 130; 

	public const int spotting = 210; 
	public const int mining = 220; 

	public const int weightlifting = 207;

public class SKILL

cs

	public const int strategy = 135;

	public const int marksman = 133; 
	public const int eyeofmind = 134; 

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

	public const int parasite = 227; 
	public const int spotting = 210; 

	public const int antiMagic = 93; 
	public const int riding = 226; 
	public const int dmgDealt = 94; 

	public const int throwing = 108;

public class SKILL

cs

	public const int CHA = 77;

	public const int dmgDealt = 94; 
	public const int antiMagic = 93; 

	public const int gathering = 250;

	public const int armorHeavy = 122; 
	public const int shield = 123; 

	public const int blacksmith = 256;

public class SKILL

cs

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

TaskClean

public override IEnumerable<Status> Run()

cs
{
	while (true)
	{
		dest = GetTarget(dest); 
		int range = owner.Tool?.Evalue(770) ?? 0; 
		range = ((range <= 0) ? 1 : (2 + range / 10)); 
		dest = GetTarget(dest, range); 
		if (dest == null)
		{
			yield return Success();

public override IEnumerable<Status> Run()

cs
		}
		EClass.pc.Say("clean", owner);
		EClass.pc.PlaySound("clean_floor");
		int num = owner.Tool?.Evalue(770) ?? 0; 
		num = ((num <= 0) ? 1 : (2 + num / 10)); 
		if (num > 1) 
		if (range > 1) 
		{
			List<Point> list = EClass._map.ListPointsInSquare(dest, num - 1, mustBeWalkable: false); 
			List<Point> list = EClass._map.ListPointsInSquare(dest, range - 1, mustBeWalkable: false); 
			list.Sort((Point a, Point b) => a.Distance(dest) - b.Distance(dest));
			foreach (Point item in list)
			{

static void Clean(Point p)

cs
		}
	}

	public static Point GetTarget(Point dest) 
	public static Point GetTarget(Point dest, int ranage) 
	{
		List<Point> list = new List<Point>();
		foreach (Point item in EClass._map.ListPointsInCircle(dest, 3f, mustBeWalkable: false)) 
		foreach (Point item in EClass._map.ListPointsInCircle(dest, 2 + ranage * 2, mustBeWalkable: false)) 
		{
			if (CanClean(item) && item.IsInBounds)
			{

Trait

public virtual void OnBarter(bool reroll = false)

cs
		AddThing(TraitSeed.MakeSeed("carrot")).SetNum(4 + EClass.rnd(4));
		AddThing(TraitSeed.MakeSeed("potato")).SetNum(4 + EClass.rnd(4));
		AddThing(TraitSeed.MakeSeed("corn")).SetNum(4 + EClass.rnd(4));
		AddThing(TraitSeed.MakeSeed("chanoki")).SetNum(4 + EClass.rnd(4)); 
		for (int num10 = 0; num10 < EClass.rnd(3) + 1; num10++)
		{
			Add("462", 1, 0);

public virtual void OnBarter(bool reroll = false)

cs
				break;
			case ShopType.Moyer:
			{
				for (int num14 = 1; num14 <= 23; num14++) 
				for (int num14 = 1; num14 <= 24; num14++) 
				{
					AddAdvWeek(num14);
				}

TraitCrafter

public bool IsIngredient(int idx, SourceRecipe.Row r, Card c)

cs
		break;
	}
	case MixType.SeedWork:
		if (idx == 0 && c.id == "seed" && c.encLV == 0) 
		if (idx == 1 && c.id == "seed" && c.encLV == 0) 
		{
			return false;
		}

public virtual Thing Craft(AI_UseCrafter ai)

cs
	}
	case MixType.SeedWork:
	{
		TraitSeed traitSeed = thing.trait as TraitSeed; 
		string id = thing2.id; 
		TraitSeed traitSeed = thing2.trait as TraitSeed; 
		string id = thing.id; 
		if (id == "mercury" || id == "blood_angel")
		{
			int num7 = thing.encLV; 
			if (thing2.id == "mercury") 
			int num7 = thing2.encLV; 
			if (thing.id == "mercury") 
			{
				num7 = num7 * 2 / 3;
			}

TraitUniqueCharaNoJoin

public class TraitUniqueCharaNoJoin : TraitUniqueChara

cs
{
	public override bool CanInvite => false;

	public override bool CanChangeAffinity => !base.owner.Chara.source.recruitItems.IsEmpty(); 
	public override bool CanChangeAffinity 
	{ 
		get 
		{ 
			if (base.owner.Chara.source.recruitItems.IsEmpty()) 
			{ 
				return base.owner.IsPCFaction; 
			} 
			return true; 
		} 
	} 
}