2using System.Collections.Generic;
150 public virtual bool CanStack => owner.category.maxStack > 1;
224 return owner.c_lockLv == 0;
310 return owner.rarity <
Rarity.Artifact;
492 return "switch_on_electricity";
506 return "torch_unlit";
508 return "switch_off_electricity";
714 Vector3 vector2 =
item.Position();
745 for (
int i = 0; i < 50; i++)
747 Point point = list.RandomItem();
748 if (point.
IsValid && (func ==
null || func(point)) && (accessChara ==
null || accessChara.HasAccess(point)))
768 Room room = center.cell.room;
789 if (!p.cell.HasBlock || p.cell.HasFence)
791 listRadiusPoints.Add(p.Copy());
796 listRadiusPoints.Add(p.Copy());
859 string @ref = row.GetTextArray(
"name2")[1];
860 string ref2 = row.GetTextArray(
"name2")[0];
863 cc.
Talk(
"offer", @ref, ref2);
885 cc.depression.Mod(100);
899 int num = ((thing ==
null) ? (cc.
Evalue(280) / 2 + 2) : (cc.
Evalue(280) + 10));
904 num2 = num / 4 * 3 - 1;
906 if (num <= num2 && cc.
IsPC)
909 cc.
Say(
"openLockFail2");
913 if (thing !=
null && !flag)
920 cc.
Say(
"lockpick_success", cc, owner);
921 int num3 = 100 + num2 * 10;
930 owner.c_lockedHard =
false;
931 owner.c_priceAdd = 0;
937 owner.isLostProperty =
false;
943 cc.
Say(
"openLockFail");
945 cc.
ModExp(280, (thing !=
null) ? 50 : 30);
946 if ((thing ==
null) | (
EClass.
rnd(2) == 0))
1016 if (c.
held != owner)
1035 if (CanUse(owner.
Chara))
1089 if (Electricity != 0)
1091 EClass._zone.dirtyElectricity =
true;
1092 if (Electricity > 0)
1094 EClass._zone.electricity += Electricity;
1104 OnInstall(byPlayer);
1109 if (Electricity != 0)
1113 Toggle(on:
false, silent:
true);
1115 EClass._zone.dirtyElectricity =
true;
1116 if (Electricity > 0)
1118 EClass._zone.electricity -= Electricity;
1141 Toggle(on:
false, silent:
true);
1143 else if (AutoToggle)
1151 Toggle(on, silent:
true);
1155 public virtual void Toggle(
bool on,
bool silent =
false)
1157 if (owner.
isOn == on)
1161 if (Electricity < 0)
1171 owner.
Say(
"notEnoughElectricity", owner);
1173 owner.
PlaySound(
"electricity_insufficient");
1177 EClass._zone.electricity += Electricity;
1181 EClass._zone.electricity -= Electricity;
1185 PlayToggleEffect(silent);
1192 bool isOn = owner.
isOn;
1205 owner.
Say(isOn ?
"close" :
"open",
EClass.
pc, owner);
1206 owner.
PlaySound(
"Material/leather_drop");
1218 owner.
Say(flag ?
"toggle_fire" :
"toggle_ele",
EClass.
pc, owner);
1250 Toggle(!owner.
isOn);
1257 Toggle(!owner.
isOn);
1272 p.
TrySetAct(flag ?
"ActExtinguishTorch" :
"ActToggleOff", delegate
1281 p.
TrySetAct(flag ?
"ActTorch" :
"ActToggleOn", delegate
1310 public bool IsFuelEnough(
int num = 1, List<Thing> excludes =
null,
bool tryRefuel =
true)
1322 TryRefuel(FuelCost * num - owner.
c_charges, excludes);
1324 return owner.c_charges >= FuelCost * num;
1329 return GetFuelValue(s) > 0;
1334 return GetFuelValue(t) > 0;
1343 return GetFuelValue(t.
id);
1350 if (
id ==
"battery")
1384 if (FindFuel(refuel:
false))
1386 FindFuel(refuel:
true);
1388 bool FindFuel(
bool refuel)
1394 if (IsFuel(t) && t.tier == 0 && (excludes ==
null || !excludes.Contains(t)))
1403 int num2 = Mathf.Min(
item.Num, Mathf.CeilToInt((
float)num / (float)GetFuelValue(
item)));
1404 num -= GetFuelValue(
item) * num2;
1407 Refuel(
item.Split(num2));
1440 t.SetActive(enable:
true);
1445 t.SetActive(enable:
true);
1450 t.SetActive(owner.
Num > 1);
1461 int rawDeadLine = 0;
1475 if (remainingHours > 0)
1477 return "nextRestock".lang(lang.lang(),
Date.
GetText(remainingHours) ??
"");
1489 return Emo2.restock;
1497 return Emo2.blessing;
1499 return Emo2.restock;
1518 owner.isRestocking =
true;
1534 if (c_copyContainer ==
null)
1546 thing3.isStolen =
false;
1547 thing3.isCopy =
true;
1548 thing3.c_priceFix = 0;
1558 num4 = (1000 + owner.c_invest * 100) / (thing3.GetPrice(
CurrencyType.Money, sell:
false,
PriceType.CopyShop) + 50);
1559 int[] array =
new int[3] { 704, 703, 702 };
1560 foreach (
int ele
in array)
1562 if (thing3.HasElement(ele))
1573 if (num4 > 1 && thing3.trait.CanStack)
1575 thing3.SetNum(num4);
1588 string id2 = owner.
id;
1589 if (!(id2 ==
"mogu"))
1591 if (!(id2 ==
"felmera"))
1610 Add(
"license_illumination", 1, 0);
1611 Add(
"license_void", 1, 0);
1612 Add(
"license_adv", 1, 0);
1616 for (
int num7 = 0; num7 < 30; num7++)
1629 for (
int num8 = 0; num8 <
EClass.
rnd(3) + 1; num8++)
1633 for (
int num9 = 0; num9 <
EClass.
rnd(3) + 1; num9++)
1640 Add(
"board_map", 1, 0);
1641 Add(
"board_build", 1, 0);
1642 Add(
"book_resident", 1, 0);
1656 Add(
"board_home", 1, 0);
1657 Add(
"board_resident", 1, 0);
1662 Add(
"board_expedition", 1, 0);
1663 Add(
"mailpost", 1, 0);
1664 Add(
"record", 1, 0);
1667 Add(
"wagon1", 1, 0);
1668 Add(
"wagon_big", 1, 0);
1669 Add(
"wagon_big2", 1, 0);
1670 Add(
"wagon_big3", 1, 0);
1671 Add(
"wagon_big4", 1, 0);
1672 Add(
"wagon_big5", 1, 0);
1673 Add(
"teleporter", 1, 0);
1674 Add(
"teleporter2", 1, 0);
1675 Add(
"recharger", 1, 0);
1676 Add(
"machine_gene2", 1, 0);
1693 Add(
"drawing_paper", 10, 0);
1694 Add(
"drawing_paper2", 10, 0);
1695 Add(
"stethoscope", 1, 0);
1696 Add(
"whip_love", 1, 0);
1697 Add(
"whip_interest", 1, 0);
1698 Add(
"syringe_blood", 20, 0);
1701 Add(
"chest_tax", 1, 0);
1707 Add(
"flyer", 1, 0).SetNum(99);
1712 bool num5 = owner.id ==
"big_sister";
1716 Add(
"littleball", 10, 0);
1727 for (
int m = 0; m < 20; m++)
1737 for (
int n = 0; n < 10; n++)
1745 for (
int num6 = 0; num6 < 30; num6++)
1751 Add(
"candle9", 1, -1);
1752 Add(
"candle9", 1, -1);
1753 Add(
"candle9", 1, -1);
1754 Add(
"candle8", 1, 0);
1755 Add(
"candle8b", 1, 0);
1756 Add(
"candle8c", 1, 0);
1763 Add(
"chest_tax", 1, 0);
1765 Add(
"monsterball", 1, 0).SetNum(3).SetLv(10);
1768 Add(
"pillow_ehekatl", 1, 0);
1769 Add(
"grave_dagger1", 1, 0);
1770 Add(
"grave_dagger2", 1, 0);
1785 for (
int k = 0; k < 5; k++)
1789 thing2.c_priceFix = 1000;
1795 NoRestockId(
"sword_dragon");
1796 Add(
"sword_dragon", 1, 0).SetReplica(on:
true);
1797 NoRestockId(
"point_stick");
1798 Add(
"point_stick", 1, 0).SetReplica(on:
true);
1799 NoRestockId(
"blunt_bonehammer");
1800 Add(
"blunt_bonehammer", 1, 0).SetReplica(on:
true);
1801 NoRestockId(
"pole_gunlance");
1802 Add(
"pole_gunlance", 1, 0).SetReplica(on:
true);
1803 NoRestockId(
"sword_muramasa");
1804 Add(
"sword_muramasa", 1, 0).SetReplica(on:
true);
1805 NoRestockId(
"sword_forgetmenot");
1806 Add(
"sword_forgetmenot", 1, 0).SetReplica(on:
true);
1807 NoRestockId(
"dagger_fish");
1808 Add(
"dagger_fish", 1, 0).SetReplica(on:
true);
1809 NoRestockId(
"sword_zephir");
1810 Add(
"sword_zephir", 1, 0).SetReplica(on:
true);
1811 Add(
"ribbon", 1, 0);
1812 Add(
"helm_sage", 1, 0);
1813 Add(
"diary_sister", 1, 0);
1814 Add(
"diary_catsister", 1, 0);
1815 Add(
"diary_lady", 1, 0);
1816 Add(
"1165", 1, 0).SetNum(5);
1818 Add(
"1282", 1, 0).SetNum(5);
1819 Add(
"monsterball", 1, 0).SetNum(3).SetLv(20);
1820 Add(
"monsterball", 1, 0).SetNum(3).SetLv(40);
1821 Add(
"bill_tax", 1, 0).c_bill = 1;
1822 Add(
"bill_tax", 1, 0).c_bill = 1;
1823 Add(
"bill_tax", 1, 0).c_bill = 1;
1825 Add(
"container_magic", 1, 0);
1826 Add(
"container_magic", 1, 0).ChangeMaterial(
"iron").idSkin = 1;
1827 Add(
"container_magic", 1, 0).ChangeMaterial(
"bamboo").idSkin = 2;
1828 Add(
"container_magic", 1, 0).ChangeMaterial(
"feywood").idSkin = 3;
1829 Add(
"wrench_tent_elec", 1, 0);
1830 Add(
"wrench_tent_soil", 1, 0);
1831 Add(
"wrench_tent_seabed", 1, 0);
1832 Add(
"wrench_bed", 1, 0).SetNum(20);
1833 Add(
"wrench_storage", 1, 0).SetNum(10);
1834 Add(
"wrench_fridge", 1, 0).SetNum(1);
1835 Add(
"wrench_extend_v", 1, 0).SetNum(2);
1836 Add(
"wrench_extend_h", 1, 0).SetNum(2);
1841 float num = (float)(3 + Mathf.Min(ShopLv / 5, 10)) + Mathf.Sqrt(ShopLv);
1853 num = Mathf.Min(num, num2);
1854 for (
int j = 0; (float)j < num; j++)
1856 Thing thing = CreateStock();
1859 bool tryStack =
true;
1864 t.AddThing(thing, tryStack);
1877 for (
int l = 0; l < recipeKey.Length; l++)
1879 if (recipeKey[l] ==
ShopType.ToString())
1896 for (
int num12 = 1; num12 <= 12; num12++)
1904 int num13 = (EClass.debug.enable ? 20 : (EClass._zone.development / 10));
1907 Add(
"syringe_gene", num13, 0);
1908 Add(
"diary_little", 1, 0);
1912 Add(
"syringe_heaven", num13 / 5, 0);
1915 Add(
"medal", 10, 0);
1916 Add(
"ticket_fortune", 10, 0);
1920 Add(
"tool_talisman", 1, 0);
1931 Add(
"ecomark", 5, 0);
1932 Add(
"whip_egg", 1, 0);
1933 Add(
"helm_chef", 1, 0);
1934 Add(
"hammer_strip", 1, 0);
1935 Add(
"brush_strip", 1, 0);
1937 Add(
"plat", 100, 0);
1942 Add(
"bullet", 1, 0).SetNum(300 +
EClass.
rnd(100)).ChangeMaterial(
"iron");
1943 Add(
"bullet_energy", 1, 0).SetNum(100 +
EClass.
rnd(100)).ChangeMaterial(
"iron");
1957 Add(
"holyFeather", 1, 0);
1966 Add(
"ticket_massage", 1, 0);
1967 Add(
"ticket_armpillow", 1, 0);
1968 Add(
"ticket_champagne", 1, 0);
1970 for (
int num10 = 0; num10 < 3; num10++)
1978 TreasureType.Map =>
"chest_treasure",
1979 TreasureType.BossNefia =>
"chest_boss",
1982 thing6.c_lockedHard =
true;
1983 thing6.c_lockLv = num11;
1984 thing6.c_priceAdd = 2000 + num11 * 250 * ((treasureType ==
TreasureType.RandomChest) ? 1 : 5);
1985 thing6.c_revealLock =
true;
1998 for (
int num14 = 0; num14 < (EClass.debug.enable ? 3 : 3); num14++)
2040 Add(
"lockpick", 1, 0);
2043 Add(
"lockpick", 1, 0);
2049 thing11.c_idBacker = 0;
2053 if (thing11.
Num == 1)
2061 if (thing11.
IsFood && owner.
id ==
"rodwyn")
2069 thing11.noSell =
true;
2073 thing11.isStolen =
true;
2077 thing11.c_IDTState = 0;
2081 thing11.c_priceFix = -70;
2085 thing11.c_IDTState = 5;
2093 if (t.things.Count <= t.things.GridSize)
2097 int num15 = t.things.width * 10;
2098 if (t.things.Count > num15)
2100 int num16 = t.things.Count - num15;
2101 for (
int num17 = 0; num17 < num16; num17++)
2103 t.things.LastItem().Destroy();
2106 t.things.ChangeSize(t.things.width, Mathf.Min(t.things.Count / t.things.width + 1, 10));
2107 Thing Add(
string id,
int a,
int idSkin)
2111 thing8.idSkin = ((idSkin == -1) ?
EClass.
rnd(thing8.
source.skins.Length + 1) : idSkin);
2114 void AddAdvWeek(
int i)
2117 thing7.c_priceFix = -90;
2124 void NoRestock(
Thing _t)
2127 if (hashSet ==
null)
2129 hashSet =
new HashSet<string>();
2139 void NoRestockId(
string _id)
2156 return FromFilter(
"shop_generalExotic");
2160 return Create(
"panty");
2164 return Create(
"234");
2166 return FromFilter(
"shop_drink");
2168 return FromFilter(
"shop_furniture");
2170 return FromFilter(
"shop_book");
2172 return FromFilter(
"shop_magic");
2184 Thing thing3 =
null;
2185 for (
int i = 0; i < 1000; i++)
2187 thing3 = FromFilter(
"shop_healer");
2190 if (!(traitScroll.source.aliasParent !=
"WIL") && !(traitScroll.source.categorySub ==
"attack"))
2197 if (!(traitPotionRandom.source.aliasParent !=
"WIL") && !(traitPotionRandom.source.categorySub ==
"attack"))
2203 else if (thing3.
trait is
TraitRodRandom { source: not null } traitRodRandom && !(traitRodRandom.source.aliasParent !=
"WIL") && !(traitRodRandom.source.categorySub ==
"attack"))
2218 return Create(
"milk");
2222 return Create(
"book_plan");
2224 return FromFilter(
"shop_weapon");
2228 return Create(
"mod_ranged");
2230 return FromFilter(
"shop_gun");
2248 return FromFilter(
"shop_blackmarket");
2251 return FromFilter(
"shop_drink");
2253 return FromFilter(
"shop_booze");
2255 return FromFilter(
"shop_fruit");
2259 return Create(
"bait");
2263 return Create(
"fishingRod");
2265 return FromFilter(
"shop_fish");
2269 return Create(
"seasoning");
2271 return FromFilter(
"shop_meat");
2275 return Create(
"dough");
2277 return FromFilter(
"shop_bread");
2281 return Create(
"dough");
2283 return FromFilter(
"shop_sweet");
2287 return Create(
"seasoning");
2289 return Create(
"693");
2293 return Create(
"seasoning");
2295 return FromFilter(
"shop_food");
2297 return FromFilter(
"shop_drug");
2301 if (loytelMartLv >= 1)
2305 return Create(
"monsterball").SetLv(40 +
EClass.
rnd(ShopLv)).Thing;
2321 return Create(
"1165");
2327 switch ((from _s in row.
thing.ToCharArray()
2329 select _s).RandomItem())
2341 return FromFilter(
"shop_junk");
2345 return FromFilter(
"shop_junk");
2347 return FromFilter(
"shop_souvenir");
2353 return Create(
"firework_launcher");
2355 return Create(
"firework");
2359 if (IsFestival(
"olvina"))
2361 return Create(
new string[4] {
"1125",
"1126",
"pillow_truth",
"1230" }.RandomItem());
2363 if (IsFestival(
"yowyn"))
2365 return Create(
new string[3] {
"hat_mushroom",
"hat_witch",
"hat_kumiromi" }.RandomItem());
2367 if (IsFestival(
"noyel"))
2369 return Create(
new string[9] {
"1127",
"1128",
"xmas_sled",
"xmas_bigbag",
"xmas_bigbox",
"xmas_blackcat",
"xmas_blackcat",
"xmas_jure",
"xmas_crown" }.RandomItem());
2374 return Create(
new string[4] {
"1081",
"1082",
"1083",
"1084" }.RandomItem());
2378 return FromFilter(
"shop_junk");
2380 return FromFilter(
"shop_souvenir");
2384 if (IsFestival(
"kapul"))
2386 return Create(
new string[6] {
"999",
"1000",
"1001",
"1002",
"1003",
"1004" }.RandomItem());
2388 if (IsFestival(
"yowyn"))
2390 return Create(
new string[2] {
"1072",
"1073" }.RandomItem());
2392 if (IsFestival(
"noyel"))
2394 return Create(
new string[1] {
"1069" }.RandomItem());
2396 if (IsFestival(
"olvina"))
2398 return Create(
new string[2] {
"1070",
"1071" }.RandomItem());
2403 return Create(
new string[4] {
"953",
"954",
"955",
"956" }.RandomItem());
2405 return FromFilter(
"shop_lamp");
2409 return Create(
"lockpick");
2411 return FromFilter(
"shop_general");
2413 Thing Create(
string s)
2417 Thing FromFilter(
string s)
2421 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)
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)
Card MakeRefFrom(string id)
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 Thing MakeLoveLunch(Chara c)
static void MakeDish(Thing food, int lv, Chara crafter=null, int seed=-1)
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()
bool IsCompleted(string id)
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 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 CreateRod(int ele, int charge=-1)
static Thing Create(string id, int idMat=-1, int lv=-1)
virtual bool IsBlockSight
static Thing MakeRandomSeed(bool enc=false)
static void LevelSeed(Thing t, SourceObj.Row obj, int num)
static Thing MakeSeed(string id, PlantData plant=null)
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 IgnoreOnSteppedWhenMoving
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)
void OnBarter(bool reroll=false)
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 CanChangeAffinity
virtual bool IsOnlyUsableByPc
virtual bool RemoveGlobalOnBanish
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)