EA 23.269 Nightly Patch 2
February 11, 2026
17 files modified. 1 new file created.
Important Changes
Possible breaking changes. Click the filename to view the chunk.
CharaGenes (1)
public void Remove(Chara c, DNA item)
public static void Remove(Chara c, DNA item) AI_Eat
public override bool IsHostileAct
public bool IsValidTarget(Card c)
{
return c?.trait.CanEat(owner) ?? false;
if (c != null)
{
if (!c.trait.CanEat(owner))
{
if (c.trait is TraitGene && owner.IsPC)
{
return owner.HasElement(1274);
}
return false;
}
return true;
}
return false;
}
public override bool CanManualCancel()Card
public void DamageHP(long dmg, int ele, int eleP = 100, AttackSource attackSourc
{
ele2 = 922;
}
Say("reflect_thorne", this, origin);
Say("reflect_thorne", origin, this);
origin.DamageHP((int)Mathf.Clamp(dmg / 10, 1f, MaxHP / (origin.IsPowerful ? 200 : 20)), ele2, Power, AttackSource.Condition, this);
}
if (HasElement(1223) && num14 <= Evalue(1223))Chara
public int MaxGeneSlot => race.geneCap - (HasElement(1237) ? 2 : 0) + Evalue(1242) + Evalue(1273);
public int GeneCostMTP
{
get
{
if (!IsPC)
{
return 100;
}
return 20;
}
}
public int CurrentGeneSlot
{
getpublic void Cuddle(Chara c, bool headpat = false)
{
ele = 922;
}
Say("reflect_thorne", c, this);
Say("reflect_thorne", this, c);
DamageHP(10L, ele, Power, AttackSource.Condition);
}
}CharaGenes
public class CharaGenes : EClass
[JsonProperty]
public int inferior;
public void Remove(Chara c, DNA item)
public static void Remove(Chara c, DNA item)
{
items.Remove(item);
c.feat += item.cost;
item.Apply(c, reverse: true);
c.Refresh();
if (c.c_genes != null)
{
c.c_genes.items.Remove(item);
c.feat += item.cost * c.GeneCostMTP / 100;
item.Apply(c, reverse: true);
c.Refresh();
c.RemoveAllStances();
Msg.Say("dna_loss", c, item.GetText());
}
}
public int GetTotalCost()CoreDebug
}
if (Input.GetKeyDown(KeyCode.F2))
{
if (Input.GetKey(KeyCode.LeftShift))
{
Net.SendBook("test", "msg", BookCategory.Bottle, Lang.langCode, "msg2", "msg3", "msg4");
}
else
{
RefreshChat();
EClass._zone.development += 10;
EClass._zone.development *= EClass._zone.development;
Chara targetChara = EClass.scene.mouseTarget.TargetChara;
if (targetChara != null)
{
EClass.pc.Pick(targetChara.MakeEgg(effect: true, 10));
EClass.pc.Pick(targetChara.MakeGene());
TraitFoodEggFertilized.Incubate(targetChara.MakeEgg(effect: false, 1, addToZone: false, 100), targetChara.pos.GetNearestPoint(allowBlock: false, allowChara: false));
targetChara.ScaleByPrincipal();
}
if (EClass.game.quests.Get<QuestDebt>() == null)
{
Chara chara = CharaGen.Create("loytel");
EClass._zone.AddCard(chara, EClass.pc.pos);
chara.SetGlobal();
Quest q = EClass.game.quests.Add("debt", "loytel");
EClass.game.quests.Start(q);
EClass.pc.party.RemoveMember(chara);
Hostility hostility2 = (chara.c_originalHostility = Hostility.Ally);
chara.hostility = hostility2;
}
return;
} {
card.renderer.PlayAnime(AnimeID.Attack, animeDest);
}
static async void RefreshChat()
{
List<Net.BookData> list2 = await Net.GetBook(BookCategory.Bottle, Lang.langCode);
Debug.Log(list2[0].name + "/" + list2[0].msg + "/" + list2[0].msg2 + "/" + list2[0].msg3 + "/" + list2[0].msg4);
}
}
public void InitDebugCommands()DNA
c.c_genes.inferior++;
return;
}
c.feat -= cost;
c.feat -= cost * c.GeneCostMTP / 100;
Apply(c, reverse: false);
c_genes.items.Add(this);
}public void Apply(Chara c, bool reverse)
c.body.AddBodyPart(row.id);
}
c.body.RefreshBodyParts();
if (c.IsPC && (bool)WidgetEquip.Instance)
{
WidgetEquip.Instance.Rebuild();
}
break;
case "feat":
c.SetFeat(num, c.elements.ValueWithoutLink(num) + ((!reverse) ? 1 : (-1)), !reverse);public void WriteNote(UINote n)
}
}
public void WriteNoteExtra(UINote n, Chara tg)
{
n.AddHeader("HeaderAdditionalTrait", "gene_hint");
_ = tg.c_genes;
int num = slot;
if (num > 1 && tg.HasElement(1237))
{
num--;
}
int num2 = tg.MaxGeneSlot - tg.CurrentGeneSlot;
int num3 = num2 - num;
int maxGeneSlot = tg.MaxGeneSlot;
n.AddText("gene_hint_slot".lang(num2.ToString() ?? "", num3.ToString() ?? "", maxGeneSlot.ToString() ?? ""), (num3 >= 0) ? FontColor.Good : FontColor.Bad);
int num4 = cost * tg.GeneCostMTP / 100;
int num5 = tg.feat - num4;
n.AddText("gene_hint_cost".lang(tg.feat.ToString() ?? "", num4 + ((num4 == cost) ? "" : ("(" + cost + ")")), num5.ToString() ?? ""), (num5 >= 0) ? FontColor.Good : FontColor.Bad);
}
public Element GetInvalidFeat(Chara c)
{
for (int i = 0; i < vals.Count; i += 2)
{
Element element = Element.Create(vals[i], vals[i + 1]);
if (c.IsPC && element.id == 1415)
{
return element;
}
if (!(element.source.category == "feat"))
{
continue;ELEMENT
public void AddEncNote(UINote n, Card Card, ElementContainer.NoteMode mode = Ele
{
color = FontColor.FoodQuality;
}
if (id == 484 && owner != null && owner.Card != null && owner.Card.CountRune(countFree: false) >= owner.Card.MaxRune())
{
color = FontColor.Gray;
}
if (funcText != null)
{
text = funcText(this, text);FEAT
{
public const int featUnderground = 1226;
public const int featRapidArrow = 1652;
public const int featFaith = 1636;
public const int featMagicManner = 1651;
public const int featAnimalLover = 1640;
public const int featGourmet = 1650;
public const int featResCurse = 1641;
public const int featDefender = 1649;
public const int featSleeper = 1642;
public const int featRapidMagic = 1648;
public const int featSorter = 1643;
public const int featSummoner = 1647;
public const int featBodyParts = 1644;
public const int featLonelySoul = 1646;
public const int featMartial = 1635;
public const int featParty = 1645;
public const int featBodyParts = 1644;
public const int featSummoner = 1647;
public const int featSorter = 1643;
public const int featRapidMagic = 1648;
public const int featSleeper = 1642;
public const int featDefender = 1649;
public const int featResCurse = 1641;
public const int featGourmet = 1650;
public const int featAnimalLover = 1640;
public const int featMagicManner = 1651;
public const int featFaith = 1636;
public const int featRapidArrow = 1652;
public const int featMartial = 1635;
public const int featLonelySoul = 1646;
public const int featDreamWaker = 1653;
public const int featNegotiate = 1634;
public const int featSpotting = 1633;
public const int featEvade = 1632;
public const int featMana = 1611;
public const int featStamina = 1612;
public const int featPER = 1623;
public const int featLER = 1624;
public const int featSpotting = 1633;
public const int featDreamWaker = 1653;
public const int featLER = 1624;
public const int featMAG = 1625;
public const int featWIL = 1626;
public const int featCHA = 1627;
public const int featDefense = 1631;
public const int featEvade = 1632;
public const int featMAG = 1625;
public const int featWIL = 1626;
public const int featLife = 1610;
public const int featHeavyCasting = 1654;
public const int featModelBeliever = 1655;
public const int featScavenger = 1656;
public const int featFairyResist = 1212;
public const int featCannibalism = 1205;
public const int featMana = 1611;
public const int featModelBeliever = 1655;
public const int featManaPrecision = 1214;
public const int featAcidBody = 1223;
public const int featLife = 1610;
public const int featNeckHunter = 1426;
public const int featShiva = 1224;
public const int featGod_trickery1 = 1345;
public const int featGod_oblivion1 = 1340;
public const int featPianist = 1405;
public const int featTourist = 1406;
public const int featManaMeat = 1421;
public const int featHealer = 1422;
public const int featPianist = 1405;
public const int featArcher = 1404;
public const int featPeaky = 1423;
public const int featHealer = 1422;
public const int featArcher = 1404;
public const int featFarmer = 1403;
public const int featWizard = 1402;
public const int featThief = 1401;
public const int featBadKarma = 1271;
public const int featBloom = 1273;
public const int featSlimeEvolution = 1274;
public const int featGoddess = 1290;
public const int featGod_element1 = 1300;
public const int featGod_harmony1 = 1335;
public const int featGod_oblivion1 = 1340;
public const int featGod_trickery1 = 1345;
public const int featGod_moonshadow1 = 1350;
public const int featWarrior = 1400;
public const int featThief = 1401;
public const int featFarmer = 1403;
public const int featWizard = 1402;
public const int featGoodKarma = 1270;
public const int featElite = 1424;
public const int featPeaky = 1423;
public const int featAshborn = 1251;
public const int featNorland = 1236;
public const int featNeckHunter = 1426;
public const int featMimic = 1425;
public const int featLightEater = 1235;
public const int featServant = 1227;
public const int featMimic = 1425;
public const int featElite = 1424;
public const int featAquatic = 1252;
public const int featMassSummoner = 1240;
public static readonly int[] IDS = new int[141]
public static readonly int[] IDS = new int[142]
{
1226, 1652, 1651, 1650, 1649, 1648, 1647, 1646, 1645, 1644,
1643, 1642, 1641, 1640, 1636, 1635, 1634, 1633, 1612, 1620,
1621, 1622, 1623, 1624, 1653, 1625, 1627, 1628, 1629, 1630,
1631, 1632, 1626, 1654, 1655, 1656, 1212, 1211, 1210, 1209,
1208, 1207, 1213, 1206, 1204, 1203, 1202, 1201, 1200, 1225,
1205, 1611, 1214, 1216, 1657, 1658, 1659, 1660, 1661, 1662,
1215, 1750, 1222, 1221, 1220, 1219, 1218, 1217, 1223, 1610,
1224, 1345, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413,
1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1405,
1423, 1404, 1402, 1271, 1272, 1273, 1290, 1300, 1305, 1310,
1315, 1320, 1325, 1330, 1335, 1340, 1350, 1355, 1400, 1401,
1403, 1270, 1424, 1251, 1238, 1237, 1236, 1426, 1235, 1234,
1233, 1232, 1231, 1230, 1229, 1228, 1227, 1425, 1252, 1239,
1250, 1249, 1248, 1247, 1246, 1245, 1244, 1243, 1242, 1241,
1240
1226, 1636, 1640, 1641, 1642, 1643, 1644, 1635, 1645, 1647,
1648, 1649, 1650, 1651, 1652, 1646, 1653, 1634, 1632, 1611,
1612, 1620, 1621, 1622, 1623, 1633, 1624, 1626, 1627, 1628,
1629, 1630, 1631, 1625, 1610, 1654, 1656, 1212, 1211, 1210,
1209, 1208, 1207, 1213, 1206, 1204, 1203, 1202, 1201, 1200,
1225, 1205, 1655, 1214, 1216, 1657, 1658, 1659, 1660, 1661,
1662, 1215, 1750, 1222, 1221, 1220, 1219, 1218, 1217, 1223,
1426, 1224, 1340, 1405, 1406, 1407, 1408, 1409, 1410, 1411,
1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421,
1404, 1422, 1403, 1401, 1271, 1272, 1273, 1274, 1290, 1300,
1305, 1310, 1315, 1320, 1325, 1330, 1335, 1345, 1350, 1355,
1400, 1402, 1270, 1423, 1251, 1238, 1237, 1236, 1425, 1235,
1234, 1233, 1232, 1231, 1230, 1229, 1228, 1227, 1424, 1252,
1239, 1250, 1249, 1248, 1247, 1246, 1245, 1244, 1243, 1242,
1241, 1240
};
}
public class Feat : ElementFoodEffect
public static void Proc(Chara c, Thing food, bool consume = true)
food.ModNum(-1);
}
}
if (c2.IsCat || !(food.trait is TraitFoodChuryu))
if (!c2.IsCat && food.trait is TraitFoodChuryu)
{
foreach (Chara item in c2.pos.ListCharasInRadius(c2, 5, (Chara c) => c.IsCat))
{
item.Say("angry", item);
item.ShowEmo(Emo.angry);
item.PlaySound("Animal/Cat/cat_angry");
if (c2.IsPC)
{
EClass.player.ModKarma(-3);
}
}
}
if (!(food.trait is TraitGene) || !c2.IsPC || !c2.HasElement(1274))
{
return;
}
foreach (Chara item in c2.pos.ListCharasInRadius(c2, 5, (Chara c) => c.IsCat))
DNA c_DNA = food.c_DNA;
int slot = c_DNA.slot;
CharaGenes genes = c2.c_genes;
int excess = c2.CurrentGeneSlot + slot - c2.MaxGeneSlot;
switch (c_DNA.type)
{
item.Say("angry", item);
item.ShowEmo(Emo.angry);
item.PlaySound("Animal/Cat/cat_angry");
if (c2.IsPC)
case DNA.Type.Inferior:
if (genes != null)
{
EClass.player.ModKarma(-3);
RemoveOldestDNA();
}
return;
case DNA.Type.Brain:
return;
}
if (excess > 0)
{
while (excess > 0 && genes != null && genes.items.Count != 0)
{
RemoveOldestDNA();
}
}
c_DNA.Apply(c2);
c2.Say("little_eat", c2);
c2.PlaySound("ding_potential");
SE.Play("mutation");
c2.PlayEffect("identify");
void RemoveOldestDNA()
{
DNA dNA = genes.items[0];
CharaGenes.Remove(c2, dNA);
excess -= dNA.slot;
}
}InvOwnerGene
public override void OnWriteNote(Thing t, UINote n)
{
if (ShouldShowGuide(t))
{
n.AddHeader("HeaderAdditionalTrait", "gene_hint");
_ = tg.c_genes;
int num = t.c_DNA.slot;
if (num > 1 && tg.HasElement(1237))
{
num--;
}
int num2 = tg.MaxGeneSlot - tg.CurrentGeneSlot;
int num3 = num2 - num;
int maxGeneSlot = tg.MaxGeneSlot;
n.AddText("gene_hint_slot".lang(num2.ToString() ?? "", num3.ToString() ?? "", maxGeneSlot.ToString() ?? ""), (num3 >= 0) ? FontColor.Good : FontColor.Bad);
int cost = t.c_DNA.cost;
int num4 = tg.feat - cost;
n.AddText("gene_hint_cost".lang(tg.feat.ToString() ?? "", cost + ((cost == t.c_DNA.cost) ? "" : ("(" + t.c_DNA.cost + ")")), num4.ToString() ?? ""), (num4 >= 0) ? FontColor.Good : FontColor.Bad);
t.c_DNA.WriteNoteExtra(n, tg);
}
}
}POLICY
public const int food_for_people = 2502;
public const int resident_tax = 2512;
public const int prohibition = 2503;
public const int resident_tax = 2512;
public const int self_sufficient = 2511;
public const int ban_radio = 2510;{
2818, 2819, 2820, 2821, 2822, 2826, 2824, 2825, 2827, 2828,
2817, 2823, 2816, 2704, 2814, 2514, 2513, 2505, 2815, 2500,
2501, 2502, 2512, 2503, 2511, 2510, 2509, 2508, 2507, 2506,
2501, 2502, 2503, 2512, 2511, 2510, 2509, 2508, 2507, 2506,
2515, 2516, 2504, 2701, 2700, 2707, 2708, 2706, 2709, 2711,
2712, 2715, 2710, 2810, 2811, 2812, 2813, 2705, 2703, 2702,
2800SKILL
public const int vigor = 62;
public const int weaponDagger = 107;
public const int weaponPolearm = 106;
public const int PER = 73;
public const int fishing = 245;
public const int weaponPolearm = 106;
public const int weaponDagger = 107;
public const int carpentry = 255; 241, 240, 237, 235, 230, 227, 226, 225, 123, 220,
200, 152, 151, 150, 135, 134, 133, 132, 210, 207,
100, 105, 71, 70, 68, 67, 66, 65, 72, 64,
61, 60, 57, 56, 55, 51, 62, 107, 73, 75,
61, 60, 57, 56, 55, 51, 62, 106, 73, 75,
104, 103, 102, 101, 94, 93, 74, 92, 90, 80,
79, 78, 77, 76, 91, 245, 106, 255, 916, 917,
79, 78, 77, 76, 91, 245, 107, 255, 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, 250, 972, 971, 970, 955, 914,TraitBook
public override void SetName(ref string s)
public override void OnRead(Chara c)
{
if (owner.c_lockLv > 0)
{
owner.c_lockLv = 0;
c.Say("unseal", c, owner);
c.PlaySound("open_bottle");
if (owner.things.Count == 0)
{
c.Say("empty");
}
else
{
EClass.pc.PickOrDrop(EClass.pc.pos, owner.things[0]);
}
}
BookList.Item item = Item;
EClass.ui.AddLayer<LayerHelp>(IsParchment ? "LayerParchment" : "LayerBook").book.Show((IsParchment ? "Scroll/" : "Book/") + item.id, null, item.title, item);
}+TraitCoreUser
File Created
public class TraitCoreUser : Trait
{
}TraitGene
public override void WriteNote(UINote n, bool identified)
{
if (owner.c_DNA != null)
{
bool flag = EClass.pc.HasElement(1274) && !LayerDragGrid.Instance;
if (owner.c_DNA.cost > 0)
{
n.AddText("isCostFeatPoint".lang(owner.c_DNA.cost.ToString() ?? ""));
n.AddText("isCostFeatPoint".lang((flag ? (owner.c_DNA.cost * EClass.pc.GeneCostMTP / 100 + " (" + owner.c_DNA.cost + ")") : ((object)owner.c_DNA.cost))?.ToString() ?? ""));
}
if (EClass.debug.showExtra)
{
n.AddText("duration:" + owner.c_DNA.GetDurationHour());
}
owner.c_DNA.WriteNote(n);
if (flag)
{
owner.c_DNA.WriteNoteExtra(n, EClass.pc);
}
}
}
public override void TrySetHeldAct(ActPlan p)
{
if (!p.pos.Equals(EClass.pc.pos) || !EClass.pc.HasElement(1274))
{
return;
}
Element invalidFeat = owner.c_DNA.GetInvalidFeat(EClass.pc);
Element invalidAction = owner.c_DNA.GetInvalidAction(EClass.pc);
if (owner.c_DNA.cost * EClass.pc.GeneCostMTP / 100 > EClass.pc.feat)
{
p.TrySetAct("invFood", delegate
{
SE.Beep();
Msg.Say("notEnoughFeatPoint");
return false;
});
}
else if (invalidFeat != null)
{
p.TrySetAct("invFood", delegate
{
SE.Beep();
Msg.Say("invalidGeneFeat", EClass.pc, invalidFeat.Name.ToTitleCase());
return false;
});
}
else if (invalidAction != null)
{
p.TrySetAct("invFood", delegate
{
SE.Beep();
Msg.Say("invalidGeneAction", EClass.pc, invalidAction.Name.ToTitleCase());
return false;
});
}
else
{
p.TrySetAct(new AI_Eat
{
target = owner
});
}
}TraitParchmentBottle
public class TraitParchmentBottle : TraitParchment
public class TraitParchmentBottle : TraitParchment
{
public override bool CanBeSmashedToDeath => true;
public override bool CanBeAttacked => !EClass._zone.IsPCFactionOrTent;
public override ThrowType ThrowType => ThrowType.Vase;
public override BookList.Item Item => BottleMessageList.GetItem(base.IdItem);
public override void OnCreate(int lv)
{
owner.SetStr(53, BottleMessageList.GetRandomItem().id);
owner.c_lockLv = 1;
string id;
int num;
if (!EClass._zone.IsUserZone && EClass.rnd(4) != 0)
{
id = "money";
num = EClass.rnd(EClass.rnd(EClass.rnd(EClass.rnd(500)))) + 1;
Rand.SetSeed(owner.uid);
if (EClass.rnd(5) == 0)
{
SetId("scratchcard", 1);
}
if (EClass.rnd(10) == 0)
{
SetId("234", 1);
}
if (EClass.rnd(20) == 0)
{
SetId("medal", 1);
}
if (EClass.rnd(30) == 0)
{
SetId("map_treasure", 1);
}
if (EClass.rnd(50) == 0)
{
SetId("ticket_fortune", 1);
}
if (EClass.rnd(100) == 0)
{
SetId("1084", 1);
}
if (EClass.rnd(500) == 9)
{
SetId("book_exp", 1);
}
Rand.SetSeed();
owner.AddCard(ThingGen.Create(id, -1, EClass.pc.FameLv).SetNum(num));
}
void SetId(string _id, int _num)
{
id = _id;
num = _num;
}
}
public override void SetName(ref string s)
{
base.SetName(ref s);
if (owner.c_lockLv != 0)
{
s += "_sealed".lang();
}
}
}WindowChara
public void RefreshSkill(int idTab)
List("availableFeats_attribute", "attribute");
return;
}
if (chara.IsPC && chara.HasElement(1274) && chara.c_genes != null && chara.c_genes.items.Count > 0)
{
Header("genes", null);
ListFeat();
list.callbacks = new UIList.Callback<DNA, ButtonElement>
{
onClick = delegate
{
SE.Beep();
},
onInstantiate = delegate(DNA a, ButtonElement b)
{
b.mainText.SetText(a.GetText());
b.SetTooltip(delegate(UITooltip t)
{
UINote uINote = t.note;
uINote.Clear();
uINote.AddHeader(a.GetText());
a.WriteNote(uINote);
t.note.Build();
});
b.subText.text = "(+" + a.slot + ")";
b.subText.SetActive(enable: true);
b.imagePotential.SetActive(enable: false);
},
onList = delegate
{
foreach (DNA item in chara.c_genes.items)
{
list.Add(item);
}
}
};
list.List();
}
Header("mutation", null);
ListFeat();
list.callbacks = new UIList.Callback<Feat, ButtonElement>public void RefreshSkill(int idTab)
},
onList = delegate
{
foreach (Element item in chara.elements.ListElements((Element a) => a.source.category == "mutation" && a.Value != 0))
foreach (Element item2 in chara.elements.ListElements((Element a) => a.source.category == "mutation" && a.Value != 0))
{
list.Add(item);
list.Add(item2);
}
}
};public void RefreshSkill(int idTab)
},
onList = delegate
{
foreach (Element item2 in chara.elements.ListElements((Element a) => a.source.category == "ether" && a.Value != 0))
foreach (Element item3 in chara.elements.ListElements((Element a) => a.source.category == "ether" && a.Value != 0))
{
list.Add(item2);
list.Add(item3);
}
}
};public void RefreshSkill(int idTab)
},
onList = delegate
{
foreach (Element item3 in chara.elements.ListElements((Element a) => a.source.category == "feat" && a.HasTag("innate") && a.Value != 0))
foreach (Element item4 in chara.elements.ListElements((Element a) => a.source.category == "feat" && a.HasTag("innate") && a.Value != 0))
{
list.Add(item3);
list.Add(item4);
}
}
};public void RefreshSkill(int idTab)
},
onList = delegate
{
foreach (Element item4 in chara.elements.ListElements((Element a) => a.source.category == "feat" && !a.HasTag("innate") && a.Value != 0))
foreach (Element item5 in chara.elements.ListElements((Element a) => a.source.category == "feat" && !a.HasTag("innate") && a.Value != 0))
{
list.Add(item4);
list.Add(item5);
}
},
onSort = (Feat a, UIList.SortMode m) => a.GetSortVal(m)public void RefreshSkill(int idTab)
},
onList = delegate
{
foreach (SourceElement.Row item5 in EClass.sources.elements.rows.Where((SourceElement.Row a) => a.category == "resist" && ((!a.tag.Contains("hidden") && !a.tag.Contains("high")) || chara.Evalue(a.id) != 0)))
foreach (SourceElement.Row item6 in EClass.sources.elements.rows.Where((SourceElement.Row a) => a.category == "resist" && ((!a.tag.Contains("hidden") && !a.tag.Contains("high")) || chara.Evalue(a.id) != 0)))
{
list.Add(chara.elements.GetOrCreateElement(item5.id));
list.Add(chara.elements.GetOrCreateElement(item6.id));
}
}
};public void RefreshSkill(int idTab)
},
onList = delegate
{
foreach (Element item6 in eles)
foreach (Element item7 in eles)
{
if (!skillCats.Contains(item6.source.categorySub))
if (!skillCats.Contains(item7.source.categorySub))
{
list.Add(item6);
list.Add(item7);
}
}
}public void RefreshSkill(int idTab)
},
onList = delegate
{
foreach (Element item7 in eles)
foreach (Element item8 in eles)
{
if (skillCats.Contains(item7.source.categorySub))
if (skillCats.Contains(item8.source.categorySub))
{
list.Add(item7);
list.Add(item8);
}
}
}void List(string lang, string idSubCat)
},
onList = delegate
{
foreach (Element item8 in chara.elements.ListElements((Element a) => (a.Value != 0 || a.ValueWithoutLink != 0 || a.vSource > 0) && a.source.category == "skill" && cats.Contains(a.source.categorySub)))
foreach (Element item9 in chara.elements.ListElements((Element a) => (a.Value != 0 || a.ValueWithoutLink != 0 || a.vSource > 0) && a.source.category == "skill" && cats.Contains(a.source.categorySub)))
{
list.Add(item8);
list.Add(item9);
}
},
onSort = (Element c, UIList.SortMode m) => EClass.sources.elements.alias[c.source.aliasParent].id * -10000 - c.idvoid List(string lang, string idSubCat)
},
onList = delegate
{
foreach (Element item9 in chara.ListAvailabeFeats(pet: false, EClass.game.config.showAllFeat))
foreach (Element item10 in chara.ListAvailabeFeats(pet: false, EClass.game.config.showAllFeat))
{
if (item9.source.categorySub == idSubCat)
if (item10.source.categorySub == idSubCat)
{
_list.Add(item9);
_list.Add(item10);
}
}
}WindowCharaMini
public void Refresh(int idTab)
{
genes.inferior--;
SE.Trash();
genes.Remove(chara, g);
CharaGenes.Remove(chara, g);
Refresh(idTab);
chara.RemoveAllStances();
});
}
});