EA 23.238 Nightly โ
November 21, 2025
13 files modified.
Important Changes โ
Possible breaking changes. Click the filename to view the chunk.
CraftUtil (1) โ
public static Thing MakeBloodMeal(Chara sucker, Chara feeder)
public static string GetBloodText(Chara c) AI_Fish โ
public override void OnProgressComplete()
}
}
}
else
else if (!owner.IsPCParty)
{
foreach (Thing item in owner.things.List((Thing t) => t.source._origin == "fish"))
{ActEffect โ
void AddCon<T>(int rate, int power) where T : Condition
{
break;
}
int num8 = 0;
int num12 = 0;
foreach (Condition condition5 in TC.conditions)
{
if (condition5.Type == ConditionType.Debuff)
{
num8++;
num12++;
}
}
if (num8 == 0)
if (num12 == 0)
{
CC.SayNothingHappans();
break;void AddCon<T>(int rate, int power) where T : Condition
});
TC.Say("abShutterHex", TC);
Point center = CC.pos.Copy();
List<Chara> list5 = TC.pos.ListCharasInRadius(TC, 4, (Chara c) => c == TC || c.IsHostile(CC));
for (int l = 0; l < num8; l++)
List<Chara> list9 = TC.pos.ListCharasInRadius(TC, 4, (Chara c) => c == TC || c.IsHostile(CC));
for (int m = 0; m < num12; m++)
{
TweenUtil.Delay((float)l * 0.1f, delegate
TweenUtil.Delay((float)m * 0.1f, delegate
{
center.PlaySound("shutterhex");
});
foreach (Chara item5 in list5)
foreach (Chara item5 in list9)
{
if (item5.ExistsOnMap)
{void AddCon<T>(int rate, int power) where T : Condition
Color startColor = (componentInChildren.endColor = EClass.Colors.elementColors["eleHoly"]);
componentInChildren.startColor = startColor;
Point pos = item5.pos.Copy();
TweenUtil.Delay((float)l * 0.1f, delegate
TweenUtil.Delay((float)m * 0.1f, delegate
{
effect.Play(center, 0f, pos);
});
int num9 = Dice.Create("SpShutterHex", power, CC, (actRef.refThing != null) ? null : actRef.act).Roll();
item5.DamageHP(num9, 919, power, AttackSource.None, CC, showEffect: false);
int num13 = Dice.Create("SpShutterHex", power, CC, (actRef.refThing != null) ? null : actRef.act).Roll();
item5.DamageHP(num13, 919, power, AttackSource.None, CC, showEffect: false);
}
}
}void AddCon<T>(int rate, int power) where T : Condition
TC.Say((actRef.n1 == "money") ? "abStealNegateMoney" : "abStealNegate", TC);
break;
}
Thing thing4 = null;
bool flag9 = actRef.n1 == "food";
Thing thing5 = null;
bool flag7 = actRef.n1 == "food";
if (actRef.n1 == "money")
{
int currency = TC.GetCurrency();
if (currency > 0)
{
currency = Mathf.Clamp(EClass.rnd(currency / 10), 1, 100 + EClass.rndHalf(CC.LV * 200));
thing4 = ThingGen.Create("money").SetNum(currency);
thing5 = ThingGen.Create("money").SetNum(currency);
TC.ModCurrency(-currency);
}
}
else
{
Func<Thing, bool> func = (Thing t) => true;
if (flag9)
if (flag7)
{
func = (Thing t) => t.IsFood;
}
List<Thing> list6 = TC.things.List(delegate(Thing t)
List<Thing> list5 = TC.things.List(delegate(Thing t)
{
if (t.parentCard?.trait is TraitChestMerchant || t.trait is TraitTool || t.IsThrownWeapon)
{void AddCon<T>(int rate, int power) where T : Condition
}
return t.trait.CanBeDestroyed && t.things.Count == 0 && t.invY != 1 && t.trait.CanBeStolen && !t.trait.CanOnlyCarry && !t.IsUnique && !t.isEquipped && t.blessedState == BlessedState.Normal && func(t);
}, onlyAccessible: true);
if (list6.Count > 0)
if (list5.Count > 0)
{
thing4 = list6.RandomItem();
if (thing4.Num > 1)
thing5 = list5.RandomItem();
if (thing5.Num > 1)
{
thing4 = thing4.Split(1);
thing5 = thing5.Split(1);
}
}
CC.AddCooldown(6640, 200);
}
if (thing4 == null)
if (thing5 == null)
{
CC.Say("abStealNothing", CC, TC);
break;
}
thing4.SetInt(116, 1);
TC.PlaySound(thing4.material.GetSoundDrop(thing4.sourceCard));
CC.Pick(thing4, msg: false);
CC.Say("abSteal", CC, TC, thing4.Name);
thing5.SetInt(116, 1);
TC.PlaySound(thing5.material.GetSoundDrop(thing5.sourceCard));
CC.Pick(thing5, msg: false);
CC.Say("abSteal", CC, TC, thing5.Name);
if (actRef.n1 == "food")
{
if (CC.hunger.value != 0)
{
CC.InstantEat(thing4);
CC.InstantEat(thing5);
}
}
elsevoid AddCon<T>(int rate, int power) where T : Condition
{
break;
}
List<Thing> list9 = TC.things.List(delegate(Thing t)
List<Thing> list4 = TC.things.List(delegate(Thing t)
{
if (!t.isEquipped || t.blessedState == BlessedState.Doomed || t.IsToolbelt)
{void AddCon<T>(int rate, int power) where T : Condition
}
return (t.blessedState < BlessedState.Blessed || EClass.rnd(10) == 0) ? true : false;
});
if (list9.Count == 0)
if (list4.Count == 0)
{
CC.SayNothingHappans();
break;
}
Thing thing6 = list9.RandomItem();
TC.Say("curse_hit", TC, thing6);
thing6.SetBlessedState((thing6.blessedState == BlessedState.Cursed) ? BlessedState.Doomed : BlessedState.Cursed);
LayerInventory.SetDirty(thing6);
Thing thing4 = list4.RandomItem();
TC.Say("curse_hit", TC, thing4);
thing4.SetBlessedState((thing4.blessedState == BlessedState.Cursed) ? BlessedState.Doomed : BlessedState.Cursed);
LayerInventory.SetDirty(thing4);
break;
}
case EffectId.UncurseEQ:void AddCon<T>(int rate, int power) where T : Condition
List<Thing> list = new List<Thing>();
TC.things.Foreach(delegate(Thing t)
{
int num13 = 0;
int num14 = 0;
if ((t.isEquipped || t.IsRangedWeapon || blessed) && t.blessedState < BlessedState.Normal)
{
if (t.blessedState == BlessedState.Cursed)
{
num13 = EClass.rnd(200);
num14 = EClass.rnd(200);
}
if (t.blessedState == BlessedState.Doomed)
{
num13 = EClass.rnd(1000);
num14 = EClass.rnd(1000);
}
if (blessed)
{
num13 /= 2;
num14 /= 2;
}
if (id == EffectId.UncurseEQGreater)
{
num13 /= 10;
num14 /= 10;
}
if (power >= num13)
if (power >= num14)
{
TC.Say("uncurseEQ_success", t);
t.SetBlessedState(BlessedState.Normal);void AddCon<T>(int rate, int power) where T : Condition
text3 = text4;
}
}
Condition condition = Condition.Create(text3, power, delegate(Condition con)
Condition condition2 = Condition.Create(text3, power, delegate(Condition con)
{
if (!actRef.aliasEle.IsEmpty())
{
con.SetElement(EClass.sources.elements.alias[actRef.aliasEle].id);
}
});
condition.isPerfume = TC.IsPC && actRef.isPerfume;
Condition condition2 = TC.AddCondition(condition);
if (condition2 != null && condition2.isPerfume)
condition2.isPerfume = TC.IsPC && actRef.isPerfume;
Condition condition3 = TC.AddCondition(condition2);
if (condition3 != null && condition3.isPerfume)
{
condition2.value = 3;
condition3.value = 3;
Msg.Say("perfume", TC);
}
if (!text4.IsEmpty())void AddCon<T>(int rate, int power) where T : Condition
{
EClass.game.religions.Trickery.Talk("ability");
bool hex = CC.IsHostile(TC);
List<SourceStat.Row> list7 = EClass.sources.stats.rows.Where((SourceStat.Row con) => con.tag.Contains("random") && con.group == (hex ? "Debuff" : "Buff")).ToList();
List<SourceStat.Row> list6 = EClass.sources.stats.rows.Where((SourceStat.Row con) => con.tag.Contains("random") && con.group == (hex ? "Debuff" : "Buff")).ToList();
int power2 = power;
for (int m = 0; m < 4 + EClass.rnd(2); m++)
for (int k = 0; k < 4 + EClass.rnd(2); k++)
{
SourceStat.Row row2 = list7.RandomItem();
list7.Remove(row2);
SourceStat.Row row2 = list6.RandomItem();
list6.Remove(row2);
Proc(hex ? EffectId.DebuffKizuami : EffectId.Buff, CC, TC, power2, new ActRef
{
n1 = row2.aliasvoid AddCon<T>(int rate, int power) where T : Condition
power = power * 2 / 3;
}
int a2 = power;
int num10 = TC.WIL * (isPowerful ? 20 : 5);
ConHolyVeil condition3 = TC.GetCondition<ConHolyVeil>();
if (condition3 != null)
int num7 = TC.WIL * (isPowerful ? 20 : 5);
ConHolyVeil condition = TC.GetCondition<ConHolyVeil>();
if (condition != null)
{
num10 += condition3.power * 5;
num7 += condition.power * 5;
}
if (id != EffectId.DebuffKizuami && EClass.rnd(a2) < num10 / EClass.sources.stats.alias[n].hexPower && EClass.rnd(10) != 0)
if (id != EffectId.DebuffKizuami && EClass.rnd(a2) < num7 / EClass.sources.stats.alias[n].hexPower && EClass.rnd(10) != 0)
{
TC.Say("debuff_resist", TC);
CC.DoHostileAction(TC);void AddCon<T>(int rate, int power) where T : Condition
}
break;
}
case EffectId.TransBlood:
{
tc.PlaySound("mutation");
tc.PlayEffect("mutation");
int num8 = ((actRef.refThing != null) ? actRef.refThing.GetInt(118) : actRef.refVal);
if (num8 == 0)
{
num8 = tc.GetInt(118);
if (num8 == 0)
{
num8 = EClass.game.seed + tc.uid;
}
num8++;
}
tc.Say("transBlood", tc);
tc.Talk("tail");
tc.c_bloodData = null;
tc.SetInt(118, num8);
break;
}
case EffectId.Youth:
{
tc.PlaySound("mutation");void AddCon<T>(int rate, int power) where T : Condition
break;
case EffectId.Revive:
{
List<KeyValuePair<int, Chara>> list4 = EClass.game.cards.globalCharas.Where((KeyValuePair<int, Chara> a) => a.Value.isDead && a.Value.faction == EClass.pc.faction && !a.Value.isSummon && a.Value.c_wasInPcParty).ToList();
List<KeyValuePair<int, Chara>> list8 = EClass.game.cards.globalCharas.Where((KeyValuePair<int, Chara> a) => a.Value.isDead && a.Value.faction == EClass.pc.faction && !a.Value.isSummon && a.Value.c_wasInPcParty).ToList();
if (TC.IsPCFaction || TC.IsPCFactionMinion)
{
if (TC.IsPC && list4.Count == 0)
if (TC.IsPC && list8.Count == 0)
{
list4 = EClass.game.cards.globalCharas.Where((KeyValuePair<int, Chara> a) => a.Value.CanRevive() && a.Value.isDead && a.Value.faction == EClass.pc.faction && !a.Value.isSummon).ToList();
list8 = EClass.game.cards.globalCharas.Where((KeyValuePair<int, Chara> a) => a.Value.CanRevive() && a.Value.isDead && a.Value.faction == EClass.pc.faction && !a.Value.isSummon).ToList();
}
if (list4.Count > 0)
if (list8.Count > 0)
{
list4.RandomItem().Value.Chara.GetRevived();
list8.RandomItem().Value.Chara.GetRevived();
break;
}
}void AddCon<T>(int rate, int power) where T : Condition
case EffectId.DamageMindGreat:
case EffectId.Weaken:
{
bool flag7 = id == EffectId.DamageBody || id == EffectId.DamageBodyGreat;
bool mind = id == EffectId.DamageMind || id == EffectId.DamageMindGreat;
int num7 = ((id == EffectId.DamageBody || id == EffectId.DamageMind) ? 1 : (4 + EClass.rnd(4)));
bool flag10 = id == EffectId.DamageBody || id == EffectId.DamageBodyGreat;
bool mind2 = id == EffectId.DamageMind || id == EffectId.DamageMindGreat;
int num11 = ((id == EffectId.DamageBody || id == EffectId.DamageMind) ? 1 : (4 + EClass.rnd(4)));
if (id == EffectId.Weaken)
{
flag7 = EClass.rnd(2) == 0;
mind = !flag7;
num7 = 1;
flag10 = EClass.rnd(2) == 0;
mind2 = !flag10;
num11 = 1;
}
else
{
TC.PlayEffect("debuff");
TC.PlaySound("debuff");
}
TC.Say(flag7 ? "damageBody" : "damageMind", TC);
for (int k = 0; k < num7; k++)
TC.Say(flag10 ? "damageBody" : "damageMind", TC);
for (int l = 0; l < num11; l++)
{
TC.DamageTempElements(power, flag7, mind, id != EffectId.Weaken);
TC.DamageTempElements(power, flag10, mind2, id != EffectId.Weaken);
}
if (TC.IsPC)
{void AddCon<T>(int rate, int power) where T : Condition
case EffectId.EnhanceBodyGreat:
case EffectId.EnhanceMindGreat:
{
bool flag10 = id == EffectId.EnhanceBody || id == EffectId.EnhanceBodyGreat;
bool mind2 = id == EffectId.EnhanceMind || id == EffectId.EnhanceMindGreat;
bool flag8 = id == EffectId.EnhanceBody || id == EffectId.EnhanceBodyGreat;
bool mind = id == EffectId.EnhanceMind || id == EffectId.EnhanceMindGreat;
if (id != EffectId.EnhanceBody && id != EffectId.EnhanceMind)
{
EClass.rnd(4);
}
TC.Say(flag10 ? "enhanceBody" : "enhanceMind", TC);
TC.Say(flag8 ? "enhanceBody" : "enhanceMind", TC);
TC.PlayEffect("buff");
TC.PlaySound("buff");
TC.EnhanceTempElements(power, flag10, mind2, onlyRenew: true);
TC.EnhanceTempElements(power, flag8, mind, onlyRenew: true);
break;
}
case EffectId.RestoreBody:
case EffectId.RestoreMind:
{
bool flag8 = id == EffectId.RestoreBody;
bool flag9 = id == EffectId.RestoreBody;
if (flag)
{
Redirect(flag8 ? EffectId.DamageBodyGreat : EffectId.DamageMindGreat, BlessedState.Normal, default(ActRef));
Redirect(flag9 ? EffectId.DamageBodyGreat : EffectId.DamageMindGreat, BlessedState.Normal, default(ActRef));
break;
}
TC.Say(flag8 ? "restoreBody" : "restoreMind", TC);
TC.Say(flag9 ? "restoreBody" : "restoreMind", TC);
TC.PlaySound("heal");
TC.PlayEffect("heal");
TC.CureHost(flag8 ? CureType.CureBody : CureType.CureMind, power, state);
TC.CureHost(flag9 ? CureType.CureBody : CureType.CureMind, power, state);
if (blessed)
{
Redirect(flag8 ? EffectId.EnhanceBodyGreat : EffectId.EnhanceMindGreat, BlessedState.Normal, default(ActRef));
Redirect(flag9 ? EffectId.EnhanceBodyGreat : EffectId.EnhanceMindGreat, BlessedState.Normal, default(ActRef));
}
break;
}void AddCon<T>(int rate, int power) where T : Condition
{
Debug.Log(actRef.act.id);
}
int num12 = Dice.Create((actRef.act != null && EClass.sources.calc.map.ContainsKey(actRef.act.ID)) ? actRef.act.ID : "SpHealLight", power, CC, (actRef.refThing != null) ? null : actRef.act).Roll();
int num10 = Dice.Create((actRef.act != null && EClass.sources.calc.map.ContainsKey(actRef.act.ID)) ? actRef.act.ID : "SpHealLight", power, CC, (actRef.refThing != null) ? null : actRef.act).Roll();
if (actRef.refThing != null)
{
num12 = num12 * (100 + actRef.refThing.Evalue(750) * 10) / 100;
num10 = num10 * (100 + actRef.refThing.Evalue(750) * 10) / 100;
}
if (flag)
{
TC.DamageHP(num12 / 2, 919, power);
TC.DamageHP(num10 / 2, 919, power);
break;
}
TC.HealHPHost(num12, (actRef.refThing == null && id != EffectId.JureHeal) ? HealSource.Magic : HealSource.Item);
TC.HealHPHost(num10, (actRef.refThing == null && id != EffectId.JureHeal) ? HealSource.Magic : HealSource.Item);
TC.CureHost(CureType.Heal, power, state);
TC.Say((power >= 300) ? "heal_heavy" : "heal_light", TC);
break;void AddCon<T>(int rate, int power) where T : Condition
if (TC.HasElement(1211))
{
TC.Say("drinkSaltWater_snail", TC);
int num11 = ((TC.hp > 10) ? (TC.hp - EClass.rnd(10)) : 10000);
TC.DamageHP(num11, AttackSource.None, CC);
int num9 = ((TC.hp > 10) ? (TC.hp - EClass.rnd(10)) : 10000);
TC.DamageHP(num9, AttackSource.None, CC);
}
else if (TC.IsPC)
{void AddCon<T>(int rate, int power) where T : Condition
{
power /= 4;
}
List<Thing> list8 = TC.things.List((Thing t) => (t.Num <= 1 && t.IsEquipmentOrRanged && !t.IsToolbelt && !t.IsLightsource && t.isEquipped) ? true : false);
if (list8.Count != 0)
List<Thing> list7 = TC.things.List((Thing t) => (t.Num <= 1 && t.IsEquipmentOrRanged && !t.IsToolbelt && !t.IsLightsource && t.isEquipped) ? true : false);
if (list7.Count != 0)
{
Thing thing5 = list8.RandomItem();
Thing thing6 = list7.RandomItem();
TC.Say("acid_hit", TC);
if (thing5.isAcidproof)
if (thing6.isAcidproof)
{
TC.Say("acid_nullify", thing5);
TC.Say("acid_nullify", thing6);
}
else if (thing5.encLV > -5)
else if (thing6.encLV > -5)
{
TC.Say("acid_rust", TC, thing5);
thing5.ModEncLv(-1);
LayerInventory.SetDirty(thing5);
TC.Say("acid_rust", TC, thing6);
thing6.ModEncLv(-1);
LayerInventory.SetDirty(thing6);
}
if (TC.IsPCParty)
{ActWater โ
public override bool Perform()
}
foreach (Chara chara in Act.TP.Charas)
{
bool flag = false;
if (chara.HasCondition<ConBurning>())
{
flag = true;
chara.Talk("thanks");
}
else if (!chara.IsPCParty && EClass.rnd(2) == 0)public override bool Perform()
continue;
}
chara.AddCondition<ConWet>();
Act.CC.DoHostileAction(chara);
if (!flag)
{
Act.CC.DoHostileAction(chara);
}
}
Act.CC.PlaySound("water_farm");
waterCan.owner.ModCharge(-1);CINT โ
public const int godEaten = 117;
public const int seedBlood = 118;
public const int isTrained = 120;
public const int isPrayed = 121;COBJ โ
public const int socketList = 17;
public const int mixedFoodData = 18;
public const int bloodData = 19;
}Card โ
public MixedFoodData c_mixedFoodData
}
}
public Thing c_bloodData
{
get
{
return GetObj<Thing>(19);
}
set
{
SetObj(19, value);
}
}
public byte[] c_textureData
{
getCellEffect โ
}
}
public int refVal
{
get
{
return ints[7];
}
set
{
ints[7] = value;
}
}
public string n1
{
getChara โ
ActEffect.ProcAt(e.idEffect, e.power, e.isBlessed ? BlessedState.Blessed : (e.isCursed ? BlessedState.Cursed : BlessedState.Normal), this, this, new Point(pos), e.isHostileAct, new ActRef
{
aliasEle = EClass.sources.elements.map[e.idEle].alias,
n1 = e.n1
n1 = e.n1,
refVal = e.refVal
});
ClearEffect();
}public override string GetHoverText()
{
text2 += ("(" + faith.Name + ")").TagSize(14);
}
if (EClass.pc.HasElement(1250))
{
s += CraftUtil.GetBloodText(this).TagSize(14).TagColor(EClass.Colors.colorBlood);
}
return text + text2 + s;
} {
return false;
}
if (!EClass.debug.enable)
if (!EClass.debug.godMode)
{
if (base.c_daysWithPC > 360)
{ColorProfile โ
public Color colorHostile;
public Color colorBlood;
public Color colorBuff;
public Color colorDebuff;CraftUtil โ
}
}
public static Thing MakeBloodMeal(Chara sucker, Chara feeder)
public static string GetBloodText(Chara c)
{
Rand.SetSeed(EClass.game.seed + feeder.uid);
Thing thing = ThingGen.CreateFromCategory("meal", 100);
sucker.Say("food_blood", thing);
MakeDish(thing, 100, null, EClass.game.seed + feeder.uid);
if (thing.HasElement(709))
string text = "";
List<Element> list = MakeBloodMeal(EClass.pc, c, msg: false).elements.ListElements((Element e) => e.IsFoodTraitMain, (Element a, Element b) => b.Value - a.Value);
int num = Mathf.Min(list.Count(), 3, EClass.debug.godMode ? 3 : (1 + EClass.pc.Evalue(6607) / 15));
for (int i = 0; i < num; i++)
{
Element element = list[i];
string[] textArray = element.source.GetTextArray("textAlt");
int num2 = Mathf.Clamp(element.Value / 10 + 1, (element.Value < 0 || textArray.Length <= 2) ? 1 : 2, textArray.Length - 1);
string text2 = textArray[num2];
if (i != 0)
{
text += ", ";
}
text += text2;
}
if (!text.IsEmpty())
{
thing.elements.Remove(709);
text = " (" + text + ")";
}
if (thing.HasElement(708))
return text;
}
public static Thing MakeBloodMeal(Chara sucker, Chara feeder, bool msg = true)
{
Thing c_bloodData = feeder.c_bloodData;
if (c_bloodData == null)
{
thing.elements.Remove(708);
int seed = ((feeder.GetInt(118) == 0) ? (EClass.game.seed + feeder.uid) : feeder.GetInt(118));
Rand.SetSeed(seed);
c_bloodData = ThingGen.CreateFromCategory("meal", 100);
if (msg)
{
sucker.Say("food_blood", c_bloodData);
}
MakeDish(c_bloodData, 100, null, seed);
c_bloodData.elements.SetTo(709, 0);
c_bloodData.elements.SetTo(708, 0);
c_bloodData.elements.SetTo(701, 0);
feeder.c_bloodData = c_bloodData.Duplicate(1);
}
if (thing.HasElement(701))
else
{
thing.elements.Remove(701);
c_bloodData = c_bloodData.Duplicate(1);
if (msg)
{
sucker.Say("food_blood", c_bloodData);
}
}
thing.elements.ModBase(710, 20 + (int)Mathf.Min(Mathf.Sqrt(sucker.Evalue(6607) + Mathf.Max(sucker.LER, 0)), 50f));
thing.elements.SetTo(2, Mathf.Min(EClass.curve(feeder.LV, 30, 10, 65), 200));
return thing;
c_bloodData.elements.SetTo(2, Mathf.Min(EClass.curve(feeder.LV, 30, 10, 65), 200));
c_bloodData.elements.ModBase(710, 15 + (int)Mathf.Min(Mathf.Sqrt(sucker.Evalue(6607) + Mathf.Max(sucker.LER, 0)), 50f));
return c_bloodData;
}
public static Thing MakeBloodSample(Chara sucker, Chara feeder)public static Thing MakeBloodSample(Chara sucker, Chara feeder)
thing2.elements.SetTo(10, 0);
thing2.MakeRefFrom(feeder);
thing2.c_idRefCard = thing.id;
thing2.SetInt(118, EClass.game.seed + feeder.uid);
return thing2;
}public static Card MixIngredients(Card product, List<Thing> ings, MixType type,
int value = ing.GetValue();
num2 += value;
}
if (product.id == "1300" && product.GetInt(118) == 0)
{
product.SetInt(118, ing.GetInt(118));
product.c_idRefCard = ing.c_idRefCard;
}
}
}
if (isFood)EffectId โ
Rocket = 308,
StripBlessing = 309,
Flare = 310,
GravityGun = 311
GravityGun = 311,
TransBlood = 312
}TraitDrink โ
public override void OnThrowGround(Chara c, Point p)
if (IdEffect != EffectId.Drink)
{
bool isHostileAct = c.IsPCParty && IsNeg;
EClass._map.SetLiquid(p.x, p.z, new CellEffect
CellEffect cellEffect = new CellEffect
{
id = 4,
idEffect = IdEffect,public override void OnThrowGround(Chara c, Point p)
n1 = N1,
isBlessed = (owner.blessedState >= BlessedState.Blessed),
isCursed = (owner.blessedState <= BlessedState.Cursed)
});
};
if (IdEffect == EffectId.TransBlood)
{
cellEffect.refVal = owner.GetInt(118);
}
EClass._map.SetLiquid(p.x, p.z, cellEffect);
}
else
{WindowCharaMini โ
using System;
using System.Linq;
using UnityEngine;public void Refresh(int idTab)
note.SetActive(enable: true);
note.AddText("feat_pet".lang(chara.feat.ToString() ?? "", num.ToString() ?? ""));
note.AddText("feat_inferior".lang(chara.CurrentGeneSlot.ToString() ?? "", chara.MaxGeneSlot.ToString() ?? "", ((genes != null) ? genes.inferior : 0).ToString() ?? ""));
note.AddText((chara.isScaled ? "feat_pet_type2" : "feat_pet_type1").lang());
HintIcon componentInChildren = note.AddText("NoteText_with_hint", (chara.isScaled ? "feat_pet_type2" : "feat_pet_type1").lang()).GetComponentInChildren<HintIcon>();
string text = (chara.isScaled ? "feat_pet_type2_hint" : "feat_pet_type1_hint").lang();
if (!chara.isScaled && !chara.HasElement(1273))
{
text = text + Environment.NewLine + (chara.CanBloom() ? "petawaken2" : "petawaken1").lang();
}
componentInChildren.tooltip.lang = text;
note.Space(8);
foreach (CharaUpgrade.Item item6 in upgrades.items)
{