2using System.Collections.Generic;
149 public virtual bool CanStack => owner.category.maxStack > 1;
221 return owner.c_lockLv == 0;
305 return owner.rarity <
Rarity.Artifact;
485 return "switch_on_electricity";
499 return "torch_unlit";
501 return "switch_off_electricity";
703 Vector3 vector2 =
item.Position();
734 for (
int i = 0; i < 50; i++)
736 Point point = list.RandomItem();
737 if (point.
IsValid && (func ==
null || func(point)) && (accessChara ==
null || accessChara.HasAccess(point)))
757 Room room = center.cell.room;
778 if (!p.cell.HasBlock || p.cell.HasFence)
780 listRadiusPoints.Add(p.Copy());
785 listRadiusPoints.Add(p.Copy());
848 string @ref = row.GetTextArray(
"name2")[1];
849 string ref2 = row.GetTextArray(
"name2")[0];
852 cc.
Talk(
"offer", @ref, ref2);
874 cc.depression.Mod(100);
888 int num = ((thing ==
null) ? (cc.
Evalue(280) / 2 + 2) : (cc.
Evalue(280) + 10));
893 num2 = num / 4 * 3 - 1;
895 if (num <= num2 && cc.
IsPC)
898 cc.
Say(
"openLockFail2");
902 if (thing !=
null && !flag)
909 cc.
Say(
"lockpick_success", cc, owner);
910 int num3 = 100 + num2 * 10;
919 owner.c_lockedHard =
false;
920 owner.c_priceAdd = 0;
926 owner.isLostProperty =
false;
932 cc.
Say(
"openLockFail");
934 cc.
ModExp(280, (thing !=
null) ? 50 : 30);
935 if ((thing ==
null) | (
EClass.
rnd(2) == 0))
1005 if (c.
held != owner)
1024 if (CanUse(owner.
Chara))
1078 if (Electricity != 0)
1080 EClass._zone.dirtyElectricity =
true;
1081 if (Electricity > 0)
1083 EClass._zone.electricity += Electricity;
1093 OnInstall(byPlayer);
1098 if (Electricity != 0)
1102 Toggle(on:
false, silent:
true);
1104 EClass._zone.dirtyElectricity =
true;
1105 if (Electricity > 0)
1107 EClass._zone.electricity -= Electricity;
1130 Toggle(on:
false, silent:
true);
1132 else if (AutoToggle)
1140 Toggle(on, silent:
true);
1144 public virtual void Toggle(
bool on,
bool silent =
false)
1146 if (owner.
isOn == on)
1150 if (Electricity < 0)
1160 owner.
Say(
"notEnoughElectricity", owner);
1162 owner.
PlaySound(
"electricity_insufficient");
1166 EClass._zone.electricity += Electricity;
1170 EClass._zone.electricity -= Electricity;
1174 PlayToggleEffect(silent);
1181 bool isOn = owner.
isOn;
1194 owner.
Say(isOn ?
"close" :
"open",
EClass.
pc, owner);
1195 owner.
PlaySound(
"Material/leather_drop");
1207 owner.
Say(flag ?
"toggle_fire" :
"toggle_ele",
EClass.
pc, owner);
1239 Toggle(!owner.
isOn);
1246 Toggle(!owner.
isOn);
1261 p.
TrySetAct(flag ?
"ActExtinguishTorch" :
"ActToggleOff", delegate
1270 p.
TrySetAct(flag ?
"ActTorch" :
"ActToggleOn", delegate
1299 public bool IsFuelEnough(
int num = 1, List<Thing> excludes =
null,
bool tryRefuel =
true)
1311 TryRefuel(FuelCost * num - owner.
c_charges, excludes);
1313 return owner.c_charges >= FuelCost * num;
1318 return GetFuelValue(s) > 0;
1323 return GetFuelValue(t) > 0;
1332 return GetFuelValue(t.
id);
1339 if (
id ==
"battery")
1373 if (FindFuel(refuel:
false))
1375 FindFuel(refuel:
true);
1377 bool FindFuel(
bool refuel)
1383 if (IsFuel(t) && t.tier == 0 && (excludes ==
null || !excludes.Contains(t)))
1392 int num2 = Mathf.Min(
item.Num, Mathf.CeilToInt((
float)num / (float)GetFuelValue(
item)));
1393 num -= GetFuelValue(
item) * num2;
1396 Refuel(
item.Split(num2));
1429 t.SetActive(enable:
true);
1434 t.SetActive(enable:
true);
1439 t.SetActive(owner.
Num > 1);
1450 int rawDeadLine = 0;
1464 if (remainingHours > 0)
1466 return "nextRestock".lang(lang.lang(),
Date.
GetText(remainingHours) ??
"");
1478 return Emo2.restock;
1486 return Emo2.blessing;
1488 return Emo2.restock;
1507 owner.isRestocking =
true;
1523 if (c_copyContainer ==
null)
1535 thing4.isStolen =
false;
1536 thing4.isCopy =
true;
1537 thing4.c_priceFix = 0;
1547 num4 = (1000 + owner.c_invest * 100) / (thing4.GetPrice(
CurrencyType.Money, sell:
false,
PriceType.CopyShop) + 50);
1548 int[] array =
new int[4] { 701, 704, 703, 702 };
1549 foreach (
int ele
in array)
1551 if (thing4.HasElement(ele))
1562 if (num4 > 1 && thing4.trait.CanStack)
1564 thing4.SetNum(num4);
1577 string id2 = owner.
id;
1578 if (!(id2 ==
"mogu"))
1580 if (!(id2 ==
"felmera"))
1598 Add(
"license_illumination", 1, 0);
1599 Add(
"license_void", 1, 0);
1600 Add(
"license_adv", 1, 0);
1604 for (
int l = 0; l < 30; l++)
1617 for (
int n = 0; n <
EClass.
rnd(3) + 1; n++)
1621 for (
int num5 = 0; num5 <
EClass.
rnd(3) + 1; num5++)
1628 Add(
"board_map", 1, 0);
1629 Add(
"board_build", 1, 0);
1630 Add(
"book_resident", 1, 0);
1644 Add(
"board_home", 1, 0);
1645 Add(
"board_resident", 1, 0);
1650 Add(
"board_expedition", 1, 0);
1651 Add(
"mailpost", 1, 0);
1652 Add(
"record", 1, 0);
1655 Add(
"wagon1", 1, 0);
1656 Add(
"wagon_big", 1, 0);
1657 Add(
"wagon_big2", 1, 0);
1658 Add(
"wagon_big3", 1, 0);
1659 Add(
"wagon_big4", 1, 0);
1660 Add(
"wagon_big5", 1, 0);
1661 Add(
"teleporter", 1, 0);
1662 Add(
"teleporter2", 1, 0);
1663 Add(
"recharger", 1, 0);
1664 Add(
"machine_gene2", 1, 0);
1681 Add(
"drawing_paper", 10, 0);
1682 Add(
"drawing_paper2", 10, 0);
1683 Add(
"stethoscope", 1, 0);
1684 Add(
"whip_love", 1, 0);
1685 Add(
"whip_interest", 1, 0);
1690 Add(
"flyer", 1, 0).SetNum(99);
1695 bool num2 = owner.id ==
"big_sister";
1699 Add(
"littleball", 10, 0);
1702 for (
int k = 0; k < 10; k++)
1712 Add(
"chest_tax", 1, 0);
1714 Add(
"monsterball", 1, 0).SetNum(3).SetLv(10);
1717 Add(
"pillow_ehekatl", 1, 0);
1718 Add(
"grave_dagger1", 1, 0);
1719 Add(
"grave_dagger2", 1, 0);
1730 for (
int j = 0; j < 5; j++)
1734 thing2.c_priceFix = 1000;
1741 Add(
"sword_dragon", 1, 0).SetReplica(on:
true);
1743 Add(
"axe_destruction", 1, 0).SetReplica(on:
true);
1745 Add(
"blunt_bonehammer", 1, 0).SetReplica(on:
true);
1747 Add(
"pole_gunlance", 1, 0).SetReplica(on:
true);
1749 Add(
"sword_muramasa", 1, 0).SetReplica(on:
true);
1751 Add(
"sword_forgetmenot", 1, 0).SetReplica(on:
true);
1753 Add(
"dagger_fish", 1, 0).SetReplica(on:
true);
1755 Add(
"sword_zephir", 1, 0).SetReplica(on:
true);
1756 Add(
"ribbon", 1, 0);
1757 Add(
"helm_sage", 1, 0);
1758 Add(
"diary_sister", 1, 0);
1759 Add(
"diary_catsister", 1, 0);
1760 Add(
"diary_lady", 1, 0);
1761 Add(
"1165", 1, 0).SetNum(5);
1763 Add(
"monsterball", 1, 0).SetNum(3).SetLv(20);
1764 Add(
"monsterball", 1, 0).SetNum(3).SetLv(40);
1765 Add(
"bill_tax", 1, 0).c_bill = 1;
1766 Add(
"bill_tax", 1, 0).c_bill = 1;
1767 Add(
"bill_tax", 1, 0).c_bill = 1;
1768 Add(
"container_magic", 1, 0);
1769 Add(
"container_magic", 1, 0).ChangeMaterial(
"iron").idSkin = 1;
1770 Add(
"container_magic", 1, 0).ChangeMaterial(
"bamboo").idSkin = 2;
1771 Add(
"container_magic", 1, 0).ChangeMaterial(
"feywood").idSkin = 3;
1772 Add(
"wrench_tent_elec", 1, 0);
1773 Add(
"wrench_tent_soil", 1, 0);
1774 Add(
"wrench_bed", 1, 0).SetNum(20);
1775 Add(
"wrench_storage", 1, 0).SetNum(10);
1776 Add(
"wrench_fridge", 1, 0).SetNum(1);
1777 Add(
"wrench_extend_v", 1, 0).SetNum(2);
1778 Add(
"wrench_extend_h", 1, 0).SetNum(2);
1782 float num = (float)(3 + Mathf.Min(ShopLv / 5, 10)) + Mathf.Sqrt(ShopLv);
1784 num = Mathf.Min(num, 300f);
1785 for (
int i = 0; (float)i < num; i++)
1787 Thing thing = CreateStock();
1803 for (
int m = 0; m < recipeKey.Length; m++)
1805 if (recipeKey[m] ==
ShopType.ToString())
1816 int num8 = (EClass.debug.enable ? 20 : (EClass._zone.development / 10));
1819 Add(
"syringe_gene", num8, 0);
1820 Add(
"diary_little", 1, 0);
1824 Add(
"syringe_heaven", num8 / 5, 0);
1829 Add(
"tool_talisman", 1, 0);
1840 Add(
"ecomark", 5, 0);
1842 Add(
"plat", 100, 0);
1846 Add(
"bullet", 1, 0).SetNum(300 +
EClass.
rnd(100)).ChangeMaterial(
"iron");
1847 Add(
"bullet_energy", 1, 0).SetNum(100 +
EClass.
rnd(100)).ChangeMaterial(
"iron");
1861 Add(
"holyFeather", 1, 0);
1870 Add(
"ticket_massage", 1, 0);
1871 Add(
"ticket_armpillow", 1, 0);
1872 Add(
"ticket_champagne", 1, 0);
1874 for (
int num6 = 0; num6 < 3; num6++)
1882 TreasureType.Map =>
"chest_treasure",
1883 TreasureType.BossNefia =>
"chest_boss",
1886 thing5.c_lockedHard =
true;
1887 thing5.c_lockLv = num7;
1888 thing5.c_priceAdd = 2000 + num7 * 250 * ((treasureType ==
TreasureType.RandomChest) ? 1 : 5);
1889 thing5.c_revealLock =
true;
1900 for (
int num9 = 0; num9 < (EClass.debug.enable ? 3 : 3); num9++)
1933 Add(
"lockpick", 1, 0);
1936 Add(
"lockpick", 1, 0);
1942 thing9.c_idBacker = 0;
1946 if (thing9.
Num == 1)
1954 if (thing9.
IsFood && owner.
id ==
"rodwyn")
1962 thing9.noSell =
true;
1966 thing9.isStolen =
true;
1970 thing9.c_IDTState = 0;
1974 thing9.c_priceFix = -70;
1978 thing9.c_IDTState = 5;
1986 if (t.things.Count <= t.things.GridSize)
1990 int num10 = t.things.width * 10;
1991 if (t.things.Count > num10)
1993 int num11 = t.things.Count - num10;
1994 for (
int num12 = 0; num12 < num11; num12++)
1996 t.things.LastItem().Destroy();
1999 t.things.ChangeSize(t.things.width, Mathf.Min(t.things.Count / t.things.width + 1, 10));
2000 Thing Add(
string id,
int a,
int idSkin)
2004 thing6.idSkin = idSkin;
2011 void NoRestock(
Thing _t)
2014 if (hashSet ==
null)
2016 hashSet =
new HashSet<string>();
2039 return FromFilter(
"shop_generalExotic");
2043 return Create(
"panty");
2047 return Create(
"234");
2049 return FromFilter(
"shop_drink");
2051 return FromFilter(
"shop_furniture");
2053 return FromFilter(
"shop_book");
2055 return FromFilter(
"shop_magic");
2067 Thing thing2 =
null;
2068 for (
int i = 0; i < 1000; i++)
2070 thing2 = FromFilter(
"shop_healer");
2073 if (!(traitScroll.source.aliasParent !=
"WIL") && !(traitScroll.source.categorySub ==
"attack"))
2080 if (!(traitPotionRandom.source.aliasParent !=
"WIL") && !(traitPotionRandom.source.categorySub ==
"attack"))
2086 else if (thing2.
trait is
TraitRodRandom { source: not null } traitRodRandom && !(traitRodRandom.source.aliasParent !=
"WIL") && !(traitRodRandom.source.categorySub ==
"attack"))
2101 return Create(
"milk");
2105 return Create(
"book_plan");
2107 return FromFilter(
"shop_weapon");
2111 return Create(
"mod_ranged");
2113 return FromFilter(
"shop_gun");
2131 return FromFilter(
"shop_blackmarket");
2134 return FromFilter(
"shop_drink");
2136 return FromFilter(
"shop_booze");
2138 return FromFilter(
"shop_fruit");
2142 return Create(
"bait");
2146 return Create(
"fishingRod");
2148 return FromFilter(
"shop_fish");
2152 return Create(
"seasoning");
2154 return FromFilter(
"shop_meat");
2158 return Create(
"dough");
2160 return FromFilter(
"shop_bread");
2164 return Create(
"dough");
2166 return FromFilter(
"shop_sweet");
2170 return Create(
"seasoning");
2172 return FromFilter(
"shop_food");
2174 return FromFilter(
"shop_drug");
2178 if (loytelMartLv >= 1)
2182 return Create(
"monsterball").SetLv(40 +
EClass.
rnd(ShopLv)).Thing;
2198 return Create(
"1165");
2204 switch ((from _s in row.
thing.ToCharArray()
2206 select _s).RandomItem())
2218 return FromFilter(
"shop_junk");
2221 return FromFilter(
"shop_junk");
2223 return FromFilter(
"shop_souvenir");
2229 return Create(
"firework_launcher");
2231 return Create(
"firework");
2235 if (IsFestival(
"olvina"))
2237 return Create(
new string[4] {
"1125",
"1126",
"pillow_truth",
"1230" }.RandomItem());
2239 if (IsFestival(
"yowyn"))
2241 return Create(
new string[3] {
"hat_mushroom",
"hat_witch",
"hat_kumiromi" }.RandomItem());
2243 if (IsFestival(
"noyel"))
2245 return Create(
new string[9] {
"1127",
"1128",
"xmas_sled",
"xmas_bigbag",
"xmas_bigbox",
"xmas_blackcat",
"xmas_blackcat",
"xmas_jure",
"xmas_crown" }.RandomItem());
2250 return Create(
new string[4] {
"1081",
"1082",
"1083",
"1084" }.RandomItem());
2254 return FromFilter(
"shop_junk");
2256 return FromFilter(
"shop_souvenir");
2260 if (IsFestival(
"kapul"))
2262 return Create(
new string[6] {
"999",
"1000",
"1001",
"1002",
"1003",
"1004" }.RandomItem());
2264 if (IsFestival(
"yowyn"))
2266 return Create(
new string[2] {
"1072",
"1073" }.RandomItem());
2268 if (IsFestival(
"noyel"))
2270 return Create(
new string[1] {
"1069" }.RandomItem());
2272 if (IsFestival(
"olvina"))
2274 return Create(
new string[2] {
"1070",
"1071" }.RandomItem());
2279 return Create(
new string[4] {
"953",
"954",
"955",
"956" }.RandomItem());
2281 return FromFilter(
"shop_lamp");
2285 return Create(
"lockpick");
2287 return FromFilter(
"shop_general");
2289 Thing Create(
string s)
2293 Thing FromFilter(
string s)
2297 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)
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)
Thing TryMakeRandomItem(int lv=-1)
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 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 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 OnCrafted(Recipe recipe)
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 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
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)