EA 23.264 Nightly
January 30, 2026
36 files modified. 2 new files created.
Important Changes
Possible breaking changes. Click the filename to view the chunk.
Chara (7)
public MoveResult TryMoveFrom(Point p) public MoveResult TryMove(Point newPoint, bool allowDestroyPath = true)
public override MoveResult TryMove(Point newPoint, bool allowDestroyPath = true) public void TryPickGroundItem()
public void TryPickGroundItem(Func<Card, bool> func = null) public void Kick(Point p, bool ignoreSelf = false, bool checkWall = true) public void Kick(Chara t, bool ignoreSelf = false, bool karmaLoss = true, bool show = true, bool checkWall = true) public bool CanAcceptItem(Card t, int num = -1)
public bool CanAcceptItem(Card t, int num = -1, bool skipImportantCheck = false) public T GetCondition<T>() where T : Condition
public override T GetCondition<T>() Dialog (1)
public static void TryWarnSlaughter(Action action)
public static void TryWarnSlaughter(Action action, Chara c) ELEMENT (1)
public virtual void SetTextValue(UIText text)
public virtual void SetTextValue(UIText text, bool shorten = false) GalleryFlattenAndRename (1)
private static int MoveAllFilesUnderSubfoldersToRoot(string root)
private static void MoveAllFilesUnderSubfoldersToRoot(string root) Los (1)
public static List<Point> ListVisible(Point p1, Point p2, int radius, Action<Point, bool> _onVisit = null)
public static List<Point> ListVisible(Point p1, Point p2, int radius, Action<Point, bool> _onVisit = null, bool returnOnBlocked = true) Map (1)
public List<Point> ListPointsInLine(Point center, Point to, int radius)
public List<Point> ListPointsInLine(Point center, Point to, int radius, bool returnOnBlocked = true) Resistance (1)
public override void SetTextValue(UIText text)
public override void SetTextValue(UIText text, bool shorten = false) ACT
public virtual TargetType TargetType
public virtual bool ShowAuto => false;
public virtual bool IsCrime => EClass._zone.IsCrime(EClass.pc, this);
public virtual CursorInfo GetCursorIcon(Card c)
{
return CursorIcon;public bool IsTargetHostileParty()
public virtual Color GetActPlanColor()
{
if (!IsCrime)
if (!EClass._zone.IsCrime(EClass.pc, this))
{
return EClass.Colors.colorAct;
}AI_Fish
public override IEnumerable<Status> Run()
{
if (!owner.IsPC)
{
owner.TryPickGroundItem();
owner.TryPickGroundItem((Card t) => t.category.IsChildOf("fish") || t.SelfWeight <= 1000);
}
if (pos != null)
{public override IEnumerable<Status> Run()
{
if (!owner.IsPC)
{
owner.TryPickGroundItem();
owner.TryPickGroundItem((Card t) => t.category.IsChildOf("fish") || t.SelfWeight <= 1000);
}
if (owner.IsPCFaction && !owner.IsPCParty)
{ActEffect
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
effect.Play(p).Flip(p.x > CC.pos.x);
});
}
if (id == EffectId.Flare)
{
TryDelay(delegate
{
Effect.Get("flare2").Play(EClass.rndf(0.5f), p);
});
}
}
bool flag3 = false;
if (CC.IsPCFactionOrMinion && (CC.HasElement(1651) || EClass.pc.Evalue(1651) >= 2))ActPlan
public bool Perform(bool repeated = false)
if (AM_Adv.actCount == 0 && !Dialog.warned)
{
warning = true;
Card lastMouseCard = EClass.scene.mouseTarget.card;
Chara _CC = Act.CC;
Card _TC = Act.TC;
Point _TP = new Point(Act.TP);public bool Perform(bool repeated = false)
Act.CC = _CC;
Act.TC = _TC;
Act.TP.Set(_TP);
EClass.scene.mouseTarget.card = lastMouseCard;
if (Perform())
{
EClass.player.EndTurn();+ActTelekinesis
File Created
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
public class ActTelekinesis : Spell
{
public override bool ShowMapHighlight => true;
public override int PerformDistance => 20;
public override bool IsHostileAct
{
get
{
if (Act.TC != null)
{
return Act.TC.isNPCProperty;
}
return false;
}
}
public override string GetText(string str = "")
{
string text = " (" + Lang.GetList("skillDiff")[GetDifficulty()] + ")";
return base.GetText(str) + text;
}
public override void OnMarkMapHighlights()
{
if (!EClass.scene.mouseTarget.pos.IsValid || EClass.scene.mouseTarget.card == null)
{
return;
}
Point pos = EClass.scene.mouseTarget.pos;
List<Point> list = ListPath(EClass.pc.pos, pos);
foreach (Point item in list)
{
item.SetHighlight(list.LastItem().Equals(item) ? 8 : 2);
}
}
public override bool CanPerform()
{
if (!Act.CC.IsPC)
{
return false;
}
Act.TC = EClass.scene.mouseTarget.card;
if (Act.TC == null || Act.TC.pos.Equals(Act.CC.pos))
{
return false;
}
if (!Act.TC.trait.CanBeHeld || !Act.TC.trait.CanBeTeleported || Act.TC.IsMultisize)
{
return false;
}
if (ListPath(Act.CC.pos, Act.TC.pos).Count <= 1)
{
return false;
}
Act.TP.Set(Act.TC.pos);
return base.CanPerform();
}
public List<Point> ListPath(Point start, Point end)
{
List<Point> list = new List<Point>();
List<Point> list2 = EClass._map.ListPointsInLine(start, end, 20, returnOnBlocked: false);
bool flag = start.Distance(end) != 1;
if (flag)
{
list2.Reverse();
}
foreach (Point item in list2)
{
if (!item.Equals(start) && (!flag || start.Distance(item) <= start.Distance(end)) && item.IsInBounds)
{
if (!item.Equals(end) && (item.IsBlocked || (item.HasChara && item.FirstChara.IsMultisize)))
{
break;
}
list.Add(item);
}
}
return list;
}
public int GetWeightLimit()
{
long num = GetPower(Act.CC);
if (num * num <= int.MaxValue)
{
return (int)(num * num);
}
return int.MaxValue;
}
public int GetDifficulty()
{
int num = Act.TC.SelfWeight / GetWeightLimit();
ConATField condition = Act.TC.GetCondition<ConATField>();
if (condition != null)
{
num += condition.value;
}
return Mathf.Clamp(num / 33, 0, 3);
}
public void DoDamage(Card c, int dist = 1, int mtp = 100)
{
long num = Dice.Create("SpTelekinesis", GetPower(Act.CC), Act.CC, this).Roll();
num = num * (50 + dist * 25) / 100;
if (Act.TC.SelfWeight > 1000)
{
num = num * (100 + (int)Mathf.Sqrt(Act.TC.SelfWeight / 10) / 2) / 100;
}
num = num * mtp / 100;
Act.CC.DoHostileAction(c);
c.DamageHP(num, 925, 100, AttackSource.Throw, Act.CC);
}
public override bool Perform()
{
if (GetDifficulty() * 33 > EClass.rnd(100))
{
Act.TC.PlayEffect("Element/ball_Gravity");
Act.TC.PlaySound("gravity");
Act.CC.Say("tooHeavy", Act.TC);
return true;
}
bool flag = Act.TC.Dist(Act.CC) != 1;
List<Point> list = ListPath(Act.CC.pos, Act.TC.pos);
Act.CC.PlaySound("telekinesis");
Act.CC.PlayEffect("telekinesis");
if (EClass._zone.IsCrime(Act.CC, this))
{
Act.CC.pos.TryWitnessCrime(Act.CC, Act.TC.Chara, 5, (Chara c) => EClass.rnd(3) == 0);
}
Point point = list.Last();
for (int i = 0; i < list.Count; i++)
{
Point point2 = list[i];
Effect.Get("telekinesis2").Play(0.1f * (float)i, point2);
if (point2.Equals(Act.TC.pos) || !point2.HasChara)
{
continue;
}
foreach (Chara item in point2.ListCharas())
{
Act.TC.Kick(item, ignoreSelf: true, karmaLoss: false);
Act.TC.pos.PlayEffect("vanish");
if (!flag && (item.isChara || item.trait.CanBeAttacked))
{
DoDamage(item, i, 50);
}
}
}
if (point.HasChara)
{
point.FirstChara.MoveImmediate(Act.TC.pos);
}
Act.TC.MoveImmediate(point, focus: true, cancelAI: false);
Act.TC.pos.PlayEffect("telekinesis");
if (!flag)
{
Act.TC.pos.PlayEffect("vanish");
Act.TC.pos.PlaySound("rush");
if (Act.TC.isChara || Act.TC.trait.CanBeAttacked)
{
DoDamage(Act.TC, list.Count);
}
}
if (!flag && Act.TC.isChara && Act.TC.IsAliveInCurrentZone)
{
Act.TC.Chara.AddCondition<ConATField>();
}
return true;
}
}ButtonElement
}
break;
case Mode.Attribute:
mainText.SetText(text + e.Name, FontColor.Default);
e.SetTextValue(subText);
mainText.SetText(text + e.source.GetText("textExtra"), FontColor.Default);
e.SetTextValue(subText, shorten: true);
break;
case Mode.OnlyValue:
e.SetTextValue(subText);public void SetGrid(Element e, Chara c)
uIItem.text1.SetActive(enable: false);
uIItem.image1.color = Color.white.SetAlpha(0.5f);
}
text = (e.IsFlag ? "✓" : (Mathf.Abs(num).ToString() ?? ""));
text = (e.IsFlag ? "✓" : Mathf.Abs(num).ToShortNumber());
FontColor c2 = ((num >= 0) ? FontColor.Good : FontColor.Bad);
if (element != null)
{Card
}
}
public MoveResult TryMoveFrom(Point p)
{
if (IsPC && EClass.player.TooHeavyToMove())
{
return MoveResult.Fail;
}
Point point = p.Copy();
int num = p.x - pos.x;
int num2 = p.z - pos.z;
if (num > 1)
{
num = 1;
}
else if (num < -1)
{
num = -1;
}
if (num2 > 1)
{
num2 = 1;
}
else if (num2 < -1)
{
num2 = -1;
}
if (num == 0 && num2 == 0)
{
num = EClass.rnd(3) - 1;
num2 = EClass.rnd(3) - 1;
}
point.Set(pos);
point.x -= num;
point.z -= num2;
if (point.IsValid && !point.HasChara)
{
return TryMove(point, allowDestroyPath: false);
}
return MoveResult.Fail;
}
public virtual MoveResult TryMove(Point newPoint, bool allowDestroyPath = true)
{
return _Move(newPoint);
}
public void Kick(Point p, bool ignoreSelf = false, bool checkWall = true)
{
foreach (Chara item in p.ListCharas())
{
Kick(item, ignoreSelf, karmaLoss: true, show: true, checkWall);
}
}
public void Kick(Chara t, bool ignoreSelf = false, bool karmaLoss = true, bool show = true, bool checkWall = true)
{
if (!IsAliveInCurrentZone)
{
return;
}
if (t.IsPC)
{
ActionMode.Adv.ClearPlans();
}
if (t.host != null)
{
return;
}
if (t == this)
{
if (!ignoreSelf)
{
Debug.Log(t.pos.GetNearestPoint());
if (TryMove(t.pos.GetNearestPoint()) != MoveResult.Success)
{
t.MoveImmediate(pos.GetNearestPoint() ?? t.pos);
}
}
return;
}
if (show)
{
Say("kick", this, t);
}
PlaySound("kick");
if ((t.conSuspend == null || t.conSuspend.uidMachine != 0) && t.trait.CanBePushed && (!t.IsHostile() || EClass.rnd(2) == 0) && !t.noMove && !t.isRestrained)
{
t.MoveByForce(t.pos.GetNearestPoint(allowBlock: false, allowChara: false, allowInstalled: true, ignoreCenter: true), this, checkWall && !t.pos.IsBlocked);
}
if (t.conSleep != null)
{
t.conSleep.Kill();
}
if (IsPC && t.IsFriendOrAbove() && !t.IsPCFactionOrMinion && karmaLoss)
{
EClass.player.ModKarma(-1);
}
t.PlayEffect("kick");
t.mimicry?.RevealMimicry(this, surprise: false);
}
public int ResistLvFrom(int ele)
{
return ResistLv(EClass.sources.elements.alias.TryGetValue(EClass.sources.elements.map[ele].aliasRef)?.id ?? 0);public virtual int SecondaryCompare(UIList.SortMode m, Card c)
}
if (num == 0)
{
num = Lang.comparer.Compare(GetName(NameStyle.Full, 1), c.GetName(NameStyle.Full, 1));
num = Lang.comparer.Compare(c.GetName(NameStyle.Full, 1), GetName(NameStyle.Full, 1));
}
if (num == 0)
{public virtual bool HasCondition<T>() where T : Condition
return false;
}
public virtual T GetCondition<T>() where T : Condition
{
return null;
}
public bool HaveFur()
{
if (!isChara)CardRenderer
public class CardRenderer : RenderObject
public Vector3 PositionCenter()
{
return new Vector3(position.x + data.size.x + data.offset.x * 0.5f, position.y + data.size.y + data.offset.y, position.z);
return new Vector3(position.x + data.size.x + data.offset.x * 0.5f, position.y + data.size.y + data.offset.y + owner.Pref.heightFix, position.z);
}
public virtual void SetOwner(Card c)public override void Draw(RenderParam p, ref Vector3 v, bool drawShadow)
OnEnterScreen();
RenderObject.syncList.Add(this);
}
if ((bool)orbit)
{
orbit.Refresh();
}
else
{
TrySpawnOrbit();
}
if (isChara && owner.parent == EClass.game.activeZone)
{
if (owner.Chara.bossText && !EClass.ui.IsActive && !SplashText.Instance && !LayerDrama.Instance)public override void Draw(RenderParam p, ref Vector3 v, bool drawShadow)
{
actor.SetActive(enable: false);
}
if ((bool)orbit)
{
orbit.Refresh();
}
return;
}
}public override void Draw(RenderParam p, ref Vector3 v, bool drawShadow)
p.y = (position.y = v.y);
p.z = (position.z = v.z);
}
if ((bool)orbit)
{
orbit.Refresh();
}
else
{
TrySpawnOrbit();
}
if (anime != null)
{
anime.Update();public override void Draw(RenderParam p, ref Vector3 v, bool drawShadow)
if (listTC.Count > 0)
{
RenderObject.tempV = position;
RenderObject.tempV.y += data.offset.y + data.size.y;
RenderObject.tempV.y += data.offset.y + data.size.y + owner.Pref.heightFix;
for (int num = listTC.Count - 1; num >= 0; num--)
{
listTC[num].OnDraw(ref RenderObject.tempV);Chara
public override int WeightLimit => (int)Mathf.Clamp(((long)base.STR * 500L + base.END * 250 + Evalue(207) * 2000) * ((!HasElement(1411)) ? 1 : 5) + 45000, 1000f, 1.0737418E+09f);
public override int SelfWeight => bio.weight * 1000;
public override int SelfWeight => ((bio.weight > 2000000) ? 2000000 : bio.weight) * 1000;
public int MaxSummon => Mathf.Max((int)Mathf.Sqrt(base.CHA), 1) + Evalue(1647) + ((!base.IsPCFactionOrMinion) ? ((int)base.rarity * 5) : 0);public MoveResult TryMoveTowards(Point p)
return MoveResult.Fail;
}
public MoveResult TryMoveFrom(Point p)
{
if (IsPC && EClass.player.TooHeavyToMove())
{
return MoveResult.Fail;
}
Point point = p.Copy();
int num = p.x - pos.x;
int num2 = p.z - pos.z;
if (num > 1)
{
num = 1;
}
else if (num < -1)
{
num = -1;
}
if (num2 > 1)
{
num2 = 1;
}
else if (num2 < -1)
{
num2 = -1;
}
if (num == 0 && num2 == 0)
{
num = EClass.rnd(3) - 1;
num2 = EClass.rnd(3) - 1;
}
point.Set(pos);
point.x -= num;
point.z -= num2;
if (point.IsValid && !point.HasChara)
{
return TryMove(point, allowDestroyPath: false);
}
return MoveResult.Fail;
}
public MoveResult TryMove(Point newPoint, bool allowDestroyPath = true)
public override MoveResult TryMove(Point newPoint, bool allowDestroyPath = true)
{
foreach (Condition condition in conditions)
{public override MoveResult _Move(Point newPoint, MoveType type = MoveType.Walk)
}
if (flag2 || flag4)
{
Effect.Get("ripple").Play(0.4f * actTime * EClass.scene.actionMode.gameSpeed, newPoint);
Effect.Get("ripple").Play(newPoint);
}
}
lastPos.Set(pos);public void TryReservePickupTutorial(Thing t)
}
}
public void TryPickGroundItem()
public void TryPickGroundItem(Func<Card, bool> func = null)
{
foreach (Card item in pos.ListCards())
{
if ((IsPC || !(EClass.pc.ai is AI_UseCrafter aI_UseCrafter) || !aI_UseCrafter.ings.Contains(item)) && item.isThing && item.placeState == PlaceState.roaming && CanPick(item))
if ((IsPC || !(EClass.pc.ai is AI_UseCrafter aI_UseCrafter) || !aI_UseCrafter.ings.Contains(item)) && item.isThing && item.placeState == PlaceState.roaming && CanPick(item) && (func == null || func(item)))
{
Thing thing = Pick(item.Thing);
if (thing != null && !IsPC) }
}
public void Kick(Point p, bool ignoreSelf = false, bool checkWall = true)
{
foreach (Chara item in p.ListCharas())
{
Kick(item, ignoreSelf, karmaLoss: true, show: true, checkWall);
}
}
public void Kick(Chara t, bool ignoreSelf = false, bool karmaLoss = true, bool show = true, bool checkWall = true)
{
if (!IsAliveInCurrentZone)
{
return;
}
if (t.IsPC)
{
ActionMode.Adv.ClearPlans();
}
if (t.host != null)
{
return;
}
if (t == this)
{
if (!ignoreSelf)
{
Debug.Log(t.pos.GetNearestPoint());
if (TryMove(t.pos.GetNearestPoint()) != MoveResult.Success)
{
t.MoveImmediate(pos.GetNearestPoint() ?? t.pos);
}
}
return;
}
if (show)
{
Say("kick", this, t);
}
PlaySound("kick");
if ((t.conSuspend == null || t.conSuspend.uidMachine != 0) && t.trait.CanBePushed && (!t.IsHostile() || EClass.rnd(2) == 0) && !t.noMove && !t.isRestrained)
{
t.MoveByForce(t.pos.GetNearestPoint(allowBlock: false, allowChara: false, allowInstalled: true, ignoreCenter: true), this, checkWall && !t.pos.IsBlocked);
}
if (t.conSleep != null)
{
t.conSleep.Kill();
}
if (IsPC && t.IsFriendOrAbove() && !t.IsPCFactionOrMinion && karmaLoss)
{
EClass.player.ModKarma(-1);
}
t.PlayEffect("kick");
t.mimicry?.RevealMimicry(this, surprise: false);
}
public bool UseAbility(int idAct, Card tc = null, Point pos = null, bool pt = false)
{
return UseAbility(elements.GetElement(idAct)?.act ?? ACT.Create(idAct), tc, pos, pt);public bool IsValidGiftWeight(Card t, int num = -1)
return true;
}
public bool CanAcceptItem(Card t, int num = -1)
public bool CanAcceptItem(Card t, int num = -1, bool skipImportantCheck = false)
{
if (EClass.debug.ignoreWeight)
{public bool CanAcceptItem(Card t, int num = -1)
{
return false;
}
if (t.c_isImportant)
if (!skipImportantCheck && t.c_isImportant)
{
return false;
}public void CureCondition<T>(int v = 99999) where T : Condition
}
}
public T GetCondition<T>() where T : Condition
public override T GetCondition<T>()
{
for (int i = 0; i < conditions.Count; i++)
{public bool TryNeckHunt(Chara TC, int power, bool harvest = false)
{
return false;
}
if (TC.hp > (long)TC.MaxHP * (long)(Mathf.Min(5 + (int)Mathf.Sqrt(power), harvest ? 30 : 20) + Evalue(1426) * 5) / (TC.IsPowerful ? 250 : 100))
if (TC.hp > (long)TC.MaxHP * (long)(Mathf.Min(5 + (int)Mathf.Sqrt(power), harvest ? 35 : 25) + Evalue(1426) * 5) / (TC.IsPowerful ? 200 : 100))
{
return false;
}+ConATField
File Created
public class ConATField : Condition
{
public override int GetPhase()
{
return 0;
}
}ConTransmuteMimic
public override void OnBeforeStart()
{
List<Thing> list = owner.things.List((Thing t) => !t.IsMultisize && !t.isEquipped, onlyAccessible: true);
List<Thing> list = owner.things.List((Thing t) => !t.IsMultisize && t.c_isImportant, onlyAccessible: true);
if (list.Count == 0)
{
list = owner.things.List((Thing t) => !t.IsMultisize && !t.isEquipped, onlyAccessible: true);
}
if (list.Count > 0)
{
thing = list.RandomItem().Duplicate(1);ContentGallery
using System.Collections.Generic;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;public override void BuildNote(UINote n, string idTopic)
{
foreach (string id in ids)
{
UIItem uIItem = n.AddItem("ItemGallery");
int idx = id.ToInt();
string path = EClass.core.refs.dictSketches2[idx];
string path = GalleryFlattenAndRename.root + "/" + EClass.core.refs.dictSketches2[idx];
if (!File.Exists(path))
{
EClass.ui.Say("Full Image not found: " + path);
continue;
}
if (!File.Exists(path + "_t"))
{
EClass.ui.Say("Thumbnail not found: " + path);
continue;
}
UIItem uIItem = n.AddItem("ItemGallery");
Sprite sprite = sprites.TryGetValue(idx);
if (!sprite)
{public override void BuildNote(UINote n, string idTopic)
uIItem.text1.text = "#" + id;
uIItem.button1.SetOnClick(delegate
{
Debug.Log(path);
SE.Play("click_recipe");
Sprite sprite2 = spritesFull.TryGetValue(idx);
if (!sprite2)
{
Texture2D texture2D2 = IO.LoadPNG(path);
Texture2D texture2D2 = IO.LoadPNG(path, FilterMode.Trilinear);
sprite2 = Sprite.Create(texture2D2, new Rect(0f, 0f, texture2D2.width, texture2D2.height), new Vector2(0.5f, 0.5f));
spritesFull[idx] = sprite2;
}Dialog
}
}
public static void TryWarnSlaughter(Action action)
public static void TryWarnSlaughter(Action action, Chara c)
{
if (ELayer.core.config.game.ignoreWarnSlaughter)
{public static void TryWarnSlaughter(Action action)
}
else
{
TryWarn("warn_slaughter", action);
TryWarn("warn_slaughter".lang(c.Name), action);
}
}ELEMENT
public virtual int GetPower(Card c)
return 100;
}
public virtual void SetTextValue(UIText text)
public virtual void SetTextValue(UIText text, bool shorten = false)
{
string text2 = DisplayValue.ToString() ?? "";
if (ShowXP)public virtual void SetTextValue(UIText text)
}
if (vLink != 0)
{
string text3 = ((vLink > 0) ? "+" : "") + vLink;
string text3 = ((vLink > 0) ? "+" : "") + (shorten ? vLink.ToShortNumber() : ((object)vLink));
text2 = "<color=" + ((DisplayValue > ValueWithoutLink) ? SkinManager.CurrentColors.textGood : SkinManager.CurrentColors.textBad).ToHex() + ">" + text2 + (" (" + text3 + ")").TagSize(13) + "</color>";
}
text.text = text2;Effect
public void Play(float delay, Point from, float fixY = 0f, Point to = null, Spri
Point _from = from.Copy();
Point _to = to?.Copy() ?? null;
TweenUtil.Tween(delay, delegate
{
}, delegate
{
Play(_from, fixY, _to, sprite);
});FACTION
public const int bfTranquil = 3703;
public const int fRation = 2207;
public const int fAttraction = 2206;
public const int bfVolcano = 3704;
public const int fConstruction = 2003;
public const int fAttraction = 2206;
public const int fRation = 2207;
public static readonly int[] IDS = new int[53]
{
3601, 3602, 3603, 3604, 3700, 3606, 3701, 3600, 3702, 3605,
3500, 2120, 2205, 2204, 2203, 2202, 2116, 2201, 2200, 2119,
2118, 2117, 3703, 2207, 3704, 4000, 3706, 2115, 4006, 4005,
2118, 2117, 3703, 2206, 3704, 4000, 3706, 2115, 4006, 4005,
4004, 4003, 4002, 4001, 3900, 3805, 3804, 3803, 3802, 3801,
3800, 3784, 3783, 3782, 3781, 3780, 3710, 3709, 3708, 3707,
3705, 2003, 2206
3705, 2003, 2207
};
}
public class Faction : EClassFOOD
public class FOOD
{
public const int food_god = 758;
public const int creativeDish = 764;
public const int food_CHA = 700;
public const int food_blood = 710;
public const int food_undead = 709;
public const int food_human = 708;
public const int food_cat = 701;
public const int gainWeight = 705;
public const int loseWeight = 706;
public const int justcooked = 757;
public const int gainWeight = 705;
public const int food_god = 758;
public const int food_bug = 704;
public const int food_poison = 702;
public const int food_cat = 701;
public const int kirimi = 707;
public const int food_CHA = 700;
public const int justcooked = 757;
public static readonly int[] IDS = new int[14]
{
758, 764, 710, 709, 708, 701, 706, 757, 705, 704,
703, 702, 707, 700
764, 700, 710, 709, 708, 705, 706, 758, 704, 703,
702, 701, 707, 757
};
}GalleryFlattenAndRename
public static class GalleryFlattenAndRename
public static UD_Int_String Run()
{
dict = new UD_Int_String();
int num = MoveAllFilesUnderSubfoldersToRoot(root);
MoveAllFilesUnderSubfoldersToRoot(root);
string[] array = Directory.GetDirectories(root, "*", SearchOption.AllDirectories).ToArray();
for (int i = 0; i < array.Length; i++)
{public static UD_Int_String Run()
}
}
CreateThumbnailsSameFolder(root, 360, 240);
Debug.Log("[Gallery] Done. Total:" + num + "/" + dict.Count);
Debug.Log("[Gallery] Done. Total:" + dict.Count);
return dict;
}
private static int MoveAllFilesUnderSubfoldersToRoot(string root)
private static void MoveAllFilesUnderSubfoldersToRoot(string root)
{
string[] directories = Directory.GetDirectories(root, "*", SearchOption.AllDirectories);
int num = 0;
string[] array = directories;
for (int i = 0; i < array.Length; i++)
for (int i = 0; i < directories.Length; i++)
{
string[] files = Directory.GetFiles(array[i], "*", SearchOption.TopDirectoryOnly);
string[] files = Directory.GetFiles(directories[i], "*", SearchOption.TopDirectoryOnly);
foreach (string text in files)
{
string text2 = Path.Combine(root, Path.GetFileName(text));
File.Move(text, text2);
if (!text2.EndsWith("meta"))
if (!File.Exists(text2))
{
num++;
File.Move(text, text2);
}
}
}
return num;
}
private static void RenameAllFilesToLeadingNumber(string root)
{
string[] files = Directory.GetFiles(root, "*", SearchOption.TopDirectoryOnly);
foreach (string obj in files)
foreach (string text in files)
{
string extension = Path.GetExtension(obj);
string text = Path.GetFileNameWithoutExtension(obj).Split('_')[0];
string text2 = Path.Combine(root, text + extension);
File.Move(obj, text2);
dict[text.ToInt()] = text2;
string extension = Path.GetExtension(text);
if (IsImageExt(extension))
{
string text2 = Path.GetFileNameWithoutExtension(text).Split('_')[0];
string text3 = Path.Combine(root, text2 + extension);
if (text != text3)
{
File.Move(text, text3);
}
dict[text2.ToInt()] = text2 + extension;
}
}
}private static void CreateThumbnailsSameFolder(string root, int maxW, int maxH)
{
continue;
}
string path = text + "_t";
if (File.Exists(path))
{
continue;
}
string text2 = Path.GetExtension(text).ToLowerInvariant();
if (!IsImageExt(text2) || Path.GetFileName(text).Contains(text2 + "_t"))
{private static void CreateThumbnailsSameFolder(string root, int maxW, int maxH)
int w = Mathf.Max(1, Mathf.RoundToInt((float)width * num));
int h = Mathf.Max(1, Mathf.RoundToInt((float)height * num));
Texture2D texture2D2 = ResizeTo(texture2D, w, h);
string path = text + "_t";
byte[] bytes = ((!(text2 == ".png")) ? texture2D2.EncodeToJPG(90) : texture2D2.EncodeToPNG());
File.WriteAllBytes(path, bytes);
Object.DestroyImmediate(texture2D);HotItemAct
public override bool TrySetAct(ActPlan p)
{
return false;
}
p.TrySetAct(source.GetName(), delegate
p.TrySetAct(((EClass.pc.elements.GetElement(act.id) as Act) ?? act).GetText(), delegate
{
if (tg != null && !tg.ExistsOnMap)
{HotItemEQSet
public override void Perform()
Card card = null;
foreach (int i in ids)
{
Thing thing = EClass.pc.things.Find((Thing t) => t.uid == i && !t.isEquipped);
Thing thing = EClass.pc.things.Find((Thing t) => t.uid == i && !t.isEquipped && t.invY != 1);
if (thing == null)
{
continue;InvOwner
public bool Process(bool startTransaction = false)
}
}
}
if (destInv.Container.isChara && !destInv.owner.IsPC && !destInv.owner.Chara.CanAcceptItem(thing2))
if (destInv.Container.isChara && !destInv.owner.IsPC && !destInv.owner.Chara.CanAcceptItem(thing2, -1, dragItemCard.from.container == destInv.owner))
{
destInv.owner.Chara.Talk("tooHeavy");
return false;InvOwnerCraft
public override bool CanTargetAlly
{
get
{
if (!(crafter is TraitToolTalisman))
if (!(crafter is TraitToolTalisman) && !(crafter is TraitRuneMold) && !(crafter is TraitGrindstone))
{
return crafter is TraitRuneMold;
return crafter is TraitBarrelMaker;
}
return true;
}Los
private static bool IsBlocked(int x, int z, int sx, int sz)
return flag;
}
public static List<Point> ListVisible(Point p1, Point p2, int radius, Action<Point, bool> _onVisit = null)
public static List<Point> ListVisible(Point p1, Point p2, int radius, Action<Point, bool> _onVisit = null, bool returnOnBlocked = true)
{
List<Point> list = new List<Point>();
List<Point> vecs = new List<Point>();public static List<Point> ListVisible(Point p1, Point p2, int radius, Action<Poi
}
IsVisible(p1.x, point.x, p1.z, point.z, delegate(Point p, bool blocked)
{
if (!blocked)
if (!blocked || !returnOnBlocked)
{
list.Add(p.Copy());
}public static List<Point> ListVisible(Point p1, Point p2, int radius, Action<Poi
{
_onVisit(p, blocked);
}
});
}, returnOnBlocked);
return list;
}MUTATION
public class MUTATION
{
public const int mutationCha = 1522;
public const int mutationStrN = 1521;
public const int mutationSpeedN = 1519;
public const int mutationSpeed = 1518;
public const int mutationCha = 1522;
public const int mutationRegen = 1516;
public const int mutationDexN = 1515;
public static readonly int[] IDS = new int[40]
{
1522, 1521, 1519, 1518, 1516, 1515, 1514, 1513, 1512, 1511,
1521, 1519, 1518, 1522, 1516, 1515, 1514, 1513, 1512, 1511,
1510, 1520, 1517, 1524, 1525, 1565, 1564, 1563, 1562, 1561,
1523, 1559, 1558, 1557, 1556, 1555, 1554, 1560, 1552, 1553,
1526, 1527, 1529, 1530, 1528, 1532, 1533, 1550, 1551, 1531Map
public List<Point> ListPointsInArc(Point center, Point to, int radius, float ang
return list;
}
public List<Point> ListPointsInLine(Point center, Point to, int radius)
public List<Point> ListPointsInLine(Point center, Point to, int radius, bool returnOnBlocked = true)
{
return Los.ListVisible(center, to, radius);
return Los.ListVisible(center, to, radius, null, returnOnBlocked);
}
public void SetBounds(int size)POLICY
public const int food_for_people = 2502;
public const int prohibition = 2503;
public const int resident_tax = 2512;
public const int prohibition = 2503;
public const int self_sufficient = 2511;
public const int ban_radio = 2510;{
2821, 2818, 2819, 2820, 2822, 2828, 2824, 2825, 2826, 2827,
2817, 2823, 2816, 2703, 2814, 2514, 2513, 2505, 2815, 2500,
2501, 2502, 2503, 2512, 2511, 2510, 2509, 2508, 2507, 2506,
2501, 2502, 2512, 2503, 2511, 2510, 2509, 2508, 2507, 2506,
2515, 2516, 2504, 2701, 2700, 2707, 2708, 2706, 2709, 2711,
2712, 2715, 2710, 2810, 2811, 2812, 2813, 2705, 2704, 2702,
2800QuestTaskHunt
public Setup setup;
public SourceRace.Row Race => EClass.sources.races.map[idRace];
public SourceRace.Row Race => EClass.sources.races.map.TryGetValue(idRace, "yeek");
public override string RefDrama2
{Resistance
public override Sprite GetIcon(string suffix = "")
return SpriteSheet.Get("Media/Graphics/Icon/Element/icon_elements", "ele_" + base.source.alias) ?? SpriteSheet.Get("Media/Graphics/Icon/Element/icon_elements", "ele_resist");
}
public override void SetTextValue(UIText text)
public override void SetTextValue(UIText text, bool shorten = false)
{
text.text = "なし";
text.text = "";
}
}SKILL
public const int vigor = 62;
public const int weaponPolearm = 106;
public const int weaponDagger = 107;
public const int PER = 73;
public const int fishing = 245;
public const int weaponDagger = 107;
public const int weaponPolearm = 106;
public const int carpentry = 255;
public const int eleNerve = 918;
public const int eleChaos = 920;
public const int eleHoly = 919;
public const int eleMagic = 921;
public const int resDecay = 970;
public const int gathering = 250;
public const int resCurse = 972;
public const int resDamage = 971;
public const int gathering = 250;
public const int resPoison = 955;
public const int eleMind = 914;
public const int eleHoly = 919;
public const int eleChaos = 920;
public const int eleLightning = 912;
public const int building = 288;
public const int eleDarkness = 913;
public const int cooking = 287;
public const int farming = 286;
public const int eleDarkness = 913;
public const int reading = 285;
public const int investing = 292;
public const int cooking = 287;
public const int farming = 286;
public const int regeneration = 300;
public const int eleCold = 911;
public const int meditation = 301;
public const int disarmTrap = 293;
public const int controlmana = 302;
public const int env = 313;
public const int manaCapacity = 303;
public const int fun = 312;
public const int casting = 304;
public const int bladder = 311;
public const int magicDevice = 305;
public const int hygine = 310;
public const int faith = 306;
public const int eleFire = 910;
public const int memorization = 307;
public const int faith = 306;
public const int hygine = 310;
public const int magicDevice = 305;
public const int eleFire = 910;
public const int casting = 304;
public const int bladder = 311;
public const int manaCapacity = 303;
public const int fun = 312;
public const int controlmana = 302;
public const int env = 313;
public const int meditation = 301;
public const int eleCold = 911;
public const int memorization = 307;
public const int disarmTrap = 293;
public static readonly int[] IDS = new int[134]
{ 241, 240, 237, 235, 230, 227, 226, 225, 123, 220,
200, 152, 151, 150, 135, 134, 133, 132, 210, 207,
100, 105, 71, 70, 68, 67, 66, 65, 72, 64,
61, 60, 57, 56, 55, 51, 62, 106, 73, 75,
61, 60, 57, 56, 55, 51, 62, 107, 73, 75,
104, 103, 102, 101, 94, 93, 74, 92, 90, 80,
79, 78, 77, 76, 91, 245, 107, 255, 916, 917,
918, 920, 921, 922, 923, 924, 925, 926, 950, 951,
79, 78, 77, 76, 91, 245, 106, 255, 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, 972, 971, 250, 955, 914,
919, 912, 290, 289, 288, 913, 286, 285, 291, 281,
261, 260, 259, 258, 257, 256, 280, 292, 287, 300,
911, 293, 313, 312, 311, 310, 910, 306, 305, 304,
303, 302, 301, 307
962, 963, 964, 965, 970, 250, 972, 971, 955, 914,
920, 912, 290, 289, 288, 287, 913, 285, 291, 281,
261, 260, 259, 258, 257, 256, 280, 292, 286, 300,
301, 302, 303, 304, 305, 306, 307, 310, 910, 311,
312, 313, 911, 293
};
}
public class Skill : ElementSLOT
public class SLOT
{
public const int toolbelt = 44;
public const int torso = 32;
public const int back = 33;
public const int lightsource = 45;
public const int arm = 34;
public const int foot = 39;
public const int finger = 36;
public const int leg = 38;
public const int hand = 35;
public const int ammo = 42;
public const int waist = 37;
public const int arm = 34;
public const int toolbelt = 44;
public const int waist = 37;
public const int foot = 39;
public const int hand = 35;
public const int lightsource = 45;
public const int tool = 40;
public const int back = 33;
public const int token = 43;
public const int neck = 31;
public const int range = 41;
public const int finger = 36;
public const int torso = 32;
public const int head = 30;
public const int leg = 38;
public const int range = 41;
public const int neck = 31;
public const int token = 43;
public const int ammo = 42;
public const int head = 30;
public static readonly int[] IDS = new int[16]
{
44, 32, 45, 39, 38, 42, 34, 37, 35, 40,
33, 31, 36, 30, 41, 43
33, 34, 36, 35, 37, 44, 39, 45, 40, 43,
41, 32, 38, 31, 42, 30
};
}SPELL
public class SPELL
{
public const int sword_Nerve = 51008;
public const int hand_Impact = 50415;
public const int puddle_Nerve = 50908;
public const int flare_Sound = 51207;
public const int weapon_Nerve = 50808;
public const int bit_Sound = 51107;
public const int miasma_Nerve = 50708;
public const int sword_Sound = 51007;
public const int bit_Nerve = 51108;
public const int puddle_Sound = 50907;
public const int miasma_Poison = 50705;
public const int weapon_Sound = 50807;
public const int arrow_Nerve = 50508;
public const int miasma_Sound = 50707;
public const int hand_Nerve = 50408;
public const int funnel_Sound = 50607;
public const int puddle_Mind = 50904;
public const int arrow_Sound = 50507;
public const int bolt_Nerve = 50308;
public const int hand_Sound = 50407;
public const int sword_Mind = 51004;
public const int bolt_Sound = 50307;
public const int hand_Void = 50416;
public const int ball_Sound = 50107;
public const int flare_Nether = 51206;
public const int ball_Nerve = 50108;
public const int bolt_Void = 50316;
public const int bolt_Nerve = 50308;
public const int hand_Nerve = 50408;
public const int arrow_Nerve = 50508;
public const int funnel_Nerve = 50608;
public const int flare_Nerve = 51208;
public const int miasma_Nerve = 50708;
public const int ball_Holy = 50109;
public const int weapon_Nerve = 50808;
public const int weapon_Mind = 50804;
public const int puddle_Nerve = 50908;
public const int miasma_Mind = 50704;
public const int sword_Nerve = 51008;
public const int bit_Nerve = 51108;
public const int flare_Nerve = 51208;
public const int ball_Holy = 50109;
public const int bolt_Holy = 50309;
public const int funnel_Holy = 50609;
public const int funnel_Mind = 50604;
public const int arrow_Mind = 50504;
public const int arrow_Void = 50516;
public const int miasma_Holy = 50709;
public const int weapon_Holy = 50809;
public const int puddle_Holy = 50909;
public const int sword_Holy = 51009;
public const int bit_Nether = 51106;
public const int bit_Holy = 51109;
public const int sword_Nether = 51006;
public const int flare_Holy = 51209;
public const int arrow_Mind = 50504;
public const int flare_Sound = 51207;
public const int funnel_Mind = 50604;
public const int bit_Sound = 51107;
public const int miasma_Mind = 50704;
public const int puddle_Sound = 50907;
public const int weapon_Mind = 50804;
public const int funnel_Poison = 50605;
public const int puddle_Mind = 50904;
public const int weapon_Poison = 50805;
public const int sword_Mind = 51004;
public const int puddle_Poison = 50905;
public const int bit_Mind = 51104;
public const int sword_Poison = 51005;
public const int flare_Mind = 51204;
public const int arrow_Poison = 50505;
public const int ball_Poison = 50105;
public const int bit_Poison = 51105;
public const int sword_Void = 51016;
public const int flare_Poison = 51205;
public const int puddle_Void = 50916;
public const int ball_Nether = 50106;
public const int bolt_Poison = 50305;
public const int hand_Poison = 50405;
public const int bolt_Nether = 50306;
public const int arrow_Poison = 50505;
public const int hand_Nether = 50406;
public const int funnel_Poison = 50605;
public const int arrow_Nether = 50506;
public const int miasma_Poison = 50705;
public const int funnel_Nether = 50606;
public const int weapon_Poison = 50805;
public const int miasma_Nether = 50706;
public const int puddle_Nether = 50906;
public const int weapon_Nether = 50806;
public const int bolt_Poison = 50305;
public const int puddle_Nether = 50906;
public const int sword_Nether = 51006;
public const int miasma_Nether = 50706;
public const int bit_Nether = 51106;
public const int funnel_Nether = 50606;
public const int flare_Nether = 51206;
public const int arrow_Nether = 50506;
public const int ball_Chaos = 50110;
public const int hand_Nether = 50406;
public const int ball_Sound = 50107;
public const int funnel_Void = 50616;
public const int bolt_Sound = 50307;
public const int bolt_Nether = 50306;
public const int hand_Sound = 50407;
public const int weapon_Void = 50816;
public const int arrow_Sound = 50507;
public const int ball_Nether = 50106;
public const int flare_Mind = 51204;
public const int flare_Poison = 51205;
public const int funnel_Sound = 50607;
public const int bit_Poison = 51105;
public const int bit_Mind = 51104;
public const int sword_Poison = 51005;
public const int miasma_Sound = 50707;
public const int puddle_Poison = 50905;
public const int weapon_Sound = 50807;
public const int miasma_Void = 50716;
public const int sword_Sound = 51007;
public const int weapon_Holy = 50809;
public const int ball_Poison = 50105;
public const int puddle_Holy = 50909;
public const int flare_Ether = 51212;
public const int sword_Holy = 51009;
public const int hand_Chaos = 50410;
public const int puddle_Ether = 50912;
public const int ball_Impact = 50115;
public const int sword_Ether = 51012;
public const int flare_Cut = 51214;
public const int bit_Ether = 51112;
public const int bit_Cut = 51114;
public const int hand_Mind = 50404;
public const int sword_Cut = 51014;
public const int ball_Acid = 50113;
public const int puddle_Cut = 50914;
public const int weapon_Impact = 50815;
public const int weapon_Cut = 50814;
public const int bolt_Acid = 50313;
public const int bolt_Impact = 50315;
public const int hand_Acid = 50413;
public const int miasma_Cut = 50714;
public const int arrow_Acid = 50513;
public const int arrow_Cut = 50514;
public const int funnel_Acid = 50613;
public const int hand_Cut = 50414;
public const int miasma_Acid = 50713;
public const int bolt_Cut = 50314;
public const int weapon_Acid = 50813;
public const int ball_Cut = 50114;
public const int puddle_Acid = 50913;
public const int flare_Acid = 51213;
public const int sword_Acid = 51013;
public const int bit_Acid = 51113;
public const int funnel_Cut = 50614;
public const int flare_Acid = 51213;
public const int hand_Impact = 50415;
public const int ball_Cut = 50114;
public const int arrow_Impact = 50515;
public const int bolt_Impact = 50315;
public const int funnel_Impact = 50615;
public const int sword_Void = 51016;
public const int puddle_Void = 50916;
public const int weapon_Void = 50816;
public const int miasma_Void = 50716;
public const int ball_Impact = 50115;
public const int funnel_Void = 50616;
public const int flare_Cut = 51214;
public const int arrow_Void = 50516;
public const int bit_Cut = 51114;
public const int hand_Void = 50416;
public const int sword_Cut = 51014;
public const int bolt_Void = 50316;
public const int weapon_Ether = 50812;
public const int ball_Void = 50116;
public const int puddle_Cut = 50914;
public const int flare_Impact = 51215;
public const int miasma_Cut = 50714;
public const int bit_Impact = 51115;
public const int funnel_Cut = 50614;
public const int sword_Impact = 51015;
public const int arrow_Cut = 50514;
public const int puddle_Impact = 50915;
public const int hand_Cut = 50414;
public const int weapon_Impact = 50815;
public const int bolt_Cut = 50314;
public const int miasma_Impact = 50715;
public const int sword_Acid = 51013;
public const int puddle_Acid = 50913;
public const int weapon_Acid = 50813;
public const int weapon_Cut = 50814;
public const int miasma_Acid = 50713;
public const int miasma_Ether = 50712;
public const int weapon_Magic = 50811;
public const int funnel_Ether = 50612;
public const int miasma_Magic = 50711;
public const int arrow_Ether = 50512;
public const int funnel_Magic = 50611;
public const int sword_Chaos = 51010;
public const int arrow_Magic = 50511;
public const int puddle_Chaos = 50910;
public const int hand_Magic = 50411;
public const int bit_Impact = 51115;
public const int bolt_Magic = 50311;
public const int flare_Impact = 51215;
public const int ball_Magic = 50111;
public const int weapon_Chaos = 50810;
public const int flare_Chaos = 51210;
public const int miasma_Chaos = 50710;
public const int bit_Chaos = 51110;
public const int sword_Chaos = 51010;
public const int funnel_Chaos = 50610;
public const int puddle_Chaos = 50910;
public const int hand_Chaos = 50410;
public const int weapon_Chaos = 50810;
public const int bolt_Chaos = 50310;
public const int miasma_Chaos = 50710;
public const int ball_Void = 50116;
public const int funnel_Chaos = 50610;
public const int ball_Chaos = 50110;
public const int arrow_Chaos = 50510;
public const int flare_Holy = 51209;
public const int puddle_Magic = 50911;
public const int bit_Holy = 51109;
public const int bolt_Chaos = 50310;
public const int arrow_Chaos = 50510;
public const int sword_Magic = 51011;
public const int arrow_Impact = 50515;
public const int flare_Magic = 51211;
public const int flare_Chaos = 51210;
public const int funnel_Acid = 50613;
public const int sword_Impact = 51015;
public const int arrow_Acid = 50513;
public const int hand_Ether = 50412;
public const int hand_Acid = 50413;
public const int bolt_Ether = 50312;
public const int bolt_Acid = 50313;
public const int puddle_Impact = 50915;
public const int ball_Acid = 50113;
public const int ball_Ether = 50112;
public const int bit_Ether = 51112;
public const int flare_Magic = 51211;
public const int sword_Ether = 51012;
public const int bit_Magic = 51111;
public const int puddle_Ether = 50912;
public const int ball_Magic = 50111;
public const int weapon_Ether = 50812;
public const int sword_Magic = 51011;
public const int miasma_Ether = 50712;
public const int weapon_Magic = 50811;
public const int funnel_Ether = 50612;
public const int miasma_Magic = 50711;
public const int arrow_Ether = 50512;
public const int funnel_Magic = 50611;
public const int hand_Ether = 50412;
public const int arrow_Magic = 50511;
public const int bolt_Ether = 50312;
public const int hand_Magic = 50411;
public const int ball_Ether = 50112;
public const int bolt_Magic = 50311;
public const int bit_Magic = 51111;
public const int puddle_Magic = 50911;
public const int hand_Mind = 50404;
public const int flare_Ether = 51212;
public const int arrow_Cold = 50501;
public const int hand_Cold = 50401;
public const int ball_Mind = 50104;
public const int SpSpeedUp = 8510;
public const int SpTransmuteCat = 8792;
public const int SpHealCritical = 8402;
public const int SpHealHeavy = 8401;
public const int SpHealLight = 8400;
public const int SpReturn = 8220;
public const int SpTelekinesis = 8215;
public const int SpGate = 8202;
public const int ball_ = 7001;
public const int SpEvac = 8221;
public const int SpReturn = 8220;
public const int SpHealHeavy = 8401;
public const int SpEvac = 8221;
public const int SpIdentify = 8230;
public const int SpUncurse = 8240;
public const int SpIdentifyG = 8232;
public const int SpWish = 8390;
public const int SpChangeMaterialLesser = 8284;
public const int SpFaith = 8281;
public const int SpTransmuteCat = 8792;
public const int SpLighten = 8280;
public const int SpFaith = 8281;
public const int SpMagicMap = 8260;
public const int SpUncurseG = 8241;
public const int SpIdentifyG = 8232;
public const int SpUncurse = 8240;
public const int SpDarkness = 8800;
public const int SpLighten = 8280;
public const int SpWeb = 8801;
public const int bolt_Mind = 50304;
public const int SpDarkness = 8800;
public const int SpSummon = 9000;
public const int funnel_Cold = 50601;
public const int hand_Cold = 50401;
public const int arrow_Cold = 50501;
public const int bolt_Cold = 50301;
public const int FieldSpider = 10000;
public const int bolt_Mind = 50304;
public const int SpWeb = 8801;
public const int SpDrawBacker = 9503;
public const int flare_Void = 51216;
public static readonly int[] IDS = new int[292]
public static readonly int[] IDS = new int[293]
{
51008, 50908, 50808, 50708, 51108, 50705, 50508, 50408, 50904, 50308,
51004, 50108, 50608, 51208, 50109, 50804, 50704, 50309, 50409, 50509,
50609, 50604, 50504, 50709, 50809, 50909, 51009, 51109, 51209, 51207,
51107, 50907, 50605, 50805, 50905, 51005, 50505, 51105, 51205, 50106,
50405, 50306, 50406, 50506, 50606, 50706, 50806, 50305, 50906, 51006,
51106, 51206, 50110, 50107, 50307, 50407, 50507, 51204, 50607, 51104,
50707, 50807, 51007, 50105, 51212, 50410, 50115, 51214, 51114, 51014,
50914, 50814, 50315, 50714, 50514, 50414, 50314, 50114, 51213, 51113,
50614, 50415, 50515, 50615, 51016, 50916, 50816, 50716, 50616, 50516,
50416, 50316, 50116, 51215, 51115, 51015, 50915, 50815, 50715, 51013,
50913, 50813, 50713, 50811, 50711, 50611, 50511, 50411, 50311, 50111,
51210, 51110, 51010, 50910, 50810, 50710, 50610, 50510, 50911, 50310,
51011, 51211, 50613, 50513, 50413, 50313, 50113, 51112, 51012, 50912,
50812, 50712, 50612, 50512, 50412, 50312, 50112, 51111, 50404, 50501,
50415, 51207, 51107, 51007, 50907, 50807, 50707, 50607, 50507, 50407,
50307, 50416, 50107, 51206, 50108, 50316, 50308, 50408, 50508, 50608,
50708, 50808, 50908, 51008, 51108, 51208, 50109, 50309, 50409, 50509,
50609, 50516, 50709, 51106, 51006, 50504, 50604, 50704, 50804, 50904,
51004, 51104, 51204, 50105, 51016, 50916, 50305, 50405, 50505, 50605,
50705, 50805, 50906, 50806, 50706, 50606, 50506, 50406, 50616, 50306,
50816, 50106, 51205, 51105, 51005, 50905, 50716, 50809, 50909, 51009,
50912, 51012, 51112, 50404, 50113, 50815, 50313, 50413, 50513, 50613,
50713, 50813, 50913, 51013, 51113, 51213, 50114, 50315, 50615, 50115,
51214, 51114, 51014, 50812, 50914, 50714, 50614, 50514, 50414, 50314,
50715, 50814, 50712, 50612, 50512, 51010, 50910, 51115, 51215, 50810,
50710, 51110, 50610, 50410, 50310, 50116, 50110, 51209, 51109, 50510,
50515, 51210, 51015, 50412, 50312, 50915, 50112, 51211, 51111, 50111,
51011, 50811, 50711, 50611, 50511, 50411, 50311, 50911, 51212, 50401,
50104, 8504, 8503, 8502, 8501, 8500, 8491, 8490, 8480, 8471,
8470, 8450, 8430, 8406, 8405, 8404, 8506, 8403, 8507, 8550,
8791, 8790, 8780, 8776, 8775, 8770, 8710, 8708, 8707, 8706,
8705, 8704, 8702, 8700, 8555, 8510, 8792, 8402, 8400, 8220,
8705, 8704, 8702, 8700, 8555, 8510, 8402, 8401, 8400, 8215,
8202, 8201, 8200, 7800, 7010, 7009, 7008, 7007, 7006, 7005,
7004, 7003, 7002, 7001, 8221, 8401, 8230, 8240, 8390, 8380,
8300, 8288, 8286, 8285, 8284, 8281, 8280, 8260, 8256, 8255,
8251, 8250, 8241, 8232, 8800, 8801, 9000, 50402, 50302, 50102,
51201, 51101, 51001, 50901, 50801, 50701, 50601, 50401, 50301, 50101,
51200, 51100, 50502, 51000, 50602, 50802, 51203, 51103, 51003, 50903,
50803, 50703, 50603, 50503, 50403, 50303, 50103, 51202, 51102, 51002,
50902, 50702, 50900, 50800, 50700, 9054, 9053, 9052, 9051, 9050,
9010, 9009, 9008, 9007, 9006, 9005, 9004, 9003, 9002, 9001,
9055, 9056, 9150, 9151, 50600, 50500, 50400, 50300, 51116, 50100,
10000, 50304, 9503, 9501, 9500, 9210, 9200, 9160, 9156, 9155,
9502, 51216
7004, 7003, 7002, 7001, 8220, 8221, 8230, 8232, 8390, 8380,
8300, 8288, 8286, 8285, 8284, 8792, 8281, 8260, 8256, 8255,
8251, 8250, 8241, 8240, 8280, 50304, 8800, 9000, 50402, 50302,
50102, 51201, 51101, 51001, 50901, 50801, 50701, 50601, 50501, 50301,
50101, 51200, 51100, 50502, 51000, 50602, 50802, 51203, 51103, 51003,
50903, 50803, 50703, 50603, 50503, 50403, 50303, 50103, 51202, 51102,
51002, 50902, 50702, 50900, 50800, 50700, 9054, 9053, 9052, 9051,
9050, 9010, 9009, 9008, 9007, 9006, 9005, 9004, 9003, 9002,
9001, 9055, 9056, 9150, 9151, 50600, 50500, 50400, 50300, 51116,
50100, 10000, 8801, 9503, 9501, 9500, 9210, 9200, 9160, 9156,
9155, 9502, 51216
};
}
public class Spell : AbilitySourcePref
}
}
public float heightFix
{
get
{
return (float)ints[24] * 0.01f;
}
set
{
ints[24] = (int)(value * 100f);
}
}
public bool bypassShadow
{
getTCOrbitChara
public override void OnSetOwner()
{
owner = base.owner as Chara;
RenderData data = owner.renderer.data;
goIcon.transform.SetLocalPositionY(data.offset.y + data.size.y + 0.32f);
goIcon.transform.SetLocalPositionY(data.offset.y + data.size.y + 0.32f + owner.Pref.heightFix);
timer = 0f;
Refresh();
RefreshAll();
}public override void RefreshAll()
Emo2 emo = owner.emoIcon;
if (emo == Emo2.none)
{
if (!owner.IsPC && ((owner.affinity.CanGiveCard() && !EMono.player.codex.DroppedCard(owner.id)) || owner.GetInt(71) == -2))
if (!owner.IsPC && !owner.IsHostile() && ((owner.affinity.CanGiveCard() && !EMono.player.codex.DroppedCard(owner.id)) || owner.GetInt(71) == -2))
{
emo = Emo2.hintEvent;
}TCOrbitThing
public override void OnSetOwner()
{
owner = base.owner as Thing;
RenderData data = owner.renderer.data;
goIcon.transform.SetLocalPositionY(data.offset.y + data.size.y + 0.32f);
goIcon.transform.SetLocalPositionY(data.offset.y + data.size.y + 0.32f + owner.Pref.heightFix);
timer = 0f;
Refresh();
RefreshAll();
}Trait
public void OnBarter(bool reroll = false)
{
for (int num7 = 0; num7 < 30; num7++)
{
AddThing(ThingGen.CreateFromCategory((EClass.rnd(2) == 0) ? "_book" : "book"));
AddThing(ThingGen.CreateFromFilter("shop_seeker"));
}
break;
}TraitCatalyst
public override void TrySetHeldAct(ActPlan p)
{
return;
}
p.TrySetAct(act.source.GetName(), delegate
p.TrySetAct(((EClass.pc.elements.GetElement(act.id) as Act) ?? act).GetText(), delegate
{
if (tg != null && !tg.ExistsOnMap)
{TraitGrindstone
public class TraitGrindstone : TraitCrafter
public override int numIng => 2;
public override bool StopSoundProgress => true;
public override bool IsConsumeIng => false;
public override bool ShouldConsumeIng(SourceRecipe.Row item, int index)
{
return false;
}
}TraitToolButcher
public override void TrySetHeldAct(ActPlan p)
{
foreach (Chara chara in p.pos.Charas)
{
if (!chara.IsPCFaction || chara.IsPC)
if (!chara.IsPCFaction || chara.IsPC || chara.host != null)
{
continue;
}public override void TrySetHeldAct(ActPlan p)
{
target = _c
});
});
}, _c);
return false;
}, chara);
}, _c);
}
}
}