EA 23.233 Nightly Patch 1
November 11, 2025
25 files modified. 2 new files created.
Important Changes
None.
AI_Fish
public static Thing Makefish(Chara c)
c.Say("bigCatch", c);
}
num2 = (num7 ? num5 : EClass.rnd(num5)) / (num4 + 1) + 1;
if (thing.id == "65" && EClass.rnd(EClass.debug.enable ? 2 : (c.IsPC ? 8192 : 819200)) == 0)
if (thing.id == "65" && EClass.rnd(EClass.debug.enable ? 2 : (c.IsPCParty ? 8192 : 819200)) == 0)
{
thing = ThingGen.Create("65_gold", -1, lv);
num2 = 1;AI_Idle
public override IEnumerable<Status> Run()
}
}
}
if (owner.IsMinion && owner.master != null && owner.master.id == "keeper_garden" && !(owner.master.ai is GoalCombat))
{
owner.Banish(owner.master);
yield return Success();
}
if (EClass._zone.IsPCFaction)
{
Room room = owner.pos.cell.room;public override IEnumerable<Status> Run()
Thing thing6 = owner.things.Find<TraitBall>();
if (thing6 == null)
{
owner.pos.ForeachNeighbor(delegate(Point p)
if (!LayerCraft.Instance && !LayerDragGrid.Instance)
{
Card card2 = p.FindThing<TraitBall>()?.owner;
if (card2 != null)
owner.pos.ForeachNeighbor(delegate(Point p)
{
owner.Pick(card2.Thing);
}
});
Card card2 = p.FindThing<TraitBall>()?.owner;
if (card2 != null)
{
owner.Pick(card2.Thing);
}
});
}
}
else
{ActEffect
void AddCon<T>(int rate, int power) where T : Condition
bool flag5 = EClass._zone.HasLaw && !EClass._zone.IsPCFaction && (CC.IsPC || (id == EffectId.Explosive && actref.refThing == null)) && !(EClass._zone is Zone_Vernis);
if (p.HasObj && p.cell.matObj.hardness <= num7)
{
EClass._map.MineObj(p, null, CC.Chara);
EClass._map.MineObj(p);
if (flag5)
{
EClass.player.ModKarma(-1);void AddCon<T>(int rate, int power) where T : Condition
}
if (!p.HasObj && p.HasBlock && p.matBlock.hardness <= num7)
{
EClass._map.MineBlock(p, recoverBlock: false, CC.Chara);
EClass._map.MineBlock(p);
if (flag5)
{
EClass.player.ModKarma(-1);ActPlan
public void _Update(PointTarget target)
{
TrySetAct("ActBanishSummon", delegate
{
Banish(c2);
c2.Banish(EClass.pc);
return true;
}, c2, null, 99);
List<Chara> list2 = new List<Chara>();public void _Update(PointTarget target)
{
foreach (Chara item in list2)
{
Banish(item);
item.Banish(EClass.pc);
}
return true;
}, c2, null, 99); WidgetCurrentTool.Instance.placer.Refresh();
}
}
static void Banish(Chara m)
{
EClass.pc.Say("summon_vanish", m);
m.pos.PlayEffect("vanish");
m.pos.PlaySound("vanish");
m.pos.PlayEffect("teleport");
m.Destroy();
}
}
}ActPray
public static bool TryPray(Chara c, bool passive = false)
return true;
}
}
if (c.faith.IsEyth)
if (c.faith.IsEyth && !c.HasElement(1228))
{
c.Say("pray", c);
if (passive && c.Evalue(1655) >= 2 && EClass.pc.party.members.Count > 1)ActThrow
public static EffectIRenderer Throw(Card c, Point p, Card target, Thing t, Throw
TraitMonsterBall traitMonsterBall = t.trait as TraitMonsterBall;
if (traitMonsterBall.chara != null)
{
if ((traitMonsterBall.IsLittleBall && !(EClass._zone is Zone_LittleGarden) && !EClass.game.IsSurvival) || (traitMonsterBall.IsDuponneBall && !(EClass._zone is Zone_Exile) && !EClass.game.IsSurvival))
if ((traitMonsterBall.IsLittleBall && !(EClass._zone is Zone_LittleGarden) && !EClass.game.IsSurvival) || (traitMonsterBall.IsDuponneBall && !(EClass._zone is Zone_Exile) && !EClass.game.IsSurvival) || (traitMonsterBall.IsSilvercatBall && !(EClass._zone.id == "startVillage2") && !EClass.game.IsSurvival))
{
break;
}Card
public void PurgeDuplicateArtifact(Thing af)
{
list.Add(chara);
}
foreach (Chara item in list)
if (EClass.pc.IsEyth && EClass.pc.HasElement(1228))
{
if (!item.IsPCFactionOrMinion)
foreach (Chara item in list)
{
if (item.IsPCFactionOrMinion)
{
List<Thing> list2 = item.things.List((Thing t) => t.HasTag(CTAG.godArtifact) && t != af && !t.isReplica && t.c_idDeity == EClass.pc.faith.id);
if (list2.Count != 0)
{
foreach (Thing item2 in list2)
{
Msg.Say("destroyed_inv_", item2, item);
item2.Destroy();
}
}
}
}
return;
}
foreach (Chara item3 in list)
{
if (!item3.IsPCFactionOrMinion)
{
continue;
}
List<Thing> list2 = item.things.List((Thing t) => t.id == af.id && t != af && !t.isReplica);
if (list2.Count == 0)
List<Thing> list3 = item3.things.List((Thing t) => t.id == af.id && t != af && !t.isReplica);
if (list3.Count == 0)
{
continue;
}
foreach (Thing item2 in list2)
foreach (Thing item4 in list3)
{
Msg.Say("destroyed_inv_", item2, item);
item2.Destroy();
Msg.Say("destroyed_inv_", item4, item3);
item4.Destroy();
}
}
}CardBlueprint
public class CardBlueprint : EClass
tryLevelMatTier = true
};
public static CardBlueprint Original = new CardBlueprint
{
blesstedState = BlessedState.Normal
};
public static CardBlueprint DebugEQ = new CardBlueprint
{
rarity = Rarity.Mythical,CardRenderer
public override void Draw(RenderParam p, ref Vector3 v, bool drawShadow)
}
if (owner.trait is TraitFigure)
{
if (!owner.c_idRefCard.IsEmpty() && (owner.IsInstalled || EClass.pc.held == owner || !owner.ExistsOnMap || owner.isRoofItem))
if (!owner.c_idRefCard.IsEmpty() && (owner.IsInstalled || (EClass.pc.held != owner && !owner.ExistsOnMap) || owner.isRoofItem))
{
TraitFigure traitFigure = owner.trait as TraitFigure;
SourceChara.Row row = EClass.sources.charas.map.TryGetValue(owner.c_idRefCard) ?? EClass.sources.charas.map["putty"];Chara
public bool CanBeTempAlly(Chara c)
return true;
}
public void Banish(Chara owner)
{
owner?.Say("summon_vanish", this);
pos.PlayEffect("vanish");
pos.PlaySound("vanish");
pos.PlayEffect("teleport");
Destroy();
}
public void MakeMinion(Chara _master, MinionType type = MinionType.Default)
{
ReleaseMinion();{
if (!HasElement(450))
{
int height = bio.height;
height = height * (100 + a) / 100 + ((a > 0) ? 1 : (-1));
if (height < 1)
long num = bio.height;
num = num * (100 + a) / 100 + ((a > 0) ? 1 : (-1));
if (num < 1)
{
height = 1;
num = 1L;
}
if (height != bio.height)
if (num > 999999999)
{
bio.height = height;
num = 999999999L;
}
if (num != bio.height)
{
bio.height = (int)num;
Say((a > 0) ? "height_gain" : "height_lose", this);
}
}public void ModWeight(int a, bool ignoreLimit = false)
{
return;
}
int weight = bio.weight;
int height = bio.height;
int num = height * height * 18 / 25000;
int num2 = height * height * 24 / 10000;
if (ignoreLimit || (weight > num && weight < num2))
long num = bio.weight;
long num2 = bio.height;
long num3 = num2 * num2 * 18 / 25000;
long num4 = num2 * num2 * 24 / 10000;
if (ignoreLimit || (num > num3 && num < num4))
{
weight = weight * (100 + a) / 100 + ((a > 0) ? 1 : (-1));
if (weight < 1)
num = num * (100 + a) / 100 + ((a > 0) ? 1 : (-1));
if (num < 1)
{
num = 1L;
}
if (num > 999999999)
{
weight = 1;
num = 999999999L;
}
if (weight != bio.weight)
if (num != bio.weight)
{
bio.weight = weight;
bio.weight = (int)num;
Say((a > 0) ? "weight_gain" : "weight_lose", this);
}
}+ConTransmuteBat
File Created
public class ConTransmuteBat : ConTransmute
{
public override RendererReplacer GetRendererReplacer()
{
return RendererReplacer.CreateFrom("bat_vampire");
}
}DramaCustomSequence
{
if (!c.trait.CanInvite)
{
TempTalkTopic("invite2", StepDefault);
string[] recruitItems = c.source.recruitItems;
if (!recruitItems.IsEmpty())
{
string[] array3 = recruitItems[0].Split('/');
string reqId = array3[0];
int reqNum = array3[1].ToInt();
CardBlueprint.Set(CardBlueprint.Original);
GameLang.refDrama1 = ThingGen.Create(reqId).SetNum(reqNum).Name;
TempTalkTopic("inviteReq1", null);
foreach (Thing t2 in EClass.pc.things.List((Thing t) => t.id == reqId && t.Num >= reqNum, onlyAccessible: true))
{
Thing _t5 = t2;
Choice("daDeliver".lang("", _t5.GetName(NameStyle.Full, _t5.Num)), delegate
{
t2.ModNum(-reqNum);
TempTalk("hired", StepEnd);
EClass.Sound.Play("good");
c.MakeAlly();
}).SetOnTooltip(delegate(UITooltip a)
{
_t5.WriteNote(a.note);
});
}
Choice("no2", StepDefault, cancel: true).SetOnClick(RumorChill);
}
else
{
TempTalkTopic("invite2", StepDefault);
}
}
else if (c.GetBestAttribute() > EClass.pc.CHA && !EClass.debug.godMode)
{FoodEffect
public static void Proc(Chara c, Thing food, bool consume = true)
}
if (c.HasElement(1200))
{
num2 *= 1.25f;
num2 *= 1f + (float)c.Evalue(1200) + 0.25f;
}
if (!c.IsPC)
{public static void Proc(Chara c, Thing food, bool consume = true)
{
break;
}
goto IL_0f01;
goto IL_0f19;
case "love":
ActEffect.LoveMiracle(c, EClass.pc, value.Value * 10);
break;public static void Proc(Chara c, Thing food, bool consume = true)
{
food.trait.OnDrink(c);
}
goto IL_0f01;
IL_0f01:
goto IL_0f19;
IL_0f19:
if (!consume)
{
return;GoalCombat
public virtual bool TryUseAbility(int dist, bool beforeMove = false)
}
break;
case 6627:
if (Act.CC.GetNearbyCatToSniff() == null || Act.CC.HasCondition<ConHOT>())
if (owner.GetNearbyCatToSniff() == null || owner.HasCondition<ConHOT>())
{
continue;
}GrowSystem
public void PopHarvest(Chara c, Thing t = null, int num = -1)
{
t.SetNum(num);
}
if (c == null || EClass.player.isAutoFarming)
{
TryPick(cell, t, c);
}
else
{
c.Pick(t);
}
TryPick(cell, t, c);
}
public void ApplySeed(Thing t)HotItemNoItem
public static bool _TrySetAct(ActPlan p)
EClass.player.RefreshCurrentHotItem();
ActionMode.Adv.planRight.Update(ActionMode.Adv.mouseTarget);
EClass.pc.renderer.Refresh();
HotItemHeld.disableTool = true;
}
}
return true;Map
public void TrySmoothPick(Point p, Thing t, Chara c)
{
EClass.pc.PickOrDrop(p, t);
}
else if (c != null && c.IsPC && (c.pos.Equals(p) || EClass.core.config.game.smoothPick || EClass._zone.IsRegion))
else if (c != null && c.IsPC && (c.pos.Equals(p) || (EClass.core.config.game.smoothPick && c.Dist(p) <= 1) || EClass._zone.IsRegion))
{
c.PickOrDrop(p, t);
}POLICY
public const int mass_exhibition = 2814;
public const int faith_tax = 2501;
public const int food_for_people = 2502;
public const int bed_quality = 2812;
public const int self_sufficient = 2511;
public const int vaccination = 2509;
public const int ban_radio = 2510;
public const int nocturnal_life = 2508;
public const int vaccination = 2509;
public const int stop_growth = 2515;
public const int inquisition = 2507;
public const int nocturnal_life = 2508;
public const int human_right = 2506;
public const int legal_drug = 2505;
public const int prohibition = 2503;
public const int food_for_people = 2502;
public const int wealth_tax = 2500;
public const int suite_room = 2813;
public const int human_right = 2506;
public const int inquisition = 2507;
public const int speed_growth = 2516;
public const int ban_radio = 2510;
public const int faith_tax = 2501;
public const int trash_sort = 2701;
public const int open_business = 2810;
public const int energy_conservation = 2700;
public const int home_discount = 2800;
public const int livestock_priv = 2715;
public const int forcePanty = 2712;
public const int energy_conservation = 2700;
public const int incomeTransfer = 2711;
public const int noMother = 2710;
public const int noAnimal = 2709;
public const int forcePanty = 2712;
public const int incomeTransfer = 2711;
public const int noDM = 2708;
public const int auto_farm = 2707;
public const int trash_no = 2702;
public const int noDM = 2708;
public const int noAnimal = 2709;
public static readonly int[] IDS = new int[51]
{
2816, 2817, 2818, 2819, 2820, 2821, 2824, 2823, 2825, 2826,
2827, 2828, 2815, 2822, 2814, 2501, 2812, 2514, 2513, 2512,
2511, 2509, 2508, 2515, 2507, 2505, 2504, 2503, 2502, 2500,
2813, 2506, 2516, 2510, 2701, 2811, 2810, 2700, 2800, 2715,
2712, 2710, 2709, 2711, 2707, 2706, 2705, 2704, 2703, 2702,
2708
2827, 2828, 2815, 2822, 2814, 2502, 2812, 2514, 2513, 2512,
2511, 2510, 2509, 2515, 2508, 2506, 2505, 2504, 2503, 2500,
2813, 2507, 2516, 2501, 2701, 2811, 2810, 2800, 2715, 2700,
2711, 2710, 2712, 2708, 2707, 2706, 2705, 2704, 2703, 2702,
2709
};
}
public class Policy : EClassReligion
public static Thing Reforge(string id, Point pos = null, bool first = true)
break;
}
}
if (EClass.pc.IsEyth && EClass.pc.HasElement(1228))
{
thing.c_idDeity = EClass.game.religions.Eyth.id;
}
EClass._zone.AddCard(thing, pos);
pos.PlayEffect("aura_heaven");
if (first)SKILL
public class SKILL
{
public const int twohand = 130;
public const int eyeofmind = 134;
public const int marksman = 133;
public const int twowield = 131;
public const int twohand = 130;
public const int shield = 123;
public const int weaponDagger = 107;
public const int throwing = 108;
public const int armorLight = 120;
public const int weaponCrossbow = 109;
public const int throwing = 108;
public const int strategy = 135;
public const int weaponDagger = 107;
public const int armorHeavy = 122;
public const int evasion = 150;
public const int climbing = 242;
public const int riding = 226;
public const int stealth = 152;
public const int lumberjack = 225;
public const int riding = 226;
public const int parasite = 227;
public const int digging = 230;
public const int weaponPolearm = 106;
public const int climbing = 242;
public const int evasionPlus = 151;
public const int weaponGun = 105;
public static readonly int[] IDS = new int[133]
{
130, 134, 133, 132, 131, 123, 107, 120, 111, 110,
109, 108, 135, 122, 150, 242, 152, 200, 207, 210,
220, 225, 226, 227, 230, 235, 237, 240, 241, 106,
134, 133, 132, 131, 130, 123, 108, 120, 111, 110,
109, 135, 107, 122, 150, 226, 152, 200, 207, 210,
220, 225, 227, 230, 235, 237, 240, 241, 106, 242,
151, 105, 73, 103, 50, 51, 55, 56, 57, 60,
61, 64, 65, 66, 67, 68, 70, 71, 104, 72,
74, 75, 76, 77, 78, 79, 80, 90, 91, 92,SLOT
public const int neck = 31;
public const int range = 41;
public const int head = 30;
public const int finger = 36;
public const int head = 30;
public const int range = 41;
public const int ammo = 42; public static readonly int[] IDS = new int[16]
{
44, 32, 39, 45, 34, 38, 37, 35, 40, 33,
31, 41, 36, 30, 42, 43
31, 30, 36, 41, 42, 43
};
}SPELL
{
public const int puddle_Holy = 50909;
public const int bit_Sound = 51107;
public const int flare_Sound = 51207;
public const int ball_Nerve = 50108;
public const int bit_Mind = 51104;
public const int bolt_Nerve = 50308;
public const int sword_Mind = 51004;
public const int sword_Void = 51016;
public const int hand_Nerve = 50408;
public const int bolt_Nerve = 50308;
public const int arrow_Nerve = 50508;
public const int hand_Nerve = 50408;
public const int sword_Mind = 51004;
public const int puddle_Mind = 50904;
public const int flare_Holy = 51209;
public const int arrow_Nerve = 50508;
public const int funnel_Nerve = 50608;
public const int weapon_Nerve = 50808;
public const int sword_Holy = 51009;
public const int puddle_Nerve = 50908;
public const int bit_Sound = 51107;
public const int flare_Holy = 51209;
public const int sword_Nerve = 51008;
public const int sword_Sound = 51007;
public const int flare_Nerve = 51208;
public const int ball_Holy = 50109;
public const int puddle_Mind = 50904;
public const int weapon_Mind = 50804;
public const int bolt_Holy = 50309;
public const int miasma_Mind = 50704;
public const int hand_Holy = 50409;
public const int weapon_Mind = 50804;
public const int bit_Holy = 51109;
public const int arrow_Holy = 50509;
public const int bit_Holy = 51109;
public const int funnel_Holy = 50609;
public const int miasma_Holy = 50709;
public const int weapon_Holy = 50809;
public const int sword_Nerve = 51008;
public const int sword_Holy = 51009;
public const int bit_Nerve = 51108;
public const int puddle_Sound = 50907;
public const int flare_Mind = 51204;
public const int bit_Mind = 51104;
public const int miasma_Poison = 50705;
public const int weapon_Poison = 50805;
public const int bit_Poison = 51105;
public const int flare_Poison = 51205;
public const int arrow_Poison = 50505;
public const int funnel_Poison = 50605;
public const int flare_Poison = 51205;
public const int ball_Nether = 50106;
public const int arrow_Poison = 50505;
public const int hand_Poison = 50405;
public const int bolt_Nether = 50306;
public const int hand_Nether = 50406;
public const int arrow_Nether = 50506;
public const int bolt_Poison = 50305;
public const int hand_Poison = 50405;
public const int arrow_Nether = 50506;
public const int funnel_Nether = 50606;
public const int sword_Nether = 51006;
public const int bolt_Poison = 50305;
public const int bit_Nether = 51106;
public const int flare_Nether = 51206;
public const int ball_Sound = 50107;
public const int ball_Chaos = 50110;
public const int bolt_Sound = 50307;
public const int hand_Sound = 50407;
public const int ball_Poison = 50105;
public const int ball_Chaos = 50110;
public const int hand_Sound = 50407;
public const int arrow_Sound = 50507;
public const int miasma_Sound = 50707;
public const int weapon_Sound = 50807;
public const int ball_Poison = 50105;
public const int flare_Mind = 51204;
public const int sword_Sound = 51007;
public const int weapon_Sound = 50807;
public const int miasma_Poison = 50705;
public const int funnel_Poison = 50605;
public const int ball_Acid = 50113;
public const int funnel_Impact = 50615;
public const int miasma_Mind = 50704;
public const int funnel_Mind = 50604;
public const int puddle_Void = 50916;
public const int bit_Magic = 51111;
public const int funnel_Mind = 50604;
public const int arrow_Mind = 50504;
public const int SpIncognito = 8780;
public const int hand_Mind = 50404;
public const int bolt_Mind = 50304;
public const int SpWisdom = 8503;
public const int SpIdentify = 8230;
public const int arrow_Mind = 50504;
public const int SpDarkness = 8800;
public const int hand_Mind = 50404;
public const int SpSummon = 9000;
public const int SpTransmuteBat = 8793;
public const int funnel_Lightning = 50602;
public const int SpWeb = 8801;
public const int arrow_Lightning = 50502;
public const int bolt_Cold = 50301;
public const int miasma_Lightning = 50702;
public const int ball_Cold = 50101;
public const int weapon_Lightning = 50802;
public const int funnel_Lightning = 50602;
public const int sword_Lightning = 51002;
public const int flare_Fire = 51200;
public const int bolt_Mind = 50304;
public const int miasma_Lightning = 50702;
public const int puddle_Lightning = 50902;
public const int ball_Mind = 50104;
public const int bit_Lightning = 51102;
public const int puddle_Lightning = 50902;
public const int sword_Lightning = 51002;
public const int SpWeb = 8801;
public const int weapon_Lightning = 50802;
public const int flare_Fire = 51200;
public const int SpDarkness = 8800;
public const int sword_Fire = 51000;
public const int bit_Fire = 51100;
public const int SpSummonDragon = 9054;
public const int puddle_Fire = 50900;
public const int SpSummonMachine = 9053;
public const int SpSummonUndeadSister = 9001;
public const int SpMeteor = 9150;
public const int SpSummon = 9000;
public const int bit_Fire = 51100;
public const int SpSummonDragon = 9054;
public const int SpEarthquake = 9151;
public const int sword_Fire = 51000;
public const int SpMoonArrow = 9156;
public const int SpMeteor = 9150;
public const int puddle_Fire = 50900;
public const int SpMoonSpear = 9155;
public const int weapon_Fire = 50800;
public const int SpExterminate = 9160;
public const int SpMoonSpear = 9155;
public const int SpMoonArrow = 9156;
public const int SpEarthquake = 9151;
public const int flare_Void = 51216;
public static readonly int[] IDS = new int[289]
public static readonly int[] IDS = new int[290]
{
50909, 51207, 50108, 51104, 50308, 51016, 50408, 50508, 51004, 51209,
50608, 50708, 50808, 51009, 50908, 51107, 51208, 50109, 50904, 50309,
50409, 50804, 50509, 51109, 50609, 50709, 50809, 51008, 51108, 50907,
51204, 50805, 50905, 51005, 51105, 51205, 50605, 50106, 50505, 50306,
50406, 50506, 50405, 50606, 50706, 50806, 50906, 51006, 50305, 51106,
51206, 50107, 50307, 50407, 50110, 50507, 50607, 50707, 50807, 50105,
51007, 50705, 50113, 50410, 50115, 51214, 51114, 51014, 50914, 50814,
50315, 50714, 50514, 50414, 50314, 50114, 51213, 51113, 50614, 50415,
50515, 50615, 50704, 50916, 50816, 50716, 50616, 50516, 50416, 50316,
50116, 51215, 51115, 51015, 50915, 50815, 50715, 51013, 50913, 50813,
50713, 50811, 50711, 50611, 50511, 50411, 50311, 50111, 51210, 51110,
51010, 50910, 50810, 50710, 50610, 50510, 50911, 50310, 51011, 51211,
50613, 50513, 50413, 50313, 51212, 51112, 51012, 50912, 50812, 50712,
50612, 50512, 50412, 50312, 50112, 51111, 50604, 8780, 50404, 8503,
8502, 8501, 8500, 8491, 8490, 8480, 8471, 8470, 8450, 8430,
8406, 8405, 8404, 8403, 8504, 8402, 8506, 8510, 8791, 8790,
8776, 8775, 8770, 8710, 8708, 8707, 8706, 8705, 8704, 8702,
8700, 8555, 8550, 8507, 8792, 8401, 8390, 8202, 8201, 8200,
7800, 7010, 7009, 7008, 7007, 7006, 7005, 7004, 7003, 7002,
7001, 51116, 8220, 8400, 8221, 8232, 8380, 8300, 8288, 8286,
8285, 8284, 8281, 8280, 8260, 8256, 8255, 8251, 8250, 8241,
8240, 8230, 50504, 8800, 9000, 50602, 50502, 50402, 50302, 50102,
50909, 51107, 51207, 50108, 51004, 51016, 50308, 50408, 50904, 50508,
50608, 50708, 50808, 50908, 51209, 51008, 51007, 51208, 50109, 50804,
50309, 50704, 50409, 51109, 50509, 50609, 50709, 50809, 51009, 51108,
50907, 51104, 50705, 50805, 50905, 51005, 51105, 50505, 51205, 50106,
50405, 50306, 50406, 50305, 50506, 50606, 50706, 50806, 50906, 51006,
51106, 51206, 50107, 50110, 50307, 50105, 50407, 50507, 50607, 50707,
51204, 50807, 50605, 50113, 50410, 50115, 51214, 51114, 51014, 50914,
50814, 50315, 50714, 50514, 50414, 50314, 50114, 51213, 51113, 50614,
50415, 50515, 50615, 50604, 50916, 50816, 50716, 50616, 50516, 50416,
50316, 50116, 51215, 51115, 51015, 50915, 50815, 50715, 51013, 50913,
50813, 50713, 50811, 50711, 50611, 50511, 50411, 50311, 50111, 51210,
51110, 51010, 50910, 50810, 50710, 50610, 50510, 50911, 50310, 51011,
51211, 50613, 50513, 50413, 50313, 51212, 51112, 51012, 50912, 50812,
50712, 50612, 50512, 50412, 50312, 50112, 51111, 50504, 8780, 50304,
8503, 8502, 8501, 8500, 8491, 8490, 8480, 8471, 8470, 8450,
8430, 8406, 8405, 8404, 8403, 8504, 8402, 8506, 8510, 8791,
8790, 8776, 8775, 8770, 8710, 8708, 8707, 8706, 8705, 8704,
8702, 8700, 8555, 8550, 8507, 8792, 8401, 8390, 8202, 8201,
8200, 7800, 7010, 7009, 7008, 7007, 7006, 7005, 7004, 7003,
7002, 7001, 51116, 8220, 8400, 8221, 8232, 8380, 8300, 8288,
8286, 8285, 8284, 8281, 8280, 8260, 8256, 8255, 8251, 8250,
8241, 8240, 8230, 50404, 8793, 8801, 50502, 50402, 50302, 50102,
51201, 51101, 51001, 50901, 50801, 50701, 50601, 50501, 50401, 50301,
50702, 50101, 50802, 51002, 50304, 50104, 51203, 51103, 51003, 50903,
50803, 50703, 50603, 50503, 50403, 50303, 50103, 51202, 51102, 50902,
8801, 51200, 51000, 9054, 9053, 9052, 9051, 9050, 9010, 9009,
9008, 9007, 9006, 9005, 9004, 9003, 9002, 9001, 9150, 51100,
9151, 9156, 50900, 50800, 50700, 50600, 50500, 50400, 50300, 50100,
9503, 9502, 9501, 9500, 9210, 9200, 9160, 9155, 51216
50101, 50602, 51200, 50702, 50902, 50104, 51203, 51103, 51003, 50903,
50803, 50703, 50603, 50503, 50403, 50303, 50103, 51202, 51102, 51002,
50802, 8800, 51100, 50900, 9053, 9052, 9051, 9050, 9010, 9009,
9008, 9007, 9006, 9005, 9004, 9003, 9002, 9001, 9000, 9054,
51000, 9150, 9155, 50800, 50700, 50600, 50500, 50400, 50300, 50100,
9503, 9502, 9501, 9500, 9210, 9200, 9160, 9156, 9151, 51216
};
}
public class Spell : AbilitySourceChara
public string moveAnime;
public string[] recruitItems;
public bool staticSkin;
public int[] _tiles_snow;public override Row CreateRow()
obj.moveAnime = SourceData.GetString(44);
obj.factory = SourceData.GetStringArray(45);
obj.components = SourceData.GetStringArray(46);
obj.detail_JP = SourceData.GetString(47);
obj.detail = SourceData.GetString(48);
obj.recruitItems = SourceData.GetStringArray(47);
obj.detail_JP = SourceData.GetString(48);
obj.detail = SourceData.GetString(49);
return obj;
}TraitAltar
public override void TrySetAct(ActPlan p)
public override bool CanOffer(Card c)
{
if (c != null && c.HasTag(CTAG.godArtifact) && c.c_idDeity == Deity.id)
if (c != null && c.HasTag(CTAG.godArtifact) && (c.c_idDeity == Deity.id || (EClass.pc.IsEyth && EClass.pc.HasElement(1228) && Deity == EClass.game.religions.Eyth)))
{
return true;
}public void OnOffer(Chara c, Thing t)
}
return;
}
if (!IsBranchAltar && EClass.pc.IsEyth)
if (!IsBranchAltar && EClass.pc.IsEyth && !EClass.pc.HasElement(1228))
{
EClass.pc.Say("god_offerEyth", owner, t);
return;public void OnOffer(Chara c, Thing t)
}
else
{
if (t.HasTag(CTAG.godArtifact) && t.c_idDeity == Deity.id)
if (t.HasTag(CTAG.godArtifact) && (t.c_idDeity == Deity.id || (EClass.pc.IsEyth && EClass.pc.HasElement(1228))))
{
_ = t.encLV;
t.Destroy();public void OnOffer(Chara c, Thing t)
}
return;
}
if (EClass.pc.IsEyth)
if (EClass.pc.IsEyth && !EClass.pc.HasElement(1228))
{
Msg.Say("nothingHappens");
return;public void OnOffer(Chara c, Thing t)
if (Deity != EClass.pc.faith)
{
bool flag = EClass.rnd(EClass.pc.faith.GetOfferingValue(t, t.Num)) > EClass.rnd(200);
if (GetParam(1) != null)
if (GetParam(1) != null || EClass.pc.IsEyth)
{
Msg.Say("nothingHappens");
return;+TraitSilvercat
File Created
public class TraitSilvercat : TraitChara
{
public override bool CanBeTamed => false;
public override bool CanInvite => false;
public override bool IsCountAsResident => true;
public override bool RemoveGlobalOnBanish => true;
}TraitUniqueCharaNoJoin
public class TraitUniqueCharaNoJoin : TraitUniqueChara
{
public override bool CanInvite => false;
public override bool CanChangeAffinity => false;
public override bool CanChangeAffinity => !base.owner.Chara.source.recruitItems.IsEmpty();
}Zone
public Chara SpawnMob(Point pos = null, SpawnSetting setting = null)
EClass.player.flags.santa++;
}
long num3 = ((setting.fixedLv == -1) ? cardRow.LV : setting.fixedLv);
bool flag = setting.fixedLv != -1 || DangerLvBoost > 0;
if (ScaleType == ZoneScaleType.Void)
{
num3 = (50L + (long)cardRow.LV) * Mathf.Max(1, (num - 1) / 50);
flag = true;
}
num3 += DangerLvBoost;
if (setting.rarity == Rarity.Random && cardRow.quality == 0)public Chara SpawnMob(Point pos = null, SpawnSetting setting = null)
}
CardBlueprint.Set(cardBlueprint);
Chara chara = CharaGen.Create(cardRow.id, num2);
if (!flag)
{
chara.isScaled = false;
}
AddCard(chara, pos);
if (setting.forcedHostility.HasValue)
{