Elin Decompiled Documentation EA 23.250 Nightly Patch 1
Loading...
Searching...
No Matches
Trait Class Reference
Inheritance diagram for Trait:
EClass TraitASMR TraitAltar TraitAltarChaos TraitBall TraitBaseContainer TraitBath TraitBed TraitBill TraitBlanket TraitBoard TraitBoat TraitCanvas TraitChair TraitChara TraitClock TraitComputer TraitCoreDefense TraitCoreZone TraitCrafter TraitCurrency TraitCurtain TraitDice TraitDoor TraitDoorBell TraitDoorBoat TraitDoorFrame TraitDreamBug TraitDresser TraitDrink TraitDye TraitEQ TraitEcoMark TraitEditorSign TraitEternalMonument TraitFakeBlock TraitFertilizer TraitFigure TraitFlyer TraitFood TraitFortuneBall TraitGacha TraitGene TraitGenerator TraitGrave TraitHarvest TraitHoard TraitIllumination TraitIncinerator TraitItem TraitLetterOfWill TraitLever TraitLockpick TraitMiniPool TraitMirror TraitMonsterBall TraitMoongate TraitNewZone TraitNote TraitPaint TraitParasol TraitPetHouse TraitPillow TraitPlamo TraitPunishBall TraitResourceMain TraitRoadSign TraitSack TraitSalesTag TraitScroll TraitSeed TraitShackle TraitShowcase TraitSnow TraitSpot TraitSpotExit TraitSpotSearch TraitSpotSpawn TraitStairsCover TraitSwing TraitSwitch TraitThrown TraitTicketChampagne.TraitSyringe TraitTicketFurniture TraitTicketMassage TraitTile TraitTool TraitTorch TraitTrainingDummy TraitTravel TraitTreeEther TraitVoidgate TraitWaystone TraitWell TraitWindow TraitWrench

Public Types

enum  TileMode {
  Default , Door , Illumination , DefaultNoAnime ,
  SignalAnime , FakeBlock
}
 
enum  CopyShopType { None , Item , Spellbook }
 

Public Member Functions

string GetParam (int i, string def=null)
 
int GetParamInt (int i, int def)
 
virtual bool Contains (RecipeSource r)
 
virtual int GetValue ()
 
virtual bool CanStackTo (Thing to)
 
virtual string GetHoverText ()
 
virtual Action GetHealAction (Chara c)
 
virtual bool CanBlend (Thing t)
 
virtual void OnBlend (Thing t, Chara c)
 
virtual int GetActDuration (Chara c)
 
virtual SourceElement.Row GetRefElement ()
 
virtual Sprite GetRefSprite ()
 
virtual void OnRenderExtra (RenderParam p)
 
virtual Emo2 GetHeldEmo (Chara c)
 
virtual void SetOwner (Card _owner)
 
virtual bool IdleUse (Chara c, int dist)
 
virtual void OnSetOwner ()
 
virtual void OnImportMap ()
 
virtual void SetParams (params string[] s)
 
virtual void OnCrafted (Recipe recipe, List< Thing > ings)
 
virtual void OnCreate (int lv)
 
virtual void OnEquip (Chara c, bool onSetOwner)
 
virtual void OnUnequip (Chara c)
 
virtual void OnChangePlaceState (PlaceState state)
 
virtual void OnAddedToZone ()
 
virtual void OnRemovedFromZone ()
 
virtual void OnSimulateHour (VirtualDate date)
 
virtual string GetName ()
 
virtual void SetName (ref string s)
 
virtual void OnRenderTile (Point point, HitResult result, int dir)
 
virtual int CompareTo (Card b)
 
virtual bool CanBuiltAt (Point p)
 
virtual void Update ()
 
Point GetPoint ()
 
Point GetRandomPoint (Func< Point, bool > func=null, Chara accessChara=null)
 
virtual List< PointListPoints (Point center=null, bool onlyPassable=true)
 
virtual Recipe GetRecipe ()
 
virtual Recipe GetBuildModeRecipe ()
 
virtual bool CanCook (Card c)
 
void CookProgress ()
 
virtual bool CanOffer (Card tg)
 
void OfferProcess (Chara cc)
 
void Offer (Chara cc)
 
virtual bool TryProgress (AIProgress p)
 
virtual LockOpenState TryOpenLock (Chara cc, bool msgFail=true)
 
virtual void WriteNote (UINote n, bool identified)
 
int GetSortVal (UIList.SortMode m)
 
virtual HotItem GetHotItem ()
 
virtual bool CanRead (Chara c)
 
virtual void OnRead (Chara c)
 
virtual bool CanEat (Chara c)
 
virtual void OnEat (Chara c)
 
virtual bool CanDrink (Chara c)
 
virtual void OnDrink (Chara c)
 
virtual void OnThrowGround (Chara c, Point p)
 
virtual bool CanUse (Chara c)
 
virtual bool CanUse (Chara c, Card tg)
 
virtual bool CanUse (Chara c, Point p)
 
virtual bool OnUse (Chara c)
 
virtual bool OnUse (Chara c, Card tg)
 
virtual bool OnUse (Chara c, Point p)
 
virtual void TrySetAct (ActPlan p)
 
virtual void TrySetHeldAct (ActPlan p)
 
virtual void OnHeld ()
 
virtual void OnTickHeld ()
 
virtual void OnSetCurrentItem ()
 
virtual void OnUnsetCurrentItem ()
 
virtual bool OnChildDecay (Card c, bool firstDecay)
 
virtual bool CanChildDecay (Card c)
 
virtual void OnSetCardGrid (ButtonGrid b)
 
virtual void OnStepped (Chara c)
 
virtual void OnSteppedOut (Chara c)
 
virtual void OnOpenDoor (Chara c)
 
void Install (bool byPlayer)
 
void Uninstall ()
 
virtual void OnInstall (bool byPlayer)
 
virtual void OnUninstall ()
 
virtual void TryToggle ()
 
virtual void Toggle (bool on, bool silent=false)
 
virtual void PlayToggleEffect (bool silent)
 
virtual void OnToggle ()
 
virtual void TrySetToggleAct (ActPlan p)
 
bool IsFuelEnough (int num=1, List< Thing > excludes=null, bool tryRefuel=true)
 
bool IsFuel (string s)
 
bool IsFuel (Thing t)
 
int GetFuelValue (Thing t)
 
int GetFuelValue (string id)
 
void Refuel (Thing t)
 
void TryRefuel (int dest, List< Thing > excludes)
 
virtual void OnEnterScreen ()
 
virtual void RefreshRenderer ()
 
virtual void SetMainText (UIText t, bool hotitem)
 
virtual bool CanCopy (Thing t)
 
string GetTextRestock (string lang, bool pet)
 
Emo2 GetRestockedIcon ()
 
void OnBarter (bool reroll=false)
 
Thing CreateStock ()
 

Public Attributes

Card owner
 

Static Public Attributes

static TraitSelfFactory SelfFactory = new TraitSelfFactory()
 
- Static Public Attributes inherited from EClass
static Core core
 

Static Protected Attributes

static List< PointlistRadiusPoints = new List<Point>()
 

Properties

string[] Params [get]
 
virtual byte WeightMod [get]
 
virtual int IdSkin [get]
 
virtual string Name [get]
 
virtual TileType tileType [get]
 
virtual RefCardName RefCardName [get]
 
virtual bool IsBlockPath [get]
 
virtual bool IsBlockSight [get]
 
virtual bool IsDoor [get]
 
virtual bool IsOpenSight [get]
 
virtual bool IsOpenPath [get]
 
virtual bool IsFloating [get]
 
virtual bool IsNoShop [get]
 
virtual bool IsGround [get]
 
virtual bool IsOnlyUsableByPc [get]
 
virtual bool InvertHeldSprite [get]
 
virtual bool IsChangeFloorHeight [get]
 
virtual bool ShouldRefreshTile [get]
 
virtual bool ShouldTryRefreshRoom [get]
 
virtual int InstallBottomPriority [get]
 
virtual bool CanHarvest [get]
 
virtual int radius [get]
 
virtual TraitRadiusType radiusType [get]
 
virtual bool CanUseRoomRadius [get]
 
virtual int GuidePriotiy [get]
 
virtual int OriginalElectricity [get]
 
virtual int Electricity [get]
 
virtual bool IgnoreLastStackHeight [get]
 
virtual int Decay [get]
 
virtual int DecaySpeed [get]
 
virtual int DecaySpeedChild [get]
 
virtual bool IsFridge [get]
 
virtual int DefaultStock [get]
 
virtual bool HoldAsDefaultInteraction [get]
 
virtual int CraftNum [get]
 
virtual bool ShowOrbit [get]
 
virtual bool HaveUpdate [get]
 
virtual bool IsSpot [get]
 
virtual bool IsFactory [get]
 
virtual bool CanAutofire [get]
 
virtual bool CanName [get]
 
virtual bool CanPutAway [get]
 
virtual bool CanChangeHeight [get]
 
virtual bool CanStack [get]
 
virtual bool CanCopyInBlueprint [get]
 
virtual bool CanBeAttacked [get]
 
virtual bool CanBeTeleported [get]
 
virtual bool CanExtendBuild [get]
 
virtual string langNote [get]
 
virtual string IDInvStyle [get]
 
virtual string IDActorEx [get]
 
virtual bool MaskOnBuild [get]
 
virtual bool ShowContextOnPick [get]
 
virtual bool IsThrowMainAction [get]
 
virtual bool LevelAsQuality [get]
 
virtual bool UseDummyTile [get]
 
virtual bool RequireFullStackCheck [get]
 
virtual bool DisableAutoCombat [get]
 
virtual InvGridSize InvGridSize [get]
 
virtual bool IsContainer [get]
 
virtual bool CanUseContent [get]
 
virtual bool CanSearchContent [get]
 
virtual bool CanOpenContainer [get]
 
virtual bool IsSpecialContainer [get]
 
virtual ContainerType ContainerType [get]
 
virtual ThrowType ThrowType [get]
 
virtual EffectDead EffectDead [get]
 
virtual bool IsHomeItem [get]
 
virtual bool IsAltar [get]
 
virtual bool IsRestSpot [get]
 
virtual bool CanBeMasked [get]
 
virtual bool IsLocalAct [get]
 
virtual bool IsBlendBase [get]
 
virtual bool CanBeOnlyBuiltInHome [get]
 
virtual bool CanBuildInTown [get]
 
virtual bool CanBeHeld [get]
 
virtual bool CanBeStolen [get]
 
virtual bool CanOnlyCarry [get]
 
virtual bool CanBeDestroyed [get]
 
virtual bool CanBeSmashedToDeath [get]
 
virtual bool CanBeHallucinated [get]
 
virtual bool CanBeDropped [get]
 
virtual string ReqHarvest [get]
 
virtual bool CanBeDisassembled [get]
 
virtual bool CanBeShipped [get]
 
virtual bool HasCharges [get]
 
virtual bool ShowCharges [get]
 
virtual bool ShowChildrenNumber [get]
 
virtual bool ShowAsTool [get]
 
virtual bool CanBeHeldAsFurniture [get]
 
virtual bool HideInAdv [get]
 
virtual bool NoHeldDir [get]
 
virtual bool AlwaysHideOnLowWall [get]
 
bool ExistsOnMap [get]
 
virtual bool RenderExtra [get]
 
virtual float DropChance [get]
 
virtual string IdNoRestock [get]
 
virtual int IdleUseChance [get]
 
virtual string RecipeCat [get]
 
virtual bool IsTool [get]
 
virtual string LangUse [get]
 
virtual bool IgnoreOnSteppedWhenMoving [get]
 
virtual bool IsOn [get]
 
virtual bool IsAnimeOn [get]
 
bool IsToggle [get]
 
virtual bool AutoToggle [get]
 
bool IsLighting [get]
 
virtual bool IsLightOn [get]
 
virtual bool IsNightOnlyLight [get]
 
virtual TileMode tileMode [get]
 
virtual bool UseAltTiles [get]
 
virtual bool UseLowblock [get]
 
virtual bool UseExtra [get]
 
virtual bool UseLightColor [get]
 
virtual ? Color ColorExtra [get]
 
virtual int MaxFuel [get]
 
virtual int FuelCost [get]
 
virtual bool ShowFuelWindow [get]
 
bool IsRequireFuel [get]
 
string IdToggleExtra [get]
 
virtual ToggleType ToggleType [get]
 
virtual string IdSoundToggleOn [get]
 
virtual string IdSoundToggleOff [get]
 
virtual int ShopLv [get]
 
virtual CopyShopType CopyShop [get]
 
virtual int NumCopyItem [get]
 
virtual ShopType ShopType [get]
 
virtual CurrencyType CurrencyType [get]
 
virtual PriceType PriceType [get]
 
virtual bool AllowSell [get]
 
virtual int CostRerollShop [get]
 
virtual bool AllowCriminal [get]
 
virtual int RestockDay [get]
 
virtual SlaverType SlaverType [get]
 
virtual string LangBarter [get]
 
virtual bool RemoveGlobalOnBanish [get]
 
virtual bool CanChangeAffinity [get]
 
string TextNextRestock [get]
 
string TextNextRestockPet [get]
 
- Properties inherited from EClass
static Game game [get]
 
static bool AdvMode [get]
 
static Player player [get]
 
static Chara pc [get]
 
static UI ui [get]
 
static Map _map [get]
 
static Zone _zone [get]
 
static FactionBranch Branch [get]
 
static FactionBranch BranchOrHomeBranch [get]
 
static Faction Home [get]
 
static Faction Wilds [get]
 
static Scene scene [get]
 
static BaseGameScreen screen [get]
 
static GameSetting setting [get]
 
static GameData gamedata [get]
 
static ColorProfile Colors [get]
 
static World world [get]
 
static SourceManager sources [get]
 
static SourceManager editorSources [get]
 
static SoundManager Sound [get]
 
static CoreDebug debug [get]
 

Additional Inherited Members

- Static Public Member Functions inherited from EClass
static int rndSeed (int a, int seed)
 
static int rnd (long a)
 
static int rnd (int a)
 
static int curve (int _a, int start, int step, int rate=75)
 
static int sqrt (int a)
 
static int rndHalf (int a)
 
static float rndf (float a)
 
static int rndSqrt (int a)
 
static void Wait (float a, Card c)
 
static void Wait (float a, Point p)
 
static int Bigger (int a, int b)
 
static int Smaller (int a, int b)
 

Detailed Description

Definition at line 6 of file Trait.cs.

Member Enumeration Documentation

◆ CopyShopType

Enumerator
None 
Item 
Spellbook 

Definition at line 18 of file Trait.cs.

◆ TileMode

Enumerator
Default 
Door 
Illumination 
DefaultNoAnime 
SignalAnime 
FakeBlock 

Definition at line 8 of file Trait.cs.

Member Function Documentation

◆ CanBlend()

virtual bool Trait.CanBlend ( Thing  t)
inlinevirtual

Reimplemented in TraitDreamBug, TraitDrink, TraitDye, and TraitWell.

Definition at line 609 of file Trait.cs.

610 {
611 return false;
612 }

Referenced by InvOwnerBlend.ShouldShowGuide().

◆ CanBuiltAt()

virtual bool Trait.CanBuiltAt ( Point  p)
inlinevirtual

Reimplemented in TraitSpotExit.

Definition at line 726 of file Trait.cs.

727 {
728 return true;
729 }

Referenced by TileType._HitTest().

◆ CanChildDecay()

virtual bool Trait.CanChildDecay ( Card  c)
inlinevirtual

Reimplemented in TraitBrewery, and TraitContainerCompost.

Definition at line 1068 of file Trait.cs.

1069 {
1070 return false;
1071 }

Referenced by Card.DecayNatural().

◆ CanCook()

virtual bool Trait.CanCook ( Card  c)
inlinevirtual

Definition at line 819 of file Trait.cs.

820 {
821 if (c == null || !ExistsOnMap || !(c.trait is TraitFood))
822 {
823 return false;
824 }
825 return true;
826 }
Trait trait
Definition: Card.cs:53
bool ExistsOnMap
Definition: Trait.cs:356

References Card.trait.

Referenced by AI_Cook.IsValidTarget().

◆ CanCopy()

virtual bool Trait.CanCopy ( Thing  t)
inlinevirtual

Reimplemented in TraitDemitas, and TraitKettle.

Definition at line 1456 of file Trait.cs.

1457 {
1458 return false;
1459 }

Referenced by InvOwnerCopyShop.AllowMoved(), OnBarter(), InvOwner.OnDrag(), and InvOwnerCopyShop.ShouldShowGuide().

◆ CanDrink()

virtual bool Trait.CanDrink ( Chara  c)
inlinevirtual

Reimplemented in TraitDrink, TraitLumiestCrimAle, and TraitPotionEmpty.

Definition at line 988 of file Trait.cs.

989 {
990 return false;
991 }

Referenced by ActPlan._Update(), HotItemHeld.GetSelfAct(), AI_Idle.Run(), ActThrow.Throw(), and Chara.TryUse().

◆ CanEat()

virtual bool Trait.CanEat ( Chara  c)
inlinevirtual

Reimplemented in TraitFood, and TraitFoodPreparedPackage.

Definition at line 979 of file Trait.cs.

980 {
981 return owner.HasElement(10);
982 }
bool HasElement(int ele, bool includeNagative=false)
Definition: Card.cs:5932
Card owner
Definition: Trait.cs:27

References Card.HasElement().

Referenced by ActPlan._Update(), Chara.CanEat(), HotItemHeld.GetSelfAct(), AI_Eat.IsValidTarget(), AI_Idle.Run(), and Chara.TryUse().

◆ CanOffer()

virtual bool Trait.CanOffer ( Card  tg)
inlinevirtual

Reimplemented in TraitAltar.

Definition at line 841 of file Trait.cs.

842 {
843 if (tg == null || tg.isChara || tg.trait.CanOnlyCarry)
844 {
845 return false;
846 }
847 if (tg.rarity == Rarity.Artifact)
848 {
849 return false;
850 }
851 return true;
852 }
Rarity
Definition: Rarity.cs:2
Rarity rarity
Definition: Card.cs:314
virtual bool isChara
Definition: Card.cs:2083
virtual bool CanOnlyCarry
Definition: Trait.cs:294

References CanOnlyCarry, Card.isChara, Card.rarity, and Card.trait.

Referenced by AI_Offer.IsValidTarget().

◆ CanRead()

virtual bool Trait.CanRead ( Chara  c)
inlinevirtual

Reimplemented in TraitBaseSpellbook, TraitBookExp, TraitBookSkill, TraitScroll, and TraitScrollStatic.

Definition at line 970 of file Trait.cs.

971 {
972 return false;
973 }

Referenced by ActPlan._Update(), HotItemHeld.GetSelfAct(), AI_Idle.Run(), and Chara.TryUse().

◆ CanStackTo()

virtual bool Trait.CanStackTo ( Thing  to)
inlinevirtual

◆ CanUse() [1/3]

◆ CanUse() [2/3]

virtual bool Trait.CanUse ( Chara  c,
Card  tg 
)
inlinevirtual

Reimplemented in TraitDye, and TraitFoodMeat.

Definition at line 1006 of file Trait.cs.

1007 {
1008 return false;
1009 }

