EA 23.102 Nightly
March 13, 2025
17 files modified. 1 new file created.
Important Changes
None.
Card
@@ -3076,6 +3076,8 @@ public void RemoveThing(Thing thing)
}
EClass.player.RefreshCurrentHotItem();
ActionMode.AdvOrRegion.updatePlans = true;
LayerInventory.SetDirty(thing);
Debug.Log(thing);
}
RecalculateFOV();
}
CardRenderer
@@ -375,6 +375,7 @@ public SourcePref GetPref()
case 2625:
return EClass.core.refs.prefs.sonwputit1;
case 2320:
case 2611:
case 2620:
case 2622:
case 2624:
Chara
@@ -1714,7 +1714,7 @@ public void RefreshSpeed(Element.BonusInfo info = null)
info?.AddFix(EClass.player.lastEmptyAlly * 10 - 10, "exceedParty".lang());
}
}
else if (base.LV >= 1000 && !EClass.game.principal.disableVoidBlessing)
else if (base.LV >= 1000 && !EClass.game.principal.disableVoidBlessing && !base.IsPCFactionOrMinion)
{
num += EClass.curve((base.LV - 900) / 100 * 10, 500, 100);
info?.AddFix(EClass.curve((base.LV - 900) / 100 * 10, 500, 100), "enemySpeedBuff".lang());
@@ -2953,7 +2953,7 @@ public void TryPush(Point point)
c.PlayEffect("push");
}
c.MoveByForce(newPoint, this, checkWall: true);
if (!c.IsPC && c.trait is TraitRogue && EClass.rnd(3) == 0 && GetCurrency() > 20)
if (!c.IsPC && c.trait is TraitRogue && EClass.rnd(3) == 0 && GetCurrency() > 20 && !HasElement(426))
{
int num = EClass.rndHalf(10 + Mathf.Min(GetCurrency() / 100, 1000));
c.Talk("pushed");
@@ -2973,7 +2973,7 @@ public void TryPush(Point point)
public bool CanReplace(Chara c)
{
if (c.IsMultisize || !c.trait.CanBePushed || c.noMove || IsHostile(c) || IsMinion || (EClass._zone.IsRegion && !c.IsPCFactionOrMinion))
if (c.IsMultisize || !c.trait.CanBePushed || c.isRestrained || c.noMove || IsHostile(c) || IsMinion || (EClass._zone.IsRegion && !c.IsPCFactionOrMinion))
{
return false;
}
@@ -4519,6 +4519,7 @@ public void RestockInventory(bool onCreate)
break;
case "farris":
Restock("lute", 1);
Restock("book_story_home", 1);
break;
case "begger":
break;
c.ModAffinity(EClass.pc, a, show);
return;
}
int num = StatsHygiene.GetAffinityMod(EClass.pc.hygiene.GetPhase());
int num = StatsHygiene.GetAffinityMod(EClass.pc.hygiene.GetPhase()) + (HasElement(417) ? 20 : 0);
if (IsPCFaction && homeBranch != null)
{
num += (int)Mathf.Sqrt(homeBranch.Evalue(2117)) * 5;
CoreDebug
@@ -443,8 +443,9 @@ public void QuickStart()
thing = ThingGen.Create("pouch");
for (int k = 0; k < 30; k++)
{
thing.AddCard(ThingGen.Create("mathammer", MATERIAL.GetRandomMaterial(100).alias));
thing.AddCard(ThingGen.Create("mathammer", MATERIAL.GetRandomMaterial(100).alias)).SetNum(10);
}
thing.AddCard(ThingGen.Create("mathammer", 102)).SetNum(10);
EClass.pc.AddCard(thing);
thing = ThingGen.Create("pouch");
for (int l = 0; l < 30; l++)
@@ -519,7 +520,6 @@ public void QuickStart()
thing.AddCard(ThingGen.Create("gem").SetNum(99).ChangeMaterial("rubinus"));
thing.AddCard(ThingGen.Create("flower_white").SetNum(99));
thing.AddCard(ThingGen.Create("bait").SetNum(10));
thing.AddCard(ThingGen.Create("seed").SetNum(99));
EClass.pc.AddCard(thing);
thing.Dye("rubinus");
Thing thing6 = ThingGen.Create("quiver");
@@ -542,7 +542,7 @@ public void QuickStart()
{
if (row3.tag.Contains("seed"))
{
Thing c = TraitSeed.MakeSeed(row3).SetNum(100);
Thing c = TraitSeed.MakeSeed(row3).SetNum(10);
thing.AddCard(c);
}
}
@@ -583,6 +583,7 @@ public void QuickStart()
EClass.pc.AddThing("record");
EClass.pc.AddThing("deed").SetNum(5);
EClass.pc.AddThing("book_story");
EClass.pc.AddThing("book_story_home");
EClass.pc.AddThing("book_tutorial");
EClass.pc.AddThing("water").SetNum(20).SetBlessedState(BlessedState.Blessed);
EClass.pc.AddThing("water").SetNum(20).SetBlessedState(BlessedState.Cursed);
@@ -647,6 +648,13 @@ public void QuickStart()
EClass.game.quests.Add("quru_past1");
EClass.game.quests.Add("quru_past2");
EClass.game.quests.Add("pre_debt");
EClass.game.quests.Add("exile_meet");
EClass.game.quests.Add("exile_quru");
EClass.game.quests.Add("exile_kettle");
EClass.game.quests.Add("exile_whisper");
EClass.game.quests.Add("exile_voice");
EClass.game.quests.Add("into_darkness");
EClass.game.quests.Add("demitas_spellwriter");
}
static Thing AddAbility(string id)
{
@@ -914,25 +922,31 @@ public void UpdateInput()
}
if (Input.GetKeyDown(KeyCode.F2))
{
for (int i = 0; i < 20; i++)
Chara targetChara = EClass.scene.mouseTarget.TargetChara;
if (targetChara != null)
{
Debug.Log(Rand.Range(0, 2));
EClass.pc.Pick(targetChara.MakeMilk());
EClass.pc.Pick(targetChara.MakeGene());
EClass.pc.Pick(targetChara.MakeBraineCell());
EClass.pc.Pick(targetChara.MakeEgg(effect: true, 10));
}
EClass.player.recipes.Add("b32");
if (EScriptable.rnd(2) == 0)
if (EClass.game.quests.Get<QuestDebt>() == null)
{
EClass.player.recipes.Add("b118");
}
else
{
EClass.player.recipes.Add("b118-p");
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;
}
if (Input.GetKeyDown(KeyCode.F3))
{
EClass.pc.AddCondition<ConDisease>();
for (int j = 0; j < 10; j++)
for (int i = 0; i < 10; i++)
{
Thing thing = ThingGen.Create("egg_fertilized");
thing.TryMakeRandomItem(40);
@@ -954,9 +968,9 @@ public void UpdateInput()
{
EClass.Branch.ModExp(EClass.Branch.GetNextExp());
}
foreach (Chara chara in EClass._map.charas)
foreach (Chara chara2 in EClass._map.charas)
{
chara.AddExp(chara.ExpToNext);
chara2.AddExp(chara2.ExpToNext);
}
EClass.pc.PlayEffect("boost");
EClass.pc.PlaySound("boost");
@@ -1034,7 +1048,7 @@ public void UpdateInput()
if (Input.GetKey(KeyCode.F9))
{
EClass.scene.paused = false;
for (int k = 0; k < advanceMin; k++)
for (int j = 0; j < advanceMin; j++)
{
EClass.game.updater.FixedUpdate();
}
DramaManager
@@ -275,6 +275,10 @@ public void ParseLine(Dictionary<string, string> item)
}
return;
}
if (LayerDrama.fromBook && action == "editPlaylist")
{
action = "BGM";
}
switch (action)
{
case "disableFullPortrait":
@@ -309,8 +313,8 @@ public void ParseLine(Dictionary<string, string> item)
{
if (p2.StartsWith("*"))
{
Quest quest = EMono.game.quests.Get(p2.TrimStart('*'));
quest?.ChangePhase(p3.ToInt(quest.GetType()));
Quest quest3 = EMono.game.quests.Get(p2.TrimStart('*'));
quest3?.ChangePhase(p3.ToInt(quest3.GetType()));
}
else
{
@@ -413,6 +417,10 @@ public void ParseLine(Dictionary<string, string> item)
break;
}
case "invoke":
if (LayerDrama.fromBook)
{
break;
}
if (jump.IsEmpty())
{
AddEvent(delegate
@@ -657,28 +665,32 @@ public void ParseLine(Dictionary<string, string> item)
AddEvent(new DramaEventExit());
break;
case "acceptQuest":
if (LayerDrama.fromBook)
{
break;
}
AddEvent(delegate
{
Quest quest2 = EMono.game.quests.globalList.Where((Quest a) => a.source.id == p2).First();
EMono.game.quests.globalList.Remove(quest2);
EMono.game.quests.Start(quest2);
Quest quest = EMono.game.quests.globalList.Where((Quest a) => a.source.id == p2).First();
EMono.game.quests.globalList.Remove(quest);
EMono.game.quests.Start(quest);
});
break;
case "startQuest":
AddEvent(delegate
{
Quest quest3 = Quest.Create(p2);
if (!quest3.HasDLC)
Quest quest2 = Quest.Create(p2);
if (!quest2.HasDLC)
{
Msg.Say("(Failed DLC check)");
}
else
{
EMono.game.quests.Start(quest3);
LayerDrama.currentQuest = quest3;
EMono.game.quests.Start(quest2);
LayerDrama.currentQuest = quest2;
if (tg != null && tg.chara != null)
{
Debug.Log("Starting Quest:" + quest3?.ToString() + "/" + tg.chara.quest?.ToString() + "/" + (quest3 == tg.chara.quest));
Debug.Log("Starting Quest:" + quest2?.ToString() + "/" + tg.chara.quest?.ToString() + "/" + (quest2 == tg.chara.quest));
}
}
});
@@ -699,32 +711,44 @@ public void ParseLine(Dictionary<string, string> item)
});
break;
case "addKeyItem":
AddEvent(delegate
if (!LayerDrama.fromBook)
{
EMono.player.ModKeyItem(p2);
});
AddEvent(delegate
{
EMono.player.ModKeyItem(p2);
});
}
break;
case "drop":
AddEvent(delegate
if (!LayerDrama.fromBook)
{
Msg.Say("dropReward");
CardBlueprint.SetNormalRarity();
Thing t = ThingGen.Create(p2);
EMono._zone.AddCard(t, EMono.pc.pos);
});
AddEvent(delegate
{
Msg.Say("dropReward");
CardBlueprint.SetNormalRarity();
Thing t = ThingGen.Create(p2);
EMono._zone.AddCard(t, EMono.pc.pos);
});
}
break;
case "completeQuest":
AddEvent(delegate
if (!LayerDrama.fromBook)
{
EMono.game.quests.Complete(p2.IsEmpty() ? LayerDrama.currentQuest : EMono.game.quests.Get(p2));
LayerDrama.currentQuest = null;
});
AddEvent(delegate
{
EMono.game.quests.Complete(p2.IsEmpty() ? LayerDrama.currentQuest : EMono.game.quests.Get(p2));
LayerDrama.currentQuest = null;
});
}
break;
case "nextPhase":
AddEvent(delegate
if (!LayerDrama.fromBook)
{
EMono.game.quests.Get(p2).NextPhase();
});
AddEvent(delegate
{
EMono.game.quests.Get(p2).NextPhase();
});
}
break;
case "addResource":
AddEvent(delegate
@@ -1011,6 +1035,10 @@ public bool CheckIF(string IF)
string[] array = IF.Split(',');
switch (array[0])
{
case "fromBook":
return LayerDrama.fromBook;
case "!fromBook":
return !LayerDrama.fromBook;
case "WindRest":
return EMono._zone is Zone_WindRest;
case "guild_promote":
ENC
@@ -54,12 +54,10 @@ public class ENC
public const int mod_scatter = 607;
public const int slowCorruption = 412;
public const int bane_animal = 463;
public const int mod_precision = 605;
public const int breathing = 429;
public const int allNeckHunt = 428;
public const int negateNeckHunt = 427;
@@ -72,19 +70,21 @@ public class ENC
public const int negateFear = 423;
public const int negateParalysis = 422;
public const int negateBlind = 421;
public const int negatePoison = 420;
public const int loving = 417;
public const int seeInvisible = 416;
public const int invisibility = 415;
public const int encHit = 414;
public const int encSpell = 411;
public const int breathing = 429;
public const int slowCorruption = 412;
public const int throwReturn = 410;
@@ -94,7 +94,7 @@ public class ENC
public const int travelSpeed = 407;
public const int mod_drill = 606;
public const int resMutation = 406;
public const int slowDecay = 405;
@@ -108,20 +108,24 @@ public class ENC
public const int negateTeleport = 400;
public const int sustain_STR = 440;
public const int mod_drill = 606;
public const int sustain_END = 441;
public const int encSpell = 411;
public const int resMutation = 406;
public const int sustain_STR = 440;
public const int negateParalysis = 422;
public const int slot_rune = 484;
public const int mod_ammo_knockback = 603;
public const int mod_rapid = 602;
public const int mod_reload = 601;
public const int mod_ammo = 600;
public const int mod_ammo_recover = 604;
public const int optimizeMana = 483;
public const int force_weapon = 482;
@@ -136,15 +140,11 @@ public class ENC
public const int bane_god = 466;
public const int bane_machine = 465;
public const int mod_rapid = 602;
public const int bane_man = 464;
public const int bane_fairy = 462;
public const int bane_undead = 461;
public const int bane_machine = 465;
public const int bane_dragon = 460;
@@ -156,24 +156,26 @@ public class ENC
public const int sustain_LER = 444;
public const int bane_undead = 461;
public const int sustain_PER = 443;
public const int sustain_DEX = 442;
public const int bane_animal = 463;
public const int sustain_END = 441;
public const int mod_ammo_knockback = 603;
public const int mod_ammo_recover = 604;
public static readonly int[] IDS = new int[82]
public static readonly int[] IDS = new int[83]
{
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, 412, 605, 429,
428, 427, 426, 425, 424, 423, 422, 421, 420, 416,
415, 414, 411, 410, 409, 408, 407, 606, 405, 404,
403, 402, 401, 400, 440, 441, 406, 484, 601, 600,
604, 483, 482, 481, 480, 468, 467, 466, 465, 602,
464, 462, 461, 460, 447, 446, 445, 444, 443, 442,
463, 603
666, 850, 608, 865, 852, 655, 607, 463, 605, 428,
427, 426, 425, 424, 423, 421, 420, 417, 416, 415,
414, 429, 412, 410, 409, 408, 407, 406, 405, 404,
403, 402, 401, 400, 606, 411, 440, 422, 484, 603,
602, 601, 600, 483, 482, 481, 480, 468, 467, 466,
464, 462, 465, 460, 447, 446, 445, 444, 461, 443,
442, 441, 604
};
}
FACTION
public class FACTION
{
public const int bfHill = 3603;
public const int bfSnow = 3602;
public const int bfBeach = 3604;
public const int bfForest = 3601;
public const int bfCave = 3500;
public const int bfPlain = 3600;
public const int bfSea = 3605;
public const int bfCave = 3500;
public const int bfForest = 3601;
public const int bfFertile = 3700;
public const int bfSnow = 3602;
public const int bfGeyser = 3701;
public const int bfHill = 3603;
public const int bfRuin = 3702;
public const int bfFertile = 3700;
public const int bfBeach = 3604;
public const int bfSea = 3605;
public const int fRation = 2207;
public const int actBuildRecipe = 4005;
public const int bfGeyser = 3701;
public const int fSafety = 2205;
public const int fAttraction = 2206;
public const int fEducation = 2116;
public const int fFood = 2204;
@@ -40,35 +38,41 @@ public class FACTION
public const int fSoil = 2200;
public const int bfTranquil = 3703;
public const int fHeirloom = 2120;
public const int fLoyal = 2117;
public const int fConstruction = 2003;
public const int bfRuin = 3702;
public const int fTaxEvasion = 2119;
public const int fLuck = 2118;
public const int fLoyal = 2117;
public const int fAttraction = 2206;
public const int fAdmin = 2115;
public const int bfVolcano = 3704;
public const int fSafety = 2205;
public const int bfMushroom = 3801;
public const int bfTranquil = 3703;
public const int bfFish = 3706;
public const int bfHunt = 3705;
public const int actBuildInspect = 4006;
public const int actBuildRecipe = 4005;
public const int actBuildCollect = 4004;
public const int actBuildAnywhere = 4003;
public const int actBuildTerrain = 4002;
public const int fEducation = 2116;
public const int actBuildMine = 4001;
public const int actBuildCut = 4000;
public const int bfVolcano = 3704;
public const int bfStart = 3900;
@@ -78,44 +82,40 @@ public class FACTION
public const int bfGum = 3803;
public const int bfHunt = 3705;
public const int bfSilica = 3802;
public const int actBuildCut = 4000;
public const int bfCoal = 3800;
public const int bfMushroom = 3801;
public const int bfLandmark5 = 3784;
public const int bfSilica = 3802;
public const int bfLandmark4 = 3783;
public const int bfFreshAir = 3708;
public const int bfLandmark3 = 3782;
public const int bfBasin = 3709;
public const int bfLandmark2 = 3781;
public const int bfBreed = 3710;
public const int bfLandmark1 = 3780;
public const int bfBreed = 3710;
public const int bfBasin = 3709;
public const int bfMonster = 3707;
public const int bfFreshAir = 3708;
public const int bfLandmark3 = 3782;
public const int bfMonster = 3707;
public const int bfLandmark4 = 3783;
public const int actBuildCollect = 4004;
public const int bfLandmark5 = 3784;
public const int fAdmin = 2115;
public const int bfCoal = 3800;
public const int fConstruction = 2003;
public const int bfLandmark2 = 3781;
public static readonly int[] IDS = new int[52]
{
3603, 3602, 3601, 3600, 3605, 3500, 3700, 3701, 3702, 3604,
2207, 4005, 2205, 2204, 2203, 2202, 2201, 2200, 3703, 2120,
2119, 2118, 2117, 2206, 3704, 3801, 3706, 4006, 4003, 4002,
2116, 4001, 4000, 3900, 3805, 3804, 3803, 3705, 3802, 3800,
3784, 3783, 3782, 3781, 3780, 3710, 3709, 3708, 3707, 4004,
2115, 2003
3604, 3500, 3600, 3601, 3602, 3603, 3700, 3605, 2207, 3701,
2206, 2116, 2204, 2203, 2202, 2201, 2200, 2120, 2117, 2003,
3702, 2119, 2118, 2115, 2205, 3703, 3706, 3705, 4006, 4005,
4004, 4003, 4002, 4001, 3704, 3900, 3805, 3804, 3803, 4000,
3801, 3802, 3708, 3709, 3710, 3780, 3707, 3782, 3783, 3784,
3800, 3781
};
}
public class Faction : EClass
FEAT
public class FEAT
{
public const int featSnail = 1211;
public const int featFaith = 1636;
public const int featMartial = 1635;
public const int featNegotiate = 1634;
public const int featSpotting = 1633;
public const int featEvade = 1632;
public const int featDefense = 1631;
public const int featHardy = 1630;
public const int featSPD = 1629;
public const int featLuck = 1628;
public const int featCHA = 1627;
public const int featWIL = 1626;
public const int featAnimalLover = 1640;
public const int featMAG = 1625;
public const int featLER = 1624;
public const int featPER = 1623;
public const int featEND = 1622;
@@ -41,7 +23,7 @@ public class FEAT
public const int featStamina = 1612;
public const int featMana = 1611;
public const int featLuckyCat = 1412;
public const int featLife = 1610;
@@ -53,37 +35,29 @@ public class FEAT
public const int featSwordsage = 1418;
public const int featLER = 1624;
public const int featResCurse = 1641;
public const int featSleeper = 1642;
public const int featSorter = 1643;
public const int featUndead = 1210;
public const int featWitch = 1417;
public const int featSlowFood = 1200;
public const int featInquisitor = 1416;
public const int featManaBond = 1201;
public const int featFoxMaid = 1415;
public const int featFastLearner = 1202;
public const int featWhiteVixen = 1414;
public const int featGrowParts = 1203;
public const int featFairysan = 1413;
public const int featFairyWeak = 1204;
public const int featSPD = 1629;
public const int featCannibalism = 1205;
public const int featMana = 1611;
public const int featMelilithCurse = 1206;
public const int featHardy = 1630;
public const int featFoxBless = 1207;
public const int featParty = 1645;
public const int featFoxLearn = 1208;
public const int featEvade = 1632;
public const int featFluffyTail = 1209;
public const int featEarthStrength = 1411;
public const int featChef = 1658;
public const int featManaCost = 1657;
public const int featScavenger = 1656;
@@ -101,23 +75,55 @@ public class FEAT
public const int featDefender = 1649;
public const int featDefense = 1631;
public const int featRapidMagic = 1648;
public const int featLonelySoul = 1646;
public const int featBodyParts = 1644;
public const int featSorter = 1643;
public const int featSleeper = 1642;
public const int featResCurse = 1641;
public const int featAnimalLover = 1640;
public const int featFaith = 1636;
public const int featMartial = 1635;
public const int featNegotiate = 1634;
public const int featSpotting = 1633;
public const int featSummoner = 1647;
public const int featLonelySoul = 1646;
public const int featReboot = 1410;
public const int featParty = 1645;
public const int featChef = 1658;
public const int featBodyParts = 1644;
public const int featPaladin2 = 1408;
public const int featWitch = 1417;
public const int featLoyal = 1225;
public const int featInquisitor = 1416;
public const int featUnderground = 1226;
public const int featManaCost = 1657;
public const int featServant = 1227;
public const int featWhiteVixen = 1414;
public const int featDemigod = 1228;
public const int featLittleOne = 1229;
public const int featAdam = 1230;
public const int featNirvana = 1231;
public const int featBaby = 1232;
public const int featHeavyEater = 1234;
public const int featLightEater = 1235;
@@ -133,41 +139,51 @@ public class FEAT
public const int featGod_earth1 = 1305;
public const int featGod_wind1 = 1310;
public const int featGod_machine1 = 1315;
public const int featGod_healing1 = 1320;
public const int featHeavyEater = 1234;
public const int featGod_harvest1 = 1325;
public const int featGod_harmony1 = 1335;
public const int featGod_luck1 = 1330;
public const int featGod_oblivion1 = 1340;
public const int featShiva = 1224;
public const int featGod_trickery1 = 1345;
public const int featAcidBody = 1223;
public const int featGod_moonshadow1 = 1350;
public const int featSplit = 1222;
public const int featGod_strife1 = 1355;
public const int featSpike = 1221;
public const int featWarrior = 1400;
public const int featBoost = 1409;
public const int featThief = 1401;
public const int featSlowFood = 1200;
public const int featWizard = 1402;
public const int featManaBond = 1201;
public const int featFarmer = 1403;
public const int featFastLearner = 1202;
public const int featGod_luck1 = 1330;
public const int featGrowParts = 1203;
public const int featArcher = 1404;
public const int featFairyWeak = 1204;
public const int featCosmicHorror = 1233;
public const int featCannibalism = 1205;
public const int featNirvana = 1231;
public const int featMelilithCurse = 1206;
public const int featFoxMaid = 1415;
public const int featFoxBless = 1207;
public const int featFoxLearn = 1208;
public const int featGod_harmony1 = 1335;
public const int featFluffyTail = 1209;
public const int featSnail = 1211;
public const int featFairyResist = 1212;
public const int featElea = 1213;
@@ -185,64 +201,48 @@ public class FEAT
public const int featFate = 1220;
public const int featBaby = 1232;
public const int featSpike = 1221;
public const int featAcidBody = 1223;
public const int featUndead = 1210;
public const int featFairyResist = 1212;
public const int featGod_oblivion1 = 1340;
public const int featShiva = 1224;
public const int featCosmicHorror = 1233;
public const int featLoyal = 1225;
public const int featGod_moonshadow1 = 1350;
public const int featUnderground = 1226;
public const int featGod_trickery1 = 1345;
public const int featServant = 1227;
public const int featGod_strife1 = 1355;
public const int featDemigod = 1228;
public const int featWarrior = 1400;
public const int featLittleOne = 1229;
public const int featThief = 1401;
public const int featAdam = 1230;
public const int featFarmer = 1403;
public const int featSplit = 1222;
public const int featArcher = 1404;
public const int featPianist = 1405;
public const int featGod_wind1 = 1310;
public const int featPaladin = 1407;
public const int featTourist = 1406;
public const int featBoost = 1409;
public const int featEarthStrength = 1411;
public const int featLuckyCat = 1412;
public const int featReboot = 1410;
public const int featFairysan = 1413;
public const int featWizard = 1402;
public const int featPaladin2 = 1408;
public const int featPaladin = 1407;
public static readonly int[] IDS = new int[113]
{
1211, 1636, 1635, 1634, 1633, 1632, 1631, 1630, 1629, 1628,
1627, 1626, 1640, 1625, 1623, 1622, 1621, 1620, 1612, 1611,
1610, 1421, 1420, 1419, 1418, 1624, 1641, 1642, 1643, 1210,
1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209,
1658, 1656, 1655, 1654, 1653, 1652, 1651, 1650, 1649, 1648,
1647, 1646, 1645, 1644, 1417, 1416, 1657, 1414, 1235, 1236,
1237, 1238, 1239, 1300, 1305, 1315, 1320, 1234, 1325, 1335,
1340, 1345, 1350, 1355, 1400, 1401, 1402, 1403, 1330, 1404,
1233, 1231, 1415, 1213, 1214, 1215, 1216, 1217, 1218, 1219,
1220, 1232, 1221, 1223, 1212, 1224, 1225, 1226, 1227, 1228,
1229, 1230, 1222, 1405, 1310, 1407, 1406, 1409, 1411, 1412,
1410, 1413, 1408
1628, 1627, 1626, 1625, 1624, 1623, 1622, 1621, 1620, 1612,
1412, 1610, 1421, 1420, 1419, 1418, 1417, 1416, 1415, 1414,
1413, 1629, 1611, 1630, 1645, 1632, 1411, 1657, 1656, 1655,
1654, 1653, 1652, 1651, 1650, 1649, 1631, 1648, 1646, 1644,
1643, 1642, 1641, 1640, 1636, 1635, 1634, 1633, 1647, 1410,
1658, 1408, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232,
1234, 1235, 1236, 1237, 1238, 1239, 1300, 1305, 1310, 1315,
1320, 1325, 1330, 1224, 1223, 1222, 1221, 1409, 1200, 1201,
1202, 1203, 1204, 1205, 1206, 1207, 1208, 1335, 1209, 1211,
1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1210,
1340, 1233, 1350, 1345, 1355, 1400, 1401, 1403, 1404, 1405,
1406, 1402, 1407
};
}
public class Feat : Element
FOOD
public class FOOD
{
public const int gainWeight = 705;
public const int food_CHA = 700;
public const int food_bug = 704;
public const int food_cat = 701;
public const int food_love = 703;
public const int food_god = 758;
public const int justcooked = 757;
public const int food_poison = 702;
public const int food_cat = 701;
public const int gainWeight = 705;
public const int justcooked = 757;
public const int food_bug = 704;
public const int food_god = 758;
public const int food_love = 703;
public const int loseWeight = 706;
public const int food_CHA = 700;
public static readonly int[] IDS = new int[9] { 705, 704, 703, 702, 701, 757, 758, 706, 700 };
public static readonly int[] IDS = new int[9] { 700, 701, 758, 757, 702, 705, 704, 703, 706 };
}
LayerDrama
@@ -13,6 +13,8 @@ public class LayerDrama : ELayer
public static bool maxBGMVolume;
public static bool fromBook;
public static string forceJump;
public static LayerDrama Instance;
@@ -114,6 +116,7 @@ public override void OnKill()
ELayer.ui.Show();
keepBGM = false;
haltPlaylist = false;
fromBook = false;
SoundManager.current.haltUpdate = false;
SoundManager.forceBGM = false;
ELayer.ui.hud.hint.cg.alpha = 1f;
MUTATION
public class MUTATION
{
public const int mutationSpeedN = 1519;
public const int mutationSpeed = 1518;
public const int mutationRegen = 1516;
public const int mutationRegenN = 1517;
public const int etherPoisonHand = 1565;
public const int mutationRegen = 1516;
public const int mutationSkin = 1510;
public const int mutationSkinN = 1511;
public const int mutationDex = 1514;
public const int mutationEye = 1512;
public const int mutationSkin = 1510;
public const int mutationEyeN = 1513;
public const int mutationStr = 1520;
public const int mutationDex = 1514;
public const int mutationDexN = 1515;
public const int mutationStrN = 1521;
public const int mutationEyeN = 1513;
public const int mutationChaN = 1523;
public const int mutationRegenN = 1517;
public const int etherPoisonHand = 1565;
public const int etherManaBattery = 1564;
public const int mutationCha = 1522;
public const int mutationSpeedN = 1519;
public const int etherProvoke = 1563;
public const int etherArmor = 1562;
public const int etherStupid = 1561;
public const int mutationSpeed = 1518;
public const int etherWeak = 1560;
@@ -50,38 +42,46 @@ public class MUTATION
public const int etherWing = 1554;
public const int etherManaBattery = 1564;
public const int etherEye = 1553;
public const int mutationBrain = 1524;
public const int etherFeet = 1552;
public const int mutationCold = 1526;
public const int etherUgly = 1551;
public const int mutationColdN = 1527;
public const int etherStupid = 1561;
public const int mutationLightning = 1528;
public const int etherGravity = 1550;
public const int mutationLightningN = 1529;
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 mutationBodyN = 1531;
public const int mutationStrN = 1521;
public const int etherGravity = 1550;
public const int mutationColdN = 1527;
public const int etherUgly = 1551;
public const int mutationLightning = 1528;
public const int etherFeet = 1552;
public const int mutationLightningN = 1529;
public const int mutationBody = 1530;
public const int mutationBodyN = 1531;
public const int mutationCold = 1526;
public static readonly int[] IDS = new int[38]
{
1519, 1518, 1517, 1516, 1511, 1514, 1512, 1510, 1520, 1515,
1521, 1513, 1523, 1565, 1522, 1563, 1562, 1561, 1560, 1559,
1558, 1557, 1556, 1555, 1554, 1564, 1553, 1524, 1526, 1527,
1528, 1529, 1525, 1531, 1550, 1551, 1552, 1530
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, 1550, 1520, 1522, 1523, 1524,
1525, 1521, 1527, 1528, 1529, 1530, 1531, 1526
};
}
public class Mutation : Feat
POLICY
@@ -23,7 +23,7 @@ public class POLICY
public const int store_premium = 2817;
public const int celeb = 2822;
public const int license_stolen = 2824;
public const int license_furniture = 2819;
@@ -31,11 +31,11 @@ public class POLICY
public const int legendary_heirloom = 2821;
public const int forcePanty = 2712;
public const int celeb = 2822;
public const int legendary_exhibition = 2823;
public const int license_stolen = 2824;
public const int forcePanty = 2712;
public const int milk_fan = 2825;
@@ -49,53 +49,51 @@ public class POLICY
public const int incomeTransfer = 2711;
public const int self_sufficient = 2511;
public const int nocturnal_life = 2508;
public const int noAnimal = 2709;
public const int noMother = 2710;
public const int wealth_tax = 2500;
public const int prohibition = 2503;
public const int faith_tax = 2501;
public const int food_for_people = 2502;
public const int faith_tax = 2501;
public const int prohibition = 2503;
public const int impressment = 2504;
public const int noMother = 2710;
public const int legal_drug = 2505;
public const int inquisition = 2507;
public const int human_right = 2506;
public const int nocturnal_life = 2508;
public const int inquisition = 2507;
public const int vaccination = 2509;
public const int ban_radio = 2510;
public const int self_sufficient = 2511;
public const int resident_tax = 2512;
public const int human_right = 2506;
public const int impressment = 2504;
public const int taxfree = 2514;
public const int auto_farm = 2707;
public const int noDM = 2708;
public const int resident_wanted = 2513;
public const int demon_invocation = 2706;
public const int taxTransfer = 2705;
public const int noDM = 2708;
public const int weed_no = 2703;
public const int border_watch = 2704;
public const int trash_no = 2702;
public const int trash_sort = 2701;
public const int demon_invocation = 2706;
public const int auto_farm = 2707;
public const int energy_conservation = 2700;
@@ -103,16 +101,18 @@ public class POLICY
public const int stop_growth = 2515;
public const int trash_no = 2702;
public const int trash_sort = 2701;
public const int border_watch = 2704;
public static readonly int[] IDS = new int[51]
{
2816, 2715, 2800, 2810, 2811, 2812, 2813, 2814, 2815, 2817,
2822, 2819, 2820, 2821, 2712, 2823, 2824, 2825, 2826, 2827,
2828, 2818, 2711, 2511, 2709, 2710, 2500, 2503, 2502, 2501,
2504, 2505, 2507, 2508, 2509, 2510, 2512, 2506, 2514, 2707,
2513, 2706, 2705, 2708, 2703, 2704, 2701, 2700, 2516, 2515,
2702
2824, 2819, 2820, 2821, 2822, 2823, 2712, 2825, 2826, 2827,
2828, 2818, 2711, 2508, 2709, 2500, 2501, 2502, 2503, 2710,
2505, 2506, 2507, 2509, 2510, 2511, 2512, 2504, 2514, 2708,
2513, 2705, 2703, 2702, 2706, 2707, 2700, 2516, 2515, 2701,
2704
};
}
public class Policy : EClass
Player
@@ -608,6 +608,7 @@ public bool PlayStory(string idBook, int id, bool fromBook = false)
}
Dictionary<string, string> storyRow = GetStoryRow(idBook, id);
SoundManager.ForceBGM();
LayerDrama.fromBook = fromBook;
LayerDrama.Activate(idBook, storyRow["sheet"], storyRow["step"]);
if (!fromBook && !playedStories.Contains(id))
{
SKILL
public class SKILL
{
public const int twowield = 131;
public const int armorLight = 120;
public const int twohand = 130;
@@ -8,8 +8,6 @@ public class SKILL
public const int armorHeavy = 122;
public const int armorLight = 120;
public const int acidproof = 51;
public const int weaponScythe = 110;
@@ -18,17 +16,17 @@ public class SKILL
public const int fireproof = 50;
public const int PDR = 55;
public const int twowield = 131;
public const int tactics = 132;
public const int PDR = 55;
public const int weaponBlunt = 111;
public const int marksman = 133;
public const int tactics = 132;
public const int riding = 226;
public const int evasion = 150;
public const int strategy = 135;
public const int eyeofmind = 134;
public const int climbing = 242;
@@ -44,11 +42,13 @@ public class SKILL
public const int parasite = 227;
public const int lumberjack = 225;
public const int marksman = 133;
public const int riding = 226;
public const int mining = 220;
public const int fishing = 245;
public const int spotting = 210;
public const int weightlifting = 207;
@@ -58,16 +58,18 @@ public class SKILL
public const int evasionPlus = 151;
public const int evasion = 150;
public const int strategy = 135;
public const int eyeofmind = 134;
public const int lumberjack = 225;
public const int EDR = 56;
public const int weaponSword = 101;
public const int throwing = 108;
public const int weaponDagger = 107;
public const int fishing = 245;
public const int life = 60;
public const int mana = 61;
@@ -94,11 +96,11 @@ public class SKILL
public const int LER = 74;
public const int WIL = 75;
public const int evasionPerfect = 57;
public const int MAG = 76;
public const int WIL = 75;
public const int CHA = 77;
public const int LUC = 78;
@@ -126,13 +128,11 @@ public class SKILL
public const int weaponPolearm = 106;
public const int weaponDagger = 107;
public const int CHA = 77;
public const int MAG = 76;
public const int gathering = 250;
public const int spotting = 210;
public const int weaponSword = 101;
public const int blacksmith = 256;
@@ -268,13 +268,13 @@ public class SKILL
public static readonly int[] IDS = new int[133]
{
131, 130, 123, 122, 120, 51, 110, 109, 50, 55,
132, 111, 133, 226, 135, 242, 241, 240, 237, 235,
230, 227, 225, 220, 245, 207, 200, 152, 151, 150,
134, 56, 101, 108, 60, 61, 62, 64, 65, 66,
67, 68, 70, 71, 72, 73, 74, 75, 57, 76,
78, 79, 80, 90, 91, 92, 93, 100, 102, 103,
104, 105, 106, 107, 77, 250, 210, 256, 916, 917,
120, 130, 123, 122, 51, 110, 109, 50, 131, 55,
111, 132, 150, 134, 242, 241, 240, 237, 235, 230,
227, 133, 226, 220, 210, 207, 200, 152, 151, 135,
225, 56, 108, 107, 245, 60, 61, 62, 64, 65,
66, 67, 68, 70, 71, 72, 73, 74, 57, 75,
77, 78, 79, 80, 90, 91, 92, 93, 100, 102,
103, 104, 105, 106, 76, 250, 101, 256, 916, 917,
918, 919, 920, 921, 922, 923, 924, 925, 926, 950,
951, 952, 915, 953, 955, 956, 957, 958, 959, 960,
961, 962, 963, 964, 965, 970, 972, 255, 954, 914,
TraitDrinkMilkMother
@@ -64,17 +64,25 @@ public override void OnDrink(Chara c)
c.Say("grow_adult", c);
c.PlaySound("mutation");
c.PlayEffect("mutation");
string id = c.id;
if (!(id == "putty_snow"))
switch (c.id)
{
if (id == "putty_snow_gold" && c.idSkin >= 1)
case "putty_snow":
if (c.idSkin >= 4)
{
c.idSkin = (c.idSkin - 4) / 2;
}
break;
case "putty_snow_gold":
if (c.idSkin >= 1)
{
c.idSkin = 0;
}
}
else if (c.idSkin >= 4)
{
c.idSkin = (c.idSkin - 4) / 2;
break;
case "chicken":
case "duck":
case "shamo":
c.idSkin = 0;
break;
}
}
else
TraitFoodEggFertilized
@@ -64,17 +64,25 @@ public static Chara Incubate(Thing egg, Point pos, Card incubator = null)
public static void MakeBaby(Chara c, int baby)
{
c.SetFeat(1232, baby, msg: true);
string id = c.id;
if (!(id == "putty_snow"))
switch (c.id)
{
if (id == "putty_snow_gold" && c.idSkin == 0)
case "putty_snow":
if (c.idSkin <= 3)
{
c.idSkin = 4 + c.idSkin * 2 + EClass.rnd(2);
}
break;
case "putty_snow_gold":
if (c.idSkin == 0)
{
c.idSkin = 1 + EClass.rnd(2);
}
}
else if (c.idSkin <= 3)
{
c.idSkin = 4 + c.idSkin * 2 + EClass.rnd(2);
break;
case "shamo":
case "chicken":
case "duck":
c.idSkin = 1;
break;
}
}
+TraitStoryBookHome
File Created
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
public class TraitStoryBookHome : TraitScroll
{
public override void OnRead(Chara c)
{
List<SourceQuest.Row> list = EClass.sources.quests.rows.Where((SourceQuest.Row q) => IsAvailable(q)).ToList();
EClass.ui.AddLayer<LayerList>().SetSize().SetList2(list, (SourceQuest.Row a) => GetTitle(a), delegate(SourceQuest.Row a, ItemGeneral b)
{
LayerDrama.fromBook = true;
string text3 = a.drama[0];
string idStep = "quest_" + a.id;
if (a.id == "pre_debt_runaway")
{
idStep = "loytelEscaped";
}
LayerDrama.Activate(text3, text3, idStep, GetChara(text3));
}, delegate
{
}, autoClose: false);
static Chara GetChara(string id)
{
return EClass.game.cards.globalCharas.Find(id);
}
static string GetTitle(SourceQuest.Row r)
{
string name = r.GetName();
string text = Regex.Replace(r.id, "([0-9]*$)", "");
string str = r.id.Replace(text, "");
int num = 1;
if (!str.IsEmpty())
{
num = 1 + str.ToInt();
}
if (name.IsEmpty())
{
r = EClass.sources.quests.map.TryGetValue(text);
if (r != null)
{
name = r.GetName();
}
}
return name + " " + num;
}
static bool IsAvailable(SourceQuest.Row r)
{
if (r.drama.IsEmpty() || GetChara(r.drama[0]) == null)
{
return false;
}
if (!EClass.debug.showExtra && r.tags.Contains("debug"))
{
return false;
}
string text2 = Regex.Replace(r.id, "([0-9]*$)", "");
if (EClass.game.quests.completedIDs.Contains(r.id) || EClass.game.quests.completedIDs.Contains(text2))
{
return true;
}
string str2 = r.id.Replace(text2, "");
int num2 = 0;
if (!str2.IsEmpty())
{
num2 = str2.ToInt();
}
Quest quest = EClass.game.quests.Get(text2);
if (quest != null && num2 <= quest.phase)
{
return true;
}
return EClass.debug.showExtra;
}
}
}
UIInventory
@@ -1110,7 +1110,6 @@ public void RefreshList()
},
onInstantiate = delegate(Thing a, ButtonGrid b)
{
dirty = false;
_ = a.Name;
bool flag = mode == Mode.Buy || mode == Mode.Sell || mode == Mode.Identify;
int num2 = ((destNum != -1) ? 1 : a.Num);
@@ -1138,6 +1137,7 @@ public void RefreshList()
},
onList = delegate
{
dirty = false;
List<Thing> list = new List<Thing>();
foreach (Thing thing in owner.Things)
{
@@ -1211,7 +1211,6 @@ public void RefreshGrid()
{
onRedraw = delegate(Thing a, ButtonGrid b, int i)
{
dirty = false;
b.index = i;
bool flag4 = i >= owner.Things.Count;
if (IsMagicChest)