2using System.Collections.Generic;
150 public virtual bool CanStack => owner.category.maxStack > 1;
224 return owner.c_lockLv == 0;
308 return owner.rarity <
Rarity.Artifact;
488 return "switch_on_electricity";
502 return "torch_unlit";
504 return "switch_off_electricity";
706 Vector3 vector2 =
item.Position();
737 for (
int i = 0; i < 50; i++)
739 Point point = list.RandomItem();
740 if (point.
IsValid && (func ==
null || func(point)) && (accessChara ==
null || accessChara.HasAccess(point)))
760 Room room = center.cell.room;
781 if (!p.cell.HasBlock || p.cell.HasFence)
783 listRadiusPoints.Add(p.Copy());
788 listRadiusPoints.Add(p.Copy());
851 string @ref = row.GetTextArray(
"name2")[1];
852 string ref2 = row.GetTextArray(
"name2")[0];
855 cc.
Talk(
"offer", @ref, ref2);
877 cc.depression.Mod(100);
891 int num = ((thing ==
null) ? (cc.
Evalue(280) / 2 + 2) : (cc.
Evalue(280) + 10));
896 num2 = num / 4 * 3 - 1;
898 if (num <= num2 && cc.
IsPC)
901 cc.
Say(
"openLockFail2");
905 if (thing !=
null && !flag)
912 cc.
Say(
"lockpick_success", cc, owner);
913 int num3 = 100 + num2 * 10;
922 owner.c_lockedHard =
false;
923 owner.c_priceAdd = 0;
929 owner.isLostProperty =
false;
935 cc.
Say(
"openLockFail");
937 cc.
ModExp(280, (thing !=
null) ? 50 : 30);
938 if ((thing ==
null) | (
EClass.
rnd(2) == 0))
1008 if (c.
held != owner)
1027 if (CanUse(owner.
Chara))
1081 if (Electricity != 0)
1083 EClass._zone.dirtyElectricity =
true;
1084 if (Electricity > 0)
1086 EClass._zone.electricity += Electricity;
1096 OnInstall(byPlayer);
1101 if (Electricity != 0)
1105 Toggle(on:
false, silent:
true);
1107 EClass._zone.dirtyElectricity =
true;
1108 if (Electricity > 0)
1110 EClass._zone.electricity -= Electricity;
1133 Toggle(on:
false, silent:
true);
1135 else if (AutoToggle)
1143 Toggle(on, silent:
true);
1147 public virtual void Toggle(
bool on,
bool silent =
false)
1149 if (owner.
isOn == on)
1153 if (Electricity < 0)
1163 owner.
Say(
"notEnoughElectricity", owner);
1165 owner.
PlaySound(
"electricity_insufficient");
1169 EClass._zone.electricity += Electricity;
1173 EClass._zone.electricity -= Electricity;
1177 PlayToggleEffect(silent);
1184 bool isOn = owner.
isOn;
1197 owner.
Say(isOn ?
"close" :
"open",
EClass.
pc, owner);
1198 owner.
PlaySound(
"Material/leather_drop");
1210 owner.
Say(flag ?
"toggle_fire" :
"toggle_ele",
EClass.
pc, owner);
1242 Toggle(!owner.
isOn);
1249 Toggle(!owner.
isOn);
1264 p.
TrySetAct(flag ?
"ActExtinguishTorch" :
"ActToggleOff", delegate
1273 p.
TrySetAct(flag ?
"ActTorch" :
"ActToggleOn", delegate
1302 public bool IsFuelEnough(
int num = 1, List<Thing> excludes =
null,
bool tryRefuel =
true)
1314 TryRefuel(FuelCost * num - owner.
c_charges, excludes);
1316 return owner.c_charges >= FuelCost * num;
1321 return GetFuelValue(s) > 0;
1326 return GetFuelValue(t) > 0;
1335 return GetFuelValue(t.
id);
1342 if (
id ==
"battery")
1376 if (FindFuel(refuel:
false))
1378 FindFuel(refuel:
true);
1380 bool FindFuel(
bool refuel)
1386 if (IsFuel(t) && t.tier == 0 && (excludes ==
null || !excludes.Contains(t)))
1395 int num2 = Mathf.Min(
item.Num, Mathf.CeilToInt((
float)num / (float)GetFuelValue(
item)));
1396 num -= GetFuelValue(
item) * num2;
1399 Refuel(
item.Split(num2));
1432 t.SetActive(enable:
true);
1437 t.SetActive(enable:
true);
1442 t.SetActive(owner.
Num > 1);
1453 int rawDeadLine = 0;
1467 if (remainingHours > 0)
1469 return "nextRestock".lang(lang.lang(),
Date.
GetText(remainingHours) ??
"");
1481 return Emo2.restock;
1489 return Emo2.blessing;
1491 return Emo2.restock;
1510 owner.isRestocking =
true;
1526 if (c_copyContainer ==
null)
1538 thing4.isStolen =
false;
1539 thing4.isCopy =
true;
1540 thing4.c_priceFix = 0;
1550 num4 = (1000 + owner.c_invest * 100) / (thing4.GetPrice(
CurrencyType.Money, sell:
false,
PriceType.CopyShop) + 50);
1551 int[] array =
new int[4] { 701, 704, 703, 702 };
1552 foreach (
int ele
in array)
1554 if (thing4.HasElement(ele))
1565 if (num4 > 1 && thing4.trait.CanStack)
1567 thing4.SetNum(num4);
1580 string id2 = owner.
id;
1581 if (!(id2 ==
"mogu"))
1583 if (!(id2 ==
"felmera"))
1601 Add(
"license_illumination", 1, 0);
1602 Add(
"license_void", 1, 0);
1603 Add(
"license_adv", 1, 0);
1607 for (
int num5 = 0; num5 < 30; num5++)
1620 for (
int num6 = 0; num6 <
EClass.
rnd(3) + 1; num6++)
1624 for (
int num7 = 0; num7 <
EClass.
rnd(3) + 1; num7++)
1631 Add(
"board_map", 1, 0);
1632 Add(
"board_build", 1, 0);
1633 Add(
"book_resident", 1, 0);
1647 Add(
"board_home", 1, 0);
1648 Add(
"board_resident", 1, 0);
1653 Add(
"board_expedition", 1, 0);
1654 Add(
"mailpost", 1, 0);
1655 Add(
"record", 1, 0);
1658 Add(
"wagon1", 1, 0);
1659 Add(
"wagon_big", 1, 0);
1660 Add(
"wagon_big2", 1, 0);
1661 Add(
"wagon_big3", 1, 0);
1662 Add(
"wagon_big4", 1, 0);
1663 Add(
"wagon_big5", 1, 0);
1664 Add(
"teleporter", 1, 0);
1665 Add(
"teleporter2", 1, 0);
1666 Add(
"recharger", 1, 0);
1667 Add(
"machine_gene2", 1, 0);
1684 Add(
"drawing_paper", 10, 0);
1685 Add(
"drawing_paper2", 10, 0);
1686 Add(
"stethoscope", 1, 0);
1687 Add(
"whip_love", 1, 0);
1688 Add(
"whip_interest", 1, 0);
1693 Add(
"flyer", 1, 0).SetNum(99);
1698 bool num2 = owner.id ==
"big_sister";
1702 Add(
"littleball", 10, 0);
1705 for (
int l = 0; l < 10; l++)
1713 for (
int m = 0; m < 30; m++)
1719 Add(
"candle9", 1, -1);
1720 Add(
"candle9", 1, -1);
1721 Add(
"candle9", 1, -1);
1722 Add(
"candle8", 1, 0);
1723 Add(
"candle8b", 1, 0);
1724 Add(
"candle8c", 1, 0);
1731 Add(
"chest_tax", 1, 0);
1733 Add(
"monsterball", 1, 0).SetNum(3).SetLv(10);
1736 Add(
"pillow_ehekatl", 1, 0);
1737 Add(
"grave_dagger1", 1, 0);
1738 Add(
"grave_dagger2", 1, 0);
1749 for (
int k = 0; k < 5; k++)
1753 thing2.c_priceFix = 1000;
1760 Add(
"sword_dragon", 1, 0).SetReplica(on:
true);
1762 Add(
"axe_destruction", 1, 0).SetReplica(on:
true);
1764 Add(
"blunt_bonehammer", 1, 0).SetReplica(on:
true);
1766 Add(
"pole_gunlance", 1, 0).SetReplica(on:
true);
1768 Add(
"sword_muramasa", 1, 0).SetReplica(on:
true);
1770 Add(
"sword_forgetmenot", 1, 0).SetReplica(on:
true);
1772 Add(
"dagger_fish", 1, 0).SetReplica(on:
true);
1774 Add(
"sword_zephir", 1, 0).SetReplica(on:
true);
1775 Add(
"ribbon", 1, 0);
1776 Add(
"helm_sage", 1, 0);
1777 Add(
"diary_sister", 1, 0);
1778 Add(
"diary_catsister", 1, 0);
1779 Add(
"diary_lady", 1, 0);
1780 Add(
"1165", 1, 0).SetNum(5);
1782 Add(
"monsterball", 1, 0).SetNum(3).SetLv(20);
1783 Add(
"monsterball", 1, 0).SetNum(3).SetLv(40);
1784 Add(
"bill_tax", 1, 0).c_bill = 1;
1785 Add(
"bill_tax", 1, 0).c_bill = 1;
1786 Add(
"bill_tax", 1, 0).c_bill = 1;
1787 Add(
"container_magic", 1, 0);
1788 Add(
"container_magic", 1, 0).ChangeMaterial(
"iron").idSkin = 1;
1789 Add(
"container_magic", 1, 0).ChangeMaterial(
"bamboo").idSkin = 2;
1790 Add(
"container_magic", 1, 0).ChangeMaterial(
"feywood").idSkin = 3;
1791 Add(
"wrench_tent_elec", 1, 0);
1792 Add(
"wrench_tent_soil", 1, 0);
1793 Add(
"wrench_tent_seabed", 1, 0);
1794 Add(
"wrench_bed", 1, 0).SetNum(20);
1795 Add(
"wrench_storage", 1, 0).SetNum(10);
1796 Add(
"wrench_fridge", 1, 0).SetNum(1);
1797 Add(
"wrench_extend_v", 1, 0).SetNum(2);
1798 Add(
"wrench_extend_h", 1, 0).SetNum(2);
1802 float num = (float)(3 + Mathf.Min(ShopLv / 5, 10)) + Mathf.Sqrt(ShopLv);
1804 num = Mathf.Min(num, 300f);
1805 for (
int j = 0; (float)j < num; j++)
1807 Thing thing = CreateStock();
1823 for (
int n = 0; n < recipeKey.Length; n++)
1825 if (recipeKey[n] ==
ShopType.ToString())
1836 for (
int num10 = 1; num10 <= 12; num10++)
1844 int num11 = (EClass.debug.enable ? 20 : (EClass._zone.development / 10));
1847 Add(
"syringe_gene", num11, 0);
1848 Add(
"diary_little", 1, 0);
1852 Add(
"syringe_heaven", num11 / 5, 0);
1857 Add(
"tool_talisman", 1, 0);
1868 Add(
"ecomark", 5, 0);
1869 Add(
"whip_egg", 1, 0);
1870 Add(
"helm_chef", 1, 0);
1871 Add(
"hammer_strip", 1, 0);
1873 Add(
"plat", 100, 0);
1878 Add(
"bullet", 1, 0).SetNum(300 +
EClass.
rnd(100)).ChangeMaterial(
"iron");
1879 Add(
"bullet_energy", 1, 0).SetNum(100 +
EClass.
rnd(100)).ChangeMaterial(
"iron");
1893 Add(
"holyFeather", 1, 0);
1902 Add(
"ticket_massage", 1, 0);
1903 Add(
"ticket_armpillow", 1, 0);
1904 Add(
"ticket_champagne", 1, 0);
1906 for (
int num8 = 0; num8 < 3; num8++)
1914 TreasureType.Map =>
"chest_treasure",
1915 TreasureType.BossNefia =>
"chest_boss",
1918 thing5.c_lockedHard =
true;
1919 thing5.c_lockLv = num9;
1920 thing5.c_priceAdd = 2000 + num9 * 250 * ((treasureType ==
TreasureType.RandomChest) ? 1 : 5);
1921 thing5.c_revealLock =
true;
1932 for (
int num12 = 0; num12 < (EClass.debug.enable ? 3 : 3); num12++)
1966 Add(
"lockpick", 1, 0);
1969 Add(
"lockpick", 1, 0);
1975 thing10.c_idBacker = 0;
1979 if (thing10.
Num == 1)
1987 if (thing10.
IsFood && owner.
id ==
"rodwyn")
1995 thing10.noSell =
true;
1999 thing10.isStolen =
true;
2003 thing10.c_IDTState = 0;
2007 thing10.c_priceFix = -70;
2011 thing10.c_IDTState = 5;
2019 if (t.things.Count <= t.things.GridSize)
2023 int num13 = t.things.width * 10;
2024 if (t.things.Count > num13)
2026 int num14 = t.things.Count - num13;
2027 for (
int num15 = 0; num15 < num14; num15++)
2029 t.things.LastItem().Destroy();
2032 t.things.ChangeSize(t.things.width, Mathf.Min(t.things.Count / t.things.width + 1, 10));
2033 Thing Add(
string id,
int a,
int idSkin)
2037 thing7.idSkin = ((idSkin == -1) ?
EClass.
rnd(thing7.
source.skins.Length + 1) : idSkin);
2040 void AddAdvWeek(
int i)
2043 thing6.c_priceFix = -90;
2050 void NoRestock(
Thing _t)
2053 if (hashSet ==
null)
2055 hashSet =
new HashSet<string>();
2078 return FromFilter(
"shop_generalExotic");
2082 return Create(
"panty");
2086 return Create(
"234");
2088 return FromFilter(
"shop_drink");
2090 return FromFilter(
"shop_furniture");
2092 return FromFilter(
"shop_book");
2094 return FromFilter(
"shop_magic");
2106 Thing thing2 =
null;
2107 for (
int i = 0; i < 1000; i++)
2109 thing2 = FromFilter(
"shop_healer");
2112 if (!(traitScroll.source.aliasParent !=
"WIL") && !(traitScroll.source.categorySub ==
"attack"))
2119 if (!(traitPotionRandom.source.aliasParent !=
"WIL") && !(traitPotionRandom.source.categorySub ==
"attack"))
2125 else if (thing2.
trait is
TraitRodRandom { source: not null } traitRodRandom && !(traitRodRandom.source.aliasParent !=
"WIL") && !(traitRodRandom.source.categorySub ==
"attack"))
2140 return Create(
"milk");
2144 return Create(
"book_plan");
2146 return FromFilter(
"shop_weapon");
2150 return Create(
"mod_ranged");
2152 return FromFilter(
"shop_gun");
2170 return FromFilter(
"shop_blackmarket");
2173 return FromFilter(
"shop_drink");
2175 return FromFilter(
"shop_booze");
2177 return FromFilter(
"shop_fruit");
2181 return Create(
"bait");
2185 return Create(
"fishingRod");
2187 return FromFilter(
"shop_fish");
2191 return Create(
"seasoning");
2193 return FromFilter(
"shop_meat");
2197 return Create(
"dough");
2199 return FromFilter(
"shop_bread");
2203 return Create(
"dough");
2205 return FromFilter(
"shop_sweet");
2209 return Create(
"seasoning");
2211 return FromFilter(
"shop_food");
2213 return FromFilter(
"shop_drug");
2217 if (loytelMartLv >= 1)
2221 return Create(
"monsterball").SetLv(40 +
EClass.
rnd(ShopLv)).Thing;
2237 return Create(
"1165");
2243 switch ((from _s in row.
thing.ToCharArray()
2245 select _s).RandomItem())
2257 return FromFilter(
"shop_junk");
2261 return FromFilter(
"shop_junk");
2263 return FromFilter(
"shop_souvenir");
2269 return Create(
"firework_launcher");
2271 return Create(
"firework");
2275 if (IsFestival(
"olvina"))
2277 return Create(
new string[4] {
"1125",
"1126",
"pillow_truth",
"1230" }.RandomItem());
2279 if (IsFestival(
"yowyn"))
2281 return Create(
new string[3] {
"hat_mushroom",
"hat_witch",
"hat_kumiromi" }.RandomItem());
2283 if (IsFestival(
"noyel"))
2285 return Create(
new string[9] {
"1127",
"1128",
"xmas_sled",
"xmas_bigbag",
"xmas_bigbox",
"xmas_blackcat",
"xmas_blackcat",
"xmas_jure",
"xmas_crown" }.RandomItem());
2290 return Create(
new string[4] {
"1081",
"1082",
"1083",
"1084" }.RandomItem());
2294 return FromFilter(
"shop_junk");
2296 return FromFilter(
"shop_souvenir");
2300 if (IsFestival(
"kapul"))
2302 return Create(
new string[6] {
"999",
"1000",
"1001",
"1002",
"1003",
"1004" }.RandomItem());
2304 if (IsFestival(
"yowyn"))
2306 return Create(
new string[2] {
"1072",
"1073" }.RandomItem());
2308 if (IsFestival(
"noyel"))
2310 return Create(
new string[1] {
"1069" }.RandomItem());
2312 if (IsFestival(
"olvina"))
2314 return Create(
new string[2] {
"1070",
"1071" }.RandomItem());
2319 return Create(
new string[4] {
"953",
"954",
"955",
"956" }.RandomItem());
2321 return FromFilter(
"shop_lamp");
2325 return Create(
"lockpick");
2327 return FromFilter(
"shop_general");
2329 Thing Create(
string s)
2333 Thing FromFilter(
string s)
2337 static bool IsFestival(
string id)
bool TrySetAct(string lang, Func< bool > onPerform, Card tc, CursorInfo cursor=null, int dist=1, bool isHostileAct=false, bool localAct=true, bool canRepeat=false)
int GetInt(int id, int? defaultInt=null)
void SetInt(int id, int value=0)
static void SetRarity(Rarity q=Rarity.Normal)
static void SetNormalRarity(bool fixedMat=false)
void PlayAnime(AnimeID id, bool force)
void RemoveExtra(string id)
Thing TryMakeRandomItem(int lv=-1, TryMakeRandomItemSource itemSource=TryMakeRandomItemSource.Default, Chara crafter=null)
void MakeRefFrom(string id)
ElementContainerCard elements
bool HasElement(int ele, int req=1)
SourceMaterial.Row material
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Card ChangeMaterial(int idNew, bool ignoreFixedMaterial=false)
virtual int GetPrice(CurrencyType currency=CurrencyType.Money, bool sell=false, PriceType priceType=PriceType.Default, Chara c=null)
Thing AddThing(string id, int lv=-1)
void Talk(string idTopic, string ref1=null, string ref2=null, bool forceSync=false)
void ModCharge(int a, bool destroy=false)
void PlaySoundDrop(bool spatial=true)
virtual CardRow sourceCard
void ModExp(string alias, int a)
void PlayAnime(AnimeID id, bool force=false)
SourceCategory.Row category
void Say(string lang, string ref1=null, string ref2=null)
bool TryHoldCard(Card t, int num=-1, bool pickHeld=false)
static void MakeDish(Thing food, int lv, Chara crafter=null)
static Thing GenerateGene(Chara c, Type? type=null)
int GetRaw(int offsetHours=0)
string GetText(TextFormat format)
int GetRemainingHours(int rawDeadLine)
static SourceManager sources
static BaseGameScreen screen
static int rndHalf(int a)
static GameSetting setting
Element SetBase(string alias, int v, int potential=0)
override bool IsCurrentZone
override bool IsCurrentZone
static GuildMerchant Merchant
static LayerDragGrid Create(InvOwnerDraglet owner, bool refuelFromLayerDragGrid=false)
static bool IsVisible(Point p1, Point p2, Action< Point, bool > _onVisit=null)
void ForeachSphere(int _x, int _z, float r, Action< Point > action)
void Add(Point point, float tile=0f, float color=0f)
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Dictionary< string, HashSet< string > > noRestocks
ref Vector3 Position(int height)
List< Card > ListCards(bool includeMasked=false)
void RefreshNeighborTiles()
static List< RecipeSource > list
static Recipe Create(RecipeSource _source, int idMat=-1, Thing ing=null)
string GetText(string id="name", bool returnNull=false)
static SpawnList Get(string id, string parent=null, CardFilter filter=null)
CardRow Select(int lv=-1, int levelRange=-1)
void DestroyAll(Func< Thing, bool > funcExclude=null)
void Foreach(Action< Thing > action, bool onlyAccessible=true)
static Thing CreateRune(int ele, int v, bool free=false)
static Thing CreatePotion(int ele, int num=1)
static Thing CreateFromFilter(string id, int lv=-1)
static Thing CreateMap(string idSource=null, int lv=-1)
static Thing CreatePerfume(int ele, int num=1)
static Thing CreateRod(int ele)
static Thing CreateRedBook(string id, int num=1)
static void CreateTreasureContent(Thing t, int lv, TreasureType type, bool clearContent)
static Thing CreateSpellbook(string alias, int num=1)
static Thing CreatePlan(int ele)
static Thing CreateRecipe(string id)
static Thing CreateSkillbook(int ele, int num=1)
static Thing CreateFromCategory(string idCat, int lv=-1)
static Thing CreateScroll(int ele, int num=1)
static Thing Create(string id, int idMat=-1, int lv=-1)
virtual bool IsBlockSight
static Thing MakeSeed(SourceObj.Row obj, PlantData plant=null)
static Thing MakeRandomSeed(bool enc=false)
static void LevelSeed(Thing t, SourceObj.Row obj, int num)
static void SetZone(Zone zone, Thing t)
virtual string LangBarter
virtual void OnImportMap()
virtual bool RequireFullStackCheck
virtual bool OnUse(Chara c, Card tg)
virtual bool CanExtendBuild
virtual TileMode tileMode
void OfferProcess(Chara cc)
virtual bool IsBlockSight
virtual bool HoldAsDefaultInteraction
virtual int GetActDuration(Chara c)
virtual bool CanBeAttacked
virtual bool CanBeHallucinated
virtual void SetMainText(UIText t, bool hotitem)
virtual bool CanUse(Chara c)
virtual bool ShouldRefreshTile
virtual bool ShowChildrenNumber
virtual List< Point > ListPoints(Point center=null, bool onlyPassable=true)
virtual CopyShopType CopyShop
virtual void OnChangePlaceState(PlaceState state)
virtual Recipe GetRecipe()
virtual void OnSetCardGrid(ButtonGrid b)
virtual string IDInvStyle
virtual string IdSoundToggleOff
virtual HotItem GetHotItem()
int GetSortVal(UIList.SortMode m)
virtual bool Contains(RecipeSource r)
virtual void OnEquip(Chara c, bool onSetOwner)
virtual void OnTickHeld()
virtual void WriteNote(UINote n, bool identified)
int GetParamInt(int i, int def)
virtual void OnSteppedOut(Chara c)
virtual bool TryProgress(AIProgress p)
virtual bool CanBeDisassembled
virtual void OnRead(Chara c)
virtual bool IgnoreLastStackHeight
Point GetRandomPoint(Func< Point, bool > func=null, Chara accessChara=null)
virtual void OnInstall(bool byPlayer)
virtual bool CanChangeHeight
virtual void TrySetAct(ActPlan p)
virtual bool CanSearchContent
virtual bool CanChildDecay(Card c)
virtual void TrySetHeldAct(ActPlan p)
virtual string IdSoundToggleOn
virtual void OnThrowGround(Chara c, Point p)
virtual bool CanStackTo(Thing to)
virtual string ReqHarvest
virtual bool CanBeDestroyed
virtual bool CanRead(Chara c)
virtual bool AlwaysHideOnLowWall
virtual bool CanCook(Card c)
virtual string IdNoRestock
virtual bool CanBuildInTown
virtual void SetOwner(Card _owner)
virtual bool OnChildDecay(Card c, bool firstDecay)
virtual void OnRenderTile(Point point, HitResult result, int dir)
string GetTextRestock(string lang, bool pet)
virtual void OnOpenDoor(Chara c)
virtual LockOpenState TryOpenLock(Chara cc, bool msgFail=true)
virtual bool CanOpenContainer
virtual void TrySetToggleAct(ActPlan p)
virtual TileType tileType
virtual void PlayToggleEffect(bool silent)
virtual bool CanUse(Chara c, Card tg)
virtual bool CanUseRoomRadius
virtual bool CanCopy(Thing t)
virtual bool UseDummyTile
virtual void OnUnequip(Chara c)
virtual int DecaySpeedChild
virtual Sprite GetRefSprite()
virtual bool IsOnlyUsableByPc
virtual void OnAddedToZone()
virtual void Toggle(bool on, bool silent=false)
string GetParam(int i, string def=null)
virtual void OnUnsetCurrentItem()
virtual void OnRenderExtra(RenderParam p)
virtual bool CanEat(Chara c)
virtual Recipe GetBuildModeRecipe()
virtual int CostRerollShop
virtual void OnSimulateHour(VirtualDate date)
int GetFuelValue(Thing t)
virtual bool OnUse(Chara c, Point p)
virtual bool IsThrowMainAction
virtual bool InvertHeldSprite
virtual bool CanBeHeldAsFurniture
string TextNextRestockPet
virtual bool IsChangeFloorHeight
virtual void OnStepped(Chara c)
virtual bool CanBeTeleported
virtual string GetHoverText()
virtual void RefreshRenderer()
virtual bool CanUse(Chara c, Point p)
virtual bool CanOffer(Card tg)
virtual bool DisableAutoCombat
virtual void OnCreate(int lv)
virtual ? Color ColorExtra
virtual void OnSetCurrentItem()
virtual TraitRadiusType radiusType
virtual bool CanCopyInBlueprint
virtual bool OnUse(Chara c)
int GetFuelValue(string id)
void TryRefuel(int dest, List< Thing > excludes)
virtual bool CanBeShipped
virtual void OnUninstall()
static List< Point > listRadiusPoints
virtual void OnSetOwner()
virtual bool CanBuiltAt(Point p)
virtual bool CanUseContent
virtual bool IsNightOnlyLight
virtual void OnDrink(Chara c)
virtual bool UseLightColor
virtual void OnRemovedFromZone()
virtual bool ShouldTryRefreshRoom
virtual bool CanBlend(Thing t)
virtual Emo2 GetHeldEmo(Chara c)
virtual bool CanBeDropped
virtual void OnCrafted(Recipe recipe, List< Thing > ings)
bool IsFuelEnough(int num=1, List< Thing > excludes=null, bool tryRefuel=true)
virtual bool CanBeSmashedToDeath
virtual bool LevelAsQuality
virtual void OnEat(Chara c)
virtual Action GetHealAction(Chara c)
virtual int IdleUseChance
static TraitSelfFactory SelfFactory
virtual bool ShowContextOnPick
virtual SourceElement.Row GetRefElement()
virtual bool IdleUse(Chara c, int dist)
virtual void OnEnterScreen()
virtual bool IsSpecialContainer
virtual bool ShowFuelWindow
virtual void SetName(ref string s)
virtual bool CanBeOnlyBuiltInHome
virtual void SetParams(params string[] s)
virtual int CompareTo(Card b)
virtual bool CanDrink(Chara c)
virtual int InstallBottomPriority
virtual bool CanOnlyCarry
void Install(bool byPlayer)
virtual bool AllowCriminal
virtual void OnBlend(Thing t, Chara c)