◆ CanUse() [3/3]

virtual bool Trait.CanUse ( Chara  c,
Point  p 
)
inlinevirtual

Reimplemented in TraitPotionEmpty.

Definition at line 1011 of file Trait.cs.

1012 {
1013 return false;
1014 }

◆ CompareTo()

virtual int Trait.CompareTo ( Card  b)
inlinevirtual

Reimplemented in TraitEffect.

Definition at line 721 of file Trait.cs.

722 {
723 return 0;
724 }

Referenced by Card.SecondaryCompare().

◆ Contains()

virtual bool Trait.Contains ( RecipeSource  r)
inlinevirtual

Reimplemented in TraitAlchemyBench, TraitBBQ, TraitCauldron, TraitHearth, TraitLoom, TraitStove, and TraitToolSculpture.

Definition at line 584 of file Trait.cs.

585 {
586 return r.idFactory == ((owner.sourceCard.origin != null) ? owner.sourceCard.origin.id : owner.id);
587 }
CardRow origin
Definition: CardRow.cs:49
string id
Definition: CardRow.cs:7
string id
Definition: Card.cs:35
virtual CardRow sourceCard
Definition: Card.cs:2131

References Card.id, CardRow.id, CardRow.origin, owner, and Card.sourceCard.

Referenced by TraitCrafter.GetSortVal(), TraitCrafter.IsIngredient(), InvOwnerMod.IsValidRangedMod(), and Thing.WriteNote().

◆ CookProgress()

void Trait.CookProgress ( )
inline

Definition at line 828 of file Trait.cs.

829 {
830 if (!ExistsOnMap)
831 {
832 return;
833 }
834 foreach (Card item in owner.pos.ListCards())
835 {
836 owner.PlaySound("cook");
837 item.renderer.PlayAnime(AnimeID.Jump);
838 }
839 }
AnimeID
Definition: AnimeID.cs:2
Definition: Card.cs:11
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:6177
Point pos
Definition: Card.cs:59
List< Card > ListCards(bool includeMasked=false)
Definition: Point.cs:1051

References item, Point.ListCards(), Card.PlaySound(), and Card.pos.

Referenced by AI_Cook.Run().

◆ CreateStock()

Thing Trait.CreateStock ( )
inline

Definition at line 2148 of file Trait.cs.

2149 {
2150 switch (ShopType)
2151 {
2152 case ShopType.Dye:
2153 {
2154 Thing thing = ThingGen.Create("dye").SetNum(15 + EClass.rnd(30));
2155 thing.ChangeMaterial(EClass.sources.materials.rows.Where((SourceMaterial.Row r) => r.tier <= 4).RandomItem().alias);
2156 return thing;
2157 }
2158 case ShopType.GeneralExotic:
2159 return FromFilter("shop_generalExotic");
2160 case ShopType.VMachine:
2161 if (EClass.rnd(10) == 0)
2162 {
2163 return Create("panty");
2164 }
2165 if (EClass.rnd(5) == 0)
2166 {
2167 return Create("234");
2168 }
2169 return FromFilter("shop_drink");
2170 case ShopType.Furniture:
2171 return FromFilter("shop_furniture");
2172 case ShopType.Book:
2173 return FromFilter("shop_book");
2174 case ShopType.Magic:
2175 return FromFilter("shop_magic");
2176 case ShopType.Ecopo:
2177 {
2178 Thing thing2 = TraitSeed.MakeRandomSeed(enc: true);
2179 if (EClass.rnd(2) == 0)
2180 {
2181 TraitSeed.LevelSeed(thing2, (thing2.trait as TraitSeed).row, 1);
2182 }
2183 return thing2;
2184 }
2185 case ShopType.Healer:
2186 {
2187 Thing thing3 = null;
2188 for (int i = 0; i < 1000; i++)
2189 {
2190 thing3 = FromFilter("shop_healer");
2191 if (thing3.trait is TraitScroll { source: not null } traitScroll)
2192 {
2193 if (!(traitScroll.source.aliasParent != "WIL") && !(traitScroll.source.categorySub == "attack"))
2194 {
2195 break;
2196 }
2197 }
2198 else if (thing3.trait is TraitPotionRandom { source: not null } traitPotionRandom)
2199 {
2200 if (!(traitPotionRandom.source.aliasParent != "WIL") && !(traitPotionRandom.source.categorySub == "attack"))
2201 {
2202 thing3.SetNum(EClass.rnd(5) + 1);
2203 break;
2204 }
2205 }
2206 else if (thing3.trait is TraitRodRandom { source: not null } traitRodRandom && !(traitRodRandom.source.aliasParent != "WIL") && !(traitRodRandom.source.categorySub == "attack"))
2207 {
2208 break;
2209 }
2210 }
2211 return thing3;
2212 }
2213 case ShopType.Milk:
2214 if (EClass._zone is Zone_Nefu && EClass.rnd(2) == 0)
2215 {
2216 Thing thing4 = ThingGen.Create("milk");
2217 thing4.MakeRefFrom(EClass.sources.charas.rows.Where((SourceChara.Row r) => r.race == "mifu" || r.race == "nefu").RandomItem().model);
2218 Debug.Log(thing4);
2219 return thing4;
2220 }
2221 return Create("milk");
2222 case ShopType.Map:
2223 return ThingGen.CreateMap();
2224 case ShopType.Plan:
2225 return Create("book_plan");
2226 case ShopType.Weapon:
2227 return FromFilter("shop_weapon");
2228 case ShopType.Gun:
2229 if (EClass.rnd(8) == 0)
2230 {
2231 return Create("mod_ranged");
2232 }
2233 return FromFilter("shop_gun");
2234 case ShopType.Blackmarket:
2235 case ShopType.Exotic:
2236 {
2237 int num = 30;
2239 {
2240 num = 25;
2241 }
2243 {
2244 num = 15;
2245 }
2246 if (EClass.debug.enable)
2247 {
2248 num = 1;
2249 }
2250 CardBlueprint.SetRarity((EClass.rnd(num * 5) == 0) ? Rarity.Mythical : ((EClass.rnd(num) == 0) ? Rarity.Legendary : ((EClass.rnd(5) == 0) ? Rarity.Superior : Rarity.Normal)));
2251 return FromFilter("shop_blackmarket");
2252 }
2253 case ShopType.Drink:
2254 return FromFilter("shop_drink");
2255 case ShopType.Booze:
2256 return FromFilter("shop_booze");
2257 case ShopType.Fruit:
2258 return FromFilter("shop_fruit");
2259 case ShopType.Fish:
2260 if (EClass.rnd(2) == 0)
2261 {
2262 return Create("bait");
2263 }
2264 if (EClass.rnd(3) == 0)
2265 {
2266 return Create("fishingRod");
2267 }
2268 return FromFilter("shop_fish");
2269 case ShopType.Meat:
2270 if (EClass.rnd(5) == 0)
2271 {
2272 return Create("seasoning");
2273 }
2274 return FromFilter("shop_meat");
2275 case ShopType.Bread:
2276 if (EClass.rnd(3) == 0)
2277 {
2278 return Create("dough");
2279 }
2280 return FromFilter("shop_bread");
2281 case ShopType.Sweet:
2282 if (EClass.rnd(3) == 0)
2283 {
2284 return Create("dough");
2285 }
2286 return FromFilter("shop_sweet");
2287 case ShopType.Curry:
2288 if (EClass.rnd(3) == 0)
2289 {
2290 return Create("seasoning");
2291 }
2292 return Create("693");
2293 case ShopType.Food:
2294 if (EClass.rnd(5) == 0)
2295 {
2296 return Create("seasoning");
2297 }
2298 return FromFilter("shop_food");
2299 case ShopType.Drug:
2300 return FromFilter("shop_drug");
2301 case ShopType.LoytelMart:
2302 {
2303 int loytelMartLv = EClass.player.flags.loytelMartLv;
2304 if (loytelMartLv >= 1)
2305 {
2306 if (EClass.rnd(10) == 0)
2307 {
2308 return Create("monsterball").SetLv(40 + EClass.rnd(ShopLv)).Thing;
2309 }
2310 if (EClass.rnd(30) == 0)
2311 {
2312 return ThingGen.Create("rp_random", -1, ShopLv + 10);
2313 }
2314 if (EClass.rnd(100) == 0)
2315 {
2316 return ThingGen.Create("map_treasure", -1, EClass.rndHalf(ShopLv));
2317 }
2318 if (EClass.rnd(40) == 0)
2319 {
2320 return Create("water").SetPriceFix(1000);
2321 }
2322 if (EClass.rnd(1000) == 0)
2323 {
2324 return Create("1165");
2325 }
2326 }
2327 if ((loytelMartLv >= 2 || EClass.debug.enable) && EClass.rnd(10) == 0)
2328 {
2329 SourceElement.Row row = EClass.sources.elements.rows.Where((SourceElement.Row r) => r.tag.Contains("loytelMart") && ShopLv + 10 >= r.LV).ToList().RandomItemWeighted((SourceElement.Row r) => r.chance);
2330 switch ((from _s in row.thing.ToCharArray()
2331 where _s != ' '
2332 select _s).RandomItem())
2333 {
2334 case 'B':
2335 return ThingGen.CreateSpellbook(row.id);
2336 case 'P':
2337 return ThingGen.CreatePotion(row.id);
2338 case 'R':
2339 return ThingGen.CreateRod(row.id);
2340 case 'S':
2341 return ThingGen.CreateScroll(row.id);
2342 }
2343 }
2344 return FromFilter("shop_junk");
2345 }
2346 case ShopType.Junk:
2347 case ShopType.Moyer:
2348 return FromFilter("shop_junk");
2349 case ShopType.Souvenir:
2350 return FromFilter("shop_souvenir");
2351 case ShopType.StrangeGirl:
2352 return DNA.GenerateGene(SpawnList.Get("chara").Select(ShopLv + 10), DNA.Type.Brain);
2353 case ShopType.Fireworks:
2354 if (EClass.rnd(3) == 0)
2355 {
2356 return Create("firework_launcher");
2357 }
2358 return Create("firework");
2359 case ShopType.Festival:
2360 if (EClass.rnd(3) != 0)
2361 {
2362 if (IsFestival("olvina"))
2363 {
2364 return Create(new string[4] { "1125", "1126", "pillow_truth", "1230" }.RandomItem());
2365 }
2366 if (IsFestival("yowyn"))
2367 {
2368 return Create(new string[3] { "hat_mushroom", "hat_witch", "hat_kumiromi" }.RandomItem());
2369 }
2370 if (IsFestival("noyel"))
2371 {
2372 return Create(new string[13]
2373 {
2374 "1127", "1128", "xmas_sled", "xmas_bigbag", "xmas_bigbox", "xmas_blackcat", "xmas_blackcat", "xmas_jure", "xmas_crown", "xmas_ball",
2375 "xmas_ball", "xmas_ball", "xmas_string"
2376 }.RandomItem());
2377 }
2378 }
2379 if (EClass.rnd(2) == 0)
2380 {
2381 return Create(new string[4] { "1081", "1082", "1083", "1084" }.RandomItem());
2382 }
2383 if (EClass.rnd(3) == 0)
2384 {
2385 return FromFilter("shop_junk");
2386 }
2387 return FromFilter("shop_souvenir");
2388 case ShopType.Lamp:
2389 if (EClass.rnd(3) != 0)
2390 {
2391 if (IsFestival("kapul"))
2392 {
2393 return Create(new string[6] { "999", "1000", "1001", "1002", "1003", "1004" }.RandomItem());
2394 }
2395 if (IsFestival("yowyn"))
2396 {
2397 return Create(new string[2] { "1072", "1073" }.RandomItem());
2398 }
2399 if (IsFestival("noyel"))
2400 {
2401 return Create(new string[1] { "1069" }.RandomItem());
2402 }
2403 if (IsFestival("olvina"))
2404 {
2405 return Create(new string[2] { "1070", "1071" }.RandomItem());
2406 }
2407 }
2408 if (EClass._zone.IsFestival && EClass.rnd(2) == 0)
2409 {
2410 return Create(new string[4] { "953", "954", "955", "956" }.RandomItem());
2411 }
2412 return FromFilter("shop_lamp");
2413 default:
2414 if (EClass.rnd(100) == 0)
2415 {
2416 return Create("lockpick");
2417 }
2418 return FromFilter("shop_general");
2419 }
2420 Thing Create(string s)
2421 {
2422 return ThingGen.Create(s, -1, ShopLv);
2423 }
2424 Thing FromFilter(string s)
2425 {
2426 return ThingGen.CreateFromFilter(s, ShopLv);
2427 }
2428 static bool IsFestival(string id)
2429 {
2430 if (EClass._zone.id == id)
2431 {
2432 return EClass._zone.IsFestival;
2433 }
2434 return false;
2435 }
2436 }
ShopType
Definition: ShopType.cs:2
static void SetRarity(Rarity q=Rarity.Normal)
Card ChangeMaterial(int idNew, bool ignoreFixedMaterial=false)
Definition: Card.cs:3041
Card MakeRefFrom(string id)
Definition: Card.cs:5709
Thing SetNum(int a)
Definition: Card.cs:3495
Thing SetPriceFix(int a)
Definition: Card.cs:7197
bool enable
Definition: CoreDebug.cs:286
Definition: DNA.cs:8
Type
Definition: DNA.cs:10
static Thing GenerateGene(Chara c, Type? type=null)
Definition: DNA.cs:116
Definition: EClass.cs:6
static Zone _zone
Definition: EClass.cs:21
static int rnd(long a)
Definition: EClass.cs:59
static SourceManager sources
Definition: EClass.cs:43
static int rndHalf(int a)
Definition: EClass.cs:97
static Player player
Definition: EClass.cs:13
static CoreDebug debug
Definition: EClass.cs:49
override bool IsCurrentZone
Definition: GuildMerchant.cs:5
override bool IsCurrentZone
Definition: GuildThief.cs:6
Definition: Guild.cs:2
static GuildMerchant Merchant
Definition: Guild.cs:62
static GuildThief Thief
Definition: Guild.cs:60
int loytelMartLv
Definition: Player.cs:671
Flags flags
Definition: Player.cs:1094
SourceMaterial materials
SourceElement elements
SourceChara charas
string id
Definition: Spatial.cs:13
static SpawnList Get(string id, string parent=null, CardFilter filter=null)
Definition: SpawnList.cs:18
CardRow Select(int lv=-1, int levelRange=-1)
Definition: SpawnList.cs:139
static Thing CreatePotion(int ele, int num=1)
Definition: ThingGen.cs:216
static Thing CreateFromFilter(string id, int lv=-1)
Definition: ThingGen.cs:63
static Thing CreateMap(string idSource=null, int lv=-1)
Definition: ThingGen.cs:124
static Thing CreateSpellbook(string alias, int num=1)
Definition: ThingGen.cs:151
static Thing CreateScroll(int ele, int num=1)
Definition: ThingGen.cs:182
static Thing CreateRod(int ele, int charge=-1)
Definition: ThingGen.cs:209
static Thing Create(string id, int idMat=-1, int lv=-1)
Definition: ThingGen.cs:53
Definition: Thing.cs:8
static Thing MakeRandomSeed(bool enc=false)
Definition: TraitSeed.cs:192
static void LevelSeed(Thing t, SourceObj.Row obj, int num)
Definition: TraitSeed.cs:145
virtual int ShopLv
Definition: Trait.cs:514
virtual bool IsFestival
Definition: Zone.cs:209

References EClass._zone, Card.ChangeMaterial(), SourceManager.charas, ThingGen.Create(), ThingGen.CreateFromFilter(), ThingGen.CreateMap(), ThingGen.CreatePotion(), ThingGen.CreateRod(), ThingGen.CreateScroll(), ThingGen.CreateSpellbook(), EClass.debug, Debug, Card.Dye(), SourceManager.elements, CoreDebug.enable, Player.flags, DNA.GenerateGene(), SpawnList.Get(), SourceElement.Row.id, Spatial.id, GuildMerchant.IsCurrentZone, GuildThief.IsCurrentZone, Zone.IsFestival, TraitSeed.LevelSeed(), Player.Flags.loytelMartLv, TraitSeed.MakeRandomSeed(), Card.MakeRefFrom(), SourceManager.materials, Guild.Merchant, EClass.player, EClass.rnd(), EClass.rndHalf(), SpawnList.Select(), Card.SetNum(), Card.SetPriceFix(), CardBlueprint.SetRarity(), EClass.sources, Guild.Thief, SourceElement.Row.thing, and Card.trait.

◆ GetActDuration()

virtual int Trait.GetActDuration ( Chara  c)
inlinevirtual

Reimplemented in TraitBaseSpellbook, TraitBookExp, TraitBookSkill, TraitFactory, TraitRecipeBook, and TraitScrollMap.

Definition at line 618 of file Trait.cs.

619 {
620 return 0;
621 }

Referenced by AI_Read.OnSetOwner(), and AI_Read.Run().

◆ GetBuildModeRecipe()

virtual Recipe Trait.GetBuildModeRecipe ( )
inlinevirtual

Reimplemented in TraitTile.

Definition at line 814 of file Trait.cs.

815 {
816 return Recipe.Create(owner.Thing);
817 }
virtual Thing Thing
Definition: Card.cs:2058
Definition: Recipe.cs:7
static Recipe Create(RecipeSource _source, int idMat=-1, Thing ing=null)
Definition: Recipe.cs:325

References Recipe.Create(), and Card.Thing.

Referenced by BuildMenu.RefreshCategory().

◆ GetFuelValue() [1/2]

int Trait.GetFuelValue ( string  id)
inline

Definition at line 1348 of file Trait.cs.

1349 {
1350 if (ToggleType == ToggleType.Electronics)
1351 {
1352 if (id == "battery")
1353 {
1354 return 20;
1355 }
1356 }
1357 else
1358 {
1359 if (id == "log")
1360 {
1361 return 20;
1362 }
1363 if (id == "branch")
1364 {
1365 return 5;
1366 }
1367 }
1368 return 0;
1369 }
ToggleType
Definition: ToggleType.cs:2

◆ GetFuelValue() [2/2]

int Trait.GetFuelValue ( Thing  t)
inline

Definition at line 1339 of file Trait.cs.

1340 {
1341 if (t.c_isImportant)
1342 {
1343 return 0;
1344 }
1345 return GetFuelValue(t.id);
1346 }
bool c_isImportant
Definition: Card.cs:1024
int GetFuelValue(Thing t)
Definition: Trait.cs:1339

References Card.c_isImportant, and Card.id.

Referenced by InvOwnerRefuel._OnProcess().

◆ GetHealAction()

virtual Action Trait.GetHealAction ( Chara  c)
inlinevirtual

Reimplemented in TraitDrink, and TraitItemProc.

Definition at line 604 of file Trait.cs.

605 {
606 return null;
607 }

Referenced by ActItem.BuildAct(), Chara.ShouldThrowAway(), Chara.TryTakeSharedItems(), and Chara.TryUse().

◆ GetHeldEmo()

virtual Emo2 Trait.GetHeldEmo ( Chara  c)
inlinevirtual

Reimplemented in TraitDrinkMilkMother, TraitToolBrush, and TraitToolShears.

Definition at line 637 of file Trait.cs.

