EA 23.93 Nightly
February 19, 2025
20 files modified.
Important Changes
None.
ActEffect
@@ -211,7 +211,7 @@ public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
}
else
{
Dice dice = Dice.Create(text2, power, CC, actref.act);
Dice dice = Dice.Create(text2, power, CC, (actref.refThing != null) ? null : actref.act);
if (dice == null)
{
Debug.Log(text2);
{
return;
}
Thing thing3 = ThingGen.Create("mine");
thing3.c_idRefCard = "dog_mine";
Thing thing = ThingGen.Create("mine");
thing.c_idRefCard = "dog_mine";
Zone.ignoreSpawnAnime = true;
EClass._zone.AddCard(thing3, CC.pos).Install();
EClass._zone.AddCard(thing, CC.pos).Install();
break;
}
case EffectId.MagicMap:
@@ -892,7 +892,7 @@ public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
case EffectId.AbsorbMana:
{
EClass.game.religions.Element.Talk("ability");
Dice dice = Dice.Create("ActManaAbsorb", power, CC, actRef.act);
Dice dice = Dice.Create("ActManaAbsorb", power, CC, (actRef.refThing != null) ? null : actRef.act);
TC.mana.Mod(dice.Roll());
TC.PlaySound("heal");
TC.PlayEffect("heal");
LayerDragGrid.CreateUncurse(CC, state);
return;
}
Thing thing = tc.Thing;
if (thing.blessedState == BlessedState.Cursed)
Thing thing2 = tc.Thing;
if (thing2.blessedState == BlessedState.Cursed)
{
thing.SetBlessedState(BlessedState.Normal);
thing2.SetBlessedState(BlessedState.Normal);
}
else if (thing.blessedState == BlessedState.Doomed)
else if (thing2.blessedState == BlessedState.Doomed)
{
thing.SetBlessedState(BlessedState.Normal);
thing2.SetBlessedState(BlessedState.Normal);
}
thing.GetRootCard()?.TryStack(thing);
LayerInventory.SetDirty(thing);
thing2.GetRootCard()?.TryStack(thing2);
LayerInventory.SetDirty(thing2);
break;
}
case EffectId.Lighten:
cc.PlayEffect("identify");
cc.Say("reconstruct", cc, tc);
EClass.game.cards.uidNext += EClass.rnd(30);
Thing thing2 = ThingGen.Create(tc.id, -1, tc.LV * power / 100);
thing2.SetBlessedState(state);
Thing thing3 = ThingGen.Create(tc.id, -1, tc.LV * power / 100);
thing3.SetBlessedState(state);
tc.Destroy();
CC.Pick(thing2, msg: false);
CC.Pick(thing3, msg: false);
if (!CC.IsPC)
{
CC.TryEquip(thing2);
CC.TryEquip(thing3);
}
break;
}
{
break;
}
int dmg2 = Dice.Create("SpShutterHex", power * hex, CC, actRef.act).Roll();
int dmg2 = Dice.Create("SpShutterHex", power * hex, CC, (actRef.refThing != null) ? null : actRef.act).Roll();
item3.DamageHP(dmg2, 919, power, AttackSource.None, CC);
}
});
TC.Say((actRef.n1 == "money") ? "abStealNegateMoney" : "abStealNegate", TC);
break;
}
Thing thing4 = null;
bool flag6 = actRef.n1 == "food";
Thing thing6 = 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);
thing6 = ThingGen.Create("money").SetNum(currency);
TC.ModCurrency(-currency);
}
}
else
{
Func<Thing, bool> func = (Thing t) => true;
if (flag6)
if (flag7)
{
func = (Thing t) => t.IsFood;
}
List<Thing> list3 = 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)
{
}
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 (list3.Count > 0)
if (list5.Count > 0)
{
thing4 = list3.RandomItem();
if (thing4.Num > 1)
thing6 = list5.RandomItem();
if (thing6.Num > 1)
{
thing4 = thing4.Split(1);
thing6 = thing6.Split(1);
}
}
CC.AddCooldown(6640, 200);
}
if (thing4 == null)
if (thing6 == 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);
thing6.SetInt(116, 1);
TC.PlaySound(thing6.material.GetSoundDrop(thing6.sourceCard));
CC.Pick(thing6, msg: false);
CC.Say("abSteal", CC, TC, thing6.Name);
if (actRef.n1 == "food")
{
if (CC.hunger.value != 0)
{
CC.InstantEat(thing4);
CC.InstantEat(thing6);
}
}
else
{
break;
}
List<Thing> list7 = TC.things.List(delegate(Thing t)
List<Thing> list3 = TC.things.List(delegate(Thing t)
{
if (!t.isEquipped || t.blessedState == BlessedState.Doomed || t.IsToolbelt)
{
}
return (t.blessedState < BlessedState.Blessed || EClass.rnd(10) == 0) ? true : false;
});
if (list7.Count == 0)
if (list3.Count == 0)
{
CC.SayNothingHappans();
break;
}
Thing thing6 = list7.RandomItem();
TC.Say("curse_hit", TC, thing6);
thing6.SetBlessedState((thing6.blessedState == BlessedState.Cursed) ? BlessedState.Doomed : BlessedState.Cursed);
LayerInventory.SetDirty(thing6);
Thing thing4 = list3.RandomItem();
TC.Say("curse_hit", TC, thing4);
thing4.SetBlessedState((thing4.blessedState == BlessedState.Cursed) ? BlessedState.Doomed : BlessedState.Cursed);
LayerInventory.SetDirty(thing4);
break;
}
case EffectId.UncurseEQ:
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())
bool hex2 = CC.IsHostile(TC);
List<SourceStat.Row> list6 = EClass.sources.stats.rows.Where((SourceStat.Row con) => con.tag.Contains("random") && con.group == (hex2 ? "Debuff" : "Buff")).ToList();
int power2 = power;
for (int m = 0; m < 4 + EClass.rnd(2); m++)
for (int l = 0; l < 4 + EClass.rnd(2); l++)
{
SourceStat.Row row2 = list6.RandomItem();
list6.Remove(row2);
bool isPowerful = TC.IsPowerful;
string n = actRef.n1;
int a2 = power;
int num6 = 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)
{
num6 += condition3.power * 5;
num7 += condition.power * 5;
}
if (EClass.rnd(a2) < num6 / EClass.sources.stats.alias[n].hexPower && EClass.rnd(10) != 0)
if (EClass.rnd(a2) < num7 / EClass.sources.stats.alias[n].hexPower && EClass.rnd(10) != 0)
{
TC.Say("debuff_resist", TC);
CC.DoHostileAction(TC);
break;
case EffectId.Revive:
{
List<KeyValuePair<int, Chara>> list5 = 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>> list7 = 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 && list5.Count == 0)
if (TC.IsPC && list7.Count == 0)
{
list5 = 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();
list7 = 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 (list5.Count > 0)
if (list7.Count > 0)
{
list5.RandomItem().Value.Chara.GetRevived();
list7.RandomItem().Value.Chara.GetRevived();
break;
}
}
case EffectId.DamageMindGreat:
case EffectId.Weaken:
{
bool flag7 = id == EffectId.DamageBody || id == EffectId.DamageBodyGreat;
bool flag8 = 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)));
int num6 = ((id == EffectId.DamageBody || id == EffectId.DamageMind) ? 1 : (4 + EClass.rnd(4)));
if (id == EffectId.Weaken)
{
flag7 = EClass.rnd(2) == 0;
mind = !flag7;
num7 = 1;
flag8 = EClass.rnd(2) == 0;
mind = !flag8;
num6 = 1;
}
else
{
TC.PlayEffect("debuff");
TC.PlaySound("debuff");
}
TC.Say(flag7 ? "damageBody" : "damageMind", TC);
for (int k = 0; k < num7; k++)
TC.Say(flag8 ? "damageBody" : "damageMind", TC);
for (int k = 0; k < num6; k++)
{
TC.DamageTempElements(power, flag7, mind);
TC.DamageTempElements(power, flag8, mind);
}
if (TC.IsPC)
{
case EffectId.EnhanceBodyGreat:
case EffectId.EnhanceMindGreat:
{
bool flag8 = id == EffectId.EnhanceBody || id == EffectId.EnhanceBodyGreat;
bool flag9 = id == EffectId.EnhanceBody || id == EffectId.EnhanceBodyGreat;
bool mind2 = id == EffectId.EnhanceMind || id == EffectId.EnhanceMindGreat;
int num8 = ((id == EffectId.EnhanceBody || id == EffectId.EnhanceMind) ? 1 : (4 + EClass.rnd(4)));
TC.Say(flag8 ? "enhanceBody" : "enhanceMind", TC);
TC.Say(flag9 ? "enhanceBody" : "enhanceMind", TC);
TC.PlayEffect("buff");
TC.PlaySound("buff");
for (int l = 0; l < num8; l++)
for (int m = 0; m < num8; m++)
{
TC.EnhanceTempElements(power, flag8, mind2);
TC.EnhanceTempElements(power, flag9, mind2);
}
break;
}
case EffectId.RestoreBody:
case EffectId.RestoreMind:
{
bool flag9 = id == EffectId.RestoreBody;
bool flag6 = id == EffectId.RestoreBody;
if (flag)
{
Redirect(flag9 ? EffectId.DamageBodyGreat : EffectId.DamageMindGreat, BlessedState.Normal, default(ActRef));
Redirect(flag6 ? EffectId.DamageBodyGreat : EffectId.DamageMindGreat, BlessedState.Normal, default(ActRef));
break;
}
TC.Say(flag9 ? "restoreBody" : "restoreMind", TC);
TC.Say(flag6 ? "restoreBody" : "restoreMind", TC);
TC.PlaySound("heal");
TC.PlayEffect("heal");
TC.CureHost(flag9 ? CureType.CureBody : CureType.CureMind, power, state);
TC.CureHost(flag6 ? CureType.CureBody : CureType.CureMind, power, state);
if (blessed)
{
Redirect(flag9 ? EffectId.EnhanceBodyGreat : EffectId.EnhanceMindGreat, BlessedState.Normal, default(ActRef));
Redirect(flag6 ? EffectId.EnhanceBodyGreat : EffectId.EnhanceMindGreat, BlessedState.Normal, default(ActRef));
}
break;
}
case EffectId.HealComplete:
Dice.Create("SpHealLight", power, CC, actRef.act);
Dice.Create("SpHealLight", power, CC, (actRef.refThing != null) ? null : actRef.act);
TC.HealHPHost(9999, (actRef.refThing == null) ? HealSource.Magic : HealSource.Item);
TC.CureHost(CureType.HealComplete, power, state);
TC.Say("heal_heavy", TC);
{
EClass.game.religions.Healing.Talk("ability");
}
int num9 = Dice.Create((actRef.act != null && EClass.sources.calc.map.ContainsKey(actRef.act.ID)) ? actRef.act.ID : "SpHealLight", power, CC, actRef.act).Roll();
int num9 = 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 (flag)
{
TC.DamageHP(num9 / 2, 919, power);
BaseBuff
@@ -6,4 +6,9 @@ public override int GetPhase()
{
return 0;
}
public override bool CanStack(Condition c)
{
return c.power >= base.power;
}
}
ButtonElement
@@ -195,6 +195,12 @@ public void SetGrid(Element e, Chara c)
if (element != null)
{
num = element.Value;
if (element.IsGlobalElement && thing.c_idDeity != EClass.pc.faith.id)
{
uIItem.text1.SetActive(enable: false);
uIItem.image1.color = Color.white.SetAlpha(0.5f);
continue;
}
}
if (num == 0)
{
Chara
@@ -8696,6 +8696,10 @@ public bool TryNeckHunt(Chara TC, int power, bool harvest = false)
{
return false;
}
if (TC.IsPC && EClass.player.invlunerable)
{
return false;
}
PlaySound("hit_finish");
Say("finish");
Say("finish2", this, TC);
CharaRenderer
@@ -75,7 +75,7 @@ public override void OnEnterScreen()
}
ignoreFirst = false;
nextframeTimer = 0f;
if (EClass.core.config.game.haltOnSpotEnemy && owner.ExistsOnMap && !EClass._zone.IsRegion && owner.IsHostile())
if (EClass.core.config.game.haltOnSpotEnemy && owner.ExistsOnMap && !EClass._zone.IsRegion && owner.IsHostile() && EClass.pc.CanSeeLos(owner))
{
EClass.player.enemySpotted = true;
}
ConStrife
@@ -19,6 +19,11 @@ public class ConStrife : BaseBuff
public int ExpToNext => (lv + 1) * (lv + 1);
public override bool CanStack(Condition c)
{
return true;
}
public void AddKill(Chara c)
{
if (c.IsPCFactionOrMinion)
CoreDebug
@@ -905,6 +905,10 @@ public void UpdateInput()
}
if (Input.GetKeyDown(KeyCode.F2))
{
for (int i = 0; i < 20; i++)
{
Debug.Log(Rand.Range(0, 2));
}
EClass.player.recipes.Add("b32");
if (EScriptable.rnd(2) == 0)
{
@@ -919,7 +923,7 @@ public void UpdateInput()
if (Input.GetKeyDown(KeyCode.F3))
{
EClass.pc.AddCondition<ConDisease>();
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
{
Thing thing = ThingGen.Create("egg_fertilized");
thing.TryMakeRandomItem(40);
@@ -1021,7 +1025,7 @@ public void UpdateInput()
if (Input.GetKey(KeyCode.F9))
{
EClass.scene.paused = false;
for (int j = 0; j < advanceMin; j++)
for (int k = 0; k < advanceMin; k++)
{
EClass.game.updater.FixedUpdate();
}
Game
@@ -461,6 +461,14 @@ public void OnLoad()
}
}
TryAddQuest("into_darkness", "exile_kettle");
if (version.IsBelow(0, 23, 93))
{
RecipeManager.BuildList();
Debug.Log("■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■feafefaeffaeaffeaaeaefseasfaefaef");
while (TryAddRecipe())
{
}
}
if (version.IsBelow(0, 23, 72))
{
foreach (Chara value2 in EClass.game.cards.globalCharas.Values)
@@ -610,6 +618,30 @@ void TryAddQuestIfActive(string idQuest, string idReqQuest)
quests.Add(idQuest);
}
}
bool TryAddRecipe()
{
foreach (string key in player.recipes.knownRecipes.Keys)
{
if (key.Length > 1 && key[0] == 'b')
{
RecipeSource recipeSource = RecipeManager.Get(key + "-p");
if (recipeSource != null && !player.recipes.knownRecipes.ContainsKey(recipeSource.id))
{
Debug.Log(recipeSource.id);
player.recipes.Add(recipeSource.id, showEffect: false);
return true;
}
recipeSource = RecipeManager.Get(key.Replace("-p", ""));
if (recipeSource != null && !player.recipes.knownRecipes.ContainsKey(recipeSource.id))
{
Debug.Log(recipeSource.id);
player.recipes.Add(recipeSource.id, showEffect: false);
return true;
}
}
}
return false;
}
static bool TryDestroy()
{
for (int i = 0; i < EClass.pc.party.members.Count; i++)
InvOwnerCraft
@@ -2,7 +2,17 @@ public class InvOwnerCraft : InvOwnerDraglet
{
public TraitCrafter crafter;
public override bool CanTargetAlly => crafter is TraitToolTalisman;
public override bool CanTargetAlly
{
get
{
if (!(crafter is TraitToolTalisman))
{
return crafter is TraitRuneMold;
}
return true;
}
}
public override bool ShowFuel => crafter.IsRequireFuel;
InvOwnerMod
public class InvOwnerMod : InvOwnerDraglet
{
public override bool CanTargetAlly => true;
public override ProcessType processType => ProcessType.None;
public override string langTransfer => "invMod";
LayerInfo
@@ -8,6 +8,10 @@ public class LayerInfo : ELayer
public bool examine;
public Vector2 size;
public Vector2 padding;
public override void OnAfterInit()
{
base.OnAfterInit();
@@ -28,29 +32,38 @@ public void Set(object o, bool _examine = false)
}
}
public void Resize()
{
windows[0].Rect().sizeDelta = new Vector2(Mathf.Max(info.Rect().sizeDelta.x + padding.x, size.x), size.y);
}
public void SetThing(Thing t, bool _examine = false)
{
examine = _examine;
windows[0].SetCaption(t.NameSimple.ToTitleCase());
info.SetThing(t);
Resize();
}
public void SetBlock(Cell cell)
{
windows[0].SetCaption(cell.GetBlockName());
info.SetBlock(cell);
Resize();
}
public void SetFloor(Cell cell)
{
windows[0].SetCaption(cell.GetFloorName());
info.SetFloor(cell);
Resize();
}
public void SetLiquid(Cell cell)
{
windows[0].SetCaption(cell.GetLiquidName());
info.SetLiquid(cell);
Resize();
}
public void SetZone(Zone z)
@@ -59,12 +72,14 @@ public void SetZone(Zone z)
note.AddHeader(z.Name);
note.AddText(z.source.GetDetail());
note.Build();
Resize();
}
public void SetObj(Cell cell)
{
windows[0].SetCaption(cell.sourceObj.GetName());
info.SetObj(cell);
Resize();
}
public override void OnKill()
Map
@@ -1948,14 +1948,19 @@ public void _ValidateInstalled(int x, int y)
HitResult hitResult = item.TileType._HitTest(point, item.Thing, canIgnore: false);
if (item.Thing.stackOrder != detail.things.IndexOf(item.Thing) || (hitResult != HitResult.Valid && hitResult != HitResult.Warning))
{
if (EClass._zone.IsPCFaction)
bool flag = true;
if (EClass._zone.IsPCFaction || item.rarity >= Rarity.Legendary || item.trait is TraitFigure)
{
item.SetPlaceState(PlaceState.roaming);
flag = false;
}
else
if (flag)
{
item.Die();
}
else
{
item.SetPlaceState(PlaceState.roaming);
}
}
}
}
Player
@@ -2003,7 +2003,6 @@ public void RefreshCurrentHotItem()
currentHotItem = hotItemNoItem;
}
}
Debug.Log(currentHotItem);
if (currentHotItem != lastHotItem)
{
if (lastHotItem != null)
Props
@@ -242,8 +242,7 @@ void Find(string id)
{
foreach (Card item3 in cardMap.GetOrCreate(id))
{
Card obj = item3.parent as Card;
if (obj != null && obj.c_lockLv == 0)
if (!(item3.parent is Thing thing) || (thing.c_lockLv == 0 && thing.trait.CanUseContent))
{
TryAdd(item3.Thing);
}
@@ -262,12 +261,12 @@ void FindCat(string id)
});
if (EClass._zone.IsPCFaction || EClass._zone is Zone_Tent || EClass.debug.enable)
{
foreach (Thing thing in things)
foreach (Thing thing2 in things)
{
Card obj2 = thing.parent as Card;
if (obj2 != null && obj2.c_lockLv == 0 && thing.category.IsChildOf(cat.id) && !thing.IsExcludeFromCraft())
Card obj = thing2.parent as Card;
if (obj != null && obj.c_lockLv == 0 && thing2.category.IsChildOf(cat.id) && !thing2.IsExcludeFromCraft())
{
stack.Add(thing);
stack.Add(thing2);
}
}
}
Recipe
@@ -658,7 +658,7 @@ public virtual void Build(Chara chara, Card t, Point pos, int mat, int dir, int
}
}
case "Floor":
if (pos.sourceObj.tileType.RemoveOnFloorChange && (!BuildMenu.Instance || !EClass.debug.ignoreBuildRule))
if (pos.HasObj && pos.sourceObj.tileType.RemoveOnFloorChange && (!BuildMenu.Instance || !EClass.debug.ignoreBuildRule))
{
EClass._map.SetObj(pos.x, pos.z);
}
RecipeCard
@@ -394,22 +394,30 @@ public override void Build(TaskBuild task)
}
card = task.resources[0];
}
else if (sourceCard.isChara)
{
card = CharaGen.Create(idCard, Mathf.Max(EClass._zone.DangerLv, EClass.pc.LV));
}
else
{
card = ((!sourceCard.isChara) ? ((Card)ThingGen.Create(idCard, -1, Mathf.Max(EClass._zone.DangerLv, EClass.pc.LV))) : ((Card)CharaGen.Create(idCard, Mathf.Max(EClass._zone.DangerLv, EClass.pc.LV))));
if (!card.isChara)
card = ThingGen.Create(idCard, -1, Mathf.Max(EClass._zone.DangerLv, EClass.pc.LV));
if (!card.IsUnique)
{
if (!card.IsUnique)
{
card.ChangeMaterial(GetMainMaterial());
}
if (base.source.colorIng != 0)
{
card.Dye(GetColorMaterial());
}
if (card.IsContainer)
card.ChangeMaterial(GetMainMaterial());
}
if (base.source.colorIng != 0)
{
card.Dye(GetColorMaterial());
}
if (card.IsContainer)
{
card.RemoveThings();
}
foreach (Ingredient ingredient in ingredients)
{
if (ingredient.thing != null && ingredient.thing.HasElement(759))
{
card.RemoveThings();
card.elements.SetBase(759, ingredient.thing.Evalue(759));
}
}
}
TaskDump
@@ -213,20 +213,18 @@ public List<Thing> ListThingsToPut(Thing c)
{
EClass.pc.things.Foreach(delegate(Thing t)
{
if (!ExcludeDump(t))
if (!list.Contains(t) && !ExcludeDump(t) && t.CanStackTo(ct))
{
if (data.userFilter)
{
switch (data.IsFilterPass(t.GetName(NameStyle.Full, 1)))
Window.SaveData.FilterResult filterResult = data.IsFilterPass(t.GetName(NameStyle.Full, 1));
if (filterResult != Window.SaveData.FilterResult.Block)
{
case Window.SaveData.FilterResult.Block:
return;
case Window.SaveData.FilterResult.PassWithoutFurtherTest:
_ = 2;
list.Add(t);
return;
}
}
if (t.CanStackTo(ct))
else
{
list.Add(t);
}
Thing
return false;
}
return (!showEQStats || (e.id != 64 && e.id != 65 && e.id != 66 && e.id != 67)) ? true : false;
});
}, null, ElementContainer.NoteMode.Default, addRaceFeat: false, (Element e, string s) => (mode != IInspect.NoteMode.Info) ? s : (s + " (" + e.Value + ")"));
}
if (sockets != null)
{
TraitItemProc
@@ -30,7 +30,8 @@ public override bool OnUse(Chara c)
}
ActEffect.Proc(IdEffect, GetParamInt(3, num), owner.blessedState, c, null, new ActRef
{
n1 = n1
n1 = n1,
refThing = owner.Thing
});
if (c.ExistsOnMap)
{
Zone
@@ -1515,7 +1515,7 @@ public void AddGlobalCharasOnActivate()
{
continue;
}
if (c.isRestrained && c.currentZone == EClass.pc.currentZone && c.pos.FindThing<TraitShackle>() == null)
if (c.isRestrained && c.currentZone == EClass.pc.currentZone && (!c.pos.IsValid || c.pos.FindThing<TraitShackle>() == null))
{
c.isRestrained = false;
}