EA 23.130 Nightly
April 25, 2025
24 files modified.
Important Changes
None.
AI_Fish
@@ -394,6 +394,10 @@ public static Thing Makefish(Chara c)
}
if (thing != null)
{
if (EClass._zone.IsUserZone && !c.IsPCFactionOrMinion)
{
num2 = 1;
}
if (num2 > 1)
{
thing.SetNum(num2);
AI_Read
@@ -41,6 +41,10 @@ public override void OnSetOwner()
target.trait.OnRead(owner);
target.Thing?.Identify(chara.IsPCParty);
Success();
if (chara.IsPC)
{
EClass.player.EndTurn();
}
}
}
ButtonGrid
@@ -482,7 +482,7 @@ public void SetIngredient(Recipe r, Recipe.Ingredient _ing)
num2 = 0;
}
bool flag = num < num2 && !ing.optional;
string text = (num.ToString() ?? "").TagColor(Colors.colorIngPredict) + (" -" + num2).TagColor(flag ? Colors.colorIngCost : Colors.colorIngReq);
string text = num.ToShortNumber().TagColor(Colors.colorIngPredict) + (" -" + num2).TagColor(flag ? Colors.colorIngCost : Colors.colorIngReq);
mainText.text = text;
if (thing == null)
{
@@ -506,7 +506,7 @@ public void SetIngredient(Recipe r, Thing t)
{
SetCard(t, Mode.Ingredient);
int num = t.Num;
mainText.text = num.ToString() ?? "";
mainText.text = num.ToShortNumber();
mainText.SetActive(enable: true);
ing = null;
if (t.GetRootCard() != EClass.pc)
@@ -552,7 +552,7 @@ public void SetRecipe(Recipe r)
{
recipe.ingredients[0].RefreshThing();
Thing thing = recipe.ingredients[0].thing;
mainText.SetText(thing.Num.ToString() ?? "", SkinManager.CurrentColors.buttonGrid);
mainText.SetText(thing.Num.ToShortNumber(), SkinManager.CurrentColors.buttonGrid);
if (r.VirtualBlock)
{
r.renderRow.SetImage(icon, null, r.GetDefaultColor(), setNativeSize: true, 0, thing.trait.IdSkin);
CINT
@@ -146,6 +146,8 @@ public class CINT
public const int isSleepBeside = 123;
public const int price_copy = 124;
public const int dateDeathLock = 130;
public const int fixedValue = 131;
CTAG
@@ -35,5 +35,7 @@ public enum CTAG
dish_fail,
random_color,
noRandomEnc,
noMix
noMix,
bigFish,
noSkinRecipe
}
Card
@@ -1117,6 +1117,18 @@ public int c_priceAdd
}
}
public int c_priceCopy
{
get
{
return GetInt(124);
}
set
{
SetInt(124, value);
}
}
public int c_fixedValue
{
get
@@ -4563,7 +4575,7 @@ void Heal()
}
void ProcAbsorb()
{
if (origin != null && origin.isChara && isChara)
if (origin != null && origin.isChara && isChara && (weapon == null || !weapon.HasElement(486)))
{
int valueOrDefault = (origin.Evalue(662) + weapon?.Evalue(662, ignoreGlobalElement: true)).GetValueOrDefault();
int valueOrDefault2 = (origin.Evalue(661) + weapon?.Evalue(661, ignoreGlobalElement: true)).GetValueOrDefault();
@@ -6586,12 +6598,24 @@ public void SetSale(bool sale)
public int GetValue(PriceType priceType = PriceType.Default, bool sell = false)
{
int num = ((c_fixedValue == 0) ? trait.GetValue() : c_fixedValue);
if (id == "plat" && !sell)
{
num = 10000;
}
if (num == 0)
{
return 0;
}
float num2 = num;
num2 = ((priceType != PriceType.CopyShop) ? (num2 * (float)Mathf.Max(100 + rarityLv + Mathf.Min(QualityLv * 10, 200), 80) / 100f) : (num2 * (float)Mathf.Max(150 + rarityLv, 150) / 100f));
if (priceType == PriceType.CopyShop)
{
num2 += (float)c_priceCopy * 0.2f;
num2 = num2 * (float)Mathf.Max(150 + rarityLv, 150) / 100f;
}
else
{
num2 = num2 * (float)Mathf.Max(100 + rarityLv + Mathf.Min(QualityLv * 10, 200), 80) / 100f;
}
if (IsFood && !material.tag.Contains("food"))
{
num2 *= 0.5f;
CardRow
@@ -133,6 +133,6 @@ public string GetName(Card c, bool full = false)
{
text = ((text2 == "*r") ? "" : text2.ToTitleCase(wholeText: true)) + Lang.space + text.Bracket(type);
}
return text.TrimStart(' ');
return text.TrimStart(' ').Replace(" ", " ");
}
}
Chara
@@ -1460,6 +1460,10 @@ public override void OnCreate(int genLv)
}
}
break;
case "baby":
case "ika":
SetFeat(1232, 3);
break;
}
if (HasTag(CTAG.random_color))
{
@@ -9253,7 +9257,7 @@ public void OnAdvanceDay()
{
if (_historyFood != null)
{
while (_historyFood.Count > 7)
while (_historyFood.Count > 5)
{
_historyFood.RemoveAt(_historyFood.Count - 1);
}
@@ -9278,7 +9282,10 @@ public void AddFoodHistory(Thing food)
new List<string>()
};
}
_historyFood[0].Add(food.id);
if (_historyFood[0].Count < 5)
{
_historyFood[0].Add(food.id);
}
}
public int CountNumEaten(Thing food)
CraftUtil
}
int num = 0;
int num2 = 0;
int num3 = 0;
foreach (Thing ing in ings)
{
if (ing != null)
{
MixElements(ing);
num3 += ing.c_priceCopy;
if (isFood)
{
num += Mathf.Clamp(ing.SelfWeight * 80 / 100, 50, 400 + ing.SelfWeight / 20);
product.c_weight = num;
product.c_priceAdd = num2;
}
product.c_priceCopy = num3;
if (thing != null && product.trait is TraitFoodFishSlice)
{
product.elements.SetTo(10, thing.Evalue(10) / 4);
product.isWeightChanged = true;
product.c_weight = Mathf.Min(thing.SelfWeight / 6, 1000);
product.c_idRefCard = thing.id;
product.c_fixedValue = ((thing.c_fixedValue == 0) ? thing.sourceCard.value : thing.c_fixedValue) / 6;
product.c_priceCopy = ((thing.c_priceCopy == 0) ? thing.GetValue() : thing.c_priceCopy);
product.c_fixedValue = ((thing.c_fixedValue == 0) ? thing.sourceCard.value : thing.c_fixedValue) / 4;
product.c_priceAdd = 0;
product.decay = thing.decay;
product.elements.SetBase(707, 1);
product.SetTier(thing.tier, setTraits: false);
product.idSkin = ((thing.trait is TraitFoodFishSlice) ? thing.idSkin : (thing.HasTag(CTAG.bigFish) ? 1 : 0));
}
if (product.HasElement(652))
{
{
if (id2 == "map")
{
int num3 = 1 + product.Evalue(2) + product.Evalue(751);
if (num3 < 1)
int num4 = 1 + product.Evalue(2) + product.Evalue(751);
if (num4 < 1)
{
num3 = 1;
num4 = 1;
}
foreach (Thing ing2 in ings)
{
if (ing2 != null && ing2.Thing != null && !(ing2.id != "gem"))
{
num3 *= ing2.Thing.material.hardness / 20 + 2;
num4 *= ing2.Thing.material.hardness / 20 + 2;
}
}
if (num3 > EClass.pc.FameLv + 10 - 1)
if (num4 > EClass.pc.FameLv + 10 - 1)
{
num3 = EClass.pc.FameLv + 10 - 1;
num4 = EClass.pc.FameLv + 10 - 1;
}
product.SetInt(25, num3);
product.SetInt(25, num4);
}
}
else
@@ -302,8 +308,8 @@ void MixElements(Card t)
}
else
{
int num4 = product.elements.Base(value3.id);
if ((num4 <= 0 && value3.Value < 0 && value3.Value < num4) || (value3.Value > 0 && value3.Value > num4))
int num5 = product.elements.Base(value3.id);
if ((num5 <= 0 && value3.Value < 0 && value3.Value < num5) || (value3.Value > 0 && value3.Value > num5))
{
product.elements.SetTo(value3.id, value3.Value);
}
DramaCustomSequence
@@ -550,7 +550,7 @@ public void Build(Chara c)
Step("_sleepBeside");
Method(delegate
{
if (c.affinity.CanSleepBeside())
if (c.affinity.CanSleepBeside() || c.GetInt(123) == 1)
{
c.SetInt(123, (c.GetInt(123) == 0) ? 1 : 0);
}
FoodEffect
@@ -26,7 +26,6 @@ public static void Proc(Chara c, Thing food)
{
int num6 = c.CountNumEaten(food);
bool flag6 = c.GetFavFood().id == food.id;
Debug.Log(c.Name + "/" + food.id + "/" + num6);
if (num6 < 2 || flag6)
{
if (num6 == 1 || flag6 || EClass.rnd(4) == 0)
@@ -225,19 +224,18 @@ public static void Proc(Chara c, Thing food)
case "little":
{
int @int = c.GetInt(112);
if (@int >= 30)
if (@int < 30)
{
break;
}
c.Say("little_eat", c);
c.PlaySound("ding_potential");
int v = Mathf.Max(5 - @int / 2, 1);
Debug.Log("sister eaten:" + @int + "/" + v);
foreach (Element value3 in c.elements.dict.Values)
{
if (value3.IsMainAttribute)
c.Say("little_eat", c);
c.PlaySound("ding_potential");
int v = Mathf.Max(5 - @int / 2, 1);
Debug.Log("sister eaten:" + @int + "/" + v);
foreach (Element value3 in c.elements.dict.Values)
{
c.elements.ModPotential(value3.id, v);
if (value3.IsMainAttribute)
{
c.elements.ModPotential(value3.id, v);
}
}
}
if (c.race.id == "mutant" && c.elements.Base(1230) < 10)
GridItemCard
@@ -4,7 +4,7 @@ public class GridItemCard : GridItem
public override void SetButton(ButtonGrid b)
{
b.mainText.text = c.Num.ToString() ?? "";
b.mainText.text = c.Num.ToShortNumber();
c.SetImage(b.icon);
b.SetTooltip("note", delegate(UITooltip t)
{
GrowSystem
@@ -654,7 +654,7 @@ public void PopHarvest(Chara c, Thing t = null, int num = -1)
}
t.SetNum(num2);
}
else
else if (Application.isEditor)
{
Debug.Log("harvest count not set:" + source.id + "/" + source.alias);
}
InvOwnerRecycle
@@ -29,7 +29,15 @@ public override void BuildUICurrency(UICurrency uiCurrency, bool canReroll = fal
public override bool ShouldShowGuide(Thing t)
{
if (!t.c_isImportant && t.things.Count == 0 && t.trait.CanBeDestroyed && !t.trait.CanOnlyCarry && t.rarity < Rarity.Artifact && t.category.GetRoot().id != "currency")
if (t.c_isImportant)
{
return false;
}
if (t.id == "1084")
{
return true;
}
if (t.things.Count == 0 && t.trait.CanBeDestroyed && !t.trait.CanOnlyCarry && t.rarity < Rarity.Artifact && t.category.GetRoot().id != "currency")
{
return !(t.trait is TraitRecycle);
}
@@ -42,6 +50,10 @@ public override void _OnProcess(Thing t)
Msg.Say("dump", t, Container.Name);
int a = t.Num * Mathf.Clamp(t.GetPrice() / 100, 1, 100);
a = EClass.rndHalf(a);
if (t.id == "1084")
{
a *= 10;
}
if (a != 0)
{
EClass.pc.Pick(ThingGen.Create("ecopo").SetNum(a / 10 + 1));
LayerCraft
@@ -322,7 +322,7 @@ public void RefreshCategory(string cat, bool first = false)
{
Recipe o2 = Recipe.Create(item);
list.Add(o2);
if (item.row.skins != null && item.row.skins.Length != 0)
if (item.row.skins != null && item.row.skins.Length != 0 && !item.row.HasTag(CTAG.noSkinRecipe))
{
for (int j = 0; j < item.row.skins.Length; j++)
{
SKILL
@@ -24,7 +24,7 @@ public class SKILL
public const int mining = 220;
public const int fishing = 245;
public const int marksman = 133;
public const int climbing = 242;
@@ -60,7 +60,7 @@ public class SKILL
public const int eyeofmind = 134;
public const int tactics = 132;
public const int fishing = 245;
public const int EDR = 56;
@@ -132,7 +132,7 @@ public class SKILL
public const int gathering = 250;
public const int marksman = 133;
public const int tactics = 132;
public const int blacksmith = 256;
@@ -269,12 +269,12 @@ public class SKILL
public static readonly int[] IDS = new int[133]
{
111, 123, 122, 120, 55, 109, 50, 51, 130, 110,
131, 220, 245, 242, 241, 240, 237, 235, 230, 227,
131, 220, 133, 242, 241, 240, 237, 235, 230, 227,
226, 225, 210, 207, 200, 152, 151, 150, 135, 134,
132, 56, 103, 108, 60, 61, 62, 64, 65, 66,
245, 56, 103, 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, 101, 102,
104, 105, 106, 107, 77, 250, 133, 256, 916, 917,
104, 105, 106, 107, 77, 250, 132, 256, 916, 917,
918, 919, 921, 922, 923, 924, 925, 926, 950, 951,
952, 953, 915, 954, 956, 957, 958, 959, 960, 961,
962, 963, 964, 965, 970, 971, 972, 255, 955, 914,
SLOT
@@ -12,7 +12,7 @@ public class SLOT
public const int back = 33;
public const int range = 41;
public const int token = 43;
public const int lightsource = 45;
@@ -20,7 +20,7 @@ public class SLOT
public const int toolbelt = 44;
public const int token = 43;
public const int range = 41;
public const int torso = 32;
@@ -34,7 +34,7 @@ public class SLOT
public static readonly int[] IDS = new int[16]
{
38, 34, 35, 36, 37, 33, 41, 45, 40, 44,
43, 32, 39, 31, 42, 30
38, 34, 35, 36, 37, 33, 43, 45, 40, 44,
41, 32, 39, 31, 42, 30
};
}
SPELL
@@ -2,6 +2,8 @@ public class SPELL
{
public const int hand_Impact = 50415;
public const int sword_Nether = 51006;
public const int ball_Sound = 50107;
public const int bolt_Void = 50316;
@@ -22,10 +24,10 @@ public class SPELL
public const int sword_Sound = 51007;
public const int hand_Void = 50416;
public const int ball_Nerve = 50108;
public const int ball_Void = 50116;
public const int bolt_Nerve = 50308;
public const int hand_Nerve = 50408;
@@ -48,13 +50,15 @@ public class SPELL
public const int bolt_Holy = 50309;
public const int ball_Void = 50116;
public const int hand_Void = 50416;
public const int sword_Nether = 51006;
public const int hand_Holy = 50409;
public const int puddle_Nether = 50906;
public const int weapon_Nether = 50806;
public const int miasma_Nether = 50706;
public const int hand_Mind = 50404;
public const int arrow_Mind = 50504;
@@ -90,10 +94,10 @@ public class SPELL
public const int sword_Poison = 51005;
public const int ball_Nether = 50106;
public const int funnel_Void = 50616;
public const int ball_Nether = 50106;
public const int arrow_Void = 50516;
public const int bolt_Nether = 50306;
@@ -104,14 +108,12 @@ public class SPELL
public const int funnel_Nether = 50606;
public const int miasma_Nether = 50706;
public const int weapon_Nether = 50806;
public const int hand_Holy = 50409;
public const int bolt_Impact = 50315;
public const int arrow_Holy = 50509;
public const int funnel_Holy = 50609;
public const int miasma_Holy = 50709;
public const int miasma_Ether = 50712;
@@ -132,7 +134,7 @@ public class SPELL
public const int arrow_Acid = 50513;
public const int hand_Mind = 50404;
public const int bolt_Mind = 50304;
public const int miasma_Acid = 50713;
@@ -166,7 +168,7 @@ public class SPELL
public const int funnel_Ether = 50612;
public const int bolt_Impact = 50315;
public const int funnel_Holy = 50609;
public const int arrow_Ether = 50512;
@@ -226,9 +228,9 @@ public class SPELL
public const int funnel_Acid = 50613;
public const int puddle_Fire = 50900;
public const int weapon_Fire = 50800;
public const int ball_Mind = 50104;
public const int sword_Darkness = 51003;
public const int SpHealLight = 8400;
@@ -352,12 +354,14 @@ public class SPELL
public const int SpIdentify = 8230;
public const int bolt_Mind = 50304;
public const int ball_Mind = 50104;
public const int SpTelepathy = 8770;
public const int SpSeeInvisible = 8776;
public const int puddle_Fire = 50900;
public const int sword_Fire = 51000;
public const int ball_Cold = 50101;
@@ -382,11 +386,11 @@ public class SPELL
public const int bolt_Lightning = 50302;
public const int hand_Lightning = 50402;
public const int miasma_Fire = 50700;
public const int weapon_Fire = 50800;
public const int hand_Lightning = 50402;
public const int arrow_Lightning = 50502;
public const int funnel_Lightning = 50602;
public const int miasma_Lightning = 50702;
@@ -412,15 +416,13 @@ public class SPELL
public const int puddle_Darkness = 50903;
public const int sword_Darkness = 51003;
public const int funnel_Lightning = 50602;
public const int arrow_Lightning = 50502;
public const int SpInvisibility = 8775;
public const int miasma_Fire = 50700;
public const int funnel_Fire = 50600;
public const int arrow_Fire = 50500;
public const int hand_Fire = 50400;
public const int SpIncognito = 8780;
@@ -448,10 +450,12 @@ public class SPELL
public const int SpSummonOrc = 9007;
public const int funnel_Fire = 50600;
public const int arrow_Fire = 50500;
public const int SpSummonFish = 9008;
public const int SpSummonShubKid = 9010;
public const int SpSummonShadow = 9050;
public const int SpMeteor = 9150;
@@ -476,39 +480,37 @@ public class SPELL
public const int bolt_Fire = 50300;
public const int hand_Fire = 50400;
public const int SpSummonTako = 9009;
public const int sword_Void = 51016;
public static readonly int[] IDS = new int[241]
public static readonly int[] IDS = new int[242]
{
50415, 50107, 50316, 50307, 50407, 50507, 50607, 50707, 50807, 50907,
51007, 50416, 50108, 50308, 50408, 50508, 50608, 50708, 50808, 50908,
51008, 50109, 51015, 50309, 50116, 51006, 50906, 50806, 50504, 50604,
50704, 50804, 50904, 51004, 50105, 50816, 50716, 50305, 50405, 50505,
50605, 50705, 50805, 50905, 51005, 50106, 50616, 50516, 50306, 50406,
50506, 50606, 50706, 50409, 50509, 50609, 50709, 50712, 50812, 50912,
51012, 50113, 50615, 50313, 50413, 50513, 50404, 50713, 50813, 50913,
51013, 50114, 50515, 50314, 50414, 50514, 50614, 50714, 50814, 50914,
51014, 50115, 50612, 50315, 50512, 50312, 50809, 50909, 51009, 50110,
50915, 50310, 50410, 50510, 50610, 50710, 50810, 50910, 51010, 50111,
50815, 50311, 50411, 50511, 50611, 50711, 50811, 50911, 51011, 50112,
50715, 50412, 50613, 50900, 50104, 8400, 8401, 8402, 8403, 8404,
8405, 8406, 8430, 8450, 8470, 8471, 8480, 8490, 8390, 8491,
8501, 8502, 8503, 8504, 8506, 8510, 8550, 8700, 8702, 8704,
8705, 8706, 8708, 8500, 8710, 8380, 8288, 7001, 7002, 7003,
7004, 7005, 7006, 7007, 7008, 7800, 8200, 8201, 8202, 8220,
8300, 8221, 8232, 8240, 8241, 8250, 8251, 8255, 8256, 8260,
8280, 8281, 8284, 8285, 8286, 8230, 50304, 8770, 8776, 51000,
50101, 50301, 50401, 50501, 50601, 50701, 50801, 50901, 51001, 50102,
50302, 50402, 50800, 50502, 50702, 50802, 50902, 51002, 50103, 50303,
50403, 50503, 50603, 50703, 50803, 50903, 51003, 50602, 8775, 50700,
50500, 8780, 8790, 8791, 8800, 8801, 9000, 9001, 9002, 9003,
9004, 9005, 9006, 9007, 50600, 9008, 9050, 9150, 9151, 9160,
9200, 9500, 9501, 9502, 9503, 50100, 50916, 50300, 50400, 9009,
51016
50415, 51006, 50107, 50316, 50307, 50407, 50507, 50607, 50707, 50807,
50907, 51007, 50108, 50116, 50308, 50408, 50508, 50608, 50708, 50808,
50908, 51008, 50109, 51015, 50309, 50416, 50409, 50906, 50706, 50404,
50504, 50604, 50704, 50804, 50904, 51004, 50105, 50816, 50716, 50305,
50405, 50505, 50605, 50705, 50805, 50905, 51005, 50616, 50106, 50516,
50306, 50406, 50506, 50606, 50806, 50315, 50509, 50709, 50712, 50812,
50912, 51012, 50113, 50615, 50313, 50413, 50513, 50304, 50713, 50813,
50913, 51013, 50114, 50515, 50314, 50414, 50514, 50614, 50714, 50814,
50914, 51014, 50115, 50612, 50609, 50512, 50312, 50809, 50909, 51009,
50110, 50915, 50310, 50410, 50510, 50610, 50710, 50810, 50910, 51010,
50111, 50815, 50311, 50411, 50511, 50611, 50711, 50811, 50911, 51011,
50112, 50715, 50412, 50613, 50800, 51003, 8400, 8401, 8402, 8403,
8404, 8405, 8406, 8430, 8450, 8470, 8471, 8480, 8490, 8390,
8491, 8501, 8502, 8503, 8504, 8506, 8510, 8550, 8700, 8702,
8704, 8705, 8706, 8708, 8500, 8710, 8380, 8288, 7001, 7002,
7003, 7004, 7005, 7006, 7007, 7008, 7800, 8200, 8201, 8202,
8220, 8300, 8221, 8232, 8240, 8241, 8250, 8251, 8255, 8256,
8260, 8280, 8281, 8284, 8285, 8286, 8230, 50104, 8770, 8776,
50900, 51000, 50101, 50301, 50401, 50501, 50601, 50701, 50801, 50901,
51001, 50102, 50302, 50700, 50402, 50602, 50702, 50802, 50902, 51002,
50103, 50303, 50403, 50503, 50603, 50703, 50803, 50903, 50502, 8775,
50600, 50400, 8780, 8790, 8791, 8800, 8801, 9000, 9001, 9002,
9003, 9004, 9005, 9006, 9007, 50500, 9008, 9010, 9050, 9150,
9151, 9160, 9200, 9500, 9501, 9502, 9503, 50100, 50916, 50300,
9009, 51016
};
}
public class Spell : Ability
SourceChara
@@ -121,7 +121,7 @@ public override string GetName()
{
text = text.TrimStart(' ');
}
return text;
return text.Replace(" ", " ");
}
}
SourceElement
@@ -387,22 +387,25 @@ public override void OnAfterImportData()
public void AddRow(Row ele, int id, string idOrg)
{
Row row = EClass.sources.elements.alias[idOrg];
System.Reflection.FieldInfo[] fields = row.GetType().GetFields();
Row row2 = new Row();
System.Reflection.FieldInfo[] array = fields;
foreach (System.Reflection.FieldInfo fieldInfo in array)
if (!map.ContainsKey(id))
{
row2.SetField(fieldInfo.Name, row.GetField<object>(fieldInfo.Name));
Row row = EClass.sources.elements.alias[idOrg];
System.Reflection.FieldInfo[] fields = row.GetType().GetFields();
Row row2 = new Row();
System.Reflection.FieldInfo[] array = fields;
foreach (System.Reflection.FieldInfo fieldInfo in array)
{
row2.SetField(fieldInfo.Name, row.GetField<object>(fieldInfo.Name));
}
row2.id = id;
row2.idMold = row.id;
row2.alias = row.alias + ele.alias.Remove(0, 3);
row2.aliasRef = ele.alias;
row2.aliasParent = ele.aliasParent;
row2.chance = row.chance * ele.chance / 100;
row2.LV = row.LV;
row2.OnImportData(EClass.sources.elements);
rows.Add(row2);
}
row2.id = id;
row2.idMold = row.id;
row2.alias = row.alias + ele.alias.Remove(0, 3);
row2.aliasRef = ele.alias;
row2.aliasParent = ele.aliasParent;
row2.chance = row.chance * ele.chance / 100;
row2.LV = row.LV;
row2.OnImportData(EClass.sources.elements);
rows.Add(row2);
}
}
TaskCullLife
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
public class TaskCullLife : Task
{
@@ -53,7 +54,7 @@ public override IEnumerable<Status> Run()
owner.PlaySound("shear");
Msg.Say("cull_life", EClass.pc, target);
target.Die();
Thing t = ThingGen.Create("ecopo").SetNum(EClass.rndHalf(target.LV / 10 + 6));
Thing t = ThingGen.Create("ecopo").SetNum(EClass.rndHalf((int)Mathf.Sqrt(target.LV) + 5));
EClass.pc.Pick(t);
yield return KeepRunning();
}
TraitMerchantEcopo
@@ -3,4 +3,6 @@ public class TraitMerchantEcopo : TraitMerchant
public override ShopType ShopType => ShopType.Ecopo;
public override CurrencyType CurrencyType => CurrencyType.Ecopo;
public override int CostRerollShop => 2;
}
WidgetCodex
@@ -22,6 +22,8 @@ public enum SearchType
public UIButton buttonClear;
public UIButton buttonRefresh;
public Transform transResult;
private int count;
@@ -43,6 +45,7 @@ public override void OnActivate()
public void Clear()
{
field.text = "";
field.Select();
}
public virtual void Search(string s)
WidgetSearch
@@ -32,6 +32,8 @@ public class Word
public UIList listWords;
public Zone lastZone;
public Extra extra => base.config.extra as Extra;
public override SearchType type => SearchType.Search;
@@ -80,13 +82,23 @@ public override bool CheckClose()
if (EMono.scene.actionMode.IsFuncPressed(CoreConfig.GameFunc.PropertySearch))
{
EMono.ui.widgets.DeactivateWidget(this);
return;
}
else
base.Update();
if (lastZone != EMono._zone)
{
base.Update();
lastSearch = "";
Search(field.text);
}
}
public void RefreshSearch()
{
SE.Tab();
lastSearch = "";
Search(field.text);
}
public override void Search(string s)
{
if (!s.IsEmpty())
@@ -95,11 +107,13 @@ public override void Search(string s)
}
s = s.ToLower();
buttonClear.SetActive(field.text != "");
buttonRefresh.SetActive(field.text != "");
if (s == lastSearch || s.Length == 0)
{
return;
}
lastSearch = s;
lastZone = EMono._zone;
bool encSearch = s.Length >= 2 && (s[0] == '@' || s[0] == '@');
if (encSearch)
{
@@ -275,7 +289,6 @@ public override void RefreshList()
selected = null;
EMono.pc.SetAIImmediate(new AI_Goto(rootCard.pos.Copy(), 0));
ActionMode.Adv.SetTurbo(3);
Close();
}
}
else