638 {
639 return Emo2.none;
640 }
Emo2
Definition: Emo2.cs:2

Referenced by TCOrbitChara.RefreshAll().

◆ GetHotItem()

virtual HotItem Trait.GetHotItem ( )
inlinevirtual

◆ GetHoverText()

virtual string Trait.GetHoverText ( )
inlinevirtual

Reimplemented in TraitBed.

Definition at line 599 of file Trait.cs.

600 {
601 return null;
602 }

◆ GetName()

virtual string Trait.GetName ( )
inlinevirtual

Reimplemented in TraitGene, TraitPerfume, TraitPotionRandom, TraitRodRandom, TraitScrollRandom, TraitShrine, and TraitSpellbookRandom.

Definition at line 697 of file Trait.cs.

698 {
699 return owner.sourceCard.GetText();
700 }
string GetText(string id="name", bool returnNull=false)
Definition: SourceData.cs:553

References SourceData< T, T2 >.BaseRow.GetText(), owner, and Card.sourceCard.

Referenced by TraitCrafter.Craft(), and Thing.GetName().

◆ GetParam()

◆ GetParamInt()

int Trait.GetParamInt ( int  i,
int  def 
)
inline

Definition at line 575 of file Trait.cs.

576 {
577 if (i < Params.Length)
578 {
579 return Params[i].ToInt();
580 }
581 return def;
582 }

References Params.

Referenced by TraitItemProc.OnUse().

◆ GetPoint()

Point Trait.GetPoint ( )
inline

Definition at line 735 of file Trait.cs.

736 {
737 return owner.pos;
738 }

References owner, and Card.pos.

Referenced by Zone.AddRandomVisitor(), TraitRoadSign.OnRenderTile(), and FactionBranch.Recruit().

◆ GetRandomPoint()

Point Trait.GetRandomPoint ( Func< Point, bool >  func = null,
Chara  accessChara = null 
)
inline

Definition at line 740 of file Trait.cs.

741 {
742 if (radius == 0)
743 {
744 return owner.pos;
745 }
746 List<Point> list = ListPoints();
747 for (int i = 0; i < 50; i++)
748 {
749 Point point = list.RandomItem();
750 if (point.IsValid && (func == null || func(point)) && (accessChara == null || accessChara.HasAccess(point)))
751 {
752 return point;
753 }
754 }
755 return list[0];
756 }
bool HasAccess(Card c)
Definition: Chara.cs:1280
Definition: Point.cs:9
bool IsValid
Definition: Point.cs:88
virtual int radius
Definition: Trait.cs:93
virtual List< Point > ListPoints(Point center=null, bool onlyPassable=true)
Definition: Trait.cs:758

References Point.IsValid, ListPoints(), owner, Card.pos, and radius.

Referenced by AIAct.DoGotoSpot< T >(), GoalGraze.GetPos(), GoalSpot.Run(), AIWork.SetDestPos(), Zone.TryAddThingInSpot< T >(), and TraitSpotBiome.Update().

◆ GetRecipe()

virtual Recipe Trait.GetRecipe ( )
inlinevirtual

Reimplemented in TraitTile.

Definition at line 809 of file Trait.cs.

810 {
811 return Recipe.Create(owner.Thing);
812 }

References Recipe.Create(), and Card.Thing.

Referenced by HotItemHeld.OnSetCurrentItem(), and TraitFakeBlock.TrySetHeldAct().

◆ GetRefElement()

virtual SourceElement.Row Trait.GetRefElement ( )
inlinevirtual

Reimplemented in TraitPotionRandom, TraitRod, and TraitScroll.

Definition at line 623 of file Trait.cs.

624 {
625 return null;
626 }

Referenced by ButtonGrid.SetCard().

◆ GetRefSprite()

virtual Sprite Trait.GetRefSprite ( )
inlinevirtual

Definition at line 628 of file Trait.cs.

629 {
630 return null;
631 }

Referenced by ButtonGrid.SetCard().

◆ GetRestockedIcon()

Emo2 Trait.GetRestockedIcon ( )
inline

Definition at line 1484 of file Trait.cs.

1485 {
1486 if (SlaverType != 0)
1487 {
1488 SlaverData obj = owner.GetObj<SlaverData>(5);
1489 if (obj != null && EClass.world.date.IsExpired(obj.dateRefresh))
1490 {
1491 return Emo2.restock;
1492 }
1493 }
1494 int c_dateStockExpire = owner.c_dateStockExpire;
1495 if (c_dateStockExpire != 0 && EClass.world.date.IsExpired(c_dateStockExpire))
1496 {
1497 if (ShopType == ShopType.None)
1498 {
1499 return Emo2.blessing;
1500 }
1501 return Emo2.restock;
1502 }
1503 return Emo2.none;
1504 }
SlaverType
Definition: SlaverType.cs:2
int c_dateStockExpire
Definition: Card.cs:1233
bool IsExpired(int time)
Definition: Date.cs:336
static World world
Definition: EClass.cs:41
int dateRefresh
Definition: SlaverData.cs:10
GameDate date
Definition: World.cs:6

References Card.c_dateStockExpire, World.date, SlaverData.dateRefresh, Date.IsExpired(), and EClass.world.

Referenced by TCOrbitChara.RefreshAll(), and TCOrbitThing.RefreshAll().

◆ GetSortVal()

int Trait.GetSortVal ( UIList::SortMode  m)
inline

Definition at line 959 of file Trait.cs.

960 {
961 _ = 7;
962 return owner.sourceCard._index;
963 }

References SourceData< T, T2 >.BaseRow._index, and Card.sourceCard.

Referenced by LayerHome.RefreshSpots().

◆ GetTextRestock()

string Trait.GetTextRestock ( string  lang,
bool  pet 
)
inline

Definition at line 1461 of file Trait.cs.

1462 {
1463 int rawDeadLine = 0;
1464 if (pet)
1465 {
1466 SlaverData obj = owner.GetObj<SlaverData>(5);
1467 if (obj != null)
1468 {
1469 rawDeadLine = obj.dateRefresh;
1470 }
1471 }
1472 else
1473 {
1474 rawDeadLine = owner.c_dateStockExpire;
1475 }
1476 int remainingHours = EClass.world.date.GetRemainingHours(rawDeadLine);
1477 if (remainingHours > 0)
1478 {
1479 return "nextRestock".lang(lang.lang(), Date.GetText(remainingHours) ?? "");
1480 }
1481 return lang.lang();
1482 }
Definition: Date.cs:4
string GetText(TextFormat format)
Definition: Date.cs:249
int GetRemainingHours(int rawDeadLine)
Definition: Date.cs:341

References Card.c_dateStockExpire, World.date, SlaverData.dateRefresh, Date.GetRemainingHours(), Date.GetText(), and EClass.world.

◆ GetValue()

virtual int Trait.GetValue ( )
inlinevirtual

◆ IdleUse()

virtual bool Trait.IdleUse ( Chara  c,
int  dist 
)
inlinevirtual

Reimplemented in TraitChopper, TraitGamble, and TraitTrainingDummy.

Definition at line 648 of file Trait.cs.

649 {
650 return false;
651 }

Referenced by AI_Idle.TryPerformIdleUse().

◆ Install()

void Trait.Install ( bool  byPlayer)
inline

Definition at line 1089 of file Trait.cs.

1090 {
1091 if (Electricity != 0)
1092 {
1093 EClass._zone.dirtyElectricity = true;
1094 if (Electricity > 0)
1095 {
1096 EClass._zone.electricity += Electricity;
1097 EClass.pc.PlaySound("electricity_on");
1098 }
1099 }
1100 TryToggle();
1103 {
1104 owner.PlaySound("fire");
1105 }
1106 OnInstall(byPlayer);
1107 }
void RecalculateFOV()
Definition: Card.cs:6389
bool isOn
Definition: Card.cs:542
static Chara pc
Definition: EClass.cs:15
virtual void TryToggle()
Definition: Trait.cs:1135
virtual void OnInstall(bool byPlayer)
Definition: Trait.cs:1127
virtual int Electricity
Definition: Trait.cs:118
bool isStarted
Definition: Zone.cs:73

References EClass._zone, Card.isOn, Zone.isStarted, EClass.pc, Card.PlaySound(), and Card.RecalculateFOV().

Referenced by Card.SetPlaceState().

◆ IsFuel() [1/2]

bool Trait.IsFuel ( string  s)
inline

Definition at line 1329 of file Trait.cs.

1330 {
1331 return GetFuelValue(s) > 0;
1332 }

Referenced by UIDragGridInfo.InitFuel(), and InvOwnerRefuel.ShouldShowGuide().

◆ IsFuel() [2/2]

bool Trait.IsFuel ( Thing  t)
inline

Definition at line 1334 of file Trait.cs.

1335 {
1336 return GetFuelValue(t) > 0;
1337 }

◆ IsFuelEnough()

bool Trait.IsFuelEnough ( int  num = 1,
List< Thing excludes = null,
bool  tryRefuel = true 
)
inline

Definition at line 1312 of file Trait.cs.

1313 {
1314 if (!IsRequireFuel)
1315 {
1316 return true;
1317 }
1318 if (owner.c_charges >= FuelCost * num)
1319 {
1320 return true;
1321 }
1322 if (owner.autoRefuel)
1323 {
1324 TryRefuel(FuelCost * num - owner.c_charges, excludes);
1325 }
1326 return owner.c_charges >= FuelCost * num;
1327 }
bool autoRefuel
Definition: Card.cs:626
int c_charges
Definition: Card.cs:1269
virtual int FuelCost
Definition: Trait.cs:462
bool IsRequireFuel
Definition: Trait.cs:466
void TryRefuel(int dest, List< Thing > excludes)
Definition: Trait.cs:1384

References Card.autoRefuel, and Card.c_charges.

Referenced by AI_UseCrafter.Run(), and InvOwnerCraft.TryStartCraft().

◆ ListPoints()

virtual List< Point > Trait.ListPoints ( Point  center = null,
bool  onlyPassable = true 
)
inlinevirtual

Reimplemented in TraitLightSun.

Definition at line 758 of file Trait.cs.

759 {
760 listRadiusPoints.Clear();
761 if (center == null)
762 {
763 center = owner.pos;
764 }
765 if (radius == 0)
766 {
767 listRadiusPoints.Add(center.Copy());
768 return listRadiusPoints;
769 }
770 Room room = center.cell.room;
771 if (room != null && CanUseRoomRadius)
772 {
773 foreach (Point point in room.points)
774 {
775 if (radiusType == TraitRadiusType.Farm)
776 {
777 listRadiusPoints.Add(point.Copy());
778 }
779 else if ((!onlyPassable || !point.cell.blocked) && !point.cell.HasBlock && point.cell.HasFloor)
780 {
781 listRadiusPoints.Add(point.Copy());
782 }
783 }
784 }
785 else
786 {
787 EClass._map.ForeachSphere(center.x, center.z, radius + 1, delegate(Point p)
788 {
789 if (radiusType == TraitRadiusType.Farm)
790 {
791 if (!p.cell.HasBlock || p.cell.HasFence)
792 {
793 listRadiusPoints.Add(p.Copy());
794 }
795 }
796 else if ((!onlyPassable || !p.cell.blocked) && !p.cell.HasBlock && p.cell.HasFloor && (!onlyPassable || Los.IsVisible(center, p)))
797 {
798 listRadiusPoints.Add(p.Copy());
799 }
800 });
801 }
802 if (listRadiusPoints.Count == 0)
803 {
804 listRadiusPoints.Add(center.Copy());
805 }
806 return listRadiusPoints;
807 }
TraitRadiusType
PointList points
Definition: BaseArea.cs:26
Room room
Definition: Cell.cs:102
bool HasBlock
Definition: Cell.cs:643
bool HasFloor
Definition: Cell.cs:645
static Map _map
Definition: EClass.cs:19
Definition: Los.cs:5
static bool IsVisible(Point p1, Point p2, Action< Point, bool > _onVisit=null)
Definition: Los.cs:167
void ForeachSphere(int _x, int _z, float r, Action< Point > action)
Definition: Map.cs:2380
Point Copy()
Definition: Point.cs:491
int x
Definition: Point.cs:36
int z
Definition: Point.cs:39
Cell cell
Definition: Point.cs:51
Definition: Room.cs:4
virtual bool CanUseRoomRadius
Definition: Trait.cs:97
virtual TraitRadiusType radiusType
Definition: Trait.cs:95
static List< Point > listRadiusPoints
Definition: Trait.cs:29

References EClass._map, Algorithms.WeightCell.blocked, CanUseRoomRadius, Point.cell, Point.Copy(), Map.ForeachSphere(), Cell.HasBlock, Cell.HasFloor, Los.IsVisible(), listRadiusPoints, owner, BaseArea.points, Card.pos, radius, and radiusType.

Referenced by VirtualDate.BuildSunMap(), TraitSpotBiome.CountNotableThing(), GetRandomPoint(), Point.IsInSpot< T >(), OnRenderTile(), Map.RefreshSunMap(), and Zone.TryAddThingInSpot< T >().

◆ Offer()

void Trait.Offer ( Chara  cc)
inline

Definition at line 876 of file Trait.cs.

877 {
878 if (!ExistsOnMap)
879 {
880 return;
881 }
882 foreach (Card item in owner.pos.ListCards())
883 {
884 if (CanOffer(item))
885 {
886 item.Destroy();
887 cc.depression.Mod(100);
888 owner.PlaySound("offering");
889 }
890 }
891 }
Stats depression
Definition: Chara.cs:1148
virtual void Mod(int a)
Definition: Stats.cs:135
virtual bool CanOffer(Card tg)
Definition: Trait.cs:841

References item, Point.ListCards(), Card.PlaySound(), and Card.pos.

Referenced by AI_Offer.Run().

◆ OfferProcess()

void Trait.OfferProcess ( Chara  cc)
inline

Definition at line 854 of file Trait.cs.

855 {
856 if (!ExistsOnMap)
857 {
858 return;
859 }
861 string @ref = row.GetTextArray("name2")[1];
862 string ref2 = row.GetTextArray("name2")[0];
863 if (EClass.rnd(3) == 0)
864 {
865 cc.Talk("offer", @ref, ref2);
866 }
867 foreach (Card item in owner.pos.ListCards())
868 {
869 if (CanOffer(item))
870 {
871 item.renderer.PlayAnime(AnimeID.Shiver);
872 }
873 }
874 }
string c_idDeity
Definition: Card.cs:1581
void Talk(string idTopic, string ref1=null, string ref2=null, bool forceSync=false)
Definition: Card.cs:6733
SourceReligion religions

References Card.c_idDeity, item, Point.ListCards(), Card.pos, SourceManager.religions, EClass.rnd(), EClass.sources, and Card.Talk().

Referenced by AI_Offer.Run().

◆ OnAddedToZone()

virtual void Trait.OnAddedToZone ( )
inlinevirtual

Definition at line 685 of file Trait.cs.

686 {
687 }

Referenced by Map.OnCardAddedToZone().

◆ OnBarter()

void Trait.OnBarter ( bool  reroll = false)
inline

Definition at line 1506 of file Trait.cs.

