EA 23.79 Nightly
January 21, 2025
27 files modified.
Important Changes
None.
ABILITY
@@ -4,6 +4,8 @@ public class ABILITY
{
public const int ActChat = 5044;
public const int TaskMoveInstalled = 5036;
public const int ActNoItem = 5037;
public const int ActThrow = 5038;
@@ -30,11 +32,11 @@ public class ABILITY
public const int AI_Sleep = 5050;
public const int ActZap = 5051;
public const int TaskBuild = 5035;
public const int TaskMoveInstalled = 5036;
public const int ActZap = 5051;
public const int ActBash = 5052;
public const int TaskHarvest = 5053;
public const int AI_Bladder = 5054;
@@ -62,15 +64,15 @@ public class ABILITY
public const int ActEscape = 6400;
public const int ActSuicide = 6410;
public const int ActBash = 5052;
public const int TaskHarvest = 5053;
public const int ActSuicide = 6410;
public const int ActDuplicate = 6420;
public const int GoalIdle = 5034;
public const int TaskBuild = 5035;
public const int AI_Equip = 5032;
public const int ActCancelTask = 5033;
public const int Melee = 5002;
public const int Ranged = 5003;
@@ -98,11 +100,11 @@ public class ABILITY
public const int TaskAttack = 5015;
public const int TaskTame = 5016;
public const int ActCancelTask = 5033;
public const int GoalIdle = 5034;
public const int TaskTame = 5016;
public const int TaskTalk = 5017;
public const int TaskPick = 5018;
public const int TaskReadBoard = 5019;
@@ -130,15 +132,15 @@ public class ABILITY
public const int AI_Deconstruct = 5031;
public const int AI_Equip = 5032;
public const int TaskPick = 5018;
public const int TaskTalk = 5017;
public const int ActCrabBreathe = 6500;
public const int ActDuplicate = 6420;
public const int ActRush = 6450;
public const int breathe_Mind = 50204;
public const int breathe_Darkness = 50203;
public const int ActLulwyTrick = 6902;
public const int ActKizuamiTrick = 6903;
@@ -152,13 +154,13 @@ public class ABILITY
public const int breathe_Lightning = 50202;
public const int breathe_Darkness = 50203;
public const int ActCrabBreathe = 6500;
public const int ActCurse = 6600;
public const int breathe_Mind = 50204;
public const int breathe_Poison = 50205;
public const int ActWait = 5000;
public const int breathe_Nether = 50206;
public const int breathe_Poison = 50205;
public const int breathe_Sound = 50207;
@@ -178,38 +180,42 @@ public class ABILITY
public const int breathe_Impact = 50215;
public const int ActMelee = 5001;
public const int ActWait = 5000;
public const int breathe_Nether = 50206;
public const int ActLulwyTrick = 6902;
public const int ActManaAbsorb = 6900;
public const int ActJureHeal = 6901;
public const int Melee = 5002;
public const int StTaunt = 6700;
public const int ActGazeMutation = 6622;
public const int ActCurse = 6600;
public const int ActEntangle = 6601;
public const int ActDraw = 6602;
public const int ActNTR = 6603;
public const int ActMelee = 5001;
public const int ActWeaken = 6610;
public const int ActFear = 6611;
public const int ActTouchSleep = 6612;
public const int ActGazeDim = 6620;
public const int StManaCost = 6720;
public const int ActGazeInsane = 6621;
public const int ActManaAbsorb = 6900;
public const int ActGazeMana = 6623;
public const int ActGazeMutation = 6622;
public const int ActDraw = 6602;
public const int ActGazeDim = 6620;
public const int ActDrainBlood = 6626;
public const int ActInsult = 6630;
public const int ActScream = 6631;
public const int ActSteal = 6640;
@@ -224,28 +230,22 @@ public class ABILITY
public const int ActThrowPotion = 6661;
public const int StTaunt = 6700;
public const int StManaCost = 6720;
public const int ActInsult = 6630;
public const int ActEntangle = 6601;
public const int ActGazeMana = 6623;
public static readonly int[] IDS = new int[115]
{
5044, 5037, 5038, 5039, 5040, 5041, 5042, 5043, 5045, 5046,
5047, 5048, 5049, 5050, 5051, 5036, 5052, 5054, 5055, 6001,
6003, 6011, 6012, 6013, 6015, 6018, 6019, 6020, 6050, 6400,
6410, 5053, 6420, 5035, 5033, 5003, 5004, 5005, 5006, 5007,
5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 5016, 5034,
5017, 5019, 5020, 5021, 5022, 5023, 5024, 5025, 5026, 5027,
5028, 5029, 5030, 5031, 5032, 5018, 6500, 6450, 50204, 6903,
6904, 7000, 50200, 50201, 50202, 50203, 6600, 50205, 50206, 50207,
50208, 50209, 50210, 50211, 50212, 50213, 50214, 50215, 5001, 5000,
6902, 6901, 5002, 6622, 6603, 6610, 6611, 6612, 6620, 6621,
6900, 6623, 6602, 6626, 6631, 6640, 6641, 6642, 6650, 6660,
6661, 6700, 6720, 6630, 6601
5044, 5036, 5037, 5038, 5039, 5040, 5041, 5042, 5043, 5045,
5046, 5047, 5048, 5049, 5050, 5035, 5051, 5053, 5054, 5055,
6001, 6003, 6011, 6012, 6013, 6015, 6018, 6019, 6020, 6050,
6400, 5052, 6410, 5034, 5032, 5002, 5003, 5004, 5005, 5006,
5007, 5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 5033,
5016, 5018, 5019, 5020, 5021, 5022, 5023, 5024, 5025, 5026,
5027, 5028, 5029, 5030, 5031, 5017, 6420, 6450, 50203, 6902,
6903, 6904, 7000, 50200, 50201, 50202, 6500, 50204, 5000, 50205,
50207, 50208, 50209, 50210, 50211, 50212, 50213, 50214, 50215, 50206,
6900, 6901, 6700, 6600, 6601, 6602, 6603, 5001, 6610, 6611,
6612, 6720, 6621, 6622, 6620, 6626, 6630, 6631, 6640, 6641,
6642, 6650, 6660, 6661, 6623
};
}
public class Ability : Act
@@ -286,7 +286,7 @@ public override int GetPower(Card c)
a = EClass.curve(a, 400, 100);
if (this is Spell)
{
a = a * (100 + c.Evalue(411)) / 100;
a = a * Mathf.Max(100 + c.Evalue(411) - c.Evalue(93), 1) / 100;
}
return a;
}
ActMelee
@@ -121,8 +121,10 @@ public bool Attack(float dmgMulti = 1f, bool maxRoll = false)
int count = 0;
int num = Act.CC.Dist(Act.TC);
Point orgPos = Act.TC.pos.Copy();
Card tC = Act.TC;
foreach (BodySlot slot in Act.CC.body.slots)
{
Act.TC = tC;
if (Act.TC == null || !Act.TC.IsAliveInCurrentZone)
{
return true;
@@ -194,7 +196,7 @@ public bool Attack(float dmgMulti = 1f, bool maxRoll = false)
}
foreach (Point item2 in list)
{
foreach (Card item3 in item2.ListCards())
foreach (Card item3 in item2.ListCards().Copy())
{
if (num4 <= 0 || !Act.CC.IsAliveInCurrentZone)
{
@@ -202,7 +204,6 @@ public bool Attack(float dmgMulti = 1f, bool maxRoll = false)
}
if (item3.trait.CanBeAttacked || (item3.isChara && item3.Chara.IsHostile(Act.CC)))
{
Act.CC.Say("attack_cleave");
AttackWithFlurry(item3, item2, 1f, subAttack: true);
num4--;
}
@@ -215,6 +216,7 @@ void Attack(Card _tc, Point _tp, float mtp, bool subAttack)
{
Act.TC = _tc;
Act.TP = _tp;
Debug.Log(w.Name + "/" + chaser + "/" + Act.TC.Name);
AttackProcess.Current.Prepare(Act.CC, w, Act.TC, Act.TP, count);
int num6 = 1;
if (chaser > 0)
@@ -246,10 +248,6 @@ void Attack(Card _tc, Point _tp, float mtp, bool subAttack)
break;
}
}
if (flag2)
{
hasHit = true;
}
if (w.c_ammo > 0 && !Act.CC.HasCondition<ConReload>())
{
bool flag3 = true;
ActPlan
@@ -856,7 +856,7 @@ void func()
}
}
}
if (list.Count == 0 && input == ActInput.AllAction && pos.cell.IsSnowTile && !pos.IsBlocked && !pos.HasObj && !pos.HasThing)
if (list.Count == 0 && input == ActInput.AllAction && EClass.pc.held == null && pos.cell.IsSnowTile && !pos.IsBlocked && !pos.HasObj && !pos.HasThing)
{
TrySetAct(new AI_Craft_Snowman
{
BuildMenu
@@ -266,7 +266,7 @@ private void _Search()
}
foreach (Thing thing in EMono._map.Stocked.Things)
{
if (EMono._map.Stocked.ShouldListAsResource(thing) && (thing.source.name.Contains(s) || thing.source.name_JP.Contains(s)))
if (EMono._map.Stocked.ShouldListAsResource(thing) && (thing.source.name.Contains(s) || thing.source.name_JP.Contains(s) || thing.NameOne.Contains(s)))
{
Recipe recipe2 = Recipe.Create(thing);
if (recipe2 == null)
@@ -281,7 +281,7 @@ private void _Search()
}
EMono.pc.things.Foreach(delegate(Thing t)
{
if (t.trait.CanBeDropped && !t.trait.CanOnlyCarry && (t.source.name.Contains(s) || t.source.name_JP.Contains(s)))
if (t.trait.CanBeDropped && !t.trait.CanOnlyCarry && (t.source.name.Contains(s) || t.source.name_JP.Contains(s) || t.NameOne.Contains(s)))
{
Recipe recipe3 = Recipe.Create(t);
if (recipe3 == null)
Card
@@ -2030,7 +2030,7 @@ public bool ShowFoodEnc
{
get
{
if (!IsFood && Evalue(10) <= 0 && !category.IsChildOf("seed") && !(id == "pasture") && !(id == "grass"))
if (!IsFood && (Evalue(10) <= 0 || IsEquipmentOrRanged) && !category.IsChildOf("seed") && !(id == "pasture") && !(id == "grass"))
{
return category.IsChildOf("drug");
}
@@ -3519,7 +3519,7 @@ public virtual void HealHPHost(int a, HealSource origin = HealSource.None)
public virtual void HealHP(int a, HealSource origin = HealSource.None)
{
hp += a;
hp += a * Mathf.Max(100 - Evalue(93), 1) / 100;
if (hp > MaxHP)
{
hp = MaxHP;
{
dmg = Element.GetResistDamage(dmg, Evalue(e.source.aliasRef), (origin != null) ? origin.Evalue(1238) : 0);
dmg = dmg * 100 / (100 + Mathf.Clamp(Evalue(961) * 5, -50, 200));
dmg = dmg * Mathf.Max(100 - Evalue(93), 10) / 100;
}
switch (e.id)
{
if (EClass.player.invlunerable)
{
EvadeDeath();
goto IL_09fc;
goto IL_0a24;
}
}
if (IsPC && Evalue(1220) > 0 && Chara.stamina.value >= Chara.stamina.max / 2)
}
}
}
goto IL_09fc;
IL_09fc:
goto IL_0a24;
IL_0a24:
if (trait.CanBeAttacked)
{
renderer.PlayAnime(AnimeID.HitObj);
Chara
@@ -1331,6 +1331,7 @@ public override void OnCreate(int genLv)
}
if (source.mainElement.Length != 0)
{
int maxEleLv = Mathf.Min(genLv, 100);
List<Tuple<string, int, int>> list = new List<Tuple<string, int, int>>();
string[] mainElement = source.mainElement;
for (int i = 0; i < mainElement.Length; i++)
@@ -1338,12 +1339,12 @@ public override void OnCreate(int genLv)
string[] array = mainElement[i].Split('/');
SourceElement.Row row = EClass.sources.elements.alias["ele" + array[0]];
int num2 = source.LV * row.eleP / 100 + base.LV - source.LV;
if (list.Count == 0 || num2 < genLv || array[0] == bp.idEle)
if (list.Count == 0 || num2 < maxEleLv || array[0] == bp.idEle)
{
list.Add(new Tuple<string, int, int>(array[0], (array.Length > 1) ? int.Parse(array[1]) : 0, num2));
}
}
Tuple<string, int, int> tuple = list.RandomItemWeighted((Tuple<string, int, int> a) => 10000 / (100 + (genLv - a.Item3) * 25));
Tuple<string, int, int> tuple = list.RandomItemWeighted((Tuple<string, int, int> a) => 10000 / (100 + (maxEleLv - a.Item3) * 25));
if (!bp.idEle.IsEmpty())
{
tuple = list.Where((Tuple<string, int, int> a) => a.Item1 == bp.idEle).FirstOrDefault() ?? tuple;
@@ -4619,6 +4620,7 @@ public void Revive(Point p = null, bool msg = false)
Msg.Say("revive", this);
PlayEffect("revive");
}
SetCensored(enable: false);
}
}
@@ -7357,6 +7359,7 @@ public void GiveGift(Chara c, Thing t)
Element element = list.RandomItem();
EClass.pc.ModExp(element.id, num2);
EClass.pc.Say("draw_curse2", EClass.pc, element.Name);
c.AddExp(Mathf.Min(num2 / 3, c.ExpToNext));
return;
}
if ((t.id == "lovepotion" || t.id == "dreambug") && !Application.isEditor)
DNA
@@ -476,6 +476,10 @@ public void CalcSlot()
for (int i = 0; i < vals.Count; i += 2)
{
Element element = Element.Create(vals[i], vals[i + 1]);
if (element.source.geneSlot < 0)
{
slot = 99;
}
if (element.source.geneSlot > slot)
{
slot = element.source.geneSlot;
DOMAIN
public class DOMAIN
{
public const int domSurvival = 801;
public const int domArcane = 804;
public const int domFaith = 802;
public const int domTest = 800;
public const int domOblivion = 813;
public const int domSurvival = 801;
public const int domTest = 800;
public const int domFaith = 802;
public const int domMiracle = 803;
public const int domEyth = 814;
public const int domComm = 805;
public const int domHealing = 811;
public const int domEyth = 814;
public const int domEarth = 812;
public const int domWind = 807;
public const int domLuck = 810;
public const int domHarvest = 808;
public const int domMachine = 809;
public const int domArcane = 804;
public const int domLuck = 810;
public const int domHarmony = 815;
public const int domHealing = 811;
public const int domHarvest = 808;
public const int domOblivion = 813;
public const int domWind = 807;
public const int domEarth = 812;
public const int domElement = 806;
public const int domHarmony = 815;
public static readonly int[] IDS = new int[16]
{
801, 802, 813, 800, 803, 814, 805, 811, 812, 810,
809, 804, 815, 808, 807, 806
804, 800, 801, 802, 803, 805, 814, 807, 808, 809,
810, 811, 813, 812, 806, 815
};
}
public class Domain : EClass
ELEMENT
public class ELEMENT
{
public const int antidote = 753;
public const int hotspring = 756;
public const int blood = 755;
public const int rare = 751;
public const int nerve = 754;
public const int comfort = 750;
public const int antidote = 753;
public const int hotspring = 756;
public const int cute = 752;
public const int nerve = 754;
public const int rare = 751;
public const int cute = 752;
public const int comfort = 750;
public const int _void = 0;
@@ -67,7 +67,7 @@ public class ELEMENT
public static readonly int[] IDS = new int[30]
{
753, 755, 751, 750, 756, 754, 752, 0, 2, 1,
756, 755, 754, 753, 752, 751, 750, 0, 2, 1,
3, 5, 10, 11, 12, 13, 14, 16, 17, 18,
15, 21, 22, 23, 24, 25, 26, 29, 85, 20
};
public static SourceElement.Row GetRandomElement(int lv = 1)
{
if (lv > 100)
{
lv = 100;
}
if (ListElements.Count == 0)
{
foreach (SourceElement.Row row in EClass.sources.elements.rows)
ENC
@@ -24,7 +24,7 @@ public class ENC
public const int noDamage = 654;
public const int convertCold = 851;
public const int convertFire = 850;
public const int permaCurse = 656;
@@ -42,7 +42,7 @@ public class ENC
public const int meleeDistance = 666;
public const int convertFire = 850;
public const int convertCold = 851;
public const int mod_splash = 608;
@@ -54,12 +54,10 @@ public class ENC
public const int mod_scatter = 607;
public const int bane_animal = 463;
public const int bane_fairy = 462;
public const int mod_precision = 605;
public const int breathing = 429;
public const int allNeckHunt = 428;
public const int negateNeckHunt = 427;
@@ -70,6 +68,8 @@ public class ENC
public const int mod_drill = 606;
public const int negateSleep = 424;
public const int negateFear = 423;
public const int negateParalysis = 422;
@@ -108,23 +108,13 @@ public class ENC
public const int negateTeleport = 400;
public const int sustain_STR = 440;
public const int breathing = 429;
public const int sustain_END = 441;
public const int negateSleep = 424;
public const int mod_ammo = 600;
public const int mod_ammo_recover = 604;
public const int mod_ammo_knockback = 603;
public const int mod_rapid = 602;
public const int mod_reload = 601;
public const int sustain_STR = 440;
public const int optimizeMana = 483;
public const int bane_machine = 465;
public const int force_weapon = 482;
@@ -136,11 +126,15 @@ public class ENC
public const int bane_fish = 467;
public const int bane_machine = 465;
public const int bane_god = 466;
public const int mod_reload = 601;
public const int bane_man = 464;
public const int bane_god = 466;
public const int bane_animal = 463;
public const int mod_rapid = 602;
public const int bane_undead = 461;
@@ -152,23 +146,29 @@ public class ENC
public const int sustain_WIL = 445;
public const int sustain_LER = 444;
public const int mod_ammo_knockback = 603;
public const int bane_fairy = 462;
public const int sustain_LER = 444;
public const int sustain_PER = 443;
public const int sustain_DEX = 442;
public const int mod_ammo_recover = 604;
public const int optimizeMana = 483;
public const int mod_ammo = 600;
public static readonly int[] IDS = new int[80]
{
652, 651, 650, 641, 640, 621, 620, 623, 622, 653,
624, 654, 851, 656, 660, 661, 662, 663, 664, 665,
666, 850, 608, 865, 852, 655, 607, 463, 605, 429,
428, 427, 426, 425, 606, 423, 422, 421, 420, 416,
624, 654, 850, 656, 660, 661, 662, 663, 664, 665,
666, 851, 608, 865, 852, 655, 607, 462, 605, 428,
427, 426, 425, 606, 424, 423, 422, 421, 420, 416,
415, 412, 411, 410, 409, 408, 407, 406, 405, 404,
403, 402, 401, 400, 440, 441, 424, 600, 604, 603,
602, 601, 483, 482, 481, 480, 468, 467, 465, 464,
466, 461, 460, 447, 446, 445, 444, 462, 443, 442
403, 402, 401, 400, 429, 441, 440, 465, 482, 481,
480, 468, 467, 466, 601, 464, 463, 602, 461, 460,
447, 446, 445, 603, 444, 443, 442, 604, 483, 600
};
}
ElementContainer
@@ -621,7 +621,7 @@ public List<Element> ListBestSkills()
public List<Element> ListGeneFeats()
{
return ListElements((Element a) => a.Value > 0 && a.source.category == "feat" && a.source.cost.Length != 0 && a.source.cost[0] > 0);
return ListElements((Element a) => a.Value > 0 && a.source.category == "feat" && a.source.cost.Length != 0 && a.source.cost[0] > 0 && a.source.geneSlot >= 0);
}
public List<Element> ListLearnable(Chara c)
FACTION
public class FACTION
{
public const int bfBeach = 3604;
public const int bfForest = 3601;
public const int bfPlain = 3600;
public const int bfCave = 3500;
public const int bfPlain = 3600;
public const int bfHill = 3603;
public const int bfForest = 3601;
public const int bfRuin = 3702;
public const int bfSnow = 3602;
public const int bfHill = 3603;
public const int bfGeyser = 3701;
public const int bfFertile = 3700;
public const int bfSea = 3605;
public const int fRation = 2207;
public const int bfRuin = 3702;
public const int bfSea = 3605;
public const int bfBeach = 3604;
public const int fAttraction = 2206;
public const int fLoyal = 2117;
public const int fSoil = 2200;
public const int fFood = 2204;
@@ -38,19 +38,19 @@ public class FACTION
public const int fElec = 2201;
public const int fSoil = 2200;
public const int fHeirloom = 2120;
public const int fLuck = 2118;
public const int fTaxEvasion = 2119;
public const int fConstruction = 2003;
public const int fLuck = 2118;
public const int fHeirloom = 2120;
public const int fLoyal = 2117;
public const int fTaxEvasion = 2119;
public const int fEducation = 2116;
public const int fAdmin = 2115;
public const int fEducation = 2116;
public const int fConstruction = 2003;
public const int fSafety = 2205;
@@ -110,9 +110,9 @@ public class FACTION
public static readonly int[] IDS = new int[52]
{
3604, 3500, 3600, 3601, 3602, 3603, 3701, 3700, 3605, 2207,
3702, 2206, 2117, 2204, 2203, 2202, 2201, 2200, 2118, 2003,
2120, 2119, 2115, 2116, 2205, 3703, 3705, 3706, 4006, 4005,
3601, 3600, 3500, 3603, 3702, 3602, 3701, 3700, 2207, 3605,
3604, 2206, 2200, 2204, 2203, 2202, 2201, 2120, 2119, 2118,
2117, 2116, 2115, 2003, 2205, 3703, 3705, 3706, 4006, 4005,
4004, 4003, 4002, 4001, 3704, 3900, 3805, 3804, 3803, 4000,
3801, 3802, 3708, 3709, 3710, 3780, 3707, 3782, 3783, 3784,
3800, 3781
FOOD
public class FOOD
{
public const int food_poison = 702;
public const int food_CHA = 700;
public const int food_love = 703;
public const int food_cat = 701;
public const int food_bug = 704;
public const int food_god = 758;
public const int gainWeight = 705;
public const int justcooked = 757;
public const int loseWeight = 706;
public const int food_poison = 702;
public const int justcooked = 757;
public const int gainWeight = 705;
public const int food_god = 758;
public const int food_bug = 704;
public const int food_cat = 701;
public const int food_love = 703;
public const int food_CHA = 700;
public const int loseWeight = 706;
public static readonly int[] IDS = new int[9] { 702, 703, 704, 705, 706, 757, 758, 701, 700 };
public static readonly int[] IDS = new int[9] { 700, 701, 758, 757, 702, 705, 704, 703, 706 };
}
FactionBranch
@@ -182,6 +182,10 @@ public int GetProductBonus(Chara c)
{
return 0;
}
if (c.memberType == FactionMemberType.Livestock)
{
return 100;
}
return Mathf.Max(1, (90 + Evalue(2116) / 2) * efficiency / 100);
}
Hobby
@@ -30,7 +30,7 @@ public int GetLv(Chara c)
public int GetEfficiency(Chara c)
{
int num = 50;
FactionBranch factionBranch = ((c.currentZone == null) ? EClass._zone.branch : c.homeBranch);
FactionBranch factionBranch = ((c.currentZone != null) ? c.homeBranch : EClass._zone?.branch);
if (factionBranch == null || (c.currentZone != null && c.currentZone != factionBranch.owner))
{
return 0;
MUTATION
@@ -2,33 +2,31 @@ public class MUTATION
{
public const int mutationRegen = 1516;
public const int mutationDexN = 1515;
public const int mutationDex = 1514;
public const int etherPoisonHand = 1565;
public const int mutationSkin = 1510;
public const int mutationEye = 1512;
public const int mutationSkinN = 1511;
public const int mutationRegenN = 1517;
public const int mutationEye = 1512;
public const int mutationEyeN = 1513;
public const int mutationSpeed = 1518;
public const int mutationDex = 1514;
public const int etherPoisonHand = 1565;
public const int mutationDexN = 1515;
public const int mutationStr = 1520;
public const int mutationRegenN = 1517;
public const int etherManaBattery = 1564;
public const int mutationSpeedN = 1519;
public const int etherProvoke = 1563;
public const int mutationSpeedN = 1519;
public const int etherArmor = 1562;
public const int etherStupid = 1561;
public const int mutationSpeed = 1518;
public const int etherWeak = 1560;
@@ -48,21 +46,25 @@ public class MUTATION
public const int etherFeet = 1552;
public const int etherArmor = 1562;
public const int etherUgly = 1551;
public const int mutationCha = 1522;
public const int etherStupid = 1561;
public const int mutationStrN = 1521;
public const int mutationStr = 1520;
public const int mutationCha = 1522;
public const int mutationChaN = 1523;
public const int mutationBrain = 1524;
public const int mutationBrainN = 1525;
public const int mutationCold = 1526;
public const int mutationColdN = 1527;
public const int mutationBrain = 1524;
public const int mutationBrainN = 1525;
public const int mutationLightning = 1528;
public const int mutationLightningN = 1529;
@@ -70,18 +72,16 @@ public class MUTATION
public const int mutationBodyN = 1531;
public const int etherGravity = 1550;
public const int mutationLightning = 1528;
public const int mutationColdN = 1527;
public const int etherUgly = 1551;
public const int etherGravity = 1550;
public static readonly int[] IDS = new int[38]
{
1516, 1515, 1514, 1510, 1512, 1511, 1517, 1513, 1518, 1565,
1520, 1564, 1563, 1519, 1561, 1560, 1559, 1558, 1557, 1556,
1555, 1554, 1553, 1552, 1562, 1522, 1521, 1523, 1524, 1526,
1527, 1525, 1529, 1530, 1531, 1550, 1528, 1551
1516, 1565, 1510, 1511, 1512, 1513, 1514, 1515, 1517, 1564,
1519, 1563, 1562, 1518, 1560, 1559, 1558, 1557, 1556, 1555,
1554, 1553, 1552, 1551, 1561, 1521, 1520, 1522, 1523, 1525,
1526, 1524, 1528, 1529, 1530, 1531, 1527, 1550
};
}
public class Mutation : Feat
Map
@@ -1424,7 +1424,7 @@ public void Burn(int x, int z, bool instant = false)
}
foreach (Card item in sharedPoint.ListCards())
{
if (item.trait.CanBeDestroyed && !item.trait.IsDoor && item.isThing)
if (item.trait.CanBeDestroyed && !item.trait.IsDoor && !item.isFireproof && !item.category.IsChildOf("currency") && item.rarity < Rarity.Legendary && !(item.trait is TraitFigure) && item.isThing)
{
if (instant)
{
POLICY
@@ -49,25 +49,25 @@ public class POLICY
public const int incomeTransfer = 2711;
public const int nocturnal_life = 2508;
public const int inquisition = 2507;
public const int noAnimal = 2709;
public const int noMother = 2710;
public const int wealth_tax = 2500;
public const int impressment = 2504;
public const int prohibition = 2503;
public const int food_for_people = 2502;
public const int faith_tax = 2501;
public const int impressment = 2504;
public const int legal_drug = 2505;
public const int human_right = 2506;
public const int faith_tax = 2501;
public const int nocturnal_life = 2508;
public const int vaccination = 2509;
@@ -77,16 +77,16 @@ public class POLICY
public const int resident_tax = 2512;
public const int inquisition = 2507;
public const int wealth_tax = 2500;
public const int taxfree = 2514;
public const int auto_farm = 2707;
public const int demon_invocation = 2706;
public const int resident_wanted = 2513;
public const int demon_invocation = 2706;
public const int taxTransfer = 2705;
public const int weed_no = 2703;
@@ -109,9 +109,9 @@ public class POLICY
{
2812, 2815, 2814, 2813, 2712, 2810, 2800, 2715, 2816, 2811,
2817, 2824, 2819, 2820, 2821, 2822, 2823, 2825, 2826, 2827,
2828, 2818, 2711, 2508, 2709, 2710, 2500, 2504, 2503, 2502,
2505, 2506, 2501, 2509, 2510, 2511, 2512, 2507, 2514, 2707,
2706, 2513, 2705, 2703, 2704, 2701, 2700, 2516, 2515, 2702,
2828, 2818, 2711, 2507, 2709, 2710, 2503, 2502, 2501, 2504,
2505, 2506, 2508, 2509, 2510, 2511, 2512, 2500, 2514, 2707,
2513, 2706, 2705, 2703, 2704, 2701, 2700, 2516, 2515, 2702,
2708
};
}
QuestDeliver
@@ -100,7 +100,7 @@ public virtual bool IsDestThing(Thing t)
{
return false;
}
if (!t.c_isImportant && t.Num >= num && t.IsIdentified && t.things.Count == 0 && !t.isEquipped)
if (!t.c_isImportant && t.Num >= num && t.IsIdentified && (!t.IsContainer || t.things.Count == 0) && !t.isEquipped)
{
if (t.id == idThing)
{
SKILL
@@ -8,15 +8,15 @@ public class SKILL
public const int shield = 123;
public const int weaponCrossbow = 109;
public const int throwing = 108;
public const int weaponBlunt = 111;
public const int weaponScythe = 110;
public const int fireproof = 50;
public const int weaponCrossbow = 109;
public const int acidproof = 51;
public const int fireproof = 50;
public const int tactics = 132;
@@ -28,8 +28,6 @@ public class SKILL
public const int strategy = 135;
public const int climbing = 242;
public const int music = 241;
public const int travel = 240;
@@ -42,6 +40,8 @@ public class SKILL
public const int parasite = 227;
public const int acidproof = 51;
public const int lumberjack = 225;
public const int mining = 220;
@@ -62,13 +62,11 @@ public class SKILL
public const int PDR = 55;
public const int weaponSword = 101;
public const int martial = 100;
public const int evasionPerfect = 57;
public const int fishing = 245;
public const int life = 60;
public const int climbing = 242;
public const int mana = 61;
@@ -94,11 +92,11 @@ public class SKILL
public const int LER = 74;
public const int EDR = 56;
public const int WIL = 75;
public const int CHA = 77;
public const int EDR = 56;
public const int MAG = 76;
public const int LUC = 78;
@@ -112,27 +110,31 @@ public class SKILL
public const int penetration = 92;
public const int martial = 100;
public const int antiMagic = 93;
public const int weaponSword = 101;
public const int weaponAxe = 102;
public const int weaponStaff = 103;
public const int weaponBow = 104;
public const int weaponGun = 105;
public const int weaponPolearm = 106;
public const int weaponDagger = 107;
public const int throwing = 108;
public const int life = 60;
public const int MAG = 76;
public const int CHA = 77;
public const int gathering = 250;
public const int fishing = 245;
public const int weaponGun = 105;
public const int weaponBow = 104;
public const int blacksmith = 256;
public const int carpentry = 255;
public const int elePoison = 915;
public const int eleNether = 916;
@@ -160,9 +162,9 @@ public class SKILL
public const int resLightning = 952;
public const int resDarkness = 953;
public const int eleMind = 914;
public const int resMind = 954;
public const int resDarkness = 953;
public const int resPoison = 955;
@@ -190,15 +192,17 @@ public class SKILL
public const int resCurse = 972;
public const int carpentry = 255;
public const int gathering = 250;
public const int elePoison = 915;
public const int resMind = 954;
public const int eleMind = 914;
public const int eleDarkness = 913;
public const int resDecay = 970;
public const int eleLightning = 912;
public const int eleCold = 911;
public const int blacksmith = 256;
public const int alchemy = 257;
@@ -218,7 +222,7 @@ public class SKILL
public const int farming = 286;
public const int cooking = 287;
public const int building = 288;
public const int appraising = 289;
@@ -226,29 +230,25 @@ public class SKILL
public const int negotiation = 291;
public const int investing = 292;
public const int building = 288;
public const int regeneration = 300;
public const int cooking = 287;
public const int eleCold = 911;
public const int disarmTrap = 293;
public const int eleFire = 910;
public const int env = 313;
public const int disarmTrap = 293;
public const int fun = 312;
public const int investing = 292;
public const int bladder = 311;
public const int hygine = 310;
public const int eleDarkness = 913;
public const int memorization = 307;
public const int faith = 306;
public const int eleLightning = 912;
public const int magicDevice = 305;
@@ -258,26 +258,28 @@ public class SKILL
public const int controlmana = 302;
public const int memorization = 307;
public const int meditation = 301;
public static readonly int[] IDS = new int[131]
public const int faith = 306;
public const int regeneration = 300;
public static readonly int[] IDS = new int[132]
{
131, 122, 130, 123, 109, 111, 110, 50, 51, 132,
120, 133, 226, 135, 242, 241, 240, 237, 235, 230,
227, 225, 220, 210, 207, 200, 152, 151, 150, 134,
55, 101, 57, 245, 60, 61, 62, 64, 65, 66,
67, 68, 70, 71, 72, 73, 74, 56, 75, 77,
78, 79, 80, 90, 91, 92, 100, 102, 103, 104,
106, 107, 108, 76, 250, 105, 256, 916, 917, 918,
919, 920, 921, 922, 923, 924, 925, 950, 951, 952,
953, 954, 955, 956, 957, 958, 959, 960, 961, 962,
963, 964, 965, 971, 972, 255, 915, 914, 970, 912,
257, 258, 259, 260, 261, 280, 281, 285, 286, 287,
289, 290, 291, 292, 288, 300, 911, 910, 313, 293,
312, 311, 310, 913, 306, 305, 304, 303, 302, 307,
301
131, 122, 130, 123, 108, 111, 110, 109, 50, 132,
120, 133, 226, 135, 241, 240, 237, 235, 230, 227,
51, 225, 220, 210, 207, 200, 152, 151, 150, 134,
55, 100, 57, 242, 61, 62, 64, 65, 66, 67,
68, 70, 71, 72, 73, 74, 75, 56, 76, 78,
79, 80, 90, 91, 92, 93, 101, 102, 103, 105,
106, 107, 60, 77, 245, 104, 255, 915, 916, 917,
918, 919, 920, 921, 922, 923, 924, 925, 950, 951,
952, 914, 953, 955, 956, 957, 958, 959, 960, 961,
962, 963, 964, 965, 971, 972, 250, 954, 913, 970,
911, 256, 257, 258, 259, 260, 261, 280, 281, 285,
286, 288, 289, 290, 291, 287, 293, 910, 313, 312,
292, 311, 310, 307, 912, 305, 304, 303, 302, 301,
306, 300
};
}
public class Skill : Element
SPELL
@@ -40,7 +40,7 @@ public class SPELL
public const int puddle_Nether = 50906;
public const int ball_Mind = 50104;
public const int weapon_Nether = 50806;
public const int miasma_Nether = 50706;
@@ -82,17 +82,17 @@ public class SPELL
public const int funnel_Nether = 50606;
public const int weapon_Nether = 50806;
public const int ball_Mind = 50104;
public const int weapon_Mind = 50804;
public const int puddle_Ether = 50912;
public const int ball_Acid = 50113;
public const int hand_Holy = 50409;
public const int miasma_Darkness = 50703;
public const int puddle_Ether = 50912;
public const int ball_Acid = 50113;
public const int miasma_Darkness = 50703;
public const int bolt_Acid = 50313;
@@ -196,7 +196,7 @@ public class SPELL
public const int funnel_Darkness = 50603;
public const int SpDrawMetal = 9502;
public const int SpDrawMonster = 9501;
public const int hand_Darkness = 50403;
@@ -366,7 +366,7 @@ public class SPELL
public const int ball_Fire = 50100;
public const int SpDrawMonster = 9501;
public const int SpDrawMetal = 9502;
public const int SpGravity = 8708;
@@ -424,14 +424,14 @@ public class SPELL
{
50107, 50903, 50307, 50407, 50507, 50607, 50707, 50807, 50108, 50803,
50109, 50308, 50408, 50508, 50608, 50708, 50808, 50908, 50907, 50906,
50104, 50706, 50904, 50704, 50105, 50604, 50305, 50405, 50505, 50605,
50806, 50706, 50904, 50704, 50105, 50604, 50305, 50405, 50505, 50605,
50504, 50705, 50404, 50805, 50905, 50106, 50304, 50306, 50406, 50506,
50606, 50806, 50804, 50912, 50409, 50703, 50113, 50313, 50413, 50513,
50606, 50104, 50804, 50113, 50409, 50912, 50703, 50313, 50413, 50513,
50613, 50713, 50813, 50913, 50114, 50314, 50414, 50514, 50614, 50714,
50814, 50914, 50115, 50315, 50415, 50515, 50615, 50715, 50812, 50712,
50612, 50512, 50509, 50609, 50709, 50809, 50909, 50110, 50310, 50410,
50510, 50610, 50710, 50309, 50810, 50111, 50311, 50411, 50511, 50611,
50711, 50811, 50911, 50112, 50312, 50412, 50910, 50603, 9502, 50403,
50711, 50811, 50911, 50112, 50312, 50412, 50910, 50603, 9501, 50403,
8300, 8380, 8390, 8400, 8401, 8402, 8403, 8404, 8405, 8406,
8430, 8288, 8450, 8471, 8480, 8490, 8491, 8500, 8501, 8502,
8503, 8504, 8506, 8510, 8470, 8700, 8286, 8284, 50815, 7001,
@@ -440,7 +440,7 @@ public class SPELL
8280, 8281, 8221, 50503, 8702, 8706, 50400, 50500, 50600, 50700,
50800, 50900, 50101, 50301, 50401, 50501, 50601, 50300, 50701, 50901,
50102, 50302, 50402, 50502, 50602, 50702, 50802, 50902, 50103, 50303,
50801, 8704, 50100, 9501, 8708, 8710, 8770, 8775, 8776, 8780,
50801, 8704, 50100, 9502, 8708, 8710, 8770, 8775, 8776, 8780,
8790, 8791, 8800, 8801, 9000, 9503, 9001, 9003, 9004, 9005,
9006, 9007, 9050, 9150, 9151, 9160, 9200, 9500, 9002, 50915
};
StatsMana
public class StatsMana : Stats
{
public override int max => Mathf.Max(1, ((BaseStats.CC.MAG * 2 + BaseStats.CC.WIL + BaseStats.CC.LER / 2) * Mathf.Min(BaseStats.CC.LV, 25) / 25 + BaseStats.CC.MAG + 10) * BaseStats.CC.Evalue(61) / 100 * ((BaseStats.CC.IsPCFaction ? 100 : (100 + (int)BaseStats.CC.rarity * 250)) + (BaseStats.CC.IsPC ? (EClass.player.lastEmptyAlly * BaseStats.CC.Evalue(1646)) : 0)) / 100);
public override int max => Mathf.Max(1, ((BaseStats.CC.MAG * 2 + BaseStats.CC.WIL + BaseStats.CC.LER / 2) * Mathf.Min(BaseStats.CC.LV, 25) / 25 + BaseStats.CC.MAG + 10) * (BaseStats.CC.Evalue(61) - BaseStats.CC.Evalue(93)) / 100 * ((BaseStats.CC.IsPCFaction ? 100 : (100 + (int)BaseStats.CC.rarity * 250)) + (BaseStats.CC.IsPC ? (EClass.player.lastEmptyAlly * BaseStats.CC.Evalue(1646)) : 0)) / 100);
public override int min => -9999;
Thing
@@ -154,7 +154,7 @@ public override void SetSource()
if (source == null)
{
Debug.LogWarning("Thing " + id + " not found");
id = "1101";
id = "ash3";
source = EClass.sources.things.map[id];
}
}
TraitAltar
@@ -153,10 +153,15 @@ public void OnOffer(Chara c, Thing t)
{
if (t.HasTag(CTAG.godArtifact) && t.c_idDeity == Deity.id)
{
int encLV = t.encLV;
_ = t.encLV;
t.Destroy();
Religion.Reforge(t.id);
t.SetEncLv(encLV);
Thing thing = Religion.Reforge(t.id);
thing.SetEncLv(t.encLV);
thing.SetBlessedState(t.blessedState);
if (t.IsIdentified)
{
thing.Identify(show: true, IDTSource.SuperiorIdentify);
}
return;
}
if (EClass.pc.IsEyth)
TraitFoodPreparedPackage
@@ -4,7 +4,11 @@ public class TraitFoodPreparedPackage : TraitFood
public override bool CanEat(Chara c)
{
return owner.idSkin == 1;
if (c.IsPC)
{
return owner.idSkin == 1;
}
return true;
}
public override bool CanUse(Chara c)
TraitWrench
@@ -136,7 +136,7 @@ public override void TrySetHeldAct(ActPlan p)
Msg.Say("noMoreUpgrade", t, owner.GetName(NameStyle.Full, 1));
}
return false;
});
}, t);
}
});
}
WindowChara
@@ -664,9 +664,27 @@ public void RefreshSkill(int idTab)
return false;
}
}
else if ((a.owner == chara.elements && a.vLink == 0 && !a.IsFactionElement(chara)) || a.source.category == "resist")
else
{
return false;
switch (a.id)
{
case 55:
case 56:
case 57:
case 68:
case 90:
case 91:
case 93:
if (a.vSource != 0)
{
return true;
}
break;
}
if ((a.owner == chara.elements && a.vLink == 0 && !a.IsFactionElement(chara)) || a.source.category == "resist")
{
return false;
}
}
return true;
});