EA 23.166 Nightly
July 3, 2025
36 files modified. 2 new files created.
Important Changes
None.
ABILITY
public class ABILITY
{
public const int AI_Drink = 5045;
public const int ActKick = 5042;
public const int AI_TendAnimal = 5043;
public const int ActInstall = 5046;
public const int ActChat = 5044;
public const int ActInstall = 5046;
public const int AI_Drink = 5045;
public const int ActPick = 5047;
@@ -32,13 +28,13 @@ public class ABILITY
public const int AI_PlayMusic = 6001;
public const int AI_Read = 5041;
public const int AI_Meditate = 6003;
public const int ActQuickCraft = 6012;
public const int AI_Steal = 6011;
public const int AI_PassTime = 6013;
public const int AI_TendAnimal = 5043;
public const int ActQuickCraft = 6012;
public const int AI_SelfHarm = 6015;
@@ -56,7 +52,7 @@ public class ABILITY
public const int ActDuplicate = 6420;
public const int ActCrabBreathe = 6500;
public const int ActRush = 6450;
public const int ActCurse = 6600;
@@ -64,17 +60,17 @@ public class ABILITY
public const int ActDraw = 6602;
public const int AI_Steal = 6011;
public const int ActNTR = 6603;
public const int ActRanged = 5040;
public const int ActCryRage = 6604;
public const int ActThrow = 5038;
public const int AI_PassTime = 6013;
public const int General = 5008;
public const int ActWeaken = 6610;
public const int TaskMine = 5009;
public const int ActKick = 5042;
public const int ActRanged = 5040;
public const int TaskDig = 5010;
@@ -100,13 +96,13 @@ public class ABILITY
public const int TaskTrain = 5021;
public const int AI_Fish = 5039;
public const int TaskSleepOnBed = 5022;
public const int AI_Eat = 5024;
public const int TaskGoOut = 5023;
public const int AI_Grab = 5025;
public const int AI_Read = 5041;
public const int AI_Eat = 5024;
public const int AI_Haul = 5026;
@@ -132,15 +128,17 @@ public class ABILITY
public const int ActNoItem = 5037;
public const int TaskGoOut = 5023;
public const int ActThrow = 5038;
public const int ActCryRage = 6604;
public const int AI_Fish = 5039;
public const int ActRush = 6450;
public const int AI_Grab = 5025;
public const int ActFear = 6611;
public const int breathe_Cold = 50201;
public const int ActCrabBreathe = 6500;
public const int ActTouchDrown = 6613;
public const int breathe_Lightning = 50202;
@@ -158,14 +156,14 @@ public class ABILITY
public const int breathe_Holy = 50209;
public const int ActWeaken = 6610;
public const int breathe_Magic = 50211;
public const int breathe_Chaos = 50210;
public const int breathe_Fire = 50200;
public const int ActTouchSleep = 6612;
public const int breathe_Ether = 50212;
public const int breathe_Acid = 50213;
public const int breathe_Cut = 50214;
public const int breathe_Impact = 50215;
@@ -188,29 +186,33 @@ public class ABILITY
public const int Use = 5007;
public const int breathe_Acid = 50213;
public const int General = 5008;
public const int breathe_ = 7000;
public const int TaskMine = 5009;
public const int breathe_Chaos = 50210;
public const int breathe_Cold = 50201;
public const int ActKizuamiTrick = 6903;
public const int breathe_Fire = 50200;
public const int breathe_Magic = 50211;
public const int ActHeadpat = 6904;
public const int ActGazeMutation = 6622;
public const int ActGazeMana = 6623;
public const int ActTouchDrown = 6613;
public const int ActDrainBlood = 6626;
public const int ActTouchSleep = 6612;
public const int ActCatHuffing = 6627;
public const int ActHeadpat = 6904;
public const int ActInsult = 6630;
public const int ActDrainBlood = 6626;
public const int ActScream = 6631;
public const int ActGazeDim = 6620;
public const int breathe_ = 7000;
public const int ActScream = 6631;
public const int ActGazeInsane = 6621;
public const int ActSteal = 6640;
@@ -218,9 +220,13 @@ public class ABILITY
public const int ActStealMoney = 6642;
public const int ActInsult = 6630;
public const int ActNeckHunt = 6650;
public const int ActDropMine = 6660;
public const int ActGazeDim = 6620;
public const int ActThrowPotion = 6661;
public const int ActKizuamiTrick = 6903;
public const int ActLulwyTrick = 6902;
@@ -228,37 +234,35 @@ public class ABILITY
public const int ActManaAbsorb = 6900;
public const int StManaCost = 6720;
public const int SongSleep = 6750;
public const int ActNeckHunt = 6650;
public const int ActGazeInsane = 6621;
public const int ActDropMine = 6660;
public const int StTaunt = 6700;
public const int StManaCost = 6720;
public const int ActBladeStorm = 6664;
public const int ActSwarm = 6662;
public const int ActMultiHit = 6663;
public const int ActSwarm = 6662;
public const int ActBladeStorm = 6664;
public const int ActThrowPotion = 6661;
public const int StTaunt = 6700;
public static readonly int[] IDS = new int[121]
public static readonly int[] IDS = new int[123]
{
5045, 5042, 5043, 5044, 5046, 5047, 5048, 5049, 5050, 5051,
5052, 5053, 5054, 5055, 6001, 5041, 6003, 6012, 6013, 6015,
6018, 6019, 6020, 6050, 6400, 6410, 6420, 6500, 6600, 6601,
6602, 6011, 6603, 5040, 5038, 5008, 5009, 5010, 5011, 5012,
5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020, 5021, 5039,
5022, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032,
5033, 5034, 5035, 5036, 5037, 5023, 6604, 6450, 6611, 50201,
50202, 50203, 50204, 50205, 50206, 50207, 50208, 50209, 6610, 50211,
50200, 50212, 50214, 50215, 50216, 5000, 5001, 5002, 5003, 5004,
5005, 5006, 5007, 50213, 7000, 50210, 6903, 6622, 6623, 6613,
6612, 6904, 6626, 6620, 6631, 6640, 6641, 6642, 6630, 6660,
6902, 6901, 6900, 6720, 6650, 6621, 6700, 6664, 6663, 6662,
6661
5046, 5044, 5045, 5047, 5048, 5049, 5050, 5051, 5052, 5053,
5054, 5055, 6001, 6003, 6011, 5043, 6012, 6015, 6018, 6019,
6020, 6050, 6400, 6410, 6420, 6450, 6600, 6601, 6602, 6603,
6604, 6013, 6610, 5042, 5040, 5010, 5011, 5012, 5013, 5014,
5015, 5016, 5017, 5018, 5019, 5020, 5021, 5022, 5023, 5041,
5024, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 5033, 5034,
5035, 5036, 5037, 5038, 5039, 5025, 6611, 6500, 6613, 50202,
50203, 50204, 50205, 50206, 50207, 50208, 50209, 50210, 6612, 50212,
50213, 50214, 50215, 50216, 5000, 5001, 5002, 5003, 5004, 5005,
5006, 5007, 5008, 5009, 50201, 50200, 50211, 6904, 6622, 6623,
6626, 6627, 6630, 6631, 7000, 6621, 6640, 6641, 6642, 6650,
6620, 6661, 6903, 6902, 6901, 6900, 6750, 6660, 6720, 6662,
6663, 6664, 6700
};
}
public class Ability : Act
AI_Fish
@@ -374,7 +374,7 @@ public static Thing Makefish(Chara c)
int num5 = 5;
if (EClass.Branch != null)
{
num5 += EClass.Branch.Evalue(3604) * 20 + EClass.Branch.Evalue(3605) * 20 + EClass.Branch.Evalue(3706) * 25;
num5 += EClass.Branch.Evalue(3604) * 20 + EClass.Branch.Evalue(3605) * 20 + EClass.Branch.Evalue(3606) * 20 + EClass.Branch.Evalue(3706) * 25;
}
if (EClass._zone is Zone_Kapul)
{
AI_Fuck
@@ -279,6 +279,10 @@ public void Finish()
SuccubusExp(chara, chara2);
SuccubusExp(chara2, chara);
chara2.ModAffinity(chara, flag ? 10 : (-5));
if (chara == EClass.pc || chara2 == EClass.pc)
{
EClass.player.stats.kimo++;
}
if (!ntr || !chara.HasElement(1239) || chara2.HasElement(1216))
{
break;
@@ -303,6 +307,10 @@ public void Finish()
target.PlaySound("groomed");
target.PlayEffect("heal_tick");
target.hygiene.Mod(15);
if (chara == EClass.pc)
{
EClass.player.stats.brush++;
}
if (target == owner)
{
break;
AI_Idle
@@ -381,6 +381,10 @@ public override IEnumerable<Status> Run()
}
if (owner != null)
{
if (!owner.IsPCFactionOrMinion)
{
EClass.pc.ai.Cancel();
}
owner.Teleport(nearestPoint);
}
yield return Success();
AI_Shear
@@ -74,6 +74,7 @@ public override IEnumerable<Status> Run()
owner.elements.ModExp(237, 50 * furLv);
owner.stamina.Mod(-1);
target.Chara.ModAffinity(owner, 1);
EClass.player.stats.shear++;
}
}
}.SetDuration((6 + furLv * 6) * 100 / (100 + owner.Tool.material.hardness * 2), 3);
AI_Steal
@@ -64,6 +64,10 @@ public override IEnumerable<Status> Run()
if (EClass.rnd(2) == 0)
{
target = chara.AddThing(ThingGen.Create("money").SetNum(1 + EClass.rnd(chara.LV * 10)));
if (EClass.rnd(3) == 0)
{
chara.SetInt(30, EClass.world.date.GetRaw() + 1440);
}
}
else
{
ActEffect
@@ -167,7 +167,7 @@ public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
flag4 = true;
}
}
else if (e.id != 910 || !item.IsFood || !item.category.IsChildOf("foodstuff"))
else if ((e.id != 910 && e.id != 911) || !item.IsFood || !item.category.IsChildOf("foodstuff"))
{
flag4 = true;
}
+BaseSong
File Created
public class BaseSong : BaseStance
{
}
Chara
@@ -687,11 +687,11 @@ public override bool isSynced
{
get
{
if (!renderer.isSynced)
if (renderer == null || !renderer.isSynced)
{
if (host != null)
{
return host.renderer.isSynced;
return host.isSynced;
}
return false;
}
@@ -1688,7 +1688,7 @@ public void RefreshSpeed(Element.BonusInfo info = null)
{
_Speed = Evalue(79) + Evalue(407) / 2;
}
if (body.GetSlot(37, onlyEmpty: false)?.thing != null && HasElement(1209))
if (body.GetSlot(37, onlyEmpty: false)?.thing != null && HasElement(1209) && !HasElement(419))
{
_Speed -= 25;
info?.AddText(-25, EClass.sources.elements.map[1209].GetName());
@@ -4421,6 +4421,12 @@ public void RestockEquip(bool onCreate)
EQ_CAT("torso");
EQ_CAT("arm");
return;
case "adv_yukiimo":
if (onCreate)
{
EQ_ID("tail_snowleopard");
}
break;
case "adv_kiria":
if (onCreate)
{
@@ -5223,6 +5229,7 @@ public void TryDropBossLoot()
}
if (EClass._zone.IsNefia)
{
EClass.player.stats.nefiaBeaten++;
EClass._zone.GetTopZone().isConquered = true;
EClass.Sound.StopBGM(2f);
SE.Play("Jingle/fanfare2");
CharaBody
@@ -96,7 +96,7 @@ public void Unequip(BodySlot slot, bool refresh = true)
if (refresh && owner.isCreated && EClass.core.IsGameStarted)
{
owner.Refresh();
if (slot.elementId == 37 && owner.HasElement(1209))
if (slot.elementId == 37 && owner.HasElement(1209) && !thing.HasElement(419))
{
owner.Say("tail_free", owner);
}
@@ -251,7 +251,7 @@ public bool Equip(Thing thing, BodySlot slot = null, bool msg = true)
owner.PlaySound("curse3");
}
}
if (slot.elementId == 37 && owner.HasElement(1209))
if (slot.elementId == 37 && owner.HasElement(1209) && !thing.HasElement(419))
{
owner.Say("tail_covered", owner);
}
DOMAIN
public class DOMAIN
{
public const int domHealing = 811;
public const int domEarth = 812;
public const int domOblivion = 813;
public const int domEyth = 814;
public const int domSurvival = 801;
public const int domElement = 806;
public const int domWind = 807;
public const int domComm = 805;
public const int domFaith = 802;
public const int domArcane = 804;
public const int domHarvest = 808;
public const int domMiracle = 803;
public const int domMachine = 809;
public const int domArcane = 804;
public const int domLuck = 810;
public const int domHarmony = 815;
public const int domWind = 807;
public const int domEyth = 814;
public const int domHarvest = 808;
public const int domOblivion = 813;
public const int domTest = 800;
public const int domHealing = 811;
public const int domFaith = 802;
public const int domMachine = 809;
public const int domSurvival = 801;
public const int domComm = 805;
public const int domElement = 806;
public const int domTest = 800;
public static readonly int[] IDS = new int[16]
{
811, 812, 813, 814, 806, 805, 804, 803, 809, 810,
815, 807, 808, 800, 802, 801
812, 801, 807, 802, 808, 803, 804, 810, 815, 814,
813, 811, 809, 805, 806, 800
};
}
public class Domain : EClass
DramaCustomSequence
@@ -728,7 +728,7 @@ public void Build(Chara c)
});
Method(delegate
{
if (c.trait is TraitMerchantBlack && Guild.Thief.relation.rank < 4 && (Guild.Thief.IsCurrentZone || (!(EClass._zone.id == "derphy") && !(EClass._zone.id == "kapul"))))
if (c.trait is TraitMerchantBlack && Guild.Thief.relation.rank < 4 && (Guild.Thief.IsCurrentZone || (!(EClass._zone.id == "derphy") && !(EClass._zone.id == "kapul") && !EClass._zone.IsPCFaction)))
{
SE.Play("click_chat");
TempTalkTopic("shop_blackmarket_noaccess", StepEnd);
ELEMENT
@@ -9,12 +9,12 @@ public class ELEMENT
public const int rare = 751;
public const int cute = 752;
public const int antidote = 753;
public const int nerve = 754;
public const int blood = 755;
public const int hotspring = 756;
public const int purity = 759;
@@ -27,7 +27,7 @@ public class ELEMENT
public const int air = 763;
public const int blood = 755;
public const int cute = 752;
public const int _void = 0;
@@ -77,8 +77,8 @@ public class ELEMENT
public static readonly int[] IDS = new int[35]
{
750, 751, 752, 753, 754, 756, 759, 760, 761, 762,
763, 755, 0, 3, 1, 2, 5, 10, 11, 12,
750, 751, 753, 754, 755, 756, 759, 760, 761, 762,
763, 752, 0, 3, 1, 2, 5, 10, 11, 12,
13, 14, 16, 17, 18, 15, 21, 22, 23, 24,
25, 26, 29, 85, 20
};
ENC
@@ -8,19 +8,17 @@ public class ENC
public const int r_DV = 650;
public const int r_mana = 641;
public const int mod_frustration = 624;
public const int mod_flurry = 621;
public const int mod_cleave = 622;
public const int mod_feint = 623;
public const int r_life = 640;
public const int noDamage = 654;
public const int r_life = 640;
public const int r_mana = 641;
public const int onlyPet = 655;
@@ -42,7 +40,7 @@ public class ENC
public const int convertFire = 850;
public const int mod_chaser = 620;
public const int mod_flurry = 621;
public const int convertImpact = 865;
@@ -50,13 +48,11 @@ public class ENC
public const int permaCurse = 656;
public const int mod_talisman = 609;
public const int negateBlind = 421;
public const int mod_chaser = 620;
public const int mod_scatter = 607;
public const int negateParalysis = 422;
public const int negateShockwave = 430;
public const int mod_splash = 608;
public const int breathing = 429;
@@ -72,17 +68,19 @@ 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 encTail = 419;
public const int innocence = 418;
public const int loving = 417;
public const int seeInvisible = 416;
public const int sustain_STR = 440;
public const int negateShockwave = 430;
public const int invisibility = 415;
@@ -94,9 +92,9 @@ public class ENC
public const int corruption = 409;
public const int mod_splash = 608;
public const int resWeather = 408;
public const int travelSpeed = 407;
public const int mod_talisman = 609;
public const int resMutation = 406;
@@ -114,78 +112,82 @@ public class ENC
public const int encHit = 414;
public const int sustain_END = 441;
public const int resWeather = 408;
public const int sustain_STR = 440;
public const int mod_ammo = 600;
public const int travelSpeed = 407;
public const int mod_drill = 606;
public const int sustain_DEX = 442;
public const int mod_precision = 605;
public const int revealFaith = 481;
public const int mod_ammo_recover = 604;
public const int force_weapon = 482;
public const int mod_ammo_knockback = 603;
public const int optimizeMana = 483;
public const int mod_rapid = 602;
public const int slot_rune = 484;
public const int mod_reload = 601;
public const int nonLethal = 485;
public const int safetyMeasure = 486;
public const int nonLethal = 485;
public const int strongStomach = 480;
public const int slot_rune = 484;
public const int mod_ammo = 600;
public const int optimizeMana = 483;
public const int mod_ammo_knockback = 603;
public const int force_weapon = 482;
public const int mod_ammo_recover = 604;
public const int revealFaith = 481;
public const int mod_precision = 605;
public const int bane_all = 468;
public const int mod_drill = 606;
public const int bane_fish = 467;
public const int mod_scatter = 607;
public const int bane_god = 466;
public const int sustain_END = 441;
public const int strongStomach = 480;
public const int mod_reload = 601;
public const int bane_man = 464;
public const int bane_all = 468;
public const int sustain_PER = 443;
public const int mod_rapid = 602;
public const int bane_god = 466;
public const int bane_fish = 467;
public const int sustain_LER = 444;
public const int sustain_WIL = 445;
public const int bane_machine = 465;
public const int sustain_MAG = 446;
public const int bane_dragon = 460;
public const int sustain_CHA = 447;
public const int sustain_MAG = 446;
public const int bane_fairy = 462;
public const int bane_machine = 465;
public const int bane_undead = 461;
public const int bane_fairy = 462;
public const int bane_man = 464;
public const int bane_animal = 463;
public const int bane_dragon = 460;
public const int sustain_DEX = 442;
public const int sustain_PER = 443;
public static readonly int[] IDS = new int[88]
public static readonly int[] IDS = new int[89]
{
653, 652, 651, 650, 641, 624, 621, 622, 623, 654,
640, 655, 851, 660, 661, 662, 663, 664, 665, 666,
850, 620, 865, 852, 656, 609, 421, 607, 430, 429,
428, 427, 426, 425, 424, 423, 422, 420, 418, 417,
416, 440, 415, 412, 411, 410, 409, 608, 407, 406,
405, 404, 403, 402, 401, 400, 414, 441, 408, 600,
606, 605, 604, 603, 602, 601, 486, 485, 484, 483,
482, 481, 468, 467, 466, 480, 464, 443, 444, 445,
465, 447, 446, 461, 462, 463, 460, 442
653, 652, 651, 650, 624, 622, 623, 640, 654, 641,
655, 851, 660, 661, 662, 663, 664, 665, 666, 850,
621, 865, 852, 656, 620, 422, 608, 429, 428, 427,
426, 425, 424, 423, 421, 420, 419, 418, 417, 416,
430, 415, 412, 411, 410, 409, 408, 609, 406, 405,
404, 403, 402, 401, 400, 414, 440, 407, 442, 481,
482, 483, 484, 485, 486, 480, 600, 603, 604, 605,
606, 607, 441, 601, 468, 602, 466, 467, 444, 445,
446, 460, 447, 462, 465, 461, 464, 463, 443
};
}
ElementContainerCard
@@ -181,7 +181,7 @@ public override int ValueBonus(Element e)
if (owner.IsPCParty)
{
int id = e.id;
if (id == 70 || (uint)(id - 72) <= 1u)
if ((id == 70 || (uint)(id - 72) <= 1u) && EClass.game.activeZone != null)
{
int num2 = 0;
foreach (Chara member in EClass.pc.party.members)
FACTION
public class FACTION
{
public const int bfUndersea = 3606;
public const int bfCave = 3500;
public const int bfBeach = 3604;
public const int bfUndersea = 3606;
public const int bfFertile = 3700;
public const int fRation = 2207;
public const int bfBeach = 3604;
public const int bfSea = 3605;
public const int bfHill = 3603;
public const int bfGeyser = 3701;
public const int bfHill = 3603;
public const int bfSnow = 3602;
public const int bfForest = 3601;
public const int bfPlain = 3600;
public const int bfCave = 3500;
public const int bfRuin = 3702;
public const int actBuildRecipe = 4005;
public const int bfSea = 3605;
public const int fPromo = 2202;
public const int fAttraction = 2206;
public const int fSafety = 2205;
@@ -34,38 +36,38 @@ public class FACTION
public const int fMoral = 2203;
public const int fPromo = 2202;
public const int fElec = 2201;
public const int fSoil = 2200;
public const int fHeirloom = 2120;
public const int bfRuin = 3702;
public const int fTaxEvasion = 2119;
public const int fLuck = 2118;
public const int fEducation = 2116;
public const int bfTranquil = 3703;
public const int fLoyal = 2117;
public const int fEducation = 2116;
public const int fLuck = 2118;
public const int fAttraction = 2206;
public const int fRation = 2207;
public const int bfTranquil = 3703;
public const int bfVolcano = 3704;
public const int bfSilica = 3802;
public const int bfGum = 3803;
public const int bfHunt = 3705;
public const int bfFish = 3706;
public const int actBuildInspect = 4006;
public const int actBuildRecipe = 4005;
public const int fAdmin = 2115;
public const int actBuildCollect = 4004;
public const int actBuildAnywhere = 4003;
public const int fAdmin = 2115;
public const int actBuildTerrain = 4002;
public const int actBuildMine = 4001;
@@ -78,7 +80,7 @@ public class FACTION
public const int bfIce = 3804;
public const int bfGum = 3803;
public const int bfSilica = 3802;
public const int bfMushroom = 3801;
@@ -102,22 +104,20 @@ public class FACTION
public const int bfMonster = 3707;
public const int bfFish = 3706;
public const int bfVolcano = 3704;
public const int bfHunt = 3705;
public const int fConstruction = 2003;
public const int fSoil = 2200;
public const int fElec = 2201;
public static readonly int[] IDS = new int[53]
{
3606, 3604, 3700, 2207, 3605, 3701, 3603, 3602, 3601, 3600,
3500, 4005, 2205, 2204, 2203, 2202, 2201, 2120, 3702, 2119,
2118, 2117, 2116, 2206, 3703, 3802, 3705, 4006, 4004, 4003,
2115, 4002, 4001, 4000, 3900, 3805, 3804, 3803, 3801, 3800,
3784, 3783, 3782, 3781, 3780, 3710, 3709, 3708, 3707, 3706,
3704, 2003, 2200
3500, 3606, 3700, 3604, 3603, 3701, 3602, 3601, 3600, 3702,
3605, 2202, 2206, 2205, 2204, 2203, 2200, 2120, 2119, 2116,
3703, 2117, 2118, 2207, 3704, 3803, 3706, 4006, 4005, 2115,
4004, 4003, 4002, 4001, 4000, 3900, 3805, 3804, 3802, 3801,
3800, 3784, 3783, 3782, 3781, 3780, 3710, 3709, 3708, 3707,
3705, 2003, 2201
};
}
public class Faction : EClass
FEAT
public class FEAT
{
public const int featElea = 1213;
public const int featDwarf = 1215;
public const int featSorter = 1643;
public const int featSleeper = 1642;
public const int featResCurse = 1641;
@@ -51,19 +55,15 @@ public class FEAT
public const int featHealer = 1422;
public const int featManaMeat = 1421;
public const int featExecutioner = 1420;
public const int featSleeper = 1642;
public const int featSorter = 1643;
public const int featBodyParts = 1644;
public const int featParty = 1645;
public const int featFairyResist = 1212;
public const int featLonelySoul = 1646;
public const int featSummoner = 1647;
public const int featManaPrecision = 1214;
public const int featSlowFood = 1200;
@@ -87,10 +87,14 @@ public class FEAT
public const int featUndead = 1210;
public const int featMilitant = 1419;
public const int featManaMeat = 1421;
public const int featSnail = 1211;
public const int featFisher = 1659;
public const int featChef = 1658;
public const int featManaCost = 1657;
public const int featScavenger = 1656;
@@ -111,22 +115,14 @@ public class FEAT
public const int featRapidMagic = 1648;
public const int featSummoner = 1647;
public const int featElea = 1213;
public const int featLonelySoul = 1646;
public const int featExecutioner = 1420;
public const int featChef = 1658;
public const int featFairyResist = 1212;
public const int featSwordsage = 1418;
public const int featFisher = 1659;
public const int featInquisitor = 1416;
public const int featElder = 1238;
public const int featDemon = 1239;
public const int featMassSummoner = 1240;
public const int featGod_element1 = 1300;
@@ -137,18 +133,18 @@ public class FEAT
public const int featGod_machine1 = 1315;
public const int featGod_healing1 = 1320;
public const int featGod_harvest1 = 1325;
public const int featGod_luck1 = 1330;
public const int featRoran = 1237;
public const int featGod_oblivion1 = 1340;
public const int featGod_harmony1 = 1335;
public const int featDemon = 1239;
public const int featGod_trickery1 = 1345;
public const int featGod_moonshadow1 = 1350;
public const int featGod_strife1 = 1355;
public const int featWarrior = 1400;
@@ -163,19 +159,19 @@ public class FEAT
public const int featPianist = 1405;
public const int featGod_oblivion1 = 1340;
public const int featTourist = 1406;
public const int featNorland = 1236;
public const int featPaladin = 1407;
public const int featLightEater = 1235;
public const int featGod_moonshadow1 = 1350;
public const int featHeavyEater = 1234;
public const int featElder = 1238;
public const int featWitch = 1417;
public const int featRoran = 1237;
public const int featDwarf = 1215;
public const int featNorland = 1236;
public const int featSuccubus = 1216;
public const int featMilitant = 1419;
public const int featGolem = 1217;
@@ -197,12 +193,12 @@ public class FEAT
public const int featUnderground = 1226;
public const int featManaPrecision = 1214;
public const int featServant = 1227;
public const int featDemigod = 1228;
public const int featSuccubus = 1216;
public const int featLittleOne = 1229;
public const int featAdam = 1230;
@@ -213,42 +209,46 @@ public class FEAT
public const int featCosmicHorror = 1233;
public const int featTourist = 1406;
public const int featHeavyEater = 1234;
public const int featPaladin = 1407;
public const int featLightEater = 1235;
public const int featGod_healing1 = 1320;
public const int featPaladin2 = 1408;
public const int featBoost = 1409;
public const int featReboot = 1410;
public const int featGod_harmony1 = 1335;
public const int featEarthStrength = 1411;
public const int featLuckyCat = 1412;
public const int featFairysan = 1413;
public const int featWhiteVixen = 1414;
public const int featFoxMaid = 1415;
public const int featPaladin2 = 1408;
public const int featInquisitor = 1416;
public const int featFairysan = 1413;
public const int featWitch = 1417;
public const int featWhiteVixen = 1414;
public const int featReboot = 1410;
public static readonly int[] IDS = new int[116]
{
1213, 1641, 1640, 1636, 1635, 1634, 1633, 1632, 1631, 1630,
1629, 1628, 1627, 1626, 1625, 1624, 1623, 1622, 1621, 1620,
1612, 1611, 1610, 1422, 1421, 1420, 1642, 1643, 1644, 1645,
1212, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208,
1209, 1210, 1419, 1211, 1657, 1656, 1655, 1654, 1653, 1652,
1651, 1650, 1649, 1648, 1647, 1646, 1658, 1418, 1659, 1416,
1238, 1239, 1240, 1300, 1305, 1310, 1315, 1325, 1330, 1237,
1335, 1345, 1350, 1355, 1400, 1401, 1402, 1403, 1404, 1405,
1340, 1236, 1235, 1234, 1417, 1215, 1216, 1217, 1218, 1219,
1220, 1221, 1222, 1223, 1224, 1225, 1226, 1214, 1227, 1228,
1229, 1230, 1231, 1232, 1233, 1406, 1407, 1320, 1409, 1410,
1411, 1412, 1415, 1408, 1413, 1414
1215, 1643, 1642, 1641, 1640, 1636, 1635, 1634, 1633, 1632,
1631, 1630, 1629, 1628, 1627, 1626, 1625, 1624, 1623, 1622,
1621, 1620, 1612, 1611, 1610, 1422, 1644, 1645, 1646, 1647,
1214, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208,
1209, 1210, 1421, 1211, 1659, 1658, 1657, 1656, 1655, 1654,
1653, 1652, 1651, 1650, 1649, 1648, 1213, 1420, 1212, 1418,
1240, 1300, 1305, 1310, 1315, 1320, 1325, 1330, 1340, 1239,
1345, 1355, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407,
1350, 1238, 1237, 1236, 1419, 1217, 1218, 1219, 1220, 1221,
1222, 1223, 1224, 1225, 1226, 1227, 1228, 1216, 1229, 1230,
1231, 1232, 1233, 1234, 1235, 1408, 1409, 1335, 1411, 1412,
1413, 1414, 1415, 1416, 1417, 1410
};
}
public class Feat : Element
FOOD
@@ -2,15 +2,15 @@ public class FOOD
{
public const int food_CHA = 700;
public const int food_poison = 702;
public const int food_cat = 701;
public const int food_love = 703;
public const int food_bug = 704;
public const int food_cat = 701;
public const int gainWeight = 705;
public const int loseWeight = 706;
public const int food_poison = 702;
public const int kirimi = 707;
@@ -18,15 +18,15 @@ public class FOOD
public const int food_undead = 709;
public const int justcooked = 757;
public const int food_god = 758;
public const int gainWeight = 705;
public const int loseWeight = 706;
public const int food_god = 758;
public const int justcooked = 757;
public static readonly int[] IDS = new int[12]
{
700, 702, 703, 704, 701, 706, 707, 708, 709, 757,
705, 758
700, 701, 703, 704, 705, 702, 707, 708, 709, 758,
706, 757
};
}
FactionBranch
@@ -1247,6 +1247,7 @@ public void OnUnclaimZone()
}
owner.landFeats = null;
owner.ListLandFeats();
owner.branch = null;
}
public void ValidateUpgradePolicies()
Game
@@ -450,6 +450,10 @@ public void OnLoad()
}
});
TryAddQuest("into_darkness", "exile_kettle");
if (version.IsBelow(0, 23, 155))
{
AddAdventurer("adv_yukiimo");
}
if (version.IsBelow(0, 23, 100))
{
int num = player.recipes.knownRecipes.TryGetValue("trainingDummy_heavy", 0);
@@ -892,7 +896,7 @@ public void StartNewGame()
public void AddAdventurers()
{
List<Zone> source = world.region.ListTowns();
string[] array = new string[6] { "adv_kiria", "adv_gaki", "adv_wini", "adv_verna", "adv_ivory", "adv_mesherada" };
string[] array = new string[7] { "adv_kiria", "adv_gaki", "adv_wini", "adv_verna", "adv_ivory", "adv_mesherada", "adv_yukiimo" };
for (int i = 0; i < EClass.setting.balance.numAdv; i++)
{
Zone zone = source.RandomItem();
@@ -916,6 +920,27 @@ public void AddAdventurers()
}
}
public void AddAdventurer(string id, Zone z = null)
{
if (z == null)
{
List<Zone> source = world.region.ListTowns();
do
{
z = source.RandomItem();
}
while ((z is Zone_SubTown && EClass.rnd(5) != 0) || z == EClass.pc.currentZone);
}
Chara chara = CharaGen.Create(id);
chara.SetHomeZone(z);
chara.global.transition = new ZoneTransition
{
state = ZoneTransition.EnterState.RandomVisit
};
z.AddCard(chara);
cards.listAdv.Add(chara);
}
public void GotoTitle(bool showDialog = true)
{
if (showDialog)
GameLang
@@ -97,6 +97,7 @@ public static string ConvertDrama(string text, Chara c = null)
stringBuilder.Replace("#festival", EClass._zone.IsFestival ? (EClass._zone.id + "_festival").lang() : "_festival".lang());
stringBuilder.Replace("#brother2", (EClass.pc.IsMale ? "brother" : "sister").lang());
stringBuilder.Replace("#brother", Lang.GetList(EClass.pc.IsMale ? "bro" : "sis").RandomItem());
stringBuilder.Replace("#onii2", Lang.GetList(EClass.pc.IsMale ? "onii2" : "onee2").RandomItem());
stringBuilder.Replace("#onii", Lang.GetList(EClass.pc.IsMale ? "onii" : "onee").RandomItem());
stringBuilder.Replace("#gender", Lang.GetList("gendersDrama")[EClass.pc.bio.gender]);
stringBuilder.Replace("#he", ((EClass.pc.bio.gender == 2) ? "he" : "she").lang());
GoalCombat
@@ -583,10 +583,10 @@ public virtual bool TryUseAbility(int dist, bool beforeMove = false)
{
foreach (Chara member2 in EClass.pc.party.members)
{
float num3 = 100f - (float)(member2.mana.value * 100) / MathF.Max(1f, member2.mana.max);
if (num3 > (float)num)
float num2 = 100f - (float)(member2.mana.value * 100) / MathF.Max(1f, member2.mana.max);
if (num2 > (float)num)
{
num = (int)num3;
num = (int)num2;
}
}
}
@@ -618,9 +618,16 @@ public virtual bool TryUseAbility(int dist, bool beforeMove = false)
break;
case "taunt":
{
bool flag8 = owner.HasCondition<StanceTaunt>();
bool flag9 = tactics.source.taunt != -1 && 100 * owner.hp / owner.MaxHP >= tactics.source.taunt;
num = ((flag8 && !flag9) ? 100 : ((!flag8 && flag9) ? 100 : 0));
bool flag6 = owner.HasCondition<StanceTaunt>();
bool flag7 = tactics.source.taunt != -1 && 100 * owner.hp / owner.MaxHP >= tactics.source.taunt;
num = ((flag6 && !flag7) ? 100 : ((!flag6 && flag7) ? 100 : 0));
break;
}
case "song":
{
bool flag9 = owner.HasCondition<BaseSong>();
bool flag10 = owner.mana.value > owner.mana.max / 3;
num = ((flag9 && !flag10) ? 100 : ((!flag9 && flag10) ? 100 : 0));
break;
}
case "melee":
@@ -704,13 +711,13 @@ public virtual bool TryUseAbility(int dist, bool beforeMove = false)
{
continue;
}
bool flag7 = text == "dot";
if (flag7 && (owner.isRestrained || (tc != null && tc.IsRestrainedResident)))
bool flag8 = text == "dot";
if (flag8 && (owner.isRestrained || (tc != null && tc.IsRestrainedResident)))
{
continue;
}
num = ((text == "attackMelee") ? tactics.P_Melee : tactics.P_Spell) + GetAttackMod(act);
if (num > 0 && flag7)
if (num > 0 && flag8)
{
num += 10;
}
@@ -726,13 +733,13 @@ public virtual bool TryUseAbility(int dist, bool beforeMove = false)
{
continue;
}
bool flag6 = ability.act is ActBolt;
bool flag11 = ability.act is ActBolt;
if (!flag || (owner.IsPCParty && (EClass._zone.IsTown || EClass._zone.IsPCFaction)) || (act.id == 9150 && EClass._zone.IsPCFaction && owner.IsNeutralOrAbove()))
{
continue;
}
GetNumEnemy(flag6 ? 6 : 5);
if (numEnemy == 0 || (owner.IsPCFactionOrMinion && GetNumNeutral(flag6 ? 6 : 5) > 0))
GetNumEnemy(flag11 ? 6 : 5);
if (numEnemy == 0 || (owner.IsPCFactionOrMinion && GetNumNeutral(flag11 ? 6 : 5) > 0))
{
continue;
}
@@ -808,12 +815,12 @@ public virtual bool TryUseAbility(int dist, bool beforeMove = false)
{
continue;
}
int num2 = EClass._zone.CountMinions(owner);
if (num2 >= owner.MaxSummon)
int num3 = EClass._zone.CountMinions(owner);
if (num3 >= owner.MaxSummon)
{
continue;
}
num = tactics.P_Summon - 20 * num2 / owner.MaxSummon;
num = tactics.P_Summon - 20 * num3 / owner.MaxSummon;
break;
}
case "summonAlly":
@@ -906,36 +913,36 @@ int HealFactor(Chara c)
{
return 0;
}
float num6 = (float)c.hp / (float)c.MaxHP;
if (num6 > (isHOT ? 0.85f : 0.75f))
float num9 = (float)c.hp / (float)c.MaxHP;
if (num9 > (isHOT ? 0.85f : 0.75f))
{
return 0;
}
int num7 = tactics.P_Heal - (int)((float)tactics.P_Heal * num6) + (isHOT ? 50 : 25);
int num10 = tactics.P_Heal - (int)((float)tactics.P_Heal * num9) + (isHOT ? 50 : 25);
foreach (Condition condition in c.conditions)
{
if (condition is ConFear)
{
num7 += 10;
num10 += 10;
}
else if (condition is ConPoison)
{
num7 += 2;
num10 += 2;
}
else if (condition is ConConfuse)
{
num7 += 4;
num10 += 4;
}
else if (condition is ConDim)
{
num7 += 6;
num10 += 6;
}
else if (condition is ConBleed)
{
num7 += 8;
num10 += 8;
}
}
return num7;
return num10;
}
}
abilities.Sort((ItemAbility a, ItemAbility b) => b.priority - a.priority);
@@ -1021,8 +1028,8 @@ void BuildCharaList()
{
if (chara2 != owner)
{
int num10 = owner.Dist(chara2);
if (num10 > sightRadius || !owner.CanSeeLos(chara2, num10))
int num6 = owner.Dist(chara2);
if (num6 > sightRadius || !owner.CanSeeLos(chara2, num6))
{
continue;
}
return func(owner);
}
BuildCharaList();
int num4 = 0;
int num7 = 0;
foreach (Chara chara3 in charas)
{
int num5 = func(chara3);
if (num5 > 0)
int num8 = func(chara3);
if (num8 > 0)
{
if (isFriendlyAbility)
{
}
if (chara3 != owner)
{
num5 += tactics.P_Party;
num8 += tactics.P_Party;
}
}
else if (!owner.IsHostile(chara3))
{
continue;
}
if (num5 >= num4)
if (num8 >= num7)
{
a.tg = chara3;
num4 = num5;
num7 = num8;
}
}
}
return num4;
return num7;
}
int GetAttackMod(Act a)
{
@@ -1081,30 +1088,30 @@ int GetAttackMod(Act a)
{
return 0;
}
int num8 = ((a.source.aliasRef == "mold") ? owner.MainElement.id : EClass.sources.elements.alias[a.source.aliasRef].id);
int num9 = -15 * tc.ResistLvFrom(num8);
switch (num8)
int num4 = ((a.source.aliasRef == "mold") ? owner.MainElement.id : EClass.sources.elements.alias[a.source.aliasRef].id);
int num5 = -15 * tc.ResistLvFrom(num4);
switch (num4)
{
case 910:
if (tc.isWet)
{
num9 -= 30;
num5 -= 30;
}
break;
case 911:
if (tc.HasCondition<ConBurning>())
{
num9 -= 30;
num5 -= 30;
}
break;
case 912:
if (tc.isWet)
{
num9 += 30;
num5 += 30;
}
break;
}
return num9;
return num5;
}
void GetNumEnemy(int radius)
{
MUTATION
public class MUTATION
{
public const int mutationStrN = 1521;
public const int mutationStr = 1520;
public const int mutationSpeedN = 1519;
public const int mutationSpeed = 1518;
public const int mutationRegenN = 1517;
public const int mutationRegen = 1516;
public const int mutationDexN = 1515;
public const int mutationEyeN = 1513;
public const int mutationEye = 1512;
@@ -18,15 +20,15 @@ public class MUTATION
public const int mutationSkin = 1510;
public const int mutationStrN = 1521;
public const int mutationCha = 1522;
public const int mutationDex = 1514;
public const int mutationCha = 1522;
public const int mutationChaN = 1523;
public const int mutationDexN = 1515;
public const int mutationRegenN = 1517;
public const int mutationBrain = 1524;
public const int mutationBrainN = 1525;
public const int etherPoisonHand = 1565;
@@ -34,7 +36,7 @@ public class MUTATION
public const int etherProvoke = 1563;
public const int mutationChaN = 1523;
public const int mutationBrain = 1524;
public const int etherStupid = 1561;
@@ -58,8 +60,6 @@ public class MUTATION
public const int etherEye = 1553;
public const int mutationCold = 1526;
public const int mutationColdN = 1527;
public const int mutationLightning = 1528;
@@ -68,7 +68,7 @@ public class MUTATION
public const int mutationBody = 1530;
public const int mutationBrainN = 1525;
public const int mutationCold = 1526;
public const int mutationHair = 1532;
@@ -82,10 +82,10 @@ public class MUTATION
public static readonly int[] IDS = new int[40]
{
1520, 1519, 1518, 1517, 1516, 1513, 1512, 1511, 1510, 1521,
1514, 1522, 1515, 1524, 1565, 1564, 1563, 1523, 1561, 1560,
1559, 1558, 1557, 1556, 1555, 1554, 1562, 1552, 1553, 1526,
1527, 1528, 1529, 1530, 1525, 1532, 1533, 1550, 1551, 1531
1521, 1520, 1519, 1518, 1516, 1515, 1513, 1512, 1511, 1510,
1522, 1514, 1523, 1517, 1525, 1565, 1564, 1563, 1524, 1561,
1560, 1559, 1558, 1557, 1556, 1555, 1554, 1562, 1552, 1553,
1527, 1528, 1529, 1530, 1526, 1532, 1533, 1550, 1551, 1531
};
}
public class Mutation : Feat
Map
@@ -1196,7 +1196,7 @@ public void TryShatter(Point pos, int ele, int power)
Element element = Element.Create(ele);
List<Card> list = new List<Card>();
bool fire = ele == 910;
bool flag = ele == 911;
bool cold = ele == 911;
_ = fire;
List<Card> list2 = pos.ListCards();
if (fire && (pos.cell.IsSnowTile || pos.cell.IsTopWater))
@@ -1205,7 +1205,7 @@ public void TryShatter(Point pos, int ele, int power)
}
foreach (Card item in list2)
{
if (item.ResistLvFrom(ele) >= 3 || item.trait is TraitBlanket || (EClass.rnd(3) == 0 && !CanCook(item)) || (item.IsPCFaction && EClass.rnd(3) == 0) || (fire && item.HasCondition<ConWet>()) || (flag && item.HasCondition<ConBurning>()))
if (item.ResistLvFrom(ele) >= 3 || item.trait is TraitBlanket || (EClass.rnd(3) == 0 && !CanCook(item)) || (item.IsPCFaction && EClass.rnd(3) == 0) || (fire && item.HasCondition<ConWet>()) || (cold && item.HasCondition<ConBurning>()))
{
continue;
}
@@ -1292,39 +1292,46 @@ public void TryShatter(Point pos, int ele, int power)
{
continue;
}
bool flag2 = CanCook(item3);
bool flag = CanCook(item3);
string text = "";
if (flag2)
if (flag)
{
List<SourceThing.Row> list3 = new List<SourceThing.Row>();
foreach (RecipeSource item4 in RecipeManager.list)
if (fire)
{
if (!(item4.row is SourceThing.Row { isOrigin: false } row) || row.components.IsEmpty() || (row.components.Length >= 3 && !row.components[2].StartsWith('+')) || !row.Category.IsChildOf("meal"))
{
continue;
}
if (!row.factory.IsEmpty())
List<SourceThing.Row> list3 = new List<SourceThing.Row>();
foreach (RecipeSource item4 in RecipeManager.list)
{
switch (row.factory[0])
if (!(item4.row is SourceThing.Row { isOrigin: false } row) || row.components.IsEmpty() || (row.components.Length >= 3 && !row.components[2].StartsWith('+')) || !row.Category.IsChildOf("meal"))
{
case "chopper":
case "mixer":
case "camppot":
case "cauldron":
continue;
}
if (!row.factory.IsEmpty())
{
switch (row.factory[0])
{
case "chopper":
case "mixer":
case "camppot":
case "cauldron":
continue;
}
}
if (row.components[0].Split('|').Contains(item3.id) || row.components[0].Split('|').Contains(item3.sourceCard._origin))
{
list3.Add(row);
}
}
if (row.components[0].Split('|').Contains(item3.id) || row.components[0].Split('|').Contains(item3.sourceCard._origin))
if (list3.Count > 0)
{
list3.Add(row);
text = list3.RandomItem().id;
}
}
if (list3.Count > 0)
else
{
text = list3.RandomItem().id;
text = "711";
}
}
if (flag2 && !text.IsEmpty())
if (flag && !text.IsEmpty())
{
item3.GetRoot();
Thing thing2 = item3.Split(1);
@@ -1335,7 +1342,7 @@ public void TryShatter(Point pos, int ele, int power)
thing3.elements.ModBase(2, EClass.curve(power / 10, 50, 10));
if (pos.IsSync)
{
Msg.Say((rootCard3 == item3) ? "cook_groundItem" : "cook_invItem", thing2, rootCard3, thing3.Name);
Msg.Say(((rootCard3 == item3) ? "cook_groundItem" : "cook_invItem") + (fire ? "" : "_cold"), thing2, rootCard3, thing3.Name);
}
if (rootCard3 == item3)
{
@@ -1385,7 +1392,7 @@ public void TryShatter(Point pos, int ele, int power)
_ValidateInstalled(pos.x, pos.z);
bool CanCook(Card c)
{
if (fire && c.IsFood)
if ((fire || cold) && c.IsFood)
{
return c.category.IsChildOf("foodstuff");
}
POLICY
public class POLICY
{
public const int tourist_safety = 2811;
public const int bed_quality = 2812;
public const int suite_room = 2813;
@@ -21,16 +19,14 @@ public class POLICY
public const int license_furniture = 2819;
public const int legendary_heirloom = 2821;
public const int celeb = 2822;
public const int legendary_heirloom = 2821;
public const int legendary_exhibition = 2823;
public const int license_stolen = 2824;
public const int open_business = 2810;
public const int milk_fan = 2825;
public const int egg_fan = 2826;
@@ -39,80 +35,84 @@ public class POLICY
public const int license_slaver = 2828;
public const int tourist_safety = 2811;
public const int license_general = 2820;
public const int home_discount = 2800;
public const int open_business = 2810;
public const int resident_wanted = 2513;
public const int stop_growth = 2515;
public const int forcePanty = 2712;
public const int livestock_priv = 2715;
public const int impressment = 2504;
public const int nocturnal_life = 2508;
public const int vaccination = 2509;
public const int ban_radio = 2510;
public const int legal_drug = 2505;
public const int human_right = 2506;
public const int impressment = 2504;
public const int inquisition = 2507;
public const int prohibition = 2503;
public const int nocturnal_life = 2508;
public const int food_for_people = 2502;
public const int faith_tax = 2501;
public const int wealth_tax = 2500;
public const int livestock_priv = 2715;
public const int prohibition = 2503;
public const int vaccination = 2509;
public const int home_discount = 2800;
public const int ban_radio = 2510;
public const int inquisition = 2507;
public const int self_sufficient = 2511;
public const int resident_tax = 2512;
public const int taxfree = 2514;
public const int resident_wanted = 2513;
public const int food_for_people = 2502;
public const int human_right = 2506;
public const int speed_growth = 2516;
public const int trash_no = 2702;
public const int weed_no = 2703;
public const int stop_growth = 2515;
public const int taxfree = 2514;
public const int taxTransfer = 2705;
public const int demon_invocation = 2706;
public const int border_watch = 2704;
public const int auto_farm = 2707;
public const int noDM = 2708;
public const int border_watch = 2704;
public const int auto_farm = 2707;
public const int noAnimal = 2709;
public const int noMother = 2710;
public const int incomeTransfer = 2711;
public const int trash_no = 2702;
public const int forcePanty = 2712;
public const int trash_sort = 2701;
public const int energy_conservation = 2700;
public const int noAnimal = 2709;
public const int noDM = 2708;
public static readonly int[] IDS = new int[51]
{
2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2821,
2822, 2823, 2824, 2810, 2825, 2826, 2827, 2828, 2820, 2800,
2513, 2712, 2504, 2505, 2506, 2507, 2508, 2501, 2500, 2715,
2503, 2509, 2510, 2511, 2512, 2514, 2502, 2516, 2703, 2515,
2705, 2706, 2704, 2708, 2707, 2710, 2711, 2702, 2701, 2700,
2709
2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2822, 2821,
2823, 2824, 2825, 2826, 2827, 2828, 2811, 2820, 2810, 2515,
2715, 2508, 2509, 2510, 2505, 2504, 2503, 2502, 2501, 2500,
2800, 2507, 2511, 2512, 2513, 2506, 2516, 2702, 2703, 2514,
2705, 2706, 2707, 2704, 2709, 2710, 2711, 2712, 2701, 2700,
2708
};
}
public class Policy : EClass
Player
@@ -57,52 +57,156 @@ public class Pref
public UIInventory.InteractMode interactMode;
}
public class Stats
public class Stats : EClass
{
[JsonProperty]
public long[] _longs = new long[50];
[JsonProperty]
public double timeElapsed;
[JsonProperty]
public int kumi;
[JsonProperty]
public int mins;
[JsonProperty]
public int days;
[JsonProperty]
public int months;
[JsonProperty]
public int sieges;
[JsonProperty]
public int turns;
[JsonProperty]
public int kills;
[JsonProperty]
public int taxBills;
[JsonProperty]
public int taxBillsPaid;
[JsonProperty]
public int digs;
[JsonProperty]
public int shipNum;
[JsonProperty]
public int slept;
[JsonProperty]
public int death;
[JsonProperty]
public int allyDeath;
[JsonProperty]
public int deepest;
[JsonProperty]
public int gambleChest;
[JsonProperty]
public int gambleChestOpen;
[JsonProperty]
public long shipMoney;
[JsonIgnore]
public int lastShippingExp;
[JsonIgnore]
public int lastShippingExpMax;
public long nefiaBeaten
{
get
{
return _longs[10];
}
set
{
_longs[10] = value;
}
}
public long kimo
{
get
{
return _longs[11];
}
set
{
_longs[11] = value;
}
}
public long shear
{
get
{
return _longs[12];
}
set
{
_longs[12] = value;
}
}
public long brush
{
get
{
return _longs[13];
}
set
{
_longs[13] = value;
}
}
public long eggHatched
{
get
{
return _longs[14];
}
set
{
_longs[14] = value;
}
}
public long plow
{
get
{
return _longs[15];
}
set
{
_longs[15] = value;
}
}
public long clean
{
get
{
return _longs[16];
}
set
{
_longs[16] = value;
}
}
public int GetShippingBonus(long _a)
{
long p = 0L;
RecipeCard
t.isRoofItem = true;
t.SetPlaceState(PlaceState.roaming);
}
t.ForeachPoint(delegate(Point p, bool main)
try
{
CheckBlock(p);
});
t.ForeachPoint(delegate(Point p, bool main)
{
CheckBlock(p);
});
}
catch
{
Debug.LogWarning("kokodayo");
}
t.freePos = freePos;
if (freePos)
{
RegionPoint
@@ -34,7 +34,6 @@ public void SetRegionPoint(int _x, int _z)
Mathf.Min(num2 / 10, 4);
EClass.rnd(3 + Mathf.Min(num2 / 10, 4));
_ = 5;
Debug.Log(x + "/" + z + " road dist:" + roadDist + " homeDist:" + num + " dangerLv:" + num2);
dangerLv = num2 + 5;
}
}
SKILL
public class SKILL
{
public const int shield = 123;
public const int fireproof = 50;
public const int armorHeavy = 122;
public const int weaponCrossbow = 109;
public const int armorLight = 120;
public const int weaponScythe = 110;
public const int weaponBlunt = 111;
public const int PDR = 55;
public const int weaponCrossbow = 109;
public const int fireproof = 50;
public const int armorLight = 120;
public const int acidproof = 51;
public const int armorHeavy = 122;
public const int weaponScythe = 110;
public const int shield = 123;
public const int twohand = 130;
@@ -66,31 +62,35 @@ public class SKILL
public const int weaponDagger = 107;
public const int EDR = 56;
public const int END = 71;
public const int evasionPerfect = 57;
public const int STR = 70;
public const int life = 60;
public const int FPV = 68;
public const int mana = 61;
public const int DMG = 67;
public const int vigor = 62;
public const int HIT = 66;
public const int PV = 65;
public const int DEX = 72;
public const int DV = 64;
public const int PV = 65;
public const int mana = 61;
public const int HIT = 66;
public const int life = 60;
public const int DMG = 67;
public const int evasionPerfect = 57;
public const int FPV = 68;
public const int EDR = 56;
public const int STR = 70;
public const int PDR = 55;
public const int END = 71;
public const int acidproof = 51;
public const int DEX = 72;
public const int vigor = 62;
public const int PER = 73;
@@ -98,8 +98,6 @@ public class SKILL
public const int WIL = 75;
public const int MAG = 76;
public const int weaponPolearm = 106;
public const int weaponGun = 105;
@@ -112,10 +110,10 @@ public class SKILL
public const int martial = 100;
public const int throwing = 108;
public const int antiMagic = 93;
public const int penetration = 92;
public const int vopal = 91;
public const int critical = 90;
@@ -128,7 +126,9 @@ public class SKILL
public const int CHA = 77;
public const int penetration = 92;
public const int MAG = 76;
public const int throwing = 108;
public const int gathering = 250;
@@ -268,13 +268,13 @@ public class SKILL
public static readonly int[] IDS = new int[133]
{
123, 122, 120, 111, 55, 109, 50, 51, 110, 130,
133, 132, 242, 241, 240, 237, 235, 230, 227, 226,
225, 220, 207, 200, 152, 151, 150, 135, 134, 245,
210, 102, 107, 56, 57, 60, 61, 62, 64, 65,
66, 67, 68, 70, 71, 72, 73, 74, 75, 76,
106, 105, 104, 103, 101, 100, 108, 93, 91, 90,
80, 79, 78, 77, 92, 250, 131, 256, 916, 917,
50, 109, 110, 111, 120, 122, 123, 130, 133, 132,
242, 241, 240, 237, 235, 230, 227, 226, 225, 220,
207, 200, 152, 151, 150, 135, 134, 245, 210, 102,
107, 71, 70, 68, 67, 66, 65, 72, 64, 61,
60, 57, 56, 55, 51, 62, 73, 74, 75, 106,
105, 104, 103, 101, 100, 93, 92, 91, 90, 80,
79, 78, 77, 76, 108, 250, 131, 256, 916, 917,
918, 919, 920, 921, 922, 923, 924, 925, 926, 950,
951, 952, 915, 953, 956, 957, 958, 959, 960, 961,
962, 963, 964, 965, 970, 971, 972, 255, 954, 914,
+StanceSongSleep
File Created
public class StanceSongSleep : BaseSong
{
public override void OnStart()
{
owner.ShowEmo(Emo.happy);
}
public override void Tick()
{
int num = 0;
foreach (Chara item in owner.pos.ListCharasInRadius(owner, 4, (Chara c) => !c.IsDeadOrSleeping && c.IsHostile(owner)))
{
if ((item.IsPowerful ? 10 : 25) > EClass.rnd(100))
{
item.AddCondition<ConSleep>(50 + base.power / 2);
}
num++;
}
if (num > 0)
{
owner.mana.Mod(-(1 + owner.mana.max / 200));
}
}
}
TaskClean
@@ -54,8 +54,9 @@ public override IEnumerable<Status> Run()
dest.PlayEffect("vanish");
EClass.pc.Say("clean", owner);
EClass.pc.PlaySound("clean_floor");
EClass.pc.stamina.Mod(-1);
EClass.pc.ModExp(293, 30);
EClass.player.stats.clean++;
EClass.pc.stamina.Mod(-1);
yield return KeepRunning();
}
}
TaskPlow
@@ -66,6 +66,10 @@ public override void OnCreateProgress(Progress_Custom p)
pos.SetFloor(pos.matFloor.id, 4);
}
owner.elements.ModExp(286, 30);
if (owner.IsPC)
{
EClass.player.stats.plow++;
}
owner.stamina.Mod(-1);
};
}
Thing
@@ -282,7 +282,7 @@ public override void OnCreate(int genLv)
}
else if (bp.qualityBonus >= 10)
{
num4 = Mathf.Min(bp.qualityBonus / 10 + 2, 7) + EClass.rnd(EClass.rnd(5) + 1);
num4 = Mathf.Min(bp.qualityBonus / 10 + 2, 8) + EClass.rnd(EClass.rnd(5) + 1);
}
}
if (num4 > 0)
TraitChara
@@ -163,6 +163,7 @@ public int GetAdvRank()
switch (owner.id)
{
case "adv_gaki":
case "adv_yukiimo":
case "adv_kiria":
case "adv_ivory":
min = 4;
TraitFoodEggFertilized
@@ -58,6 +58,7 @@ public static Chara Incubate(Thing egg, Point pos, Card incubator = null)
}
}
Msg.Say("incubate", chara);
EClass.player.stats.eggHatched++;
return chara;
}
WidgetSearch
@@ -34,6 +34,8 @@ public class Word
public Zone lastZone;
private bool isDirty;
public Extra extra => base.config.extra as Extra;
public override SearchType type => SearchType.Search;
@@ -85,10 +87,11 @@ public override bool CheckClose()
return;
}
base.Update();
if (lastZone != EMono._zone)
if (lastZone != EMono._zone || isDirty)
{
lastSearch = "";
Search(field.text);
isDirty = false;
}
}
@@ -302,6 +305,10 @@ public override void RefreshList()
},
onRedraw = delegate(Card a, ButtonGrid b, int i)
{
if (a.isDestroyed)
{
isDirty = true;
}
b.SetCard(a, ButtonGrid.Mode.Search);
},
onList = delegate
Zone_Field
@@ -104,7 +104,17 @@ public override string IDBaseLandFeat
}
}
public override bool IsUnderwater => IdBiome == "Undersea";
public override bool IsUnderwater
{
get
{
if (!(IdBiome == "Undersea"))
{
return elements.Has(3606);
}
return true;
}
}
public override void OnGenerateMap()
{
Zone_User
@@ -28,7 +28,10 @@ public override void OnActivate()
{
return;
}
WidgetMainText.Instance.NewLine();
if ((bool)WidgetMainText.Instance)
{
WidgetMainText.Instance.NewLine();
}
string[] array = EClass._map.exportSetting.textWelcome.Replace("\\n", "").Split(Environment.NewLine.ToCharArray());
int num = 0;
string[] array2 = array;
@@ -36,7 +39,10 @@ public override void OnActivate()
{
Msg.SetColor("save");
Msg.SayRaw("<i>" + text.Replace(Environment.NewLine, "") + "</i>");
WidgetMainText.Instance.NewLine();
if ((bool)WidgetMainText.Instance)
{
WidgetMainText.Instance.NewLine();
}
num++;
if (num >= 5)
{