1507 {
1508 Thing t = owner.things.Find("chest_merchant");
1509 if (t == null)
1510 {
1511 t = ThingGen.Create("chest_merchant");
1512 owner.AddThing(t);
1513 }
1514 t.c_lockLv = 0;
1516 {
1517 return;
1518 }
1519 owner.c_dateStockExpire = EClass.world.date.GetRaw(24 * RestockDay);
1520 owner.isRestocking = true;
1521 t.things.DestroyAll((Thing _t) => _t.GetInt(101) != 0);
1522 foreach (Thing thing9 in t.things)
1523 {
1524 thing9.invX = -1;
1525 }
1526 switch (ShopType)
1527 {
1528 case ShopType.Plat:
1529 NoRestock(ThingGen.Create("lucky_coin").SetNum(10));
1530 NoRestock(ThingGen.CreateSkillbook(6662));
1531 NoRestock(ThingGen.CreateSkillbook(6664));
1532 Add("book_exp", 10, 0);
1533 break;
1534 case ShopType.Copy:
1535 {
1536 Thing c_copyContainer = owner.c_copyContainer;
1537 if (c_copyContainer == null)
1538 {
1539 break;
1540 }
1541 int num3 = 0;
1542 foreach (Thing thing10 in c_copyContainer.things)
1543 {
1544 if (!owner.trait.CanCopy(thing10))
1545 {
1546 continue;
1547 }
1548 Thing thing3 = thing10.Duplicate(1);
1549 thing3.isStolen = false;
1550 thing3.isCopy = true;
1551 thing3.c_priceFix = 0;
1552 foreach (Element item in thing3.elements.dict.Values.Where((Element e) => e.HasTag("noInherit")).ToList())
1553 {
1554 thing3.elements.Remove(item.id);
1555 }
1556 int num4 = 1;
1557 switch (owner.trait.CopyShop)
1558 {
1559 case CopyShopType.Item:
1560 {
1561 num4 = (1000 + owner.c_invest * 100) / (thing3.GetPrice(CurrencyType.Money, sell: false, PriceType.CopyShop) + 50);
1562 int[] array = new int[3] { 704, 703, 702 };
1563 foreach (int ele in array)
1564 {
1565 if (thing3.HasElement(ele))
1566 {
1567 num4 = 1;
1568 }
1569 }
1570 break;
1571 }
1572 case CopyShopType.Spellbook:
1573 thing3.c_charges = thing10.c_charges;
1574 break;
1575 }
1576 if (num4 > 1 && thing3.trait.CanStack)
1577 {
1578 thing3.SetNum(num4);
1579 }
1580 AddThing(thing3);
1581 num3++;
1582 if (num3 > owner.trait.NumCopyItem)
1583 {
1584 break;
1585 }
1586 }
1587 break;
1588 }
1589 case ShopType.Specific:
1590 {
1591 string id2 = owner.id;
1592 if (!(id2 == "mogu"))
1593 {
1594 if (!(id2 == "felmera"))
1595 {
1596 break;
1597 }
1598 foreach (Thing item2 in new DramaOutcome().ListFelmeraBarter())
1599 {
1600 AddThing(item2);
1601 }
1602 AddThing(ThingGen.Create("crimale2"));
1603 }
1604 else
1605 {
1606 AddThing(ThingGen.Create("casino_coin").SetNum(5000));
1607 }
1608 break;
1609 }
1610 case ShopType.Deed:
1611 Add("deed", 1, 0);
1612 Add("deed_move", 2 + EClass.rnd(5), 0);
1613 Add("license_illumination", 1, 0);
1614 Add("license_void", 1, 0);
1615 Add("license_adv", 1, 0);
1616 break;
1617 case ShopType.RedBook:
1618 {
1619 for (int num7 = 0; num7 < 30; num7++)
1620 {
1621 AddThing(ThingGen.CreateFromCategory((EClass.rnd(2) == 0) ? "_book" : "book"));
1622 }
1623 break;
1624 }
1625 case ShopType.Seed:
1626 {
1627 AddThing(TraitSeed.MakeSeed("rice")).SetNum(4 + EClass.rnd(4));
1628 AddThing(TraitSeed.MakeSeed("cabbage")).SetNum(4 + EClass.rnd(4));
1629 AddThing(TraitSeed.MakeSeed("carrot")).SetNum(4 + EClass.rnd(4));
1630 AddThing(TraitSeed.MakeSeed("potato")).SetNum(4 + EClass.rnd(4));
1631 AddThing(TraitSeed.MakeSeed("corn")).SetNum(4 + EClass.rnd(4));
1632 for (int num8 = 0; num8 < EClass.rnd(3) + 1; num8++)
1633 {
1634 Add("462", 1, 0);
1635 }
1636 for (int num9 = 0; num9 < EClass.rnd(3) + 1; num9++)
1637 {
1638 Add("1167", 1, 0);
1639 }
1640 break;
1641 }
1642 case ShopType.Loytel:
1643 Add("board_map", 1, 0);
1644 Add("board_build", 1, 0);
1645 Add("book_resident", 1, 0);
1646 Add("3", 1, 0);
1647 Add("4", 1, 0);
1648 Add("5", 1, 0);
1649 AddThing(ThingGen.CreatePlan(2512));
1650 AddThing(ThingGen.CreatePlan(2810));
1651 NoRestock(ThingGen.Create("rp_block").SetLv(1).SetNum(10));
1652 if (EClass.game.quests.GetPhase<QuestVernis>() >= 3)
1653 {
1654 NoRestock(ThingGen.CreateRecipe("explosive"));
1655 }
1656 break;
1657 case ShopType.Starter:
1658 case ShopType.StarterEx:
1659 Add("board_home", 1, 0);
1660 Add("board_resident", 1, 0);
1661 Add("1", 1, 0);
1662 Add("2", 1, 0);
1663 if (ShopType == ShopType.StarterEx)
1664 {
1665 Add("board_expedition", 1, 0);
1666 Add("mailpost", 1, 0);
1667 Add("record", 1, 0);
1668 Add("tent2", 1, 0);
1669 Add("tent1", 1, 0);
1670 Add("wagon1", 1, 0);
1671 Add("wagon_big", 1, 0);
1672 Add("wagon_big2", 1, 0);
1673 Add("wagon_big3", 1, 0);
1674 Add("wagon_big4", 1, 0);
1675 Add("wagon_big5", 1, 0);
1676 Add("teleporter", 1, 0);
1677 Add("teleporter2", 1, 0);
1678 Add("recharger", 1, 0);
1679 Add("machine_gene2", 1, 0);
1680 NoRestock(ThingGen.CreateRecipe("torch_wall"));
1681 NoRestock(ThingGen.CreateRecipe("factory_sign"));
1682 NoRestock(ThingGen.CreateRecipe("beehive"));
1683 NoRestock(ThingGen.Create("rp_food").SetNum(5).SetLv(10)
1684 .Thing);
1685 }
1686 else
1687 {
1688 AddThing(ThingGen.CreatePlan(2119));
1689 NoRestock(ThingGen.Create("rp_food").SetNum(5).SetLv(5)
1690 .Thing);
1691 }
1692 break;
1693 case ShopType.Farris:
1694 AddThing(ThingGen.CreateScroll(8220, 4 + EClass.rnd(6)));
1695 AddThing(ThingGen.CreateScroll(8221, 4 + EClass.rnd(6)));
1696 Add("drawing_paper", 10, 0);
1697 Add("drawing_paper2", 10, 0);
1698 Add("stethoscope", 1, 0);
1699 Add("whip_love", 1, 0);
1700 Add("whip_interest", 1, 0);
1701 Add("syringe_blood", 20, 0);
1703 {
1704 Add("chest_tax", 1, 0);
1705 }
1706 break;
1707 case ShopType.Guild:
1708 if (this is TraitClerk_Merchant)
1709 {
1710 Add("flyer", 1, 0).SetNum(99);
1711 }
1712 break;
1713 case ShopType.Influence:
1714 {
1715 bool num5 = owner.id == "big_sister";
1716 TraitTicketFurniture.SetZone(num5 ? EClass.game.spatials.Find("little_garden") : EClass._zone, Add("ticket_furniture", 1, 0).SetNum(99));
1717 if (num5)
1718 {
1719 Add("littleball", 10, 0);
1721 {
1722 break;
1723 }
1724 if (!owner.Chara.elements.HasBase(287))
1725 {
1726 owner.Chara.elements.SetBase(287, (!EClass.debug.enable) ? 1 : 50);
1727 }
1728 if (!reroll)
1729 {
1730 for (int m = 0; m < 20; m++)
1731 {
1732 owner.Chara.ModExp(287, 1000);
1733 }
1734 }
1736 thing4.elements.SetBase(1229, 1);
1737 AddThing(thing4);
1738 break;
1739 }
1740 for (int n = 0; n < 10; n++)
1741 {
1742 Thing thing5 = ThingGen.Create(EClass._zone.IsFestival ? "1123" : ((EClass.rnd(3) == 0) ? "1169" : "1160"));
1743 thing5.DyeRandom();
1744 AddThing(thing5);
1745 }
1746 if (EClass._zone is Zone_Exile)
1747 {
1748 for (int num6 = 0; num6 < 30; num6++)
1749 {
1750 Add("1235", 1, -1);
1751 Add("1236", 1, -1);
1752 Add("1237", 1, -1);
1753 Add("1239", 1, -1);
1754 Add("candle9", 1, -1);
1755 Add("candle9", 1, -1);
1756 Add("candle9", 1, -1);
1757 Add("candle8", 1, 0);
1758 Add("candle8b", 1, 0);
1759 Add("candle8c", 1, 0);
1760 }
1761 }
1762 break;
1763 }
1764 case ShopType.Casino:
1765 {
1766 Add("chest_tax", 1, 0);
1767 Add("1165", 1, 0);
1768 Add("monsterball", 1, 0).SetNum(3).SetLv(10);
1769 Add("1175", 1, 0);
1770 Add("1176", 1, 0);
1771 Add("pillow_ehekatl", 1, 0);
1772 Add("grave_dagger1", 1, 0);
1773 Add("grave_dagger2", 1, 0);
1774 Add("434", 1, 0);
1775 Add("433", 1, 0);
1776 Add("714", 1, 0);
1777 Add("1017", 1, 0);
1778 Add("1155", 1, 0);
1779 Add("1287", 1, 0);
1780 Add("1288", 1, 0);
1781 Add("1289", 1, 0);
1782 Add("1290", 1, 0);
1783 Add("1011", 1, 0);
1784 AddThing(ThingGen.CreatePerfume(9500, 5));
1785 AddThing(ThingGen.CreatePerfume(9501, 5));
1786 AddThing(ThingGen.CreatePerfume(9502, 5));
1787 AddThing(ThingGen.CreatePerfume(9503, 5));
1788 for (int k = 0; k < 5; k++)
1789 {
1790 Thing thing2 = ThingGen.CreateFromCategory("seasoning").SetNum(10);
1791 thing2.elements.SetBase(2, 40);
1792 thing2.c_priceFix = 1000;
1793 AddThing(thing2);
1794 }
1795 break;
1796 }
1797 case ShopType.Medal:
1798 NoRestockId("sword_dragon");
1799 Add("sword_dragon", 1, 0).SetReplica(on: true);
1800 NoRestockId("point_stick");
1801 Add("point_stick", 1, 0).SetReplica(on: true);
1802 NoRestockId("blunt_bonehammer");
1803 Add("blunt_bonehammer", 1, 0).SetReplica(on: true);
1804 NoRestockId("pole_gunlance");
1805 Add("pole_gunlance", 1, 0).SetReplica(on: true);
1806 NoRestockId("sword_muramasa");
1807 Add("sword_muramasa", 1, 0).SetReplica(on: true);
1808 NoRestockId("sword_forgetmenot");
1809 Add("sword_forgetmenot", 1, 0).SetReplica(on: true);
1810 NoRestockId("dagger_fish");
1811 Add("dagger_fish", 1, 0).SetReplica(on: true);
1812 NoRestockId("sword_zephir");
1813 Add("sword_zephir", 1, 0).SetReplica(on: true);
1814 Add("ribbon", 1, 0);
1815 Add("helm_sage", 1, 0);
1816 Add("diary_sister", 1, 0);
1817 Add("diary_catsister", 1, 0);
1818 Add("diary_lady", 1, 0);
1819 Add("1165", 1, 0).SetNum(5);
1820 AddThing(ThingGen.CreateScroll(9160).SetNum(5));
1821 Add("1282", 1, 0).SetNum(5);
1822 Add("monsterball", 1, 0).SetNum(3).SetLv(20);
1823 Add("monsterball", 1, 0).SetNum(3).SetLv(40);
1824 Add("bill_tax", 1, 0).c_bill = 1;
1825 Add("bill_tax", 1, 0).c_bill = 1;
1826 Add("bill_tax", 1, 0).c_bill = 1;
1827 AddThing(ThingGen.CreateScroll(8288).SetNum(5));
1828 Add("container_magic", 1, 0);
1829 Add("container_magic", 1, 0).ChangeMaterial("iron").idSkin = 1;
1830 Add("container_magic", 1, 0).ChangeMaterial("bamboo").idSkin = 2;
1831 Add("container_magic", 1, 0).ChangeMaterial("feywood").idSkin = 3;
1832 Add("wrench_tent_elec", 1, 0);
1833 Add("wrench_tent_soil", 1, 0);
1834 Add("wrench_tent_seabed", 1, 0);
1835 Add("wrench_bed", 1, 0).SetNum(20);
1836 Add("wrench_storage", 1, 0).SetNum(10);
1837 Add("wrench_fridge", 1, 0).SetNum(1);
1838 Add("wrench_extend_v", 1, 0).SetNum(2);
1839 Add("wrench_extend_h", 1, 0).SetNum(2);
1840 AddThing(ThingGen.CreateSpellbook(9155, 1, 3));
1841 break;
1842 default:
1843 {
1844 float num = (float)(3 + Mathf.Min(ShopLv / 5, 10)) + Mathf.Sqrt(ShopLv);
1845 int num2 = 300;
1846 switch (ShopType)
1847 {
1848 case ShopType.Ecopo:
1849 num2 = 30;
1850 break;
1851 case ShopType.StrangeGirl:
1852 num2 = 50;
1853 break;
1854 }
1855 num = num * (float)(100 + EClass.pc.Evalue(1406) * 5) / 100f;
1856 num = Mathf.Min(num, num2);
1857 for (int j = 0; (float)j < num; j++)
1858 {
1859 Thing thing = CreateStock();
1860 if ((!thing.trait.IsNoShop || (ShopType == ShopType.LoytelMart && (EClass.debug.enable || EClass.player.flags.loytelMartLv >= 2))) && (!(thing.trait is TraitRod) || thing.c_charges != 0) && thing.GetPrice() > 0)
1861 {
1862 bool tryStack = true;
1863 if (ShopType == ShopType.Curry)
1864 {
1865 tryStack = false;
1866 }
1867 t.AddThing(thing, tryStack);
1868 }
1869 }
1870 break;
1871 }
1872 }
1873 foreach (RecipeSource item3 in RecipeManager.list)
1874 {
1875 if (item3.row.recipeKey.IsEmpty())
1876 {
1877 continue;
1878 }
1879 string[] recipeKey = item3.row.recipeKey;
1880 for (int l = 0; l < recipeKey.Length; l++)
1881 {
1882 if (recipeKey[l] == ShopType.ToString())
1883 {
1884 NoRestock(ThingGen.CreateRecipe(item3.id));
1885 break;
1886 }
1887 }
1888 }
1889 switch (ShopType)
1890 {
1891 case ShopType.Curry:
1892 if (EClass.game.quests.IsCompleted("curry"))
1893 {
1894 AddThing(TraitSeed.MakeSeed("redpepper").SetNum(5));
1895 }
1896 break;
1897 case ShopType.Moyer:
1898 {
1899 for (int num12 = 1; num12 <= 17; num12++)
1900 {
1901 AddAdvWeek(num12);
1902 }
1903 break;
1904 }
1905 case ShopType.StrangeGirl:
1906 {
1907 int num13 = (EClass.debug.enable ? 20 : (EClass._zone.development / 10));
1908 if (num13 > 0)
1909 {
1910 Add("syringe_gene", num13, 0);
1911 Add("diary_little", 1, 0);
1912 }
1913 if (num13 > 10)
1914 {
1915 Add("syringe_heaven", num13 / 5, 0);
1916 Add("1276", 1, 0);
1917 }
1918 Add("medal", 10, 0);
1919 Add("ticket_fortune", 10, 0);
1920 break;
1921 }
1922 case ShopType.GeneralExotic:
1923 Add("tool_talisman", 1, 0);
1924 break;
1925 case ShopType.Healer:
1926 AddThing(ThingGen.CreatePotion(8400).SetNum(4 + EClass.rnd(6)));
1927 AddThing(ThingGen.CreatePotion(8401).SetNum(2 + EClass.rnd(4)));
1928 AddThing(ThingGen.CreatePotion(8402).SetNum(1 + EClass.rnd(3)));
1929 break;
1930 case ShopType.Food:
1931 Add("ration", 2 + EClass.rnd(4), 0);
1932 break;
1933 case ShopType.Ecopo:
1934 Add("ecomark", 5, 0);
1935 Add("whip_egg", 1, 0);
1936 Add("helm_chef", 1, 0);
1937 Add("hammer_strip", 1, 0);
1938 Add("brush_strip", 1, 0);
1939 Add("1165", 1, 0);
1940 Add("plat", 100, 0);
1941 AddThing(ThingGen.CreateScroll(9160).SetNum(5));
1942 AddThing(ThingGen.CreateRune(450, 1, free: true));
1943 break;
1944 case ShopType.Gun:
1945 Add("bullet", 1, 0).SetNum(300 + EClass.rnd(100)).ChangeMaterial("iron");
1946 Add("bullet_energy", 1, 0).SetNum(100 + EClass.rnd(100)).ChangeMaterial("iron");
1947 break;
1948 case ShopType.Magic:
1949 if (!Guild.Mage.IsMember && ((EClass._zone.id == "lumiest" && EClass._zone.lv == 0) || (EClass._zone.id != "lumiest" && EClass.rnd(4) == 0)))
1950 {
1951 t.AddThing(ThingGen.Create("letter_trial"));
1952 }
1953 break;
1954 case ShopType.Festival:
1956 {
1957 Add("1085", 1, 0);
1958 if (EClass._zone.id == "noyel")
1959 {
1960 Add("holyFeather", 1, 0);
1961 }
1962 }
1963 break;
1964 case ShopType.Junk:
1965 case ShopType.LoytelMart:
1966 {
1967 if (ShopType == ShopType.LoytelMart)
1968 {
1969 Add("ticket_massage", 1, 0);
1970 Add("ticket_armpillow", 1, 0);
1971 Add("ticket_champagne", 1, 0);
1972 }
1973 for (int num10 = 0; num10 < 3; num10++)
1974 {
1975 if (EClass.rnd(5) == 0)
1976 {
1977 TreasureType treasureType = ((EClass.rnd(10) == 0) ? TreasureType.BossNefia : ((EClass.rnd(10) == 0) ? TreasureType.Map : TreasureType.RandomChest));
1978 int num11 = EClass.rnd(EClass.rnd(ShopLv + (EClass.debug.enable ? 200 : 50)) + 1) + 1;
1979 Thing thing6 = ThingGen.Create(treasureType switch
1980 {
1981 TreasureType.Map => "chest_treasure",
1982 TreasureType.BossNefia => "chest_boss",
1983 _ => "chest3",
1984 });
1985 thing6.c_lockedHard = true;
1986 thing6.c_lockLv = num11;
1987 thing6.c_priceAdd = 2000 + num11 * 250 * ((treasureType == TreasureType.RandomChest) ? 1 : 5);
1988 thing6.c_revealLock = true;
1989 ThingGen.CreateTreasureContent(thing6, num11, treasureType, clearContent: true);
1990 AddThing(thing6);
1991 }
1992 }
1993 break;
1994 }
1995 }
1996 switch (ShopType)
1997 {
1998 case ShopType.General:
1999 case ShopType.Food:
2000 {
2001 for (int num14 = 0; num14 < (EClass.debug.enable ? 3 : 3); num14++)
2002 {
2003 if (EClass.rnd(3) == 0)
2004 {
2005 int lv = EClass.rnd(EClass.rnd(ShopLv + (EClass.debug.enable ? 200 : 50)) + 1) + 1;
2006 Thing t2 = ThingGen.Create("chest_gamble", -1, lv).SetNum(1 + EClass.rnd(20));
2007 AddThing(t2);
2008 }
2009 }
2010 break;
2011 }
2012 case ShopType.Booze:
2013 if (EClass._zone is Zone_Yowyn && EClass._zone.lv == -1)
2014 {
2015 Add("churyu", EClass.rndHalf(10), 0);
2016 }
2017 break;
2018 }
2019 switch (owner.id)
2020 {
2021 case "rodwyn":
2022 AddThing(ThingGen.CreateSpellbook(8790));
2023 AddThing(ThingGen.CreatePotion(8791).SetNum(3 + EClass.rnd(3)));
2024 AddThing(ThingGen.CreatePotion(8792).SetNum(3 + EClass.rnd(3)));
2025 break;
2026 case "girl_blue":
2027 Add("779", 1 + EClass.rnd(3), 0);
2028 break;
2029 case "nola":
2030 AddThing(ThingGen.CreateRecipe("ic").SetPriceFix(400));
2031 AddThing(ThingGen.CreateRecipe("bullet").SetPriceFix(300));
2032 AddThing(ThingGen.CreateRecipe("break_powder").SetPriceFix(1000));
2033 AddThing(ThingGen.CreateRecipe("quarrel").SetPriceFix(100));
2034 AddThing(ThingGen.CreateRecipe("1099").SetPriceFix(400));
2035 AddThing(ThingGen.CreateRecipe("detector").SetPriceFix(700));
2036 AddThing(ThingGen.CreatePlan(2710)).SetPriceFix(-100);
2037 AddThing(ThingGen.CreatePlan(2711)).SetPriceFix(-100);
2038 AddThing(ThingGen.CreatePlan(2712)).SetPriceFix(200);
2039 break;
2040 }
2042 {
2043 Add("lockpick", 1, 0);
2044 if (EClass.rnd(2) == 0)
2045 {
2046 Add("lockpick", 1, 0);
2047 }
2048 AddThing(ThingGen.CreateScroll(8780, EClass.rndHalf(5)));
2049 }
2050 foreach (Thing thing11 in t.things)
2051 {
2052 thing11.c_idBacker = 0;
2053 if (ShopType != ShopType.Copy)
2054 {
2055 thing11.TryMakeRandomItem(ShopLv);
2056 if (thing11.Num == 1)
2057 {
2058 thing11.SetNum(thing11.trait.DefaultStock);
2059 }
2060 if (thing11.trait is TraitFoodMeal)
2061 {
2062 CraftUtil.MakeDish(thing11, ShopLv, owner.Chara);
2063 }
2064 if (thing11.IsFood && owner.id == "rodwyn")
2065 {
2066 SourceElement.Row row = EClass.sources.elements.rows.Where((SourceElement.Row e) => !e.foodEffect.IsEmpty() && e.category != "feat" && e.chance > 0).RandomItem();
2067 thing11.elements.SetBase(row.id, 10 + EClass.rnd(10));
2068 }
2069 }
2070 if (CurrencyType == CurrencyType.Casino_coin)
2071 {
2072 thing11.noSell = true;
2073 }
2075 {
2076 thing11.isStolen = true;
2077 }
2078 if (!(thing11.trait is TraitErohon))
2079 {
2080 thing11.c_IDTState = 0;
2081 }
2082 if (CurrencyType == CurrencyType.Money && (thing11.category.IsChildOf("meal") || thing11.category.IsChildOf("preserved")) && thing11.id != "ration" && !thing11.IsUnique)
2083 {
2084 thing11.c_priceFix = -70;
2085 }
2086 if (thing11.trait is TraitErohon)
2087 {
2088 thing11.c_IDTState = 5;
2089 }
2090 if (thing11.IsContainer && !thing11.c_revealLock)
2091 {
2092 thing11.RemoveThings();
2093 t.c_lockLv = 0;
2094 }
2095 }
2096 if (t.things.Count <= t.things.GridSize)
2097 {
2098 return;
2099 }
2100 int num15 = t.things.width * 10;
2101 if (t.things.Count > num15)
2102 {
2103 int num16 = t.things.Count - num15;
2104 for (int num17 = 0; num17 < num16; num17++)
2105 {
2106 t.things.LastItem().Destroy();
2107 }
2108 }
2109 t.things.ChangeSize(t.things.width, Mathf.Min(t.things.Count / t.things.width + 1, 10));
2110 Thing Add(string id, int a, int idSkin)
2111 {
2113 Thing thing8 = ThingGen.Create(id, -1, ShopLv).SetNum(a);
2114 thing8.idSkin = ((idSkin == -1) ? EClass.rnd(thing8.source.skins.Length + 1) : idSkin);
2115 return t.AddThing(thing8);
2116 }
2117 void AddAdvWeek(int i)
2118 {
2119 Thing thing7 = ThingGen.CreateRedBook("advweek_" + i);
2120 thing7.c_priceFix = -90;
2121 AddThing(thing7);
2122 }
2123 Thing AddThing(Thing _t)
2124 {
2125 return t.AddThing(_t);
2126 }
2127 void NoRestock(Thing _t)
2128 {
2129 HashSet<string> hashSet = EClass.player.noRestocks.TryGetValue(owner.id);
2130 if (hashSet == null)
2131 {
2132 hashSet = new HashSet<string>();
2133 }
2134 if (!hashSet.Contains(_t.trait.IdNoRestock))
2135 {
2136 hashSet.Add(_t.trait.IdNoRestock);
2137 EClass.player.noRestocks[owner.id] = hashSet;
2138 _t.SetInt(101, 1);
2139 AddThing(_t);
2140 }
2141 }
2142 void NoRestockId(string _id)
2143 {
2144 NoRestock(ThingGen.Create(_id));
2145 }
2146 }
CurrencyType
Definition: CurrencyType.cs:2
PriceType
Definition: PriceType.cs:2
TreasureType
Definition: TreasureType.cs:2
list. Add(item3)
bool CanGiveCard()
Definition: Affinity.cs:63
int GetInt(int id, int? defaultInt=null)
Definition: BaseCard.cs:25
void SetInt(int id, int value=0)
Definition: BaseCard.cs:39
static void SetNormalRarity(bool fixedMat=false)
Thing TryMakeRandomItem(int lv=-1, TryMakeRandomItemSource itemSource=TryMakeRandomItemSource.Default, Chara crafter=null)
Definition: Card.cs:5444
virtual Chara Chara
Definition: Card.cs:2070
ElementContainerCard elements
Definition: Card.cs:41
bool IsUnique
Definition: Card.cs:2091
virtual int GetPrice(CurrencyType currency=CurrencyType.Money, bool sell=false, PriceType priceType=PriceType.Default, Chara c=null)
Definition: Card.cs:7302
Thing AddThing(string id, int lv=-1)
Definition: Card.cs:3104
Card SetLv(int a)
Definition: Card.cs:2905
bool c_revealLock
Definition: Card.cs:1048
bool IsFood
Definition: Card.cs:2175
void DyeRandom()
Definition: Card.cs:6018
ThingContainer things
Definition: Card.cs:38
int Evalue(int ele)
Definition: Card.cs:2571
Thing Duplicate(int num)
Definition: Card.cs:3444
Thing c_copyContainer
Definition: Card.cs:1809
void ModExp(string alias, int a)
Definition: Card.cs:2648
int Num
Definition: Card.cs:158
SourceCategory.Row category
Definition: Card.cs:2049
bool IsContainer
Definition: Card.cs:2089
void RemoveThings()
Definition: Card.cs:3310
Affinity affinity
Definition: Chara.cs:314
static Thing MakeLoveLunch(Chara c)
Definition: CraftUtil.cs:220
static void MakeDish(Thing food, int lv, Chara crafter=null, int seed=-1)
Definition: CraftUtil.cs:61
int GetRaw(int offsetHours=0)
Definition: Date.cs:326
static Game game
Definition: EClass.cs:9
Dictionary< int, Element > dict
Element SetBase(string alias, int v, int potential=0)
void Remove(int id)
bool HasBase(int ele)
bool HasTag(string tag)
Definition: ELEMENT.cs:473
SpatialManager spatials
Definition: Game.cs:152
bool IsSurvival
Definition: Game.cs:275
QuestManager quests
Definition: Game.cs:182
static GuildMage Mage
Definition: Guild.cs:58
bool IsMember
Definition: Guild.cs:72
Dictionary< string, HashSet< string > > noRestocks
Definition: Player.cs:1127
bool IsCompleted(string id)
static List< RecipeSource > list
RenderRow row
Definition: RecipeSource.cs:5
string[] recipeKey
Definition: RenderRow.cs:56
Zone Find(string id)
int lv
Definition: Spatial.cs:142
void DestroyAll(Func< Thing, bool > funcExclude=null)
Thing Find(int uid)
void ChangeSize(int w, int h)
static Thing CreateRune(int ele, int v, bool free=false)
Definition: ThingGen.cs:201
static Thing CreatePerfume(int ele, int num=1)
Definition: ThingGen.cs:223
static Thing CreateRedBook(string id, int num=1)
Definition: ThingGen.cs:167
static void CreateTreasureContent(Thing t, int lv, TreasureType type, bool clearContent)
Definition: ThingGen.cs:263
static Thing CreatePlan(int ele)
Definition: ThingGen.cs:137
static Thing CreateRecipe(string id)
Definition: ThingGen.cs:144
static Thing CreateSkillbook(int ele, int num=1)
Definition: ThingGen.cs:175
static Thing CreateFromCategory(string idCat, int lv=-1)
Definition: ThingGen.cs:75
SourceThing.Row source
Definition: Thing.cs:11
static Thing MakeSeed(string id, PlantData plant=null)
Definition: TraitSeed.cs:88
static void SetZone(Zone zone, Thing t)
virtual CopyShopType CopyShop
Definition: Trait.cs:516
Thing CreateStock()
Definition: Trait.cs:2148
virtual int RestockDay
Definition: Trait.cs:552
virtual string IdNoRestock
Definition: Trait.cs:362
virtual bool IsNoShop
Definition: Trait.cs:65
virtual int DefaultStock
Definition: Trait.cs:130
virtual bool CanCopy(Thing t)
Definition: Trait.cs:1456
CopyShopType
Definition: Trait.cs:19
virtual int NumCopyItem
Definition: Trait.cs:518

