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)
{