References EClass._zone, Add(), Card.AddThing(), Chara.affinity, Card.c_charges, Card.c_copyContainer, Card.c_dateStockExpire, Card.c_revealLock, CanCopy(), Affinity.CanGiveCard(), Card.category, Card.Chara, CopyShop, ThingGen.Create(), ThingGen.CreateFromCategory(), ThingGen.CreatePerfume(), ThingGen.CreatePlan(), ThingGen.CreatePotion(), ThingGen.CreateRecipe(), ThingGen.CreateRedBook(), ThingGen.CreateRune(), ThingGen.CreateScroll(), ThingGen.CreateSkillbook(), ThingGen.CreateSpellbook(), ThingGen.CreateTreasureContent(), World.date, EClass.debug, DefaultStock, ThingContainer.DestroyAll(), Card.Duplicate(), Card.DyeRandom(), Card.elements, SourceManager.elements, CoreDebug.enable, Card.Evalue(), ThingContainer.Find(), SpatialManager.Find(), Player.flags, EClass.game, BaseCard.GetInt(), Card.GetPrice(), Date.GetRaw(), ElementContainer.HasBase(), Element.HasTag(), Card.id, RecipeSource.id, SourceElement.Row.id, Spatial.id, IdNoRestock, QuestManager.IsCompleted(), Card.IsContainer, GuildThief.IsCurrentZone, Date.IsExpired(), Zone.IsFestival, Card.IsFood, Guild.IsMember, IsNoShop, Game.IsSurvival, Card.IsUnique, item, RecipeManager.list, Player.Flags.loytelMartLv, Spatial.lv, Guild.Mage, CraftUtil.MakeDish(), CraftUtil.MakeLoveLunch(), TraitSeed.MakeSeed(), Card.ModExp(), Player.noRestocks, Card.Num, NumCopyItem, EClass.pc, EClass.player, Game.quests, RenderRow.recipeKey, ElementContainer.Remove(), Card.RemoveThings(), EClass.rnd(), EClass.rndHalf(), RecipeSource.row, ElementContainer.SetBase(), BaseCard.SetInt(), Card.SetLv(), CardBlueprint.SetNormalRarity(), Card.SetNum(), Card.SetPriceFix(), TraitTicketFurniture.SetZone(), Thing.source, EClass.sources, Game.spatials, Guild.Thief, Card.Thing, Card.things, Card.trait, Card.TryMakeRandomItem(), and EClass.world.

Referenced by TraitVendingMachine.OnUse().

◆ OnBlend()

virtual void Trait.OnBlend ( Thing  t,
Chara  c 
)
inlinevirtual

Reimplemented in TraitDreamBug, TraitDrink, TraitDye, and TraitWell.

Definition at line 614 of file Trait.cs.

615 {
616 }

Referenced by InvOwnerBlend._OnProcess(), and Chara.TryUse().

◆ OnChangePlaceState()

virtual void Trait.OnChangePlaceState ( PlaceState  state)
inlinevirtual

Reimplemented in TraitBoat, TraitDoorSwing, TraitHouseBoard, TraitLightSun, TraitTeleporter, TraitTent, and TraitTrainingDummyArmor.

Definition at line 681 of file Trait.cs.

682 {
683 }

Referenced by Card.SetPlaceState().

◆ OnChildDecay()

virtual bool Trait.OnChildDecay ( Card  c,
bool  firstDecay 
)
inlinevirtual

Reimplemented in TraitBrewery.

Definition at line 1063 of file Trait.cs.

1064 {
1065 return true;
1066 }

◆ OnCrafted()

virtual void Trait.OnCrafted ( Recipe  recipe,
List< Thing ings 
)
inlinevirtual

Reimplemented in TraitBlanket, TraitFakeBlock, and TraitPotionAlchemy.

Definition at line 665 of file Trait.cs.

666 {
667 }

Referenced by Recipe.Craft(), and RecipeCard.Craft().

◆ OnCreate()

◆ OnDrink()

virtual void Trait.OnDrink ( Chara  c)
inlinevirtual

Reimplemented in TraitDrink, TraitDrinkMilkMother, TraitLumiestCrimAle, and TraitPotionEmpty.

Definition at line 993 of file Trait.cs.

994 {
995 }

Referenced by Chara.Drink(), and ActThrow.Throw().

◆ OnEat()

virtual void Trait.OnEat ( Chara  c)
inlinevirtual

Reimplemented in TraitFortuneCookie.

Definition at line 984 of file Trait.cs.

985 {
986 }

◆ OnEnterScreen()

virtual void Trait.OnEnterScreen ( )
inlinevirtual

Reimplemented in TraitToolTorch.

Definition at line 1417 of file Trait.cs.

1418 {
1420 }
virtual void RefreshRenderer()
Definition: Trait.cs:1422

Referenced by CardRenderer.OnEnterScreen().

◆ OnEquip()

virtual void Trait.OnEquip ( Chara  c,
bool  onSetOwner 
)
inlinevirtual

Reimplemented in TraitEQFlower.

Definition at line 673 of file Trait.cs.

674 {
675 }

Referenced by CharaBody.Equip(), and CharaBody.SetOwner().

◆ OnHeld()

virtual void Trait.OnHeld ( )
inlinevirtual

Reimplemented in TraitDetector.

Definition at line 1047 of file Trait.cs.

1048 {
1049 }

Referenced by HotItemHeld.OnSetCurrentItem().

◆ OnImportMap()

virtual void Trait.OnImportMap ( )
inlinevirtual

Reimplemented in TraitAltar, TraitASMR, TraitBook, TraitNewZone, and TraitNote.

Definition at line 657 of file Trait.cs.

658 {
659 }

Referenced by SerializedCards.Restore().

◆ OnInstall()

virtual void Trait.OnInstall ( bool  byPlayer)
inlinevirtual

Reimplemented in TraitSwitch.

Definition at line 1127 of file Trait.cs.

1128 {
1129 }

◆ OnOpenDoor()

virtual void Trait.OnOpenDoor ( Chara  c)
inlinevirtual

Reimplemented in TraitDoorBell.

Definition at line 1085 of file Trait.cs.

1086 {
1087 }

Referenced by TraitDoor.TryOpen().

◆ OnRead()

◆ OnRemovedFromZone()

virtual void Trait.OnRemovedFromZone ( )
inlinevirtual

Reimplemented in TraitBoat.

Definition at line 689 of file Trait.cs.

690 {
691 }

Referenced by Map.OnCardRemovedFromZone().

◆ OnRenderExtra()

virtual void Trait.OnRenderExtra ( RenderParam  p)
inlinevirtual

Reimplemented in TraitPaintBoard, and TraitShrine.

Definition at line 633 of file Trait.cs.

634 {
635 }

Referenced by CardRenderer.Draw().

◆ OnRenderTile()

virtual void Trait.OnRenderTile ( Point  point,
HitResult  result,
int  dir 
)
inlinevirtual

Reimplemented in TraitLightSun, and TraitRoadSign.

Definition at line 706 of file Trait.cs.

707 {
708 if (radius == 0)
709 {
710 return;
711 }
712 Vector3 vector = point.Position();
713 vector.z += EClass.setting.render.thingZ;
714 foreach (Point item in ListPoints(point))
715 {
716 Vector3 vector2 = item.Position();
717 EClass.screen.guide.passGuideFloor.Add(vector2.x, vector2.y, vector2.z, 10f, 0.3f);
718 }
719 }
ScreenGuide guide
static BaseGameScreen screen
Definition: EClass.cs:33
static GameSetting setting
Definition: EClass.cs:35
RenderSetting render
Definition: GameSetting.cs:301
void Add(Point point, float tile=0f, float color=0f)
Definition: MeshPass.cs:122
ref Vector3 Position(int height)
Definition: Point.cs:548
MeshPass passGuideFloor
Definition: ScreenGuide.cs:7

References MeshPass.Add(), BaseGameScreen.guide, item, ListPoints(), ScreenGuide.passGuideFloor, Point.Position(), radius, GameSetting.render, EClass.screen, EClass.setting, and GameSetting.RenderSetting.thingZ.

Referenced by RecipeCard.OnRenderMarker(), ActionMode.OnRenderTile(), and AM_Adv.OnRenderTile().

◆ OnSetCardGrid()

virtual void Trait.OnSetCardGrid ( ButtonGrid  b)
inlinevirtual

Reimplemented in TraitCanvas, TraitContainer, TraitEquipItem, and TraitFigure.

Definition at line 1073 of file Trait.cs.

1074 {
1075 }

Referenced by ButtonGrid.SetCard().

◆ OnSetCurrentItem()

virtual void Trait.OnSetCurrentItem ( )
inlinevirtual

Reimplemented in TraitToolTorch.

Definition at line 1055 of file Trait.cs.

1056 {
1057 }

◆ OnSetOwner()

virtual void Trait.OnSetOwner ( )
inlinevirtual

Definition at line 653 of file Trait.cs.

654 {
655 }

Referenced by SetOwner().

◆ OnSimulateHour()

virtual void Trait.OnSimulateHour ( VirtualDate  date)
inlinevirtual

Reimplemented in TraitChestPractice, TraitClock, TraitFertilizer, TraitGenerator, and TraitPhone.

Definition at line 693 of file Trait.cs.

694 {
695 }

Referenced by Card.OnSimulateHour().

◆ OnStepped()

virtual void Trait.OnStepped ( Chara  c)
inlinevirtual

Reimplemented in TraitCurrencyMedal, TraitFloorSwitch, TraitGeneratorWheel, TraitMiniPool, TraitNewZone, TraitSwing, and TraitTrapMine.

Definition at line 1077 of file Trait.cs.

1078 {
1079 }

Referenced by Chara._Move(), and Chara.Tick().

◆ OnSteppedOut()

virtual void Trait.OnSteppedOut ( Chara  c)
inlinevirtual

Reimplemented in TraitGeneratorWheel, and TraitSwing.

Definition at line 1081 of file Trait.cs.

1082 {
1083 }

Referenced by Chara._Move().

◆ OnThrowGround()

virtual void Trait.OnThrowGround ( Chara  c,
Point  p 
)
inlinevirtual

Reimplemented in TraitDrink, and TraitDye.

Definition at line 997 of file Trait.cs.

998 {
999 }

Referenced by ActThrow.Throw().

◆ OnTickHeld()

virtual void Trait.OnTickHeld ( )
inlinevirtual

Reimplemented in TraitDetector.

Definition at line 1051 of file Trait.cs.

1052 {
1053 }

◆ OnToggle()

virtual void Trait.OnToggle ( )
inlinevirtual

Reimplemented in TraitJukeBox, and TraitLeverBreaker.

Definition at line 1237 of file Trait.cs.

1238 {
1239 }

◆ OnUnequip()

virtual void Trait.OnUnequip ( Chara  c)
inlinevirtual

Reimplemented in TraitEQFlower.

Definition at line 677 of file Trait.cs.

678 {
679 }

Referenced by CharaBody.Unequip().

◆ OnUninstall()

virtual void Trait.OnUninstall ( )
inlinevirtual

Definition at line 1131 of file Trait.cs.

1132 {
1133 }

◆ OnUnsetCurrentItem()

virtual void Trait.OnUnsetCurrentItem ( )
inlinevirtual

Reimplemented in TraitToolTorch.

Definition at line 1059 of file Trait.cs.

1060 {
1061 }

◆ OnUse() [1/3]

◆ OnUse() [2/3]

virtual bool Trait.OnUse ( Chara  c,
Card  tg 
)
inlinevirtual

Reimplemented in TraitDye, and TraitFoodMeat.

Definition at line 1025 of file Trait.cs.

1026 {
1027 return true;
1028 }

◆ OnUse() [3/3]

virtual bool Trait.OnUse ( Chara  c,
Point  p 
)
inlinevirtual

Reimplemented in TraitPotionEmpty.

Definition at line 1030 of file Trait.cs.

1031 {
1032 return true;
1033 }

◆ PlayToggleEffect()

virtual void Trait.PlayToggleEffect ( bool  silent)
inlinevirtual

Reimplemented in TraitWoodMill.

Definition at line 1191 of file Trait.cs.

1192 {
1193 bool flag = ToggleType == ToggleType.Fire;
1194 bool isOn = owner.isOn;
1195 switch (ToggleType)
1196 {
1197 case ToggleType.Lever:
1198 if (!silent)
1199 {
1200 owner.Say("lever", EClass.pc, owner);
1201 owner.PlaySound("switch_lever");
1202 }
1203 return;
1204 case ToggleType.Curtain:
1205 if (!silent)
1206 {
1207 owner.Say(isOn ? "close" : "open", EClass.pc, owner);
1208 owner.PlaySound("Material/leather_drop");
1209 }
1212 return;
1213 case ToggleType.None:
1214 return;
1215 }
1216 if (isOn)
1217 {
1218 if (!silent)
1219 {
1220 owner.Say(flag ? "toggle_fire" : "toggle_ele", EClass.pc, owner);
1222 }
1225 }
1226 else
1227 {
1228 if (!silent)
1229 {
1231 }
1234 }
1235 }
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:6850
void RefreshNeighborTiles()
Definition: Point.cs:1276
virtual string IdSoundToggleOff
Definition: Trait.cs:499
virtual string IdSoundToggleOn
Definition: Trait.cs:483

References Card.isOn, EClass.pc, Card.PlaySound(), Card.pos, Card.RecalculateFOV(), Point.RefreshNeighborTiles(), and Card.Say().

◆ RefreshRenderer()

virtual void Trait.RefreshRenderer ( )
inlinevirtual

Reimplemented in TraitToolTorch.

Definition at line 1422 of file Trait.cs.

1423 {
1424 if (owner.renderer.isSynced && !IdToggleExtra.IsEmpty())
1425 {
1426 if (owner.isOn)
1427 {
1429 }
1430 else
1431 {
1433 }
1434 }
1435 }
void AddExtra(string id)
void RemoveExtra(string id)
CardRenderer renderer
Definition: Card.cs:61
string IdToggleExtra
Definition: Trait.cs:468

References CardRenderer.AddExtra(), Card.isOn, RenderObject.isSynced, CardRenderer.RemoveExtra(), and Card.renderer.

◆ Refuel()

void Trait.Refuel ( Thing  t)
inline

Definition at line 1371 of file Trait.cs.

1372 {
1373 t.PlaySoundDrop(spatial: false);
1375 Msg.Say("fueled", t);
1376 if (!owner.isOn)
1377 {
1378 owner.trait.Toggle(on: true);
1379 }
1380 t.Destroy();
1382 }
void PlayAnime(AnimeID id, bool force)
void ModCharge(int a, bool destroy=false)
Definition: Card.cs:3950
void Destroy()
Definition: Card.cs:5070
void PlaySoundDrop(bool spatial=true)
Definition: Card.cs:6162
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
virtual void Toggle(bool on, bool silent=false)
Definition: Trait.cs:1157

References Card.Destroy(), Card.isOn, Card.ModCharge(), Card.Num, CardRenderer.PlayAnime(), Card.PlaySoundDrop(), Card.renderer, Msg.Say(), Toggle(), and Card.trait.

Referenced by InvOwnerRefuel._OnProcess().

◆ SetMainText()

virtual void Trait.SetMainText ( UIText  t,
bool  hotitem 
)
inlinevirtual

Reimplemented in TraitAbility, and TraitToolRange.

Definition at line 1437 of file Trait.cs.

1438 {
1439 if (owner.isThing && !owner.Thing.source.attackType.IsEmpty() && owner.ammoData != null)
1440 {
1441 t.SetText(owner.c_ammo.ToString() ?? "", FontColor.Charge);
1442 t.SetActive(enable: true);
1443 }
1444 else if (owner.Num == 1 && ShowCharges && owner.IsIdentified)
1445 {
1446 t.SetText(owner.c_charges.ToString() ?? "", FontColor.Charge);
1447 t.SetActive(enable: true);
1448 }
1449 else
1450 {
1451 t.SetText(owner.Num.ToShortNumber(), FontColor.ButtonGrid);
1452 t.SetActive(owner.Num > 1);
1453 }
1454 }
FontColor
Definition: FontColor.cs:2
virtual bool isThing
Definition: Card.cs:2081
int c_ammo
Definition: Card.cs:1461
Thing ammoData
Definition: Card.cs:1785
bool IsIdentified
Definition: Card.cs:2377
virtual bool ShowCharges
Definition: Trait.cs:332
void SetText(string s)
Definition: UIText.cs:159

References Card.ammoData, Card.c_ammo, Card.c_charges, Card.IsIdentified, Card.isThing, Card.Num, UIText.SetText(), Thing.source, and Card.Thing.

Referenced by ButtonGrid.SetCard(), and HotItemThing.SetSubText().

◆ SetName()

◆ SetOwner()

virtual void Trait.SetOwner ( Card  _owner)
inlinevirtual

Definition at line 642 of file Trait.cs.

643 {
644 owner = _owner;
645 OnSetOwner();
646 }
virtual void OnSetOwner()
Definition: Trait.cs:653

References OnSetOwner(), and owner.

Referenced by Card.ApplyTrait().

◆ SetParams()

virtual void Trait.SetParams ( params string[]  s)
inlinevirtual

Definition at line 661 of file Trait.cs.

662 {
663 }

◆ Toggle()

virtual void Trait.Toggle ( bool  on,
bool  silent = false 
)
inlinevirtual

Definition at line 1157 of file Trait.cs.

1158 {
1159 if (owner.isOn == on)
1160 {
1161 return;
1162 }
1163 if (Electricity < 0)
1164 {
1165 if (on)
1166 {
1168 {
1170 {
1171 if (!silent)
1172 {
1173 owner.Say("notEnoughElectricity", owner);
1174 }
1175 owner.PlaySound("electricity_insufficient");
1176 }
1177 return;
1178 }
1179 EClass._zone.electricity += Electricity;
1180 }
1181 else
1182 {
1183 EClass._zone.electricity -= Electricity;
1184 }
1185 }
1186 owner.isOn = on;
1187 PlayToggleEffect(silent);
1188 OnToggle();
1189 }
int electricity
Definition: Spatial.cs:250
virtual void PlayToggleEffect(bool silent)
Definition: Trait.cs:1191
virtual void OnToggle()
Definition: Trait.cs:1237

References EClass._zone, Spatial.electricity, Card.isOn, Zone.isStarted, Card.PlaySound(), and Card.Say().

Referenced by Card.AddThing(), ZoneEventRaid.GetSpawnPos(), AI_UseCrafter.OnEnd(), TraitFireworkLauncher.OnUse(), TraitGeneratorHamster.OnUse(), TraitItemToggle.OnUse(), TraitMusicBox.OnUse(), TraitTerraGlobe.OnUse(), Refuel(), and AI_UseCrafter.Run().

◆ TryOpenLock()

virtual LockOpenState Trait.TryOpenLock ( Chara  cc,
bool  msgFail = true 
)
inlinevirtual

Definition at line 898 of file Trait.cs.

899 {
900 Thing thing = cc.things.FindBest<TraitLockpick>((Thing t) => -t.c_charges);
901 int num = ((thing == null) ? (cc.Evalue(280) / 2 + 2) : (cc.Evalue(280) + 10));
902 int num2 = owner.c_lockLv;
903 bool flag = this is TraitChestPractice;
904 if (flag)
905 {
906 num2 = num / 4 * 3 - 1;
907 }
908 if (num <= num2 && cc.IsPC)
909 {
910 cc.PlaySound("lock");
911 cc.Say("openLockFail2");
912 owner.PlayAnime(AnimeID.Shiver);
913 return LockOpenState.NotEnoughSkill;
914 }
915 if (thing != null && !flag)
916 {
917 thing.ModCharge(-1, destroy: true);
918 }
919 if (EClass.rnd(num + 6) > num2 + 5 || (!cc.IsPC && EClass.rnd(20) == 0) || EClass.rnd(200) == 0)
920 {
921 cc.PlaySound("lock_open");
922 cc.Say("lockpick_success", cc, owner);
923 int num3 = 100 + num2 * 10;
925 {
926 num3 *= 10;
927 }
928 cc.ModExp(280, num3);
929 owner.c_lockLv = 0;
931 {
932 owner.c_lockedHard = false;
933 owner.c_priceAdd = 0;
934 }
935 if (cc.IsPC && owner.isLostProperty)
936 {
938 }
939 owner.isLostProperty = false;
940 return LockOpenState.Success;
941 }
942 cc.PlaySound("lock");
943 if (cc.IsPC)
944 {
945 cc.Say("openLockFail");
946 }
947 cc.ModExp(280, (thing != null) ? 50 : 30);
948 if ((thing == null) | (EClass.rnd(2) == 0))
949 {
950 cc.stamina.Mod(-1);
951 }
952 return LockOpenState.Fail;
953 }
LockOpenState
Definition: LockOpenState.cs:2
bool c_lockedHard
Definition: Card.cs:1036
bool isLostProperty
Definition: Card.cs:806
int c_lockLv
Definition: Card.cs:964
void PlayAnime(AnimeID id, bool force=false)
Definition: Card.cs:6196
override bool IsPC
Definition: Chara.cs:612
Stats stamina
Definition: Chara.cs:1146
void ModKarma(int a)
Definition: Player.cs:2516

References Card.c_lockedHard, Card.c_lockLv, Card.Evalue(), Card.isLostProperty, Chara.IsPC, Stats.Mod(), Card.ModCharge(), Card.ModExp(), Player.ModKarma(), Card.PlayAnime(), EClass.player, Card.PlaySound(), EClass.rnd(), Card.Say(), Chara.stamina, and Card.things.

◆ TryProgress()

virtual bool Trait.TryProgress ( AIProgress  p)
inlinevirtual

Reimplemented in TraitBaseSpellbook.

Definition at line 893 of file Trait.cs.

894 {
895 return true;
896 }

Referenced by AI_Read.Run().

◆ TryRefuel()

void Trait.TryRefuel ( int  dest,
List< Thing excludes 
)
inline

Definition at line 1384 of file Trait.cs.

1385 {
1386 if (FindFuel(refuel: false))
1387 {
1388 FindFuel(refuel: true);
1389 }
1390 bool FindFuel(bool refuel)
1391 {
1392 int num = dest;
1393 List<Thing> list = EClass._zone.TryListThingsInSpot<TraitSpotFuel>((Thing t) => IsFuel(t));
1394 EClass.pc.things.Foreach(delegate(Thing t)
1395 {
1396 if (IsFuel(t) && t.tier == 0 && (excludes == null || !excludes.Contains(t)))
1397 {
1398 list.Add(t);
1399 }
1400 });
1401 foreach (Thing item in list)
1402 {
1403 if (num > 0)
1404 {
1405 int num2 = Mathf.Min(item.Num, Mathf.CeilToInt((float)num / (float)GetFuelValue(item)));
1406 num -= GetFuelValue(item) * num2;
1407 if (refuel)
1408 {
1409 Refuel(item.Split(num2));
1410 }
1411 }
1412 }
1413 return num <= 0;
1414 }
1415 }
void Foreach(Action< Thing > action, bool onlyAccessible=true)
bool IsFuel(string s)
Definition: Trait.cs:1329
void Refuel(Thing t)
Definition: Trait.cs:1371

References EClass._zone, ThingContainer.Foreach(), item, EClass.pc, and Card.things.

◆ TrySetAct()

virtual void Trait.TrySetAct ( ActPlan  p)
inlinevirtual

◆ TrySetHeldAct()

◆ TrySetToggleAct()

virtual void Trait.TrySetToggleAct ( ActPlan  p)
inlinevirtual

Definition at line 1241 of file Trait.cs.

1242 {
1243 if (!p.IsSelfOrNeighbor)
1244 {
1245 return;
1246 }
1247 switch (ToggleType)
1248 {
1249 case ToggleType.Lever:
1250 p.TrySetAct("ActToggleLever", delegate
1251 {
1252 Toggle(!owner.isOn);
1253 return true;
1254 }, owner);
1255 break;
1256 case ToggleType.Curtain:
1257 p.TrySetAct(owner.isOn ? "actOpen" : "actClose", delegate
1258 {
1259 Toggle(!owner.isOn);
1260 return true;
1261 }, owner);
1262 break;
1263 case ToggleType.Fire:
1264 case ToggleType.Light:
1265 case ToggleType.Electronics:
1266 {
1267 bool flag = ToggleType == ToggleType.Fire;
1268 if (EClass._zone.IsPCFaction || p.altAction || this is TraitCrafter || Electricity < 0)
1269 {
1270 if (owner.isOn)
1271 {
1272 if (p.altAction)
1273 {
1274 p.TrySetAct(flag ? "ActExtinguishTorch" : "ActToggleOff", delegate
1275 {
1276 Toggle(on: false);
1277 return true;
1278 }, owner);
1279 }
1280 }
1281 else if (!(this is TraitFactory) && !(this is TraitIncubator) && (!IsRequireFuel || owner.c_charges > 0))
1282 {
1283 p.TrySetAct(flag ? "ActTorch" : "ActToggleOn", delegate
1284 {
1285 Toggle(on: true);
1286 return true;
1287 }, owner);
1288 }
1290 {
1291 p.TrySetAct("ActFuel", delegate
1292 {
1294 return false;
1295 }, owner);
1296 }
1297 }
1298 if (p.altAction)
1299 {
1300 p.TrySetAct("disableAutoToggle".lang((owner.disableAutoToggle ? "off" : "on").lang()), delegate
1301 {
1302 owner.disableAutoToggle = !owner.disableAutoToggle;
1303 SE.Click();
1304 return true;
1305 }, owner);
1306 }
1307 break;
1308 }
1309 }
1310 }
bool altAction
Definition: ActPlan.cs:156
bool IsSelfOrNeighbor
Definition: ActPlan.cs:176
bool disableAutoToggle
Definition: Card.cs:602
static LayerDragGrid Create(InvOwnerDraglet owner, bool refuelFromLayerDragGrid=false)
virtual int MaxFuel
Definition: Trait.cs:451
virtual bool ShowFuelWindow
Definition: Trait.cs:464
bool IsPCFaction
Definition: Zone.cs:473

References EClass._zone, ActPlan.altAction, Card.c_charges, LayerDragGrid.Create(), Card.disableAutoToggle, Card.isOn, Zone.IsPCFaction, ActPlan.IsSelfOrNeighbor, and ActPlan.TrySetAct().

Referenced by ActPlan._Update().

◆ TryToggle()

virtual void Trait.TryToggle ( )
inlinevirtual

Definition at line 1135 of file Trait.cs.

1136 {
1137 if (!owner.IsInstalled)
1138 {
1139 return;
1140 }
1141 if (Electricity < 0 && owner.isOn && EClass._zone.electricity < 0)
1142 {
1143 Toggle(on: false, silent: true);
1144 }
1145 else if (AutoToggle)
1146 {
1147 int num = ((EClass._map.config.hour == -1) ? EClass.world.date.hour : EClass._map.config.hour);
1148 bool on = !IsNightOnlyLight || num >= 17 || num <= 5 || EClass._map.IsIndoor;
1150 {
1151 on = false;
1152 }
1153 Toggle(on, silent: true);
1154 }
1155 }
bool IsInstalled
Definition: Card.cs:2381
Cell Cell
Definition: Card.cs:2055
bool HasRoof
Definition: Cell.cs:648
int hour
Definition: Date.cs:74
int hour
Definition: MapConfig.cs:95
bool IsIndoor
Definition: Map.cs:131
MapConfig config
Definition: Map.cs:37
virtual bool AutoToggle
Definition: Trait.cs:391
virtual bool IsNightOnlyLight
Definition: Trait.cs:427
bool IsRaining
Definition: Weather.cs:117
Weather weather
Definition: World.cs:12

References EClass._map, EClass._zone, Card.Cell, Map.config, World.date, Spatial.electricity, Cell.HasRoof, Date.hour, MapConfig.hour, Map.IsIndoor, Card.IsInstalled, Card.isOn, Weather.IsRaining, World.weather, and EClass.world.

Referenced by Scene.Init(), Zone.OnSimulateHour(), and Zone.RefreshElectricity().

◆ Uninstall()

void Trait.Uninstall ( )
inline

Definition at line 1109 of file Trait.cs.

1110 {
1111 if (Electricity != 0)
1112 {
1113 if (owner.isOn)
1114 {
1115 Toggle(on: false, silent: true);
1116 }
1117 EClass._zone.dirtyElectricity = true;
1118 if (Electricity > 0)
1119 {
1120 EClass._zone.electricity -= Electricity;
1121 EClass.pc.PlaySound("electricity_off");
1122 }
1123 }
1124 OnUninstall();
1125 }
virtual void OnUninstall()
Definition: Trait.cs:1131

References Card.isOn, EClass.pc, and Card.PlaySound().

Referenced by Card.SetPlaceState().

◆ Update()

virtual void Trait.Update ( )
inlinevirtual

Reimplemented in TraitASMR, TraitDoor, TraitFoodEgg, TraitGeneratorWheel, TraitSpotBiome, and TraitSpotSpawn.

Definition at line 731 of file Trait.cs.

732 {
733 }

◆ WriteNote()

virtual void Trait.WriteNote ( UINote  n,
bool  identified 
)
inlinevirtual

Reimplemented in TraitBookPlan, TraitBookSkill, TraitGene, TraitItem, TraitLetterOfWill, TraitRecipe, TraitRecipeBook, and TraitSeed.

Definition at line 955 of file Trait.cs.

956 {
957 }

Member Data Documentation

◆ listRadiusPoints

List<Point> Trait.listRadiusPoints = new List<Point>()
staticprotected

Definition at line 29 of file Trait.cs.

Referenced by ListPoints(), and TraitLightSun.ListPoints().

◆ owner

Card Trait.owner

Definition at line 27 of file Trait.cs.

Referenced by Chara._Move(), InvOwnerRecycle._OnProcess(), TraitGodStatue._OnUse(), TraitShrine._OnUse(), TraitSwitch.ActivateTrap(), TraitBed.AddHolder(), TraitHouseBoard.ApplyData(), ActMelee.Attack(), FactionBranch.CalcInnIncome(), TraitTrainingDummyArmor.CalcPV(), TraitTrolley.CanActivate(), TraitBed.CanAssign(), TraitNewZone.CanAutoEnter(), TraitDoor.CanClose(), TaskDrawWater.CanProgress(), TaskPourWater.CanProgress(), TraitScroll.CanRead(), TraitAmmo.CanStackTo(), TraitAncientbook.CanStackTo(), TraitFood.CanStackTo(), TraitFoodEggFertilized.CanStackTo(), TraitMonsterBall.CanStackTo(), TraitCrafter.CanUse(), TraitFoodPreparedPackage.CanUse(), TraitGamble.CanUse(), TraitGeneMachine.CanUse(), TraitGeneratorHamster.CanUse(), TraitGeneratorWheel.CanUse(), TraitItem.CanUse(), TraitLoytelMart.CanUse(), TraitMoongate.CanUse(), TraitPowerStatue.CanUse(), TraitShackle.CanUse(), TraitSlotMachine.CanUse(), TraitBed.ClearHolders(), TraitEffect.CompareTo(), Contains(), TraitCrafter.Craft(), TraitPotion.Create(), TraitSpellbook.Create(), TraitRod.Create(), TraitAbility.CreateAct(), TraitCatalyst.CreateAct(), LayerDragGrid.CreateChaosOffering(), LayerDragGrid.CreateCraft(), LayerDragGrid.CreateGacha(), LayerDragGrid.CreateOffering(), LayerDragGrid.CreateRecycle(), TraitNewZone.CreateZone(), AIAct.DoGoto< T >(), BaseTileMap.DrawTile(), TraitDye.Dye(), TraitBoat.ForeachDeck(), AI_Pray.GetAltar(), TraitTile.GetBuildModeRecipe(), TraitFactory.GetCostSp(), TraitItemProc.GetCraftNum(), TraitScrollMapTreasure.GetDest(), Hobby.GetEfficiency(), TraitNewZone.GetExitPos(), TraitStairs.GetExitPos(), TraitBed.GetHoverText(), TraitTrolley.GetIdSound(), GetName(), TraitGene.GetName(), TraitPotionRandom.GetName(), GetPoint(), AI_Trolley.GetPoint(), TraitPotionAlchemy.GetPower(), SurvivalManager.GetRandomPoint(), GetRandomPoint(), TraitTile.GetRecipe(), ZoneEventRaid.GetSpawnPos(), AI_Grab< T >.GetTarget(), TraitGeneMachine.GetTarget(), TeleportManager.GetTeleportZone(), GetValue(), TraitGene.GetValue(), TraitMod.GetValue(), TraitBoat.GetWaterMat(), TraitBed.HasHolder(), TraitChopper.IdleUse(), TraitGamble.IdleUse(), TraitTrainingDummy.IdleUse(), TraitTrap.IgnoreWhenLevitating(), TraitBed.IsFull(), TraitBed.IsHolder(), TraitDoor.IsOpen(), TraitShackle.IsRestraining(), TraitDoor.IsValid(), ListPoints(), TraitLightSun.ListPoints(), TraitBaseSpellbook.ModCharge(), TraitGenerator.ModHP(), TraitNewZone.MoveZone(), TraitHitchingPost.OnActivateTrap(), TraitSeesaw.OnActivateTrap(), TraitTrap.OnActivateTrap(), ConSleep.OnBeforeStart(), TraitDreamBug.OnBlend(), TraitDrink.OnBlend(), TraitWell.OnBlend(), TraitGodStatue.OnChangeMaterial(), TraitHouseBoard.OnChangePlaceState(), TraitTeleporter.OnChangePlaceState(), TraitTent.OnChangePlaceState(), TraitBrewery.OnChildDecay(), TraitBlanket.OnCrafted(), TraitPotionAlchemy.OnCrafted(), TraitBaseContainer.OnCreate(), TraitBaseSpellbook.OnCreate(), TraitBlanket.OnCreate(), TraitBook.OnCreate(), TraitChestPractice.OnCreate(), TraitFakeBlock.OnCreate(), TraitMonsterBall.OnCreate(), TraitPotionRandom.OnCreate(), TraitPowerStatue.OnCreate(), TraitRecipe.OnCreate(), TraitRod.OnCreate(), TraitRodRandom.OnCreate(), TraitSeed.OnCreate(), TraitSpecialLantern.OnCreate(), TraitToolRangeCane.OnCreate(), TraitToolWaterPot.OnCreate(), TaskDrawWater.OnCreateProgress(), TaskPourWater.OnCreateProgress(), TraitDrink.OnDrink(), TraitDrinkMilkMother.OnDrink(), TraitLumiestCrimAle.OnDrink(), AI_UseCrafter.OnEnd(), TraitRollingFortune.OnEndAI(), TraitEQFlower.OnEquip(), TraitAltar.OnImportMap(), TraitASMR.OnImportMap(), TraitBook.OnImportMap(), TraitSwitch.OnInstall(), TraitAltar.OnOffer(), TraitDoorBell.OnOpenDoor(), TraitBaseSpellbook.OnRead(), TraitBookExp.OnRead(), TraitBookSecret.OnRead(), TraitDeed.OnRead(), TraitDeedRelocate.OnRead(), TraitDiary.OnRead(), TraitIndulgence.OnRead(), TraitLicense.OnRead(), TraitRecipe.OnRead(), TraitRecipeCat.OnRead(), TraitScrollMap.OnRead(), TraitScrollStatic.OnRead(), TraitBoat.OnRemovedFromZone(), TraitPaintBoard.OnRenderExtra(), TraitRoadSign.OnRenderTile(), AM_Blueprint.OnSave(), TraitJukeBox.OnSetBGM(), TraitCanvas.OnSetCardGrid(), TraitContainer.OnSetCardGrid(), TraitEquipItem.OnSetCardGrid(), TraitFigure.OnSetCardGrid(), TraitChestPractice.OnSimulateHour(), TraitClock.OnSimulateHour(), TraitFertilizer.OnSimulateHour(), TraitGenerator.OnSimulateHour(), TraitPhone.OnSimulateHour(), GoalSleep.OnSimulatePosition(), TraitCurrencyMedal.OnStepped(), TraitFloorSwitch.OnStepped(), TraitNewZone.OnStepped(), TraitSwing.OnSteppedOut(), TraitDye.OnThrowGround(), ZoneEventPhone.OnTickRound(), TraitJukeBox.OnToggle(), TraitLeverBreaker.OnToggle(), AM_Paint.OnUpdateInput(), TraitAmmo.OnUse(), TraitBank.OnUse(), TraitCatalyst.OnUse(), TraitCrafter.OnUse(), TraitDaggerGrave.OnUse(), TraitEquipItem.OnUse(), TraitFarmChest.OnUse(), TraitFirework.OnUse(), TraitFireworkLauncher.OnUse(), TraitFoodPreparedPackage.OnUse(), TraitGachaBall.OnUse(), TraitGainPrecious.OnUse(), TraitGeneMachine.OnUse(), TraitGeneratorHamster.OnUse(), TraitGiftJure.OnUse(), TraitGiftNewYear.OnUse(), TraitGiftPack.OnUse(), TraitGoodsCoin.OnUse(), TraitHat.OnUse(), TraitItemProc.OnUse(), TraitItemToggle.OnUse(), TraitMannequin.OnUse(), TraitMod.OnUse(), TraitMusicBox.OnUse(), TraitParcel.OnUse(), TraitPlamoBox.OnUse(), TraitPowerStatue.OnUse(), TraitRadio.OnUse(), TraitScrollMapTreasure.OnUse(), TraitShackle.OnUse(), TraitStairsLocked.OnUse(), TraitTape.OnUse(), TraitTaxChest.OnUse(), TraitTerraGlobe.OnUse(), TraitVendingMachine.OnUse(), TraitWaystone.OnUse(), TraitWhistlePeace.OnUse(), TraitFoodMeat.OnUse(), TraitPotionEmpty.OnUse(), TraitContainer.Open(), ActClearWater.Perform(), ActDrawWater.Perform(), ActRanged.Perform(), ActRestrain.Perform(), ActWater.Perform(), ActZap.Perform(), Zone_Dungeon.PlaceRail(), AttackProcess.PlayRangedAnime(), TraitBaseContainer.Prespawn(), TraitChest.Prespawn(), TraitChestOyster.Prespawn(), TraitCoffin.Prespawn(), TraitContainerCurrency.Prespawn(), TraitToolBelt.Prespawn(), TraitEffect.Proc(), TraitBaseContainer.PutChara(), TraitGenerator.Recover(), TraitToolTorch.RefreshRenderer(), TraitBed.RemoveHolder(), TraitDoor.RotateDoor(), AI_Bladder.Run(), AI_GotoHearth.Run(), AI_LeaveMap.Run(), AI_Paint.Run(), AI_Pray.Run(), AI_Torture.Run(), AI_Trolley.Run(), AI_UseCrafter.Run(), GoalSleep.Run(), TaskWater.Run(), TraitDetector.Search(), TraitBed.SetBedType(), LayerPixelPaint.SetCanvas(), TraitAltar.SetDeity(), TeleportManager.SetID(), TraitAbility.SetMainText(), TraitAbility.SetName(), TraitAltar.SetName(), TraitAmmoTalisman.SetName(), TraitBaseContainer.SetName(), TraitBaseSpellbook.SetName(), TraitBed.SetName(), TraitBloodSample.SetName(), TraitBlueprint.SetName(), TraitGenerator.SetName(), TraitMonsterBall.SetName(), TraitParcel.SetName(), TraitRecipeCat.SetName(), TraitScrollMap.SetName(), TraitTape.SetName(), TraitToolWaterPot.SetName(), SetOwner(), TraitGenerator.ShortOut(), AI_Trolley.Stop(), TraitAltar.TakeOver(), ActThrow.Throw(), ConSuspend.Tick(), TraitDoor.ToggleDoor(), TraitDoorAutoShoji.ToggleDoor(), TraitDoorSwing.ToggleDoor(), TraitToolTorch.ToggleOn(), TraitSwitch.TryDisarmTrap(), TraitContainer.TryOpen(), TraitDoor.TryOpen(), TraitBaseSpellbook.TryProgress(), TraitAltar.TrySetAct(), TraitAltarChaos.TrySetAct(), TraitBath.TrySetAct(), TraitBed.TrySetAct(), TraitBuildBoard.TrySetAct(), TraitCanvas.TrySetAct(), TraitContainer.TrySetAct(), TraitCoreZone.TrySetAct(), TraitCrafter.TrySetAct(), TraitDeliveryChest.TrySetAct(), TraitDoor.TrySetAct(), TraitDrawingPaper.TrySetAct(), TraitEffect.TrySetAct(), TraitElevator.TrySetAct(), TraitFactionBoard.TrySetAct(), TraitFigure.TrySetAct(), TraitGacha.TrySetAct(), TraitHoard.TrySetAct(), TraitHomeBoard.TrySetAct(), TraitHouseBoard.TrySetAct(), TraitMapBoard.TrySetAct(), TraitMirror.TrySetAct(), TraitNewspaper.TrySetAct(), TraitNewZone.TrySetAct(), TraitNote.TrySetAct(), TraitPaintBoard.TrySetAct(), TraitPillowStrange.TrySetAct(), TraitQuestBoard.TrySetAct(), TraitResearchBoard.TrySetAct(), TraitResidentBoard.TrySetAct(), TraitRoomPlate.TrySetAct(), TraitSpecialLantern.TrySetAct(), TraitSwitch.TrySetAct(), TraitTeleporter.TrySetAct(), TraitToolMusic.TrySetAct(), TraitToolMusicBig.TrySetAct(), TraitTrainingDummy.TrySetAct(), TraitWaystone.TrySetAct(), TraitWell.TrySetAct(), TraitCatalyst.TrySetHeldAct(), TraitDetector.TrySetHeldAct(), TraitFakeBlock.TrySetHeldAct(), TraitRod.TrySetHeldAct(), TraitSalesTag.TrySetHeldAct(), TraitSyringeGene.TrySetHeldAct(), TraitSyringeHeaven.TrySetHeldAct(), TraitToolBuild.TrySetHeldAct(), TraitToolSickle.TrySetHeldAct(), TraitToolTorch.TrySetHeldAct(), TraitToolWaterCan.TrySetHeldAct(), TraitToolWaterPot.TrySetHeldAct(), HotItemHeld.TrySetToolAct(), TraitSeed.TrySprout(), TraitTeleporter.TryTeleport(), TraitASMR.Update(), TraitFoodEgg.Update(), TraitSpotBiome.Update(), TraitSpotSpawn.Update(), FactionBranch.Upgrade(), TraitBed.ValidateOwners(), and TraitGene.WriteNote().

◆ SelfFactory

TraitSelfFactory Trait.SelfFactory = new TraitSelfFactory()
static

Property Documentation

◆ AllowCriminal

virtual bool Trait.AllowCriminal
get

Definition at line 550 of file Trait.cs.

◆ AllowSell

virtual bool Trait.AllowSell
get

Definition at line 526 of file Trait.cs.

527 {
528 get
529 {
530 if (CurrencyType != CurrencyType.Money)
531 {
532 return CurrencyType == CurrencyType.None;
533 }
534 return true;
535 }
536 }

◆ AlwaysHideOnLowWall

virtual bool Trait.AlwaysHideOnLowWall
get

Definition at line 354 of file Trait.cs.

Referenced by BaseTileMap.DrawTile().

◆ AutoToggle

virtual bool Trait.AutoToggle
get

Definition at line 390 of file Trait.cs.

391 {
392 get
393 {
394 if (IsLighting || ToggleType == ToggleType.Curtain || ToggleType == ToggleType.Electronics)
395 {
396 return !owner.disableAutoToggle;
397 }
398 return false;
399 }
400 }
bool IsLighting
Definition: Trait.cs:403

◆ CanAutofire

virtual bool Trait.CanAutofire
get

Definition at line 144 of file Trait.cs.

Referenced by Thing.CanAutoFire().

◆ CanBeAttacked

virtual bool Trait.CanBeAttacked
get

◆ CanBeDestroyed

◆ CanBeDisassembled

virtual bool Trait.CanBeDisassembled
get

Definition at line 306 of file Trait.cs.

307 {
308 get
309 {
310 if (CanBeDestroyed && !(this is TraitTrap) && owner.things.Count == 0)
311 {
312 return owner.rarity < Rarity.Artifact;
313 }
314 return false;
315 }
316 }
virtual bool CanBeDestroyed
Definition: Trait.cs:296

Referenced by TaskHarvest.TryGetAct().

◆ CanBeDropped

◆ CanBeHallucinated

virtual bool Trait.CanBeHallucinated
get

Definition at line 300 of file Trait.cs.

Referenced by CardRenderer.Draw().

◆ CanBeHeld

virtual bool Trait.CanBeHeld
get

◆ CanBeHeldAsFurniture

virtual bool Trait.CanBeHeldAsFurniture
get

Definition at line 338 of file Trait.cs.

339 {
340 get
341 {
342 if (!(this is TraitTool))
343 {
344 return IsThrowMainAction;
345 }
346 return true;
347 }
348 }
virtual bool IsThrowMainAction
Definition: Trait.cs:183

◆ CanBeMasked

virtual bool Trait.CanBeMasked
get

Definition at line 260 of file Trait.cs.

◆ CanBeOnlyBuiltInHome

virtual bool Trait.CanBeOnlyBuiltInHome
get

◆ CanBeShipped

virtual bool Trait.CanBeShipped
get

Definition at line 318 of file Trait.cs.

319 {
320 get
321 {
322 if (!owner.IsImportant)
323 {
324 return !owner.IsUnique;
325 }
326 return false;
327 }
328 }
bool IsImportant
Definition: Card.cs:2105

Referenced by TraitSalesTag.CanTagSale(), and GameDate.ShipGoods().

◆ CanBeSmashedToDeath

virtual bool Trait.CanBeSmashedToDeath
get

Definition at line 298 of file Trait.cs.

Referenced by Card.Die().

◆ CanBeStolen

virtual bool Trait.CanBeStolen
get

Definition at line 282 of file Trait.cs.

283 {
284 get
285 {
286 if (!CanOnlyCarry)
287 {
288 return CanBeHeld;
289 }
290 return false;
291 }
292 }
virtual bool CanBeHeld
Definition: Trait.cs:280

Referenced by AI_Steal.CanPerform(), ThingContainer.FindStealable(), AI_Steal.IsValidTC(), and TraitTicketFurniture.TrySetHeldAct().

◆ CanBeTeleported

virtual bool Trait.CanBeTeleported
get

Definition at line 168 of file Trait.cs.

Referenced by Card.Teleport().

◆ CanBuildInTown

virtual bool Trait.CanBuildInTown
get

Definition at line 268 of file Trait.cs.

269 {
270 get
271 {
273 {
275 }
276 return false;
277 }
278 }
TileType TileType
Definition: Card.cs:2135
virtual bool IsBlockSight
Definition: TileType.cs:157
virtual bool IsBlockPass
Definition: TileType.cs:153

Referenced by HotItemHeld.CanRotate(), TaskBuild.CanRotateBlock(), and TaskBuild.GetHitResult().

◆ CanChangeAffinity

virtual bool Trait.CanChangeAffinity
get

Definition at line 560 of file Trait.cs.

Referenced by DramaActor.Talk().

◆ CanChangeHeight

virtual bool Trait.CanChangeHeight
get

Definition at line 150 of file Trait.cs.

Referenced by HotItemHeld.CanChangeHeightByWheel().

◆ CanCopyInBlueprint

virtual bool Trait.CanCopyInBlueprint
get

Definition at line 154 of file Trait.cs.

155 {
156 get
157 {
158 if (owner.rarity <= Rarity.Superior && owner.sourceCard.value > 0)
159 {
160 return CanBeDestroyed;
161 }
162 return false;
163 }
164 }

Referenced by AM_Copy.HitTest(), PartialMap.Save(), and Map.Save().

◆ CanExtendBuild

virtual bool Trait.CanExtendBuild
get

Definition at line 170 of file Trait.cs.

Referenced by Chara.CanAcceptGift(), ActThrow.CanThrow(), and HotItemHeld.TrySetAct().

◆ CanHarvest

virtual bool Trait.CanHarvest
get

Definition at line 91 of file Trait.cs.

Referenced by TaskHarvest.TryGetAct().

◆ CanName

virtual bool Trait.CanName
get

Definition at line 146 of file Trait.cs.

Referenced by ActPlan._Update().

◆ CanOnlyCarry

◆ CanOpenContainer

virtual bool Trait.CanOpenContainer
get

Definition at line 234 of file Trait.cs.

235 {
236 get
237 {
238 if (IsContainer)
239 {
240 return !owner.isNPCProperty;
241 }
242 return false;
243 }
244 }
bool isNPCProperty
Definition: Card.cs:554
virtual bool IsContainer
Definition: Trait.cs:214

Referenced by InvOwner.CanOpenContainer(), TraitBaseContainer.Prespawn(), and TraitContainer.TrySetAct().

◆ CanPutAway

virtual bool Trait.CanPutAway
get

Definition at line 148 of file Trait.cs.

◆ CanSearchContent

virtual bool Trait.CanSearchContent
get

Definition at line 218 of file Trait.cs.

219 {
220 get
221 {
222 if (!owner.isChara)
223 {
224 if (IsContainer)
225 {
226 return owner.c_lockLv == 0;
227 }
228 return false;
229 }
230 return true;
231 }
232 }

Referenced by ThingContainer._List().

◆ CanStack

virtual bool Trait.CanStack
get

◆ CanUseContent

virtual bool Trait.CanUseContent
get

Definition at line 216 of file Trait.cs.

Referenced by QuestDeliver.IsDestThing().

◆ CanUseRoomRadius

virtual bool Trait.CanUseRoomRadius
get

Definition at line 97 of file Trait.cs.

Referenced by ListPoints().

◆ ColorExtra

virtual ? Color Trait.ColorExtra
get

Definition at line 448 of file Trait.cs.

◆ ContainerType

virtual ContainerType Trait.ContainerType
get

Definition at line 248 of file Trait.cs.

◆ CopyShop

virtual CopyShopType Trait.CopyShop
get

Definition at line 516 of file Trait.cs.

Referenced by OnBarter().

◆ CostRerollShop

virtual int Trait.CostRerollShop
get

Definition at line 538 of file Trait.cs.

539 {
540 get
541 {
542 if (CurrencyType == CurrencyType.Money || CurrencyType == CurrencyType.Influence)
543 {
544 return 1;
545 }
546 return 0;
547 }
548 }

Referenced by LayerInventory.CreateBuy(), and UIInventory.SwitchTab().

◆ CraftNum

virtual int Trait.CraftNum
get

◆ CurrencyType

virtual CurrencyType Trait.CurrencyType
get

Definition at line 522 of file Trait.cs.

Referenced by TraitVendingMachine.OnUse().

◆ Decay

virtual int Trait.Decay
get

Definition at line 122 of file Trait.cs.

Referenced by Card.DecayNatural(), and Zone.TryAddThingInSharedContainer().

◆ DecaySpeed

virtual int Trait.DecaySpeed
get

Definition at line 124 of file Trait.cs.

◆ DecaySpeedChild

virtual int Trait.DecaySpeedChild
get

Definition at line 126 of file Trait.cs.

◆ DefaultStock

virtual int Trait.DefaultStock
get

Definition at line 130 of file Trait.cs.

Referenced by OnBarter().

◆ DisableAutoCombat

virtual bool Trait.DisableAutoCombat
get

Definition at line 200 of file Trait.cs.

Referenced by ActPlan._Update().

◆ DropChance

virtual float Trait.DropChance
get

Definition at line 360 of file Trait.cs.

Referenced by Card.SpawnLoot().

◆ EffectDead

virtual EffectDead Trait.EffectDead
get

Definition at line 252 of file Trait.cs.

Referenced by Card.Die().

◆ Electricity

◆ ExistsOnMap

bool Trait.ExistsOnMap
get

Definition at line 356 of file Trait.cs.

Referenced by AI_Pray.IsValid(), AI_Bladder.Run(), and AI_Paint.Run().

◆ FuelCost

virtual int Trait.FuelCost
get

Definition at line 462 of file Trait.cs.

Referenced by AI_UseCrafter.Run().

◆ GuidePriotiy

virtual int Trait.GuidePriotiy
get

Definition at line 99 of file Trait.cs.

Referenced by DramaCustomSequence.GetListGuide().

◆ HasCharges

virtual bool Trait.HasCharges
get

Definition at line 330 of file Trait.cs.

Referenced by Thing.GetName(), and Card.GetPrice().

◆ HaveUpdate

virtual bool Trait.HaveUpdate
get

Definition at line 138 of file Trait.cs.

◆ HideInAdv

virtual bool Trait.HideInAdv
get

Definition at line 350 of file Trait.cs.

◆ HoldAsDefaultInteraction

virtual bool Trait.HoldAsDefaultInteraction
get

Definition at line 132 of file Trait.cs.

Referenced by InvOwner.GetAutoUseLang().

◆ IDActorEx

virtual string Trait.IDActorEx
get

Definition at line 176 of file Trait.cs.

Referenced by Map._AddCard(), Scene.AddActorEx(), Scene.RebuildActorEx(), and Zone.RemoveCard().

◆ IDInvStyle

virtual string Trait.IDInvStyle
get

Definition at line 174 of file Trait.cs.

◆ IdleUseChance

virtual int Trait.IdleUseChance
get

Definition at line 364 of file Trait.cs.

Referenced by AI_Idle.TryPerformIdleUse().

◆ IdNoRestock

virtual string Trait.IdNoRestock
get

Definition at line 362 of file Trait.cs.

Referenced by OnBarter().

◆ IdSkin

virtual int Trait.IdSkin
get

Definition at line 45 of file Trait.cs.

Referenced by Card.GetSprite(), and ButtonGrid.SetRecipe().

◆ IdSoundToggleOff

virtual string Trait.IdSoundToggleOff
get

Definition at line 498 of file Trait.cs.

499 {
500 get
501 {
502 if (Electricity >= 0)
503 {
504 if (ToggleType != ToggleType.Fire)
505 {
506 return "switch_off";
507 }
508 return "torch_unlit";
509 }
510 return "switch_off_electricity";
511 }
512 }

◆ IdSoundToggleOn

virtual string Trait.IdSoundToggleOn
get

Definition at line 482 of file Trait.cs.

483 {
484 get
485 {
486 if (Electricity >= 0)
487 {
488 if (ToggleType != ToggleType.Fire)
489 {
490 return "switch_on";
491 }
492 return "torch_lit";
493 }
494 return "switch_on_electricity";
495 }
496 }

◆ IdToggleExtra

string Trait.IdToggleExtra
get

Definition at line 468 of file Trait.cs.

◆ IgnoreLastStackHeight

virtual bool Trait.IgnoreLastStackHeight
get

Definition at line 120 of file Trait.cs.

Referenced by BaseTileMap.DrawTile(), and BaseTileMap.GetThingPosition().

◆ IgnoreOnSteppedWhenMoving

virtual bool Trait.IgnoreOnSteppedWhenMoving
get

Definition at line 372 of file Trait.cs.

Referenced by Chara.Tick().

◆ InstallBottomPriority

virtual int Trait.InstallBottomPriority
get

Definition at line 89 of file Trait.cs.

Referenced by Card.SetPlaceState().

◆ InvertHeldSprite

virtual bool Trait.InvertHeldSprite
get

Definition at line 71 of file Trait.cs.

Referenced by CharaActorPCC.OnRender().

◆ InvGridSize

virtual InvGridSize Trait.InvGridSize
get

Definition at line 202 of file Trait.cs.

203 {
204 get
205 {
206 if (!owner.IsPC)
207 {
208 return InvGridSize.Default;
209 }
210 return InvGridSize.Backpack;
211 }
212 }
InvGridSize
Definition: InvGridSize.cs:2
virtual bool IsPC
Definition: Card.cs:2143

◆ IsAltar

virtual bool Trait.IsAltar
get

Definition at line 256 of file Trait.cs.

Referenced by TraitManager.OnAddCard(), and TraitManager.OnRemoveCard().

◆ IsAnimeOn

virtual bool Trait.IsAnimeOn
get

Definition at line 376 of file Trait.cs.

377 {
378 get
379 {
380 if (!IsOn)
381 {
382 return !IsToggle;
383 }
384 return true;
385 }
386 }
bool IsToggle
Definition: Trait.cs:388
virtual bool IsOn
Definition: Trait.cs:374

◆ IsBlendBase

virtual bool Trait.IsBlendBase
get

Definition at line 264 of file Trait.cs.

Referenced by ActPlan._Update().

◆ IsBlockPath

virtual bool Trait.IsBlockPath
get

Definition at line 53 of file Trait.cs.

Referenced by Chara.DestroyPath(), GenBounds.ListEmptyPoint(), and Cell.Refresh().

◆ IsBlockSight

virtual bool Trait.IsBlockSight
get

Definition at line 55 of file Trait.cs.

Referenced by Cell.Refresh().

◆ IsChangeFloorHeight

virtual bool Trait.IsChangeFloorHeight
get

Definition at line 73 of file Trait.cs.

Referenced by Chara._Move(), BaseTileMap.DrawTile(), and BaseTileMap.GetThingPosition().

◆ IsContainer

virtual bool Trait.IsContainer
get

◆ IsDoor

virtual bool Trait.IsDoor
get

◆ IsFactory

◆ IsFloating

virtual bool Trait.IsFloating
get

Definition at line 63 of file Trait.cs.

Referenced by Cell.Refresh().

◆ IsFridge

virtual bool Trait.IsFridge
get

Definition at line 128 of file Trait.cs.

Referenced by ThingContainer.IsFull(), and UIInventory.RefreshMenu().

◆ IsGround

virtual bool Trait.IsGround
get

Definition at line 67 of file Trait.cs.

Referenced by BaseTileMap.DrawTile(), PointTarget.ShouldIgnore(), and AM_Picker.TestThing().

◆ IsHomeItem

virtual bool Trait.IsHomeItem
get

Definition at line 254 of file Trait.cs.

◆ IsLighting

bool Trait.IsLighting
get

Definition at line 402 of file Trait.cs.

403 {
404 get
405 {
406 if (ToggleType != ToggleType.Fire)
407 {
408 return ToggleType == ToggleType.Light;
409 }
410 return true;
411 }
412 }

◆ IsLightOn

virtual bool Trait.IsLightOn
get

Definition at line 414 of file Trait.cs.

415 {
416 get
417 {
418 if (!owner.isChara)
419 {
420 return owner.isOn;
421 }
422 return true;
423 }
424 }

Referenced by Card.GetLightRadius().

◆ IsLocalAct

virtual bool Trait.IsLocalAct
get

Definition at line 262 of file Trait.cs.

Referenced by HotItemHeld.TrySetAct().

◆ IsNightOnlyLight

virtual bool Trait.IsNightOnlyLight
get

Definition at line 426 of file Trait.cs.

427 {
428 get
429 {
430 if (ToggleType != ToggleType.Electronics && IsToggle)
431 {
432 return !owner.isRoofItem;
433 }
434 return false;
435 }
436 }
bool isRoofItem
Definition: Card.cs:578

◆ IsNoShop

virtual bool Trait.IsNoShop
get

Definition at line 65 of file Trait.cs.

Referenced by OnBarter().

◆ IsOn

virtual bool Trait.IsOn
get

Definition at line 374 of file Trait.cs.

Referenced by TraitASMR.Update().

◆ IsOnlyUsableByPc

virtual bool Trait.IsOnlyUsableByPc
get

Definition at line 69 of file Trait.cs.

◆ IsOpenPath

virtual bool Trait.IsOpenPath
get

Definition at line 61 of file Trait.cs.

Referenced by Cell.Refresh().

◆ IsOpenSight

virtual bool Trait.IsOpenSight
get

Definition at line 59 of file Trait.cs.

Referenced by Cell.Refresh().

◆ IsRequireFuel

bool Trait.IsRequireFuel
get

Definition at line 466 of file Trait.cs.

Referenced by AI_UseCrafter.Run(), LayerCraft.SetFactory(), and LayerDragGrid.SetInv().

◆ IsRestSpot

virtual bool Trait.IsRestSpot
get

Definition at line 258 of file Trait.cs.

Referenced by TraitManager.OnAddCard(), and TraitManager.OnRemoveCard().

◆ IsSpecialContainer

virtual bool Trait.IsSpecialContainer
get

◆ IsSpot

virtual bool Trait.IsSpot
get

Definition at line 140 of file Trait.cs.

◆ IsThrowMainAction

virtual bool Trait.IsThrowMainAction
get

Definition at line 182 of file Trait.cs.

183 {
184 get
185 {
186 if (!owner.HasTag(CTAG.throwWeapon))
187 {
188 return owner.IsMeleeWeapon;
189 }
190 return true;
191 }
192 }
CTAG
Definition: CTAG.cs:2
bool HasTag(CTAG tag)
Definition: Card.cs:2595
bool IsMeleeWeapon
Definition: Card.cs:2241

Referenced by HotItemHeld.TrySetAct().

◆ IsToggle

bool Trait.IsToggle
get

Definition at line 388 of file Trait.cs.

◆ IsTool

virtual bool Trait.IsTool
get

◆ LangBarter

virtual string Trait.LangBarter
get

Definition at line 556 of file Trait.cs.

◆ langNote

virtual string Trait.langNote
get

Definition at line 172 of file Trait.cs.

Referenced by TraitItem.WriteNote().

◆ LangUse

virtual string Trait.LangUse
get

Definition at line 370 of file Trait.cs.

Referenced by HotItemHeld.TrySetAct(), and TraitDetector.TrySetHeldAct().

◆ LevelAsQuality

virtual bool Trait.LevelAsQuality
get

Definition at line 194 of file Trait.cs.

Referenced by Card.Create().

◆ MaskOnBuild

virtual bool Trait.MaskOnBuild
get

Definition at line 178 of file Trait.cs.

Referenced by RecipeCard.Build().

◆ MaxFuel

virtual int Trait.MaxFuel
get

Definition at line 450 of file Trait.cs.

451 {
452 get
453 {
454 if (ToggleType != ToggleType.Fire)
455 {
456 return 0;
457 }
458 return 100;
459 }
460 }

Referenced by LayerDragGrid.RefreshCost(), and LayerCraft.RefreshProduct().

◆ Name

virtual string Trait.Name
get

Definition at line 47 of file Trait.cs.

Referenced by LayerHome.RefreshSpots(), and TraitRecipe.SetName().

◆ NoHeldDir

virtual bool Trait.NoHeldDir
get

Definition at line 352 of file Trait.cs.

Referenced by CharaRenderer.DrawHeld().

◆ NumCopyItem

virtual int Trait.NumCopyItem
get

Definition at line 518 of file Trait.cs.

Referenced by OnBarter().

◆ OriginalElectricity

virtual int Trait.OriginalElectricity
get

Definition at line 101 of file Trait.cs.

102 {
103 get
104 {
105 if (!owner.isThing)
106 {
107 return 0;
108 }
109 int electricity = owner.Thing.source.electricity;
110 if (electricity > 0 || EClass._zone == null || EClass._zone.branch == null)
111 {
112 return electricity;
113 }
114 return electricity * 100 / (100 + EClass._zone.branch.Evalue(2700) / 2);
115 }
116 }
int Evalue(int ele)
FactionBranch branch
Definition: Zone.cs:34

◆ Params

string [] Trait.Params
get

Definition at line 31 of file Trait.cs.

32 {
33 get
34 {
35 if (!owner.c_editorTraitVal.IsEmpty())
36 {
37 return ("," + owner.c_editorTraitVal).Split(',');
38 }
39 return owner.sourceCard.trait;
40 }
41 }
string[] trait
Definition: CardRow.cs:33
string c_editorTraitVal
Definition: Card.cs:1713

Referenced by GetParam(), and GetParamInt().

◆ PriceType

virtual PriceType Trait.PriceType
get

Definition at line 524 of file Trait.cs.

Referenced by TraitVendingMachine.OnUse().

◆ radius

virtual int Trait.radius
get

◆ radiusType

virtual TraitRadiusType Trait.radiusType
get

Definition at line 95 of file Trait.cs.

Referenced by ListPoints().

◆ RecipeCat

virtual string Trait.RecipeCat
get

Definition at line 366 of file Trait.cs.

Referenced by BuildMenu.RefreshCategory().

◆ RefCardName

virtual RefCardName Trait.RefCardName
get

Definition at line 51 of file Trait.cs.

◆ RemoveGlobalOnBanish

virtual bool Trait.RemoveGlobalOnBanish
get

Definition at line 558 of file Trait.cs.

Referenced by FactionBranch.BanishMember().

◆ RenderExtra

virtual bool Trait.RenderExtra
get

Definition at line 358 of file Trait.cs.

Referenced by CardRenderer.Draw().

◆ ReqHarvest

virtual string Trait.ReqHarvest
get

Definition at line 304 of file Trait.cs.

Referenced by BaseTaskHarvest.SetTarget(), and TaskHarvest.TryGetAct().

◆ RequireFullStackCheck

virtual bool Trait.RequireFullStackCheck
get

Definition at line 198 of file Trait.cs.

◆ RestockDay

virtual int Trait.RestockDay
get

Definition at line 552 of file Trait.cs.

◆ ShopLv

virtual int Trait.ShopLv
get

Definition at line 514 of file Trait.cs.

◆ ShopType

virtual ShopType Trait.ShopType
get

Definition at line 520 of file Trait.cs.

Referenced by Zone.GetRandomVisitPos().

◆ ShouldRefreshTile

virtual bool Trait.ShouldRefreshTile
get

Definition at line 75 of file Trait.cs.

76 {
77 get
78 {
79 if (!IsBlockPath && !IsOpenSight)
80 {
81 return IsBlockSight;
82 }
83 return true;
84 }
85 }
virtual bool IsBlockPath
Definition: Trait.cs:53
virtual bool IsBlockSight
Definition: Trait.cs:55
virtual bool IsOpenSight
Definition: Trait.cs:59

Referenced by Cell.AddCard(), Cell.RemoveCard(), and Card.SetPlaceState().

◆ ShouldTryRefreshRoom

virtual bool Trait.ShouldTryRefreshRoom
get

Definition at line 87 of file Trait.cs.

Referenced by Card.SetPlaceState().

◆ ShowAsTool

virtual bool Trait.ShowAsTool
get

Definition at line 336 of file Trait.cs.

Referenced by CharaRenderer.Draw(), and CharaActorPCC.OnRender().

◆ ShowCharges

virtual bool Trait.ShowCharges
get

Definition at line 332 of file Trait.cs.

Referenced by Thing.GetName().

◆ ShowChildrenNumber

virtual bool Trait.ShowChildrenNumber
get

Definition at line 334 of file Trait.cs.

◆ ShowContextOnPick

virtual bool Trait.ShowContextOnPick
get

Definition at line 180 of file Trait.cs.

Referenced by AM_MoveInstalled.OnProcessTiles().

◆ ShowFuelWindow

virtual bool Trait.ShowFuelWindow
get

Definition at line 464 of file Trait.cs.

◆ ShowOrbit

virtual bool Trait.ShowOrbit
get

Definition at line 136 of file Trait.cs.

Referenced by CardRenderer.TrySpawnOrbit().

◆ SlaverType

virtual SlaverType Trait.SlaverType
get

Definition at line 554 of file Trait.cs.

◆ TextNextRestock

string Trait.TextNextRestock
get

Definition at line 562 of file Trait.cs.

◆ TextNextRestockPet

string Trait.TextNextRestockPet
get

Definition at line 564 of file Trait.cs.

◆ ThrowType

virtual ThrowType Trait.ThrowType
get

Definition at line 250 of file Trait.cs.

Referenced by Card.Die(), and ActThrow.Throw().

◆ tileMode

virtual TileMode Trait.tileMode
get

Definition at line 438 of file Trait.cs.

◆ tileType

virtual TileType Trait.tileType
get

◆ ToggleType

virtual ToggleType Trait.ToggleType
get

Definition at line 470 of file Trait.cs.

471 {
472 get
473 {
474 if (Electricity >= 0)
475 {
476 return ToggleType.None;
477 }
478 return ToggleType.Electronics;
479 }
480 }

Referenced by ThingContainer.AddFactory(), Card.AddThing(), and RecipeUpdater.RunRecipe().

◆ UseAltTiles

virtual bool Trait.UseAltTiles
get

Definition at line 440 of file Trait.cs.

◆ UseDummyTile

virtual bool Trait.UseDummyTile
get

Definition at line 196 of file Trait.cs.

Referenced by CardRenderer.Draw().

◆ UseExtra

virtual bool Trait.UseExtra
get

Definition at line 444 of file Trait.cs.

◆ UseLightColor

virtual bool Trait.UseLightColor
get

Definition at line 446 of file Trait.cs.

◆ UseLowblock

virtual bool Trait.UseLowblock
get

Definition at line 442 of file Trait.cs.

Referenced by BaseTileMap.DrawTile().

◆ WeightMod

virtual byte Trait.WeightMod
get

Definition at line 43 of file Trait.cs.

Referenced by Cell.Refresh().


The documentation for this class was generated from the following file: