Elin Decompiled Documentation EA 23.357 Nightly
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 TraitCoreUser TraitCoreZone TraitCrafter TraitCurrency TraitCurtain TraitDeedWedding TraitDice TraitDoor TraitDoorBell TraitDoorBoat TraitDoorFrame TraitDreamBug TraitDresser TraitDrink TraitDye TraitEQ TraitEcoMark TraitEditorSign TraitEternalMonument TraitFakeTile TraitFertilizer TraitFigure TraitFlyer TraitFood TraitFortuneBall TraitGacha TraitGene TraitGenerator TraitGeyser 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 TraitSpeaker TraitSpot TraitSpotExit TraitSpotSearch TraitSpotSpawn TraitStairsCover TraitSwing TraitSwitch TraitSyringe TraitThrown TraitTicketFurniture TraitTicketMassage TraitTile TraitTool TraitTorch TraitTrainingDummy TraitTravel TraitTreeEther TraitVoidgate TraitWaystone TraitWeightScale TraitWell TraitWindow TraitWrench

Public Types

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

Public Member Functions

string GetParam (int i, string def=null)
 
int GetParamInt (int i, int def)
 
virtual SourcePref GetPref ()
 
virtual RenderData GetRenderData ()
 
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 void OnListInteraction (InvOwner.ListInteraction list, ButtonGrid b, bool context)
 
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< Point > ListPoints (Point center=null, bool onlyPassable=true, bool allowChara=true)
 
virtual Recipe GetRecipe ()
 
virtual Recipe GetBuildModeRecipe ()
 
virtual bool CanCook (Card c)
 
void CookProgress ()
 
virtual bool CanOffer (Chara cc, Card tg)
 
void OfferProcess (Chara cc)
 
void Offer (Chara cc)
 
virtual bool TryProgress (AIProgress p)
 
virtual LockOpenState TryOpenLock (Chara cc, bool msgFail=true)
 
virtual LockOpenState TryPryOpenLock (Chara cc, bool msgFail=true)
 
void DamageRandomProperty (Chara cc)
 
virtual void OnLockOpen (Chara cc)
 
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 OnDie ()
 
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 PositionFix (ref Vector3 v)
 
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 ()
 
virtual 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< Point > listRadiusPoints = 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 UsePositionFix [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 CurrencyType CurrencyRerollShop [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 (long _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 19 of file Trait.cs.

◆ TileMode

Enumerator
Default 
Door 
Illumination 
DefaultNoAnime 
SignalAnime 
FakeBlock 
FakeObj 

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 644 of file Trait.cs.

645 {
646 return false;
647 }

Referenced by InvOwnerBlend.ShouldShowGuide().

◆ CanBuiltAt()

virtual bool Trait.CanBuiltAt ( Point  p)
inlinevirtual

Reimplemented in TraitSpotExit.

Definition at line 836 of file Trait.cs.

837 {
838 return true;
839 }

Referenced by TileType._HitTest().

◆ CanChildDecay()

virtual bool Trait.CanChildDecay ( Card  c)
inlinevirtual

Reimplemented in TraitBrewery, and TraitContainerCompost.

Definition at line 1264 of file Trait.cs.

1265 {
1266 return false;
1267 }

Referenced by Card.DecayNatural().

◆ CanCook()

virtual bool Trait.CanCook ( Card  c)
inlinevirtual

Definition at line 935 of file Trait.cs.

936 {
937 if (c == null || !ExistsOnMap || !(c.trait is TraitFood))
938 {
939 return false;
940 }
941 return true;
942 }
Trait trait
Definition: Card.cs:54
bool ExistsOnMap
Definition: Trait.cs:367

References Card.trait.

Referenced by AI_Cook.IsValidTarget().

◆ CanCopy()

virtual bool Trait.CanCopy ( Thing  t)
inlinevirtual

Reimplemented in TraitDemitas, and TraitKettle.

Definition at line 1660 of file Trait.cs.

1661 {
1662 return false;
1663 }

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 1184 of file Trait.cs.

1185 {
1186 return false;
1187 }

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

◆ CanEat()

virtual bool Trait.CanEat ( Chara  c)
inlinevirtual

Reimplemented in TraitFood, and TraitFoodPreparedPackage.

Definition at line 1175 of file Trait.cs.

1176 {
1177 return owner.HasElement(10);
1178 }
bool HasElement(int ele, bool includeNagative=false)
Definition: Card.cs:6383
Card owner
Definition: Trait.cs:28

References Card.HasElement().

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

◆ CanOffer()

virtual bool Trait.CanOffer ( Chara  cc,
Card  tg 
)
inlinevirtual

Reimplemented in TraitAltar.

Definition at line 957 of file Trait.cs.

958 {
959 if (tg == null || tg.isChara || tg.trait.CanOnlyCarry)
960 {
961 return false;
962 }
963 if (tg.rarity == Rarity.Artifact)
964 {
965 return false;
966 }
967 return true;
968 }
Rarity
Definition: Rarity.cs:2
Rarity rarity
Definition: Card.cs:317
virtual bool isChara
Definition: Card.cs:2135
virtual bool CanOnlyCarry
Definition: Trait.cs:305

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 1166 of file Trait.cs.

1167 {
1168 return false;
1169 }

Referenced by ActPlan._Update(), HotItemHeld.GetSelfAct(), OnListInteraction(), 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 1202 of file Trait.cs.

1203 {
1204 return false;
1205 }

◆ CanUse() [3/3]

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

Reimplemented in TraitPotionEmpty.

Definition at line 1207 of file Trait.cs.

1208 {
1209 return false;
1210 }

◆ CompareTo()

virtual int Trait.CompareTo ( Card  b)
inlinevirtual

Reimplemented in TraitEffect.

Definition at line 831 of file Trait.cs.

832 {
833 return 0;
834 }

Referenced by Card.SecondaryCompare().

◆ Contains()

virtual bool Trait.Contains ( RecipeSource  r)
inlinevirtual

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

Definition at line 619 of file Trait.cs.

620 {
621 return r.idFactory == ((owner.sourceCard.origin != null) ? owner.sourceCard.origin.id : owner.id);
622 }
CardRow origin
Definition: CardRow.cs:49
string id
Definition: CardRow.cs:7
string id
Definition: Card.cs:36
virtual CardRow sourceCard
Definition: Card.cs:2183

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

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

◆ CookProgress()

void Trait.CookProgress ( )
inline

Definition at line 944 of file Trait.cs.

945 {
946 if (!ExistsOnMap)
947 {
948 return;
949 }
950 foreach (Card item in owner.pos.ListCards())
951 {
952 owner.PlaySound("cook");
953 item.renderer.PlayAnime(AnimeID.Jump);
954 }
955 }
AnimeID
Definition: AnimeID.cs:2
Definition: Card.cs:11
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:6645
Point pos
Definition: Card.cs:60
List< Card > ListCards(bool includeMasked=false)
Definition: Point.cs:1053

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

Referenced by AI_Cook.Run().

◆ CreateStock()

Thing Trait.CreateStock ( )
inline

Definition at line 2539 of file Trait.cs.

2540 {
2541 switch (ShopType)
2542 {
2543 case ShopType.Dye:
2544 {
2545 Thing thing4 = ThingGen.Create("dye").SetNum(15 + EClass.rnd(30));
2546 thing4.ChangeMaterial(EClass.sources.materials.rows.Where((SourceMaterial.Row r) => r.tier <= 4).RandomItem().alias);
2547 return thing4;
2548 }
2549 case ShopType.GeneralExotic:
2550 return FromFilter("shop_generalExotic");
2551 case ShopType.VMachine:
2552 if (EClass.rnd(10) == 0)
2553 {
2554 return Create("wear_swim");
2555 }
2556 if (EClass.rnd(10) == 0)
2557 {
2558 return Create("panty");
2559 }
2560 if (EClass.rnd(5) == 0)
2561 {
2562 return Create("234");
2563 }
2564 return FromFilter("shop_drink");
2565 case ShopType.Furniture:
2566 return FromFilter("shop_furniture");
2567 case ShopType.Book:
2568 return FromFilter("shop_book");
2569 case ShopType.Magic:
2570 return FromFilter("shop_magic");
2571 case ShopType.Ecopo:
2572 {
2573 Thing thing3 = TraitSeed.MakeRandomSeed(enc: true);
2574 if (EClass.rnd(2) == 0)
2575 {
2576 TraitSeed.LevelSeed(thing3, (thing3.trait as TraitSeed).row, 1);
2577 }
2578 return thing3;
2579 }
2580 case ShopType.AnimalGoods:
2581 if (EClass.rnd(3) == 0)
2582 {
2583 return Create("saddle");
2584 }
2585 if (EClass.rnd(3) == 0)
2586 {
2587 return Create("saddle_waist");
2588 }
2589 return Create("pasture").SetNum(EClass.rndHalf(8));
2590 case ShopType.Healer:
2591 {
2592 Thing thing2 = null;
2593 for (int num = 0; num < 1000; num++)
2594 {
2595 thing2 = FromFilter("shop_healer");
2596 if (thing2.trait is TraitScroll { source: not null } traitScroll)
2597 {
2598 if (!(traitScroll.source.aliasParent != "WIL") && !(traitScroll.source.categorySub == "attack"))
2599 {
2600 break;
2601 }
2602 }
2603 else if (thing2.trait is TraitPotionRandom { source: not null } traitPotionRandom)
2604 {
2605 if (!(traitPotionRandom.source.aliasParent != "WIL") && !(traitPotionRandom.source.categorySub == "attack"))
2606 {
2607 thing2.SetNum(EClass.rnd(5) + 1);
2608 break;
2609 }
2610 }
2611 else if (thing2.trait is TraitRodRandom { source: not null } traitRodRandom && !(traitRodRandom.source.aliasParent != "WIL") && !(traitRodRandom.source.categorySub == "attack"))
2612 {
2613 break;
2614 }
2615 }
2616 return thing2;
2617 }
2618 case ShopType.Milk:
2619 if (EClass._zone is Zone_Nefu && EClass.rnd(2) == 0)
2620 {
2621 Thing thing = ThingGen.Create("_milk");
2622 thing.MakeRefFrom(EClass.sources.charas.rows.Where((SourceChara.Row r) => r.race == "mifu" || r.race == "nefu").RandomItem().model);
2623 Debug.Log(thing);
2624 return thing;
2625 }
2626 return Create("_milk");
2627 case ShopType.Map:
2628 return ThingGen.CreateMap();
2629 case ShopType.Plan:
2630 return Create("book_plan");
2631 case ShopType.Weapon:
2632 return FromFilter("shop_weapon");
2633 case ShopType.Gun:
2634 if (EClass.rnd(8) == 0)
2635 {
2636 return Create("mod_ranged");
2637 }
2638 return FromFilter("shop_gun");
2639 case ShopType.Blackmarket:
2640 case ShopType.Exotic:
2641 case ShopType.TravelMerchant:
2642 {
2643 int num2 = 30;
2644 if (ShopType == ShopType.TravelMerchant)
2645 {
2646 num2 = 5;
2647 }
2649 {
2650 num2 = 25;
2651 }
2653 {
2654 num2 = 15;
2655 }
2656 CardBlueprint.SetRarity((EClass.rnd(num2 * 5) == 0) ? Rarity.Mythical : ((EClass.rnd(num2) == 0) ? Rarity.Legendary : ((EClass.rnd(5) == 0) ? Rarity.Superior : Rarity.Normal)));
2657 return FromFilter("shop_blackmarket");
2658 }
2659 case ShopType.Drink:
2660 return FromFilter("shop_drink");
2661 case ShopType.Booze:
2662 return FromFilter("shop_booze");
2663 case ShopType.Fruit:
2664 return FromFilter("shop_fruit");
2665 case ShopType.Fish:
2666 if (EClass.rnd(2) == 0)
2667 {
2668 return Create("bait");
2669 }
2670 if (EClass.rnd(3) == 0)
2671 {
2672 return Create("fishingRod");
2673 }
2674 return FromFilter("shop_fish");
2675 case ShopType.Meat:
2676 if (EClass.rnd(5) == 0)
2677 {
2678 return Create("seasoning");
2679 }
2680 return FromFilter("shop_meat");
2681 case ShopType.Bread:
2682 if (EClass.rnd(3) == 0)
2683 {
2684 return Create("dough");
2685 }
2686 return FromFilter("shop_bread");
2687 case ShopType.Sweet:
2688 if (EClass.rnd(6) == 0)
2689 {
2690 return Create("dough");
2691 }
2692 if (EClass.rnd(4) == 0)
2693 {
2694 return Create("cream");
2695 }
2696 return FromFilter("shop_sweet");
2697 case ShopType.Curry:
2698 if (EClass.rnd(3) == 0)
2699 {
2700 return Create("seasoning");
2701 }
2702 return Create("693");
2703 case ShopType.Food:
2704 if (EClass.rnd(5) == 0)
2705 {
2706 return Create("seasoning");
2707 }
2708 return FromFilter("shop_food");
2709 case ShopType.Drug:
2710 return FromFilter("shop_drug");
2711 case ShopType.LoytelMart:
2712 {
2713 int loytelMartLv = EClass.player.flags.loytelMartLv;
2714 if (loytelMartLv >= 1)
2715 {
2716 if (EClass.rnd(10) == 0)
2717 {
2718 return Create("monsterball").SetLv(40 + EClass.rnd(ShopLv)).Thing;
2719 }
2720 if (EClass.rnd(30) == 0)
2721 {
2722 return ThingGen.Create("rp_random", -1, ShopLv + 10);
2723 }
2724 if (EClass.rnd(100) == 0)
2725 {
2726 return ThingGen.Create("map_treasure", -1, EClass.rndHalf(ShopLv));
2727 }
2728 if (EClass.rnd(40) == 0)
2729 {
2730 return Create("water").SetPriceFix(1000);
2731 }
2732 if (EClass.rnd(1000) == 0)
2733 {
2734 return Create("1165");
2735 }
2736 }
2737 if ((loytelMartLv >= 2 || EClass.debug.enable) && EClass.rnd(10) == 0)
2738 {
2739 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);
2740 switch ((from _s in row.thing.ToCharArray()
2741 where _s != ' '
2742 select _s).RandomItem())
2743 {
2744 case 'B':
2745 return ThingGen.CreateSpellbook(row.id);
2746 case 'P':
2747 return ThingGen.CreatePotion(row.id);
2748 case 'R':
2749 return ThingGen.CreateRod(row.id);
2750 case 'S':
2751 return ThingGen.CreateScroll(row.id);
2752 }
2753 }
2754 return FromFilter("shop_junk");
2755 }
2756 case ShopType.Junk:
2757 case ShopType.Moyer:
2758 return FromFilter("shop_junk");
2759 case ShopType.Souvenir:
2760 return FromFilter("shop_souvenir");
2761 case ShopType.StrangeGirl:
2762 return DNA.GenerateGene(SpawnList.Get("chara").Select(ShopLv + 10), DNA.Type.Brain);
2763 case ShopType.Fireworks:
2764 if (EClass.rnd(3) == 0)
2765 {
2766 return Create("firework_launcher");
2767 }
2768 return Create("firework");
2769 case ShopType.Festival:
2770 if (EClass.rnd(3) != 0)
2771 {
2772 if (IsFestival("olvina"))
2773 {
2774 return Create(new string[4] { "1125", "1126", "pillow_truth", "1230" }.RandomItem());
2775 }
2776 if (IsFestival("yowyn"))
2777 {
2778 return Create(new string[3] { "hat_mushroom", "hat_witch", "hat_kumiromi" }.RandomItem());
2779 }
2780 if (IsFestival("noyel"))
2781 {
2782 return Create(new string[13]
2783 {
2784 "1127", "1128", "xmas_sled", "xmas_bigbag", "xmas_bigbox", "xmas_blackcat", "xmas_blackcat", "xmas_jure", "xmas_crown", "xmas_ball",
2785 "xmas_ball", "xmas_ball", "xmas_string"
2786 }.RandomItem());
2787 }
2788 }
2789 if (EClass.rnd(2) == 0)
2790 {
2791 return Create(new string[4] { "1081", "1082", "1083", "1084" }.RandomItem());
2792 }
2793 if (EClass.rnd(3) == 0)
2794 {
2795 return FromFilter("shop_junk");
2796 }
2797 return FromFilter("shop_souvenir");
2798 case ShopType.Lamp:
2799 if (EClass.rnd(3) != 0)
2800 {
2801 if (IsFestival("kapul"))
2802 {
2803 return Create(new string[6] { "999", "1000", "1001", "1002", "1003", "1004" }.RandomItem());
2804 }
2805 if (IsFestival("yowyn"))
2806 {
2807 return Create(new string[2] { "1072", "1073" }.RandomItem());
2808 }
2809 if (IsFestival("noyel"))
2810 {
2811 return Create(new string[1] { "1069" }.RandomItem());
2812 }
2813 if (IsFestival("olvina"))
2814 {
2815 return Create(new string[2] { "1070", "1071" }.RandomItem());
2816 }
2817 }
2818 if (EClass._zone.IsFestival && EClass.rnd(2) == 0)
2819 {
2820 return Create(new string[4] { "953", "954", "955", "956" }.RandomItem());
2821 }
2822 return FromFilter("shop_lamp");
2823 default:
2824 if (EClass.rnd(100) == 0)
2825 {
2826 return Create("lockpick");
2827 }
2828 return FromFilter("shop_general");
2829 }
2830 Thing Create(string s)
2831 {
2832 return ThingGen.Create(s, -1, ShopLv);
2833 }
2834 Thing FromFilter(string s)
2835 {
2836 return ThingGen.CreateFromFilter(s, ShopLv);
2837 }
2838 static bool IsFestival(string id)
2839 {
2840 if (EClass._zone.id == id)
2841 {
2842 return EClass._zone.IsFestival;
2843 }
2844 return false;
2845 }
2846 }
ShopType
Definition: ShopType.cs:2
static void SetRarity(Rarity q=Rarity.Normal)
Card ChangeMaterial(int idNew, bool ignoreFixedMaterial=false)
Definition: Card.cs:3217
Card MakeRefFrom(string id)
Definition: Card.cs:6027
Thing SetNum(int a)
Definition: Card.cs:3676
Thing SetPriceFix(int a)
Definition: Card.cs:7672
bool enable
Definition: CoreDebug.cs:302
Definition: DNA.cs:9
Type
Definition: DNA.cs:11
static Thing GenerateGene(Chara c, Type? type=null)
Definition: DNA.cs:106
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:700
Flags flags
Definition: Player.cs:1173
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:224
static Thing CreateFromFilter(string id, int lv=-1)
Definition: ThingGen.cs:63
static Thing CreateMap(string idSource=null, int lv=-1)
Definition: ThingGen.cs:132
static Thing CreateSpellbook(string alias, int num=1)
Definition: ThingGen.cs:159
static Thing CreateScroll(int ele, int num=1)
Definition: ThingGen.cs:190
static Thing CreateRod(int ele, int charge=-1)
Definition: ThingGen.cs:217
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:97
static void LevelSeed(Thing t, SourceObj.Row obj, int num)
Definition: TraitSeed.cs:184
virtual int ShopLv
Definition: Trait.cs:527
virtual bool IsFestival
Definition: Zone.cs:216

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.

◆ DamageRandomProperty()

void Trait.DamageRandomProperty ( Chara  cc)
inline

Definition at line 1111 of file Trait.cs.

1112 {
1113 Thing thing = owner.things.List((Thing a) => a.category.id == "currency" || !a.IsUnique).RandomItem();
1114 if (thing != null)
1115 {
1116 if (thing.Num > 10)
1117 {
1118 thing.SetNum(thing.Num / 10 * 9);
1119 }
1120 else if (thing.Num > 1)
1121 {
1122 thing.SetNum(thing.Num - 1);
1123 }
1124 else
1125 {
1126 thing.Destroy();
1127 }
1128 cc.Say("pry_damage", cc, thing);
1129 }
1130 }
bool IsUnique
Definition: Card.cs:2143
void Destroy()
Definition: Card.cs:5314
ThingContainer things
Definition: Card.cs:39
int Num
Definition: Card.cs:161
SourceCategory.Row category
Definition: Card.cs:2101
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:7324
List< Thing > List(Func< Thing, bool > func, bool onlyAccessible=false)

References Card.category, Card.Destroy(), Card.IsUnique, ThingContainer.List(), Card.Num, Card.Say(), Card.SetNum(), and Card.things.

◆ GetActDuration()

virtual int Trait.GetActDuration ( Chara  c)
inlinevirtual

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

Definition at line 653 of file Trait.cs.

654 {
655 return 0;
656 }

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

◆ GetBuildModeRecipe()

virtual Recipe Trait.GetBuildModeRecipe ( )
inlinevirtual

Reimplemented in TraitTile.

Definition at line 930 of file Trait.cs.

931 {
932 return Recipe.Create(owner.Thing);
933 }
virtual Thing Thing
Definition: Card.cs:2110
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 1552 of file Trait.cs.

1553 {
1554 if (ToggleType == ToggleType.Electronics)
1555 {
1556 if (id == "battery")
1557 {
1558 return 20;
1559 }
1560 }
1561 else
1562 {
1563 if (id == "log")
1564 {
1565 return 20;
1566 }
1567 if (id == "branch")
1568 {
1569 return 5;
1570 }
1571 }
1572 return 0;
1573 }
ToggleType
Definition: ToggleType.cs:2

◆ GetFuelValue() [2/2]

int Trait.GetFuelValue ( Thing  t)
inline

Definition at line 1543 of file Trait.cs.

1544 {
1545 if (t.c_isImportant)
1546 {
1547 return 0;
1548 }
1549 return GetFuelValue(t.id);
1550 }
bool c_isImportant
Definition: Card.cs:1051
int GetFuelValue(Thing t)
Definition: Trait.cs:1543

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 639 of file Trait.cs.

640 {
641 return null;
642 }

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

◆ GetHeldEmo()

virtual Emo2 Trait.GetHeldEmo ( Chara  c)
inlinevirtual

Reimplemented in TraitDrinkMilkMother, TraitToolBrush, and TraitToolShears.

Definition at line 672 of file Trait.cs.

673 {
674 return Emo2.none;
675 }
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 634 of file Trait.cs.

635 {
636 return null;
637 }

◆ GetName()

virtual string Trait.GetName ( )
inlinevirtual

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

Definition at line 732 of file Trait.cs.

733 {
734 return owner.sourceCard.GetText();
735 }
string GetText(string id="name", bool returnNull=false)
Definition: SourceData.cs:688

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 600 of file Trait.cs.

601 {
602 if (i < Params.Length)
603 {
604 return Params[i].ToInt();
605 }
606 return def;
607 }

References Params.

Referenced by TraitItemProc.OnUse().

◆ GetPoint()

Point Trait.GetPoint ( )
inline

Definition at line 845 of file Trait.cs.

846 {
847 return owner.pos;
848 }

References owner, and Card.pos.

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

◆ GetPref()

virtual SourcePref Trait.GetPref ( )
inlinevirtual

Reimplemented in TraitFakeBlock, and TraitFakeObj.

Definition at line 609 of file Trait.cs.

610 {
611 return null;
612 }

◆ GetRandomPoint()

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

Definition at line 850 of file Trait.cs.

851 {
852 if (radius == 0)
853 {
854 return owner.pos;
855 }
856 List<Point> list = ListPoints();
857 for (int i = 0; i < 50; i++)
858 {
859 Point point = list.RandomItem();
860 if (point.IsValid && (func == null || func(point)) && (accessChara == null || accessChara.HasAccess(point)))
861 {
862 return point;
863 }
864 }
865 return list[0];
866 }
bool HasAccess(Card c)
Definition: Chara.cs:1345
Definition: Point.cs:9
bool IsValid
Definition: Point.cs:84
virtual int radius
Definition: Trait.cs:94
virtual List< Point > ListPoints(Point center=null, bool onlyPassable=true, bool allowChara=true)
Definition: Trait.cs:868

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 925 of file Trait.cs.

926 {
927 return Recipe.Create(owner.Thing);
928 }

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

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

◆ GetRefElement()

virtual SourceElement.Row Trait.GetRefElement ( )
inlinevirtual

Reimplemented in TraitPotionRandom, TraitRod, and TraitScroll.

Definition at line 658 of file Trait.cs.

659 {
660 return null;
661 }

Referenced by ButtonGrid.SetCard().

◆ GetRefSprite()

virtual Sprite Trait.GetRefSprite ( )
inlinevirtual

Reimplemented in TraitScrollStatic.

Definition at line 663 of file Trait.cs.

664 {
665 return null;
666 }

Referenced by ButtonGrid.SetCard().

◆ GetRenderData()

virtual RenderData Trait.GetRenderData ( )
inlinevirtual

Reimplemented in TraitFakeObj, and TraitFakeTile.

Definition at line 614 of file Trait.cs.

615 {
616 return null;
617 }

Referenced by CardRenderer.SetOwner().

◆ GetRestockedIcon()

Emo2 Trait.GetRestockedIcon ( )
inline

Definition at line 1688 of file Trait.cs.

1689 {
1690 if (SlaverType != SlaverType.None)
1691 {
1692 SlaverData obj = owner.GetObj<SlaverData>(5);
1693 if (obj != null && EClass.world.date.IsExpired(obj.dateRefresh))
1694 {
1695 return Emo2.restock;
1696 }
1697 }
1698 int c_dateStockExpire = owner.c_dateStockExpire;
1699 if (c_dateStockExpire != 0 && EClass.world.date.IsExpired(c_dateStockExpire))
1700 {
1701 if (ShopType == ShopType.None)
1702 {
1703 return Emo2.blessing;
1704 }
1705 return Emo2.restock;
1706 }
1707 return Emo2.none;
1708 }
SlaverType
Definition: SlaverType.cs:2
int c_dateStockExpire
Definition: Card.cs:1273
bool IsExpired(int time)
Definition: Date.cs:338
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 1155 of file Trait.cs.

1156 {
1157 _ = 7;
1158 return owner.sourceCard._index;
1159 }

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 1665 of file Trait.cs.

1666 {
1667 int rawDeadLine = 0;
1668 if (pet)
1669 {
1670 SlaverData obj = owner.GetObj<SlaverData>(5);
1671 if (obj != null)
1672 {
1673 rawDeadLine = obj.dateRefresh;
1674 }
1675 }
1676 else
1677 {
1678 rawDeadLine = owner.c_dateStockExpire;
1679 }
1680 int remainingHours = EClass.world.date.GetRemainingHours(rawDeadLine);
1681 if (remainingHours > 0)
1682 {
1683 return "nextRestock".lang(lang.lang(), Date.GetText(remainingHours) ?? "");
1684 }
1685 return lang.lang();
1686 }
Definition: Date.cs:4
string GetText(TextFormat format)
Definition: Date.cs:251
int GetRemainingHours(int rawDeadLine)
Definition: Date.cs:343

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 683 of file Trait.cs.

684 {
685 return false;
686 }

Referenced by AI_Idle.TryPerformIdleUse().

◆ Install()

void Trait.Install ( bool  byPlayer)
inline

Definition at line 1289 of file Trait.cs.

1290 {
1291 if (Electricity != 0)
1292 {
1293 EClass._zone.dirtyElectricity = true;
1294 if (Electricity > 0)
1295 {
1296 EClass._zone.electricity += Electricity;
1297 EClass.pc.PlaySound("electricity_on");
1298 }
1299 }
1300 TryToggle();
1303 {
1304 owner.PlaySound("fire");
1305 }
1306 OnInstall(byPlayer);
1307 }
void RecalculateFOV()
Definition: Card.cs:6862
bool isOn
Definition: Card.cs:545
static Chara pc
Definition: EClass.cs:15
virtual void TryToggle()
Definition: Trait.cs:1339
virtual void OnInstall(bool byPlayer)
Definition: Trait.cs:1327
virtual int Electricity
Definition: Trait.cs:119
bool isStarted
Definition: Zone.cs:76

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 1533 of file Trait.cs.

1534 {
1535 return GetFuelValue(s) > 0;
1536 }

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

◆ IsFuel() [2/2]

bool Trait.IsFuel ( Thing  t)
inline

Definition at line 1538 of file Trait.cs.

1539 {
1540 return GetFuelValue(t) > 0;
1541 }

◆ IsFuelEnough()

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

Definition at line 1516 of file Trait.cs.

1517 {
1518 if (!IsRequireFuel)
1519 {
1520 return true;
1521 }
1522 if (owner.c_charges >= FuelCost * num)
1523 {
1524 return true;
1525 }
1526 if (owner.autoRefuel)
1527 {
1528 TryRefuel(FuelCost * num - owner.c_charges, excludes);
1529 }
1530 return owner.c_charges >= FuelCost * num;
1531 }
bool autoRefuel
Definition: Card.cs:629
int c_charges
Definition: Card.cs:1309
virtual int FuelCost
Definition: Trait.cs:475
bool IsRequireFuel
Definition: Trait.cs:479
void TryRefuel(int dest, List< Thing > excludes)
Definition: Trait.cs:1588

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,
bool  allowChara = true 
)
inlinevirtual

Reimplemented in TraitLightSun.

Definition at line 868 of file Trait.cs.

869 {
870 listRadiusPoints.Clear();
871 if (center == null)
872 {
873 center = owner.pos;
874 }
875 if (radius == 0)
876 {
877 listRadiusPoints.Add(center.Copy());
878 return listRadiusPoints;
879 }
880 Room room = center.cell.room;
881 if (room != null && CanUseRoomRadius)
882 {
883 foreach (Point point in room.points)
884 {
885 if (allowChara || !point.HasChara)
886 {
887 if (radiusType == TraitRadiusType.Farm)
888 {
889 listRadiusPoints.Add(point.Copy());
890 }
891 else if ((!onlyPassable || !point.cell.blocked) && !point.cell.HasBlock && point.cell.HasFloor)
892 {
893 listRadiusPoints.Add(point.Copy());
894 }
895 }
896 }
897 }
898 else
899 {
900 EClass._map.ForeachSphere(center.x, center.z, radius + 1, delegate(Point p)
901 {
902 if (allowChara || !p.HasChara)
903 {
904 if (radiusType == TraitRadiusType.Farm)
905 {
906 if (!p.cell.HasBlock || p.cell.HasFence)
907 {
908 listRadiusPoints.Add(p.Copy());
909 }
910 }
911 else if ((!onlyPassable || !p.cell.blocked) && !p.cell.HasBlock && p.cell.HasFloor && (!onlyPassable || Los.IsVisible(center, p)))
912 {
913 listRadiusPoints.Add(p.Copy());
914 }
915 }
916 });
917 }
918 if (listRadiusPoints.Count == 0)
919 {
920 listRadiusPoints.Add(center.Copy());
921 }
922 return listRadiusPoints;
923 }
if(!match.Success)
TraitRadiusType
PointList points
Definition: BaseArea.cs:26
Room room
Definition: Cell.cs:122
bool HasBlock
Definition: Cell.cs:679
bool HasFloor
Definition: Cell.cs:681
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:2567
Point Copy()
Definition: Point.cs:487
int x
Definition: Point.cs:36
int z
Definition: Point.cs:39
Cell cell
Definition: Point.cs:47
bool HasChara
Definition: Point.cs:234
Definition: Room.cs:4
virtual bool CanUseRoomRadius
Definition: Trait.cs:98
virtual TraitRadiusType radiusType
Definition: Trait.cs:96
static List< Point > listRadiusPoints
Definition: Trait.cs:30

References EClass._map, Algorithms.WeightCell.blocked, CanUseRoomRadius, Point.cell, Point.Copy(), Map.ForeachSphere(), Cell.HasBlock, Point.HasChara, Cell.HasFloor, if(), 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 992 of file Trait.cs.

993 {
994 if (!ExistsOnMap)
995 {
996 return;
997 }
998 foreach (Card item in owner.pos.ListCards())
999 {
1000 if (CanOffer(cc, item))
1001 {
1002 item.Destroy();
1003 cc.depression.Mod(100);
1004 owner.PlaySound("offering");
1005 }
1006 }
1007 }
Stats depression
Definition: Chara.cs:1209
virtual void Mod(int a)
Definition: Stats.cs:135
virtual bool CanOffer(Chara cc, Card tg)
Definition: Trait.cs:957

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

Referenced by AI_Offer.Run().

◆ OfferProcess()

void Trait.OfferProcess ( Chara  cc)
inline

Definition at line 970 of file Trait.cs.

971 {
972 if (!ExistsOnMap)
973 {
974 return;
975 }
977 string @ref = row.GetTextArray("name2")[1];
978 string ref2 = row.GetTextArray("name2")[0];
979 if (EClass.rnd(3) == 0)
980 {
981 cc.Talk("offer", @ref, ref2);
982 }
983 foreach (Card item in owner.pos.ListCards())
984 {
985 if (CanOffer(cc, item))
986 {
987 item.renderer.PlayAnime(AnimeID.Shiver);
988 }
989 }
990 }
string c_idDeity
Definition: Card.cs:1621
void Talk(string idTopic, string ref1=null, string ref2=null, bool forceSync=false)
Definition: Card.cs:7206
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 720 of file Trait.cs.

721 {
722 }

Referenced by Map.OnCardAddedToZone().

◆ OnBarter()

virtual void Trait.OnBarter ( bool  reroll = false)
inlinevirtual

Reimplemented in TraitGodStatue.

Definition at line 1710 of file Trait.cs.

1711 {
1712 Thing t = owner.things.Find("chest_merchant");
1713 if (t == null)
1714 {
1715 t = ThingGen.Create("chest_merchant");
1716 owner.AddThing(t);
1717 }
1718 t.c_lockLv = 0;
1720 {
1721 return;
1722 }
1723 owner.c_dateStockExpire = EClass.world.date.GetRaw(24 * RestockDay);
1724 owner.isRestocking = true;
1725 t.things.DestroyAll((Thing _t) => _t.GetInt(101) != 0);
1726 foreach (Thing thing10 in t.things)
1727 {
1728 thing10.invX = -1;
1729 }
1730 switch (ShopType)
1731 {
1732 case ShopType.Plat:
1733 NoRestock(ThingGen.Create("lucky_coin").SetNum(10));
1734 NoRestock(ThingGen.CreateSkillbook(6662));
1735 NoRestock(ThingGen.CreateSkillbook(6664));
1736 Add("book_exp", 10, 0);
1737 break;
1738 case ShopType.Copy:
1739 {
1740 Thing c_copyContainer = owner.c_copyContainer;
1741 if (c_copyContainer == null)
1742 {
1743 break;
1744 }
1745 int num14 = 0;
1746 foreach (Thing thing11 in c_copyContainer.things)
1747 {
1748 if (!owner.trait.CanCopy(thing11))
1749 {
1750 continue;
1751 }
1752 Thing thing7 = thing11.Duplicate(1);
1753 thing7.isStolen = false;
1754 thing7.isCopy = true;
1755 thing7.c_priceFix = 0;
1756 foreach (Element item in thing7.elements.dict.Values.Where((Element e) => e.HasTag("noInherit")).ToList())
1757 {
1758 thing7.elements.Remove(item.id);
1759 }
1760 int num15 = 1;
1761 switch (owner.trait.CopyShop)
1762 {
1763 case CopyShopType.Item:
1764 {
1765 num15 = (1000 + owner.c_invest * 100) / (thing7.GetPrice(CurrencyType.Money, sell: false, PriceType.CopyShop) + 50);
1766 int[] array2 = new int[3] { 704, 703, 702 };
1767 foreach (int ele in array2)
1768 {
1769 if (thing7.HasElement(ele))
1770 {
1771 num15 = 1;
1772 }
1773 }
1774 break;
1775 }
1776 case CopyShopType.Spellbook:
1777 thing7.c_charges = thing11.c_charges;
1778 break;
1779 }
1780 if (num15 > 1 && thing7.trait.CanStack)
1781 {
1782 thing7.SetNum(num15);
1783 }
1784 AddThing(thing7);
1785 num14++;
1786 if (num14 > owner.trait.NumCopyItem)
1787 {
1788 break;
1789 }
1790 }
1792 break;
1793 }
1794 case ShopType.Specific:
1795 switch (owner.id)
1796 {
1797 case "mogu":
1798 AddThing(ThingGen.Create("casino_coin").SetNum(5000));
1799 break;
1800 case "felmera":
1801 foreach (Thing item2 in new DramaOutcome().ListFelmeraBarter())
1802 {
1803 AddThing(item2);
1804 }
1805 AddThing(ThingGen.Create("crimale2"));
1806 break;
1807 case "mimu":
1808 AddCassette(10, null, 999);
1809 AddCassette(15, null, 999);
1810 AddCassette(17, null, 999);
1811 AddCassette(29, null, 999);
1812 AddCassette(40, null, 999);
1813 AddCassette(46, null, 999);
1814 AddCassette(47, null, 999);
1815 AddCassette(52, null, 999);
1816 AddCassette(54, null, 999);
1817 AddCassette(59, null, 999);
1818 AddCassette(65, null, 999);
1819 AddCassette(109, "debt", 0);
1820 AddCassette(110, "curry", 999);
1821 if (EClass.player.stats.married > 0)
1822 {
1823 AddCassette(122, null, 999);
1824 AddCassette(123, null, 999);
1825 }
1826 break;
1827 }
1828 break;
1829 case ShopType.Deed:
1830 Add("deed", 1, 0);
1831 Add("deed_move", 2 + EClass.rnd(5), 0);
1832 Add("deed_wedding", 1, 0);
1833 Add("deed_divorce", 1, 0);
1834 Add("deed_lostring", 1, 0);
1835 Add("license_illumination", 1, 0);
1836 Add("license_void", 1, 0);
1837 Add("license_adv", 1, 0);
1838 break;
1839 case ShopType.RedBook:
1840 {
1841 for (int num7 = 0; num7 < 30; num7++)
1842 {
1843 AddThing(ThingGen.CreateFromFilter("shop_seeker"));
1844 }
1845 break;
1846 }
1847 case ShopType.TravelMerchant2:
1848 {
1849 int seed = EClass.game.seed + EClass._zone.uid + EClass.world.date.year * 12 + EClass.world.date.month;
1850 Add("tool_talisman", 1, 0);
1851 Add("camera", 1, 0);
1852 Add("dreambug", EClass.rndHalf(10), 0);
1853 Add("mathammer", 1, 0).ChangeMaterial(MATERIAL.GetRandomMaterial(80));
1854 Add("unicorn_horn", 1, 0);
1855 Add("core_user", 1, 0);
1856 Add("generator_hamster1", 1, 0);
1857 Add("generator_hamster2", 1, 0);
1858 Add("generator_solar", 1, 0);
1859 Add("generator_wind", 1, 0);
1860 Add("curtainL", EClass.rndHalf(5), 0);
1861 Add("1337", EClass.rndHalf(5), 0);
1862 Add("1338", EClass.rndHalf(5), 0);
1863 Add("1339", EClass.rndHalf(5), 0);
1864 Add("1340", EClass.rndHalf(5), 0);
1865 Add("1301", EClass.rndHalf(5), 0);
1866 Add("1302", EClass.rndHalf(5), 0);
1867 Add("censored_item", 1, 0);
1868 Add("block_strawberry", EClass.rndHalf(6), 0);
1869 Add("block_cream", EClass.rndHalf(6), 0);
1870 Add("block_mango", EClass.rndHalf(6), 0);
1871 Add("block_cherry", EClass.rndHalf(6), 0);
1872 Add("block_chocoplate", EClass.rndHalf(6), 0);
1873 Add("block_banana", EClass.rndHalf(6), 0);
1874 Add("block_mousse", EClass.rndHalf(6), 0);
1875 Add("block_melon", EClass.rndHalf(6), 0);
1876 Add("block_kiwi", EClass.rndHalf(6), 0);
1877 Add("block_peach", EClass.rndHalf(6), 0);
1878 Add("water", 1, 0);
1879 if (EClass.rndSeed(EClass.debug.enable ? 1 : 3, seed) == 0)
1880 {
1881 Thing thing6 = Add("scrubber", 1, 0);
1882 thing6.rarity = Rarity.Legendary;
1883 thing6.elements.SetBase(770, 1 + EClass.rndSeed(EClass.rndSeed(20, seed) + 1, seed));
1884 }
1885 if (EClass.rndSeed(EClass.debug.enable ? 1 : 5, seed) == 0)
1886 {
1887 Add("hammer_garokk", 1, 0);
1888 }
1889 if (EClass.rndSeed(EClass.debug.enable ? 1 : 100, seed) == 0)
1890 {
1891 Add("water_jure", 1, 0);
1892 }
1893 break;
1894 }
1895 case ShopType.KeeperOfGarden:
1896 {
1897 string[] array = new string[11]
1898 {
1899 "stone_defense", "1325", "1326", "1327", "1328", "1330", "1331", "1332", "1333", "1283",
1900 "1268"
1901 };
1902 foreach (string id in array)
1903 {
1904 AddThing(ThingGen.Create(id, MATERIAL.GetRandomMaterialFromCategory(50, "rock", EClass.sources.materials.alias["granite"]).id).SetNum(99));
1905 }
1906 Add("cloud", 99, 0);
1907 Add("scroll_alias", 99, 0);
1908 Add("scroll_biography", 99, 0);
1909 Add("1329", 1, 0);
1910 Add("statue_lulu", 1, 0);
1911 Add("statue_jure", 1, 0);
1912 Add("statue_ehe", 1, 0);
1913 break;
1914 }
1915 case ShopType.Seed:
1916 {
1917 AddThing(TraitSeed.MakeSeed("rice")).SetNum(4 + EClass.rnd(4));
1918 AddThing(TraitSeed.MakeSeed("cabbage")).SetNum(4 + EClass.rnd(4));
1919 AddThing(TraitSeed.MakeSeed("carrot")).SetNum(4 + EClass.rnd(4));
1920 AddThing(TraitSeed.MakeSeed("potato")).SetNum(4 + EClass.rnd(4));
1921 AddThing(TraitSeed.MakeSeed("corn")).SetNum(4 + EClass.rnd(4));
1922 AddThing(TraitSeed.MakeSeed("chanoki")).SetNum(4 + EClass.rnd(4));
1923 for (int num5 = 0; num5 < EClass.rnd(3) + 1; num5++)
1924 {
1925 Add("462", 1, 0);
1926 }
1927 for (int num6 = 0; num6 < EClass.rnd(3) + 1; num6++)
1928 {
1929 Add("1167", 1, 0);
1930 }
1931 break;
1932 }
1933 case ShopType.Loytel:
1934 Add("board_map", 1, 0);
1935 Add("board_build", 1, 0);
1936 Add("book_resident", 1, 0);
1937 Add("board_party", 1, 0);
1938 Add("board_party2", 1, 0);
1939 Add("book_roster", 1, 0);
1940 Add("3", 1, 0);
1941 Add("4", 1, 0);
1942 Add("5", 1, 0);
1943 AddThing(ThingGen.CreatePlan(2512));
1944 AddThing(ThingGen.CreatePlan(2810));
1945 NoRestock(ThingGen.Create("rp_block").SetLv(1).SetNum(10));
1947 {
1948 NoRestock(ThingGen.CreateRecipe("explosive"));
1949 }
1950 break;
1951 case ShopType.Starter:
1952 case ShopType.StarterEx:
1953 Add("board_home", 1, 0);
1954 Add("board_resident", 1, 0);
1955 Add("1", 1, 0);
1956 Add("2", 1, 0);
1957 if (ShopType == ShopType.StarterEx)
1958 {
1959 Add("board_expedition", 1, 0);
1960 Add("mailpost", 1, 0);
1961 Add("record", 1, 0);
1962 Add("tent2", 1, 0);
1963 Add("tent1", 1, 0);
1964 Add("wagon1", 1, 0);
1965 Add("wagon_big", 1, 0);
1966 Add("wagon_big2", 1, 0);
1967 Add("wagon_big3", 1, 0);
1968 Add("wagon_big4", 1, 0);
1969 Add("wagon_big5", 1, 0);
1970 Add("teleporter", 1, 0);
1971 Add("teleporter2", 1, 0);
1972 Add("recharger", 1, 0);
1973 Add("machine_gene2", 1, 0);
1974 NoRestock(ThingGen.CreateRecipe("torch_wall"));
1975 NoRestock(ThingGen.CreateRecipe("factory_sign"));
1976 NoRestock(ThingGen.CreateRecipe("beehive"));
1977 NoRestock(ThingGen.Create("rp_food").SetNum(5).SetLv(10)
1978 .Thing);
1979 }
1980 else
1981 {
1982 AddThing(ThingGen.CreatePlan(2119));
1983 NoRestock(ThingGen.Create("rp_food").SetNum(5).SetLv(5)
1984 .Thing);
1985 }
1986 break;
1987 case ShopType.Farris:
1988 AddThing(ThingGen.CreateScroll(8220, 4 + EClass.rnd(6)));
1989 AddThing(ThingGen.CreateScroll(8221, 4 + EClass.rnd(6)));
1990 Add("drawing_paper", 10, 0);
1991 Add("drawing_paper2", 10, 0);
1992 Add("stethoscope", 1, 0);
1993 Add("whip_love", 1, 0);
1994 Add("whip_interest", 1, 0);
1995 Add("syringe_blood", 20, 0);
1997 {
1998 Add("chest_tax", 1, 0);
1999 }
2000 break;
2001 case ShopType.Guild:
2002 if (this is TraitClerk_Merchant)
2003 {
2004 Add("flyer", 1, 0).SetNum(99);
2005 }
2006 break;
2007 case ShopType.Influence:
2008 {
2009 bool num10 = owner.id == "big_sister";
2010 TraitTicketFurniture.SetZone(num10 ? EClass.game.spatials.Find("little_garden") : EClass._zone, Add("ticket_furniture", 1, 0).SetNum(99));
2011 if (num10)
2012 {
2013 Add("littleball", 10, 0);
2015 {
2016 break;
2017 }
2018 if (!owner.Chara.elements.HasBase(287))
2019 {
2020 owner.Chara.elements.SetBase(287, (!EClass.debug.enable) ? 1 : 50);
2021 }
2022 if (!reroll)
2023 {
2024 for (int num11 = 0; num11 < 20; num11++)
2025 {
2026 owner.Chara.ModExp(287, 1000);
2027 }
2028 }
2030 thing4.elements.SetBase(1229, 1);
2031 AddThing(thing4);
2032 break;
2033 }
2034 for (int num12 = 0; num12 < 10; num12++)
2035 {
2036 Thing thing5 = ThingGen.Create(EClass._zone.IsFestival ? "1123" : ((EClass.rnd(3) == 0) ? "1169" : "1160"));
2037 thing5.DyeRandom();
2038 AddThing(thing5);
2039 }
2040 if (EClass._zone is Zone_Exile)
2041 {
2042 for (int num13 = 0; num13 < 30; num13++)
2043 {
2044 Add("1235", 1, -1);
2045 Add("1236", 1, -1);
2046 Add("1237", 1, -1);
2047 Add("1239", 1, -1);
2048 Add("candle9", 1, -1);
2049 Add("candle9", 1, -1);
2050 Add("candle9", 1, -1);
2051 Add("candle8", 1, 0);
2052 Add("candle8b", 1, 0);
2053 Add("candle8c", 1, 0);
2054 }
2055 }
2056 break;
2057 }
2058 case ShopType.Casino:
2059 {
2060 Add("chest_tax", 1, 0);
2061 Add("1165", 1, 0);
2062 Add("monsterball", 1, 0).SetNum(3).SetLv(10);
2063 Add("1175", 1, 0);
2064 Add("1176", 1, 0);
2065 Add("pillow_ehekatl", 1, 0);
2066 Add("grave_dagger1", 1, 0);
2067 Add("grave_dagger2", 1, 0);
2068 Add("434", 1, 0);
2069 Add("433", 1, 0);
2070 Add("714", 1, 0);
2071 Add("1017", 1, 0);
2072 Add("1313", 1, 0);
2073 Add("1155", 1, 0);
2074 Add("1287", 1, 0);
2075 Add("1288", 1, 0);
2076 Add("1289", 1, 0);
2077 Add("1290", 1, 0);
2078 Add("1011", 1, 0);
2079 AddThing(ThingGen.CreatePerfume(9500, 5));
2080 AddThing(ThingGen.CreatePerfume(9501, 5));
2081 AddThing(ThingGen.CreatePerfume(9502, 5));
2082 AddThing(ThingGen.CreatePerfume(9503, 5));
2083 for (int num9 = 0; num9 < 5; num9++)
2084 {
2085 Thing thing3 = ThingGen.CreateFromCategory("seasoning").SetNum(10);
2086 thing3.elements.SetBase(2, 40);
2087 thing3.c_priceFix = 1000;
2088 AddThing(thing3);
2089 }
2090 break;
2091 }
2092 case ShopType.Sorin:
2093 {
2094 Add("1282", 1, 0).SetNum(5);
2095 AddThing(ThingGen.CreateSpellbook(9155, 1, 3));
2096 AddThing(ThingGen.CreateSpellbook(8404, 1, 7));
2097 AddThing(ThingGen.CreateScroll(8281, 6));
2098 AddThing(ThingGen.CreateScroll(8280, 7));
2099 AddThing(ThingGen.CreateScroll(8288, 5));
2100 NoRestock(ThingGen.CreateRecipe("1264"));
2101 NoRestock(ThingGen.CreateRecipe("1300"));
2102 NoRestock(ThingGen.CreateRecipe("1386"));
2103 Thing thing2 = ThingGen.Create("book_black");
2104 if (IsNoRestockExist(thing2))
2105 {
2106 thing2.c_idRefName = "sorin";
2107 NoRestock(thing2);
2108 }
2109 else
2110 {
2111 thing2.c_idRefName = EClass.game.cards.globalCharas.Values.Where((Chara a) => a.IsUnique && a.id != "sorin" && a.race.id != "machinegod" && a.IsPCFaction).RandomItem().id;
2112 AddThing(thing2);
2113 }
2114 Add("1386", 1, 0);
2115 break;
2116 }
2117 case ShopType.Medal:
2118 NoRestockId("hammer_garokk", 3, 0);
2119 NoRestockId("sword_dragon", 1, 0);
2120 Add("sword_dragon", 1, 0).SetReplica(on: true);
2121 NoRestockId("point_stick", 1, 0);
2122 Add("point_stick", 1, 0).SetReplica(on: true);
2123 NoRestockId("blunt_bonehammer", 1, 0);
2124 Add("blunt_bonehammer", 1, 0).SetReplica(on: true);
2125 NoRestockId("pole_gunlance", 1, 0);
2126 Add("pole_gunlance", 1, 0).SetReplica(on: true);
2127 NoRestockId("sword_muramasa", 1, 0);
2128 Add("sword_muramasa", 1, 0).SetReplica(on: true);
2129 NoRestockId("sword_forgetmenot", 1, 0);
2130 Add("sword_forgetmenot", 1, 0).SetReplica(on: true);
2131 NoRestockId("dagger_fish", 1, 0);
2132 Add("dagger_fish", 1, 0).SetReplica(on: true);
2133 NoRestockId("sword_zephir", 1, 0);
2134 Add("sword_zephir", 1, 0).SetReplica(on: true);
2135 Add("bed_shiawase", 1, 0).SetReplica(on: true);
2136 Add("ribbon", 1, 0);
2137 Add("helm_sage", 1, 0);
2138 NoRestockId("wear_swim_danger", 1, 0);
2139 NoRestockId("wear_swim_danger", 1, 1);
2140 Add("diary_sister", 1, 0);
2141 Add("diary_catsister", 1, 0);
2142 Add("diary_lady", 1, 0);
2143 Add("1165", 1, 0).SetNum(5);
2144 AddThing(ThingGen.CreateScroll(9160).SetNum(5));
2145 Add("monsterball", 1, 0).SetNum(3).SetLv(20);
2146 Add("monsterball", 1, 0).SetNum(3).SetLv(40);
2147 Add("bill_tax", 1, 0).c_bill = 1;
2148 Add("bill_tax", 1, 0).c_bill = 1;
2149 Add("bill_tax", 1, 0).c_bill = 1;
2150 Add("container_magic", 1, 0);
2151 Add("container_magic", 1, 0).ChangeMaterial("iron").idSkin = 1;
2152 Add("container_magic", 1, 0).ChangeMaterial("bamboo").idSkin = 2;
2153 Add("container_magic", 1, 0).ChangeMaterial("feywood").idSkin = 3;
2154 Add("wrench_tent_elec", 1, 0);
2155 Add("wrench_tent_soil", 1, 0);
2156 Add("wrench_tent_seabed", 1, 0);
2157 Add("wrench_bed", 1, 0).SetNum(20);
2158 Add("wrench_storage", 1, 0).SetNum(10);
2159 Add("wrench_fridge", 1, 0).SetNum(1);
2160 Add("wrench_extend_v", 1, 0).SetNum(2);
2161 Add("wrench_extend_h", 1, 0).SetNum(2);
2162 break;
2163 default:
2164 {
2165 if (!owner.GetStr("merchant_override").IsEmpty())
2166 {
2167 break;
2168 }
2169 float num = (float)(3 + Mathf.Min(ShopLv / 5, 10)) + Mathf.Sqrt(ShopLv);
2170 int num2 = 300;
2171 switch (ShopType)
2172 {
2173 case ShopType.Ecopo:
2174 num2 = 30;
2175 break;
2176 case ShopType.StrangeGirl:
2177 num2 = 50;
2178 break;
2179 case ShopType.TravelMerchant:
2180 case ShopType.TravelMerchant2:
2181 num /= 3f;
2182 if (num < 12f)
2183 {
2184 num = 12f;
2185 }
2186 num2 = 30;
2187 break;
2188 }
2189 num = num * (float)(100 + EClass.pc.Evalue(1406) * 5) / 100f;
2190 num = Mathf.Min(num, num2);
2191 for (int num3 = 0; (float)num3 < num; num3++)
2192 {
2193 if (ShopType == ShopType.TravelMerchant)
2194 {
2195 int num4 = EClass.game.seed + (EClass.world.date.year * 12 + EClass.world.date.month) * 30 + EClass._zone.uid;
2196 Rand.SetBaseSeed(num4 + num3);
2197 Rand.SetSeed(num4 + num3);
2198 }
2199 Thing thing = CreateStock();
2200 Rand.SetBaseSeed();
2201 Rand.SetSeed();
2202 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)
2203 {
2204 bool tryStack = true;
2205 if (ShopType == ShopType.Curry)
2206 {
2207 tryStack = false;
2208 }
2209 t.AddThing(thing, tryStack);
2210 }
2211 }
2212 break;
2213 }
2214 }
2215 string str = owner.GetStr("merchant_override");
2216 if (!str.IsEmpty())
2217 {
2218 foreach (Thing item3 in ModUtil.GenerateMerchantStock(owner, str))
2219 {
2220 AddThing(item3);
2221 }
2222 }
2223 string text = ShopType.ToString();
2224 foreach (RecipeSource item4 in RecipeManager.list)
2225 {
2226 if (item4.row.recipeKey.IsEmpty())
2227 {
2228 continue;
2229 }
2230 string[] array = item4.row.recipeKey;
2231 for (int num8 = 0; num8 < array.Length; num8++)
2232 {
2233 if (array[num8] == text)
2234 {
2235 NoRestock(ThingGen.CreateRecipe(item4.id));
2236 break;
2237 }
2238 }
2239 }
2240 switch (ShopType)
2241 {
2242 case ShopType.Curry:
2244 {
2245 AddThing(TraitSeed.MakeSeed("redpepper").SetNum(5));
2246 }
2247 break;
2248 case ShopType.Moyer:
2249 {
2250 for (int num18 = 1; num18 <= 25; num18++)
2251 {
2252 AddAdvWeek(num18);
2253 }
2254 break;
2255 }
2256 case ShopType.StrangeGirl:
2257 {
2258 int num19 = (EClass.debug.enable ? 20 : (EClass._zone.development / 10));
2259 if (num19 > 0)
2260 {
2261 Add("syringe_gene", num19, 0);
2262 Add("diary_little", 1, 0);
2263 }
2264 if (num19 > 10)
2265 {
2266 Add("syringe_heaven", num19 / 5, 0);
2267 Add("1276", 1, 0);
2268 }
2269 Add("medal", 10, 0);
2270 Add("ticket_fortune", 10, 0);
2271 break;
2272 }
2273 case ShopType.GeneralExotic:
2274 Add("tool_talisman", 1, 0);
2275 break;
2276 case ShopType.Healer:
2277 AddThing(ThingGen.CreatePotion(8400).SetNum(4 + EClass.rnd(6)));
2278 AddThing(ThingGen.CreatePotion(8401).SetNum(2 + EClass.rnd(4)));
2279 AddThing(ThingGen.CreatePotion(8402).SetNum(1 + EClass.rnd(3)));
2280 break;
2281 case ShopType.Food:
2282 Add("ration", 2 + EClass.rnd(4), 0);
2283 break;
2284 case ShopType.Ecopo:
2285 Add("ecomark", 5, 0);
2286 Add("whip_egg", 1, 0);
2287 Add("helm_chef", 1, 0);
2288 Add("hammer_strip", 1, 0);
2289 Add("brush_strip", 1, 0);
2290 Add("1165", 1, 0);
2291 Add("plat", 100, 0);
2292 AddThing(ThingGen.CreateScroll(9160).SetNum(5));
2293 AddThing(ThingGen.CreateRune(450, 1, free: true));
2294 break;
2295 case ShopType.Gun:
2296 Add("bullet", 1, 0).SetNum(300 + EClass.rnd(100)).ChangeMaterial("iron");
2297 Add("bullet_energy", 1, 0).SetNum(100 + EClass.rnd(100)).ChangeMaterial("iron");
2298 break;
2299 case ShopType.Magic:
2300 if (!Guild.Mage.IsMember && ((EClass._zone.id == "lumiest" && EClass._zone.lv == 0) || (EClass._zone.id != "lumiest" && EClass.rnd(4) == 0)))
2301 {
2302 t.AddThing(ThingGen.Create("letter_trial"));
2303 }
2304 AddThing(ThingGen.CreateScroll(8220, 4 + EClass.rnd(6)));
2305 AddThing(ThingGen.CreateScroll(8221, 4 + EClass.rnd(6)));
2306 AddThing(ThingGen.CreateScroll(8200, 4 + EClass.rnd(6)));
2307 AddThing(ThingGen.CreateScroll(8201, 4 + EClass.rnd(6)));
2308 break;
2309 case ShopType.Festival:
2311 {
2312 Add("1085", 1, 0);
2313 if (EClass._zone.id == "noyel")
2314 {
2315 Add("holyFeather", 1, 0);
2316 }
2317 }
2318 break;
2319 case ShopType.Junk:
2320 case ShopType.LoytelMart:
2321 {
2322 if (ShopType == ShopType.LoytelMart)
2323 {
2324 Add("ticket_massage", 1, 0);
2325 Add("ticket_armpillow", 1, 0);
2326 Add("ticket_champagne", 1, 0);
2327 }
2328 for (int num16 = 0; num16 < 3; num16++)
2329 {
2330 if (EClass.rnd(5) == 0)
2331 {
2332 TreasureType treasureType = ((EClass.rnd(10) == 0) ? TreasureType.BossNefia : ((EClass.rnd(10) == 0) ? TreasureType.Map : TreasureType.RandomChest));
2333 int num17 = EClass.rnd(EClass.rnd(ShopLv + (EClass.debug.enable ? 200 : 50)) + 1) + 1;
2334 Thing thing8 = ThingGen.Create(treasureType switch
2335 {
2336 TreasureType.Map => "chest_treasure",
2337 TreasureType.BossNefia => "chest_boss",
2338 _ => "chest3",
2339 });
2340 thing8.c_lockedHard = true;
2341 thing8.c_lockLv = num17;
2342 thing8.c_priceAdd = 2000 + num17 * 250 * ((treasureType == TreasureType.RandomChest) ? 1 : 5);
2343 thing8.c_revealLock = true;
2344 ThingGen.CreateTreasureContent(thing8, num17, treasureType, clearContent: true);
2345 AddThing(thing8);
2346 }
2347 }
2348 break;
2349 }
2350 }
2351 switch (ShopType)
2352 {
2353 case ShopType.General:
2354 case ShopType.Food:
2355 {
2356 for (int num20 = 0; num20 < (EClass.debug.enable ? 3 : 3); num20++)
2357 {
2358 if (EClass.rnd(3) == 0)
2359 {
2360 int lv = EClass.rnd(EClass.rnd(ShopLv + (EClass.debug.enable ? 200 : 50)) + 1) + 1;
2361 Thing t2 = ThingGen.Create("chest_gamble", -1, lv).SetNum(1 + EClass.rnd(20));
2362 AddThing(t2);
2363 }
2364 }
2365 break;
2366 }
2367 case ShopType.Booze:
2368 if (EClass._zone is Zone_Yowyn && EClass._zone.lv == -1)
2369 {
2370 Add("churyu", EClass.rndHalf(10), 0);
2371 }
2372 break;
2373 }
2374 ShopType shopType = ShopType;
2375 _ = shopType - 24;
2376 _ = 1;
2377 switch (owner.id)
2378 {
2379 case "rodwyn":
2380 AddThing(ThingGen.CreateSpellbook(8790));
2381 AddThing(ThingGen.CreatePotion(8791).SetNum(3 + EClass.rnd(3)));
2382 AddThing(ThingGen.CreatePotion(8792).SetNum(3 + EClass.rnd(3)));
2383 AddThing(ThingGen.CreatePotion(8794).SetNum(3 + EClass.rnd(3)));
2384 Add("1341", EClass.rndHalf(5), 0);
2385 break;
2386 case "girl_blue":
2387 Add("779", 1 + EClass.rnd(3), 0);
2388 break;
2389 case "nola":
2390 AddThing(ThingGen.CreateRecipe("ic").SetPriceFix(400));
2391 AddThing(ThingGen.CreateRecipe("bullet").SetPriceFix(300));
2392 AddThing(ThingGen.CreateRecipe("break_powder").SetPriceFix(1000));
2393 AddThing(ThingGen.CreateRecipe("quarrel").SetPriceFix(100));
2394 AddThing(ThingGen.CreateRecipe("1099").SetPriceFix(400));
2395 AddThing(ThingGen.CreateRecipe("detector").SetPriceFix(700));
2396 AddThing(ThingGen.CreatePlan(2710)).SetPriceFix(-100);
2397 AddThing(ThingGen.CreatePlan(2711)).SetPriceFix(-100);
2398 AddThing(ThingGen.CreatePlan(2712)).SetPriceFix(200);
2399 break;
2400 }
2402 {
2403 Add("lockpick", 1, 0);
2404 if (EClass.rnd(2) == 0)
2405 {
2406 Add("lockpick", 1, 0);
2407 }
2408 AddThing(ThingGen.CreateScroll(8780, EClass.rndHalf(5)));
2409 }
2410 foreach (Thing thing12 in t.things)
2411 {
2412 thing12.c_idBacker = 0;
2413 if (ShopType != ShopType.Copy)
2414 {
2415 thing12.TryMakeRandomItem(ShopLv);
2416 if (thing12.Num == 1)
2417 {
2418 thing12.SetNum(thing12.trait.DefaultStock);
2419 }
2420 if (thing12.trait is TraitFoodMeal)
2421 {
2422 CraftUtil.MakeDish(thing12, ShopLv, owner.Chara);
2423 }
2424 if (thing12.IsFood && owner.id == "rodwyn")
2425 {
2426 SourceElement.Row row = EClass.sources.elements.rows.Where((SourceElement.Row e) => !e.foodEffect.IsEmpty() && !e.tag.Contains("noRodwyn") && e.category != "feat" && e.chance > 0).RandomItem();
2427 thing12.elements.SetBase(row.id, 10 + EClass.rnd(10));
2428 }
2429 }
2430 if (CurrencyType == CurrencyType.Casino_coin)
2431 {
2432 thing12.noSell = true;
2433 }
2435 {
2436 thing12.isStolen = true;
2437 }
2438 if (!(thing12.trait is TraitErohon))
2439 {
2440 thing12.c_IDTState = 0;
2441 }
2442 if (CurrencyType == CurrencyType.Money && (thing12.category.IsChildOf("meal") || thing12.category.IsChildOf("preserved")) && thing12.id != "ration" && !thing12.IsUnique)
2443 {
2444 thing12.c_priceFix = -70;
2445 }
2446 if (ShopType == ShopType.TravelMerchant)
2447 {
2448 thing12.c_priceFix = 200;
2449 }
2450 if (thing12.trait is TraitErohon)
2451 {
2452 thing12.c_IDTState = 5;
2453 }
2454 if (thing12.IsContainer && !thing12.c_revealLock)
2455 {
2456 thing12.RemoveThings();
2457 t.c_lockLv = 0;
2458 }
2459 }
2460 if (t.things.Count <= t.things.GridSize)
2461 {
2462 return;
2463 }
2464 int num21 = t.things.width * 10;
2465 if (t.things.Count > num21)
2466 {
2467 int num22 = t.things.Count - num21;
2468 for (int num23 = 0; num23 < num22; num23++)
2469 {
2470 t.things.LastItem().Destroy();
2471 }
2472 }
2473 t.things.ChangeSize(t.things.width, Mathf.Min(t.things.Count / t.things.width + 1, 10));
2474 Thing Add(string id2, int a, int idSkin)
2475 {
2477 Thing thing9 = ThingGen.Create(id2, -1, ShopLv).SetNum(a);
2478 thing9.idSkin = ((idSkin == -1) ? EClass.rnd(thing9.source.skins.Length + 1) : idSkin);
2479 return t.AddThing(thing9);
2480 }
2481 void AddAdvWeek(int i)
2482 {
2483 Thing thing9 = ThingGen.CreateRedBook("advweek_" + i);
2484 thing9.c_priceFix = -90;
2485 AddThing(thing9);
2486 }
2487 void AddCassette(int idCas, string idQuest, int phase)
2488 {
2489 if (idQuest == null || EClass.game.quests.GetPhase(idQuest) >= phase)
2490 {
2491 AddThing(ThingGen.CreateCassette(idCas));
2492 }
2493 }
2494 Thing AddThing(Thing _t)
2495 {
2496 return t.AddThing(_t);
2497 }
2498 bool IsNoRestockExist(Thing _t)
2499 {
2500 if (t.things.Find(_t.id) != null)
2501 {
2502 return true;
2503 }
2504 HashSet<string> hashSet = EClass.player.noRestocks.TryGetValue(owner.id);
2505 if (hashSet != null)
2506 {
2507 return !hashSet.Contains(_t.trait.IdNoRestock);
2508 }
2509 return true;
2510 }
2511 void NoRestock(Thing _t)
2512 {
2513 string text2 = owner.id;
2514 if (_t.idSkin != 0)
2515 {
2516 text2 = text2 + "_skin" + _t.idSkin;
2517 }
2518 HashSet<string> hashSet = EClass.player.noRestocks.TryGetValue(text2);
2519 if (hashSet == null)
2520 {
2521 hashSet = new HashSet<string>();
2522 }
2523 if (!hashSet.Contains(_t.trait.IdNoRestock))
2524 {
2525 hashSet.Add(_t.trait.IdNoRestock);
2526 EClass.player.noRestocks[text2] = hashSet;
2527 _t.SetInt(101, 1);
2528 AddThing(_t);
2529 }
2530 }
2531 void NoRestockId(string _id, int num24, int idSkin)
2532 {
2533 Thing thing9 = ThingGen.Create(_id).SetNum(num24);
2534 thing9.idSkin = idSkin;
2535 NoRestock(thing9);
2536 }
2537 }
@ seed
CurrencyType
Definition: CurrencyType.cs:2
ID_Achievement
PriceType
Definition: PriceType.cs:2
TreasureType
Definition: TreasureType.cs:2
bool CanGiveCard()
Definition: Affinity.cs:70
static void SetNormalRarity(bool fixedMat=false)
GlobalCharaList globalCharas
Definition: CardManager.cs:46
Thing TryMakeRandomItem(int lv=-1, TryMakeRandomItemSource itemSource=TryMakeRandomItemSource.Default, Chara crafter=null)
Definition: Card.cs:5758
virtual Chara Chara
Definition: Card.cs:2122
ElementContainerCard elements
Definition: Card.cs:42
void SetInt(string id, int value=0)
Definition: Card.cs:2586
bool isRestocking
Definition: Card.cs:893
Thing AddThing(string id, int lv=-1)
Definition: Card.cs:3280
Card SetLv(int a)
Definition: Card.cs:3070
bool c_revealLock
Definition: Card.cs:1075
bool IsFood
Definition: Card.cs:2229
string GetStr(string id, string defaultStr=null)
Definition: Card.cs:2595
void DyeRandom()
Definition: Card.cs:6473
int Evalue(int ele)
Definition: Card.cs:2704
int idSkin
Definition: Card.cs:365
Thing Duplicate(int num)
Definition: Card.cs:3625
Thing c_copyContainer
Definition: Card.cs:1849
void ModExp(string alias, int a)
Definition: Card.cs:2781
bool IsContainer
Definition: Card.cs:2141
int GetInt(string id, int? defaultInt=null)
Definition: Card.cs:2567
void RemoveThings()
Definition: Card.cs:3491
Definition: Chara.cs:10
override bool IsPCFaction
Definition: Chara.cs:691
Affinity affinity
Definition: Chara.cs:320
SourceRace.Row race
Definition: Chara.cs:470
static Thing MakeLoveLunch(Chara c)
Definition: CraftUtil.cs:221
static void MakeDish(Thing food, int lv, Chara crafter=null, int seed=-1)
Definition: CraftUtil.cs:62
int GetRaw(int offsetHours=0)
Definition: Date.cs:328
int month
Definition: Date.cs:50
static Game game
Definition: EClass.cs:9
static int rndSeed(int a, int seed)
Definition: EClass.cs:51
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:482
SpatialManager spatials
Definition: Game.cs:153
CardManager cards
Definition: Game.cs:156
bool IsSurvival
Definition: Game.cs:276
QuestManager quests
Definition: Game.cs:183
static GuildMage Mage
Definition: Guild.cs:58
bool IsMember
Definition: Guild.cs:72
static SourceMaterial.Row GetRandomMaterial(int lv, string group=null, bool tryLevelMatTier=false)
Definition: MATERIAL.cs:56
static SourceMaterial.Row GetRandomMaterialFromCategory(int lv, string cat, SourceMaterial.Row fallback)
Definition: MATERIAL.cs:93
int married
Definition: Player.cs:129
Stats stats
Definition: Player.cs:1095
Dictionary< string, HashSet< string > > noRestocks
Definition: Player.cs:1206
int GetPhase(string id)
bool IsCompleted(string id)
Definition: Rand.cs:4
static void SetBaseSeed(int a=-1)
Definition: Rand.cs:39
static void SetSeed(int a=-1)
Definition: Rand.cs:44
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
int uid
Definition: Spatial.cs:70
Definition: Steam.cs:12
static void GetAchievement(ID_Achievement id)
Definition: Steam.cs:53
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:209
static Thing CreatePerfume(int ele, int num=1)
Definition: ThingGen.cs:231
static Thing CreateRedBook(string id, int num=1)
Definition: ThingGen.cs:175
static void CreateTreasureContent(Thing t, int lv, TreasureType type, bool clearContent)
Definition: ThingGen.cs:271
static Thing CreateCassette(int id)
Definition: ThingGen.cs:238
static Thing CreatePlan(int ele)
Definition: ThingGen.cs:145
static Thing CreateRecipe(string id)
Definition: ThingGen.cs:152
static Thing CreateSkillbook(int ele, int num=1)
Definition: ThingGen.cs:183
static Thing CreateFromCategory(string idCat, int lv=-1)
Definition: ThingGen.cs:75
SourceThing.Row source
Definition: Thing.cs:11
override int GetPrice(CurrencyType currency=CurrencyType.Money, bool sell=false, PriceType priceType=PriceType.Default, Chara c=null)
Definition: Thing.cs:833
static Thing MakeSeed(string idSource)
Definition: TraitSeed.cs:105
static void SetZone(Zone zone, Thing t)
virtual CopyShopType CopyShop
Definition: Trait.cs:529
Thing CreateStock()
Definition: Trait.cs:2539
virtual int RestockDay
Definition: Trait.cs:577
virtual string IdNoRestock
Definition: Trait.cs:373
virtual bool IsNoShop
Definition: Trait.cs:66
virtual ShopType ShopType
Definition: Trait.cs:534
virtual int DefaultStock
Definition: Trait.cs:131
virtual bool CanCopy(Thing t)
Definition: Trait.cs:1660
CopyShopType
Definition: Trait.cs:20
virtual int NumCopyItem
Definition: Trait.cs:531

References EClass._zone, Card.AddThing(), Chara.affinity, Card.c_charges, Card.c_copyContainer, Card.c_dateStockExpire, Card.c_revealLock, CanCopy(), Affinity.CanGiveCard(), Game.cards, Card.category, Card.Chara, CopyShop, ThingGen.Create(), ThingGen.CreateCassette(), ThingGen.CreateFromCategory(), ThingGen.CreateFromFilter(), 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, Steam.GetAchievement(), Card.GetInt(), QuestManager.GetPhase(), Thing.GetPrice(), MATERIAL.GetRandomMaterial(), MATERIAL.GetRandomMaterialFromCategory(), Date.GetRaw(), Card.GetStr(), CardManager.globalCharas, ElementContainer.HasBase(), Element.HasTag(), Card.id, RecipeSource.id, SourceElement.Row.id, Spatial.id, IdNoRestock, Card.idSkin, QuestManager.IsCompleted(), Card.IsContainer, GuildThief.IsCurrentZone, Date.IsExpired(), Zone.IsFestival, Card.IsFood, Guild.IsMember, IsNoShop, Chara.IsPCFaction, Card.isRestocking, Game.IsSurvival, Card.IsUnique, item, RecipeManager.list, Player.Flags.loytelMartLv, Spatial.lv, Guild.Mage, CraftUtil.MakeDish(), CraftUtil.MakeLoveLunch(), TraitSeed.MakeSeed(), Player.Stats.married, SourceManager.materials, Card.ModExp(), Date.month, Player.noRestocks, Card.Num, NumCopyItem, EClass.pc, EClass.player, Game.quests, Chara.race, RenderRow.recipeKey, ElementContainer.Remove(), Card.RemoveThings(), EClass.rnd(), EClass.rndHalf(), EClass.rndSeed(), RecipeSource.row, seed, ElementContainer.SetBase(), Rand.SetBaseSeed(), Card.SetInt(), Card.SetLv(), CardBlueprint.SetNormalRarity(), Card.SetNum(), Card.SetPriceFix(), Rand.SetSeed(), TraitTicketFurniture.SetZone(), Thing.source, EClass.sources, Game.spatials, Player.stats, Guild.Thief, Card.Thing, Card.things, Card.trait, Card.TryMakeRandomItem(), Spatial.uid, and EClass.world.

Referenced by TraitVendingMachine.OnUse(), and Card.SpawnLoot().

◆ OnBlend()

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

Reimplemented in TraitDreamBug, TraitDrink, TraitDye, and TraitWell.

Definition at line 649 of file Trait.cs.

650 {
651 }

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 716 of file Trait.cs.

717 {
718 }

Referenced by Card.SetPlaceState().

◆ OnChildDecay()

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

Reimplemented in TraitBrewery.

Definition at line 1259 of file Trait.cs.

1260 {
1261 return true;
1262 }

◆ OnCrafted()

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

Reimplemented in TraitBlanket, TraitFakeTile, and TraitPotionAlchemy.

Definition at line 700 of file Trait.cs.

701 {
702 }

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

◆ OnCreate()

◆ OnDie()

virtual void Trait.OnDie ( )
inlinevirtual

Reimplemented in TraitGeneratorHamster, TraitStrangePainting, and TraitStrangeStatue.

Definition at line 1273 of file Trait.cs.

1274 {
1275 }

Referenced by Card.Die().

◆ OnDrink()

virtual void Trait.OnDrink ( Chara  c)
inlinevirtual

Reimplemented in TraitDrink, TraitDrinkMilkMother, TraitLumiestCrimAle, and TraitPotionEmpty.

Definition at line 1189 of file Trait.cs.

1190 {
1191 }

◆ OnEat()

virtual void Trait.OnEat ( Chara  c)
inlinevirtual

Reimplemented in TraitFortuneCookie.

Definition at line 1180 of file Trait.cs.

1181 {
1182 }

◆ OnEnterScreen()

virtual void Trait.OnEnterScreen ( )
inlinevirtual

Reimplemented in TraitToolTorch.

Definition at line 1621 of file Trait.cs.

1622 {
1624 }
virtual void RefreshRenderer()
Definition: Trait.cs:1626

Referenced by CardRenderer.OnEnterScreen().

◆ OnEquip()

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

Reimplemented in TraitEQFlower.

Definition at line 708 of file Trait.cs.

709 {
710 }

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

◆ OnHeld()

virtual void Trait.OnHeld ( )
inlinevirtual

Reimplemented in TraitDetector.

Definition at line 1243 of file Trait.cs.

1244 {
1245 }

Referenced by HotItemHeld.OnSetCurrentItem().

◆ OnImportMap()

virtual void Trait.OnImportMap ( )
inlinevirtual

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

Definition at line 692 of file Trait.cs.

693 {
694 }

Referenced by SerializedCards.Restore().

◆ OnInstall()

virtual void Trait.OnInstall ( bool  byPlayer)
inlinevirtual

Reimplemented in TraitSwitch.

Definition at line 1327 of file Trait.cs.

1328 {
1329 }

◆ OnListInteraction()

virtual void Trait.OnListInteraction ( InvOwner::ListInteraction  list,
ButtonGrid  b,
bool  context 
)
inlinevirtual

Reimplemented in TraitCard, and TraitLightSource.

Definition at line 756 of file Trait.cs.

757 {
758 Card card = owner;
759 Thing t = card as Thing;
760 if (t == null)
761 {
762 return;
763 }
764 if (!LayerChara.Instance)
765 {
766 if (CanRead(EClass.pc))
767 {
768 list.Add("invRead", 110, delegate
769 {
770 t.DoAct(new AI_Read
771 {
772 target = t
773 });
774 }, "remove");
775 }
776 if (CanUse(EClass.pc))
777 {
778 list.Add(LangUse, 120, delegate
779 {
780 if (OnUse(EClass.pc))
781 {
782 EClass.player.EndTurn();
783 }
784 }, "use");
785 }
786 if (CanDrink(EClass.pc))
787 {
788 list.Add("invDrink", 130, delegate
789 {
790 t.DoAct(new AI_Drink
791 {
792 target = t
793 });
794 }, "remove");
795 }
796 else if (CanEat(EClass.pc))
797 {
798 list.Add("invFood", 140, delegate
799 {
800 t.DoAct(new AI_Eat
801 {
802 cook = false,
803 target = t
804 });
805 }, "remove");
806 }
807 if (IsBlendBase)
808 {
809 list.Add("invBlend", 150, delegate
810 {
812 }, "blend");
813 }
814 }
815 if (!context || !CanName)
816 {
817 return;
818 }
819 list.Add("changeName", 200, delegate
820 {
821 Dialog.InputName("dialogChangeName", t.c_refText.IsEmpty(""), delegate(bool cancel, string text)
822 {
823 if (!cancel)
824 {
825 t.c_refText = text;
826 }
827 });
828 });
829 }
@ cook
Definition: AI_Eat.cs:5
string c_refText
Definition: Card.cs:1669
Definition: Dialog.cs:7
static Dialog InputName(string langDetail, string text, Action< bool, string > onClose, InputType inputType=InputType.Default)
Definition: Dialog.cs:536
Interaction Add(string s, int priority, Action action, string idPriority=null)
Definition: InvOwner.cs:474
static LayerChara Instance
Definition: LayerChara.cs:3
static LayerDragGrid Create(InvOwnerDraglet owner, bool refuelFromLayerDragGrid=false)
void DoAct(Act act)
Definition: Thing.cs:2030
virtual bool IsBlendBase
Definition: Trait.cs:275
virtual bool CanUse(Chara c)
Definition: Trait.cs:1197
virtual bool CanRead(Chara c)
Definition: Trait.cs:1166
virtual bool CanName
Definition: Trait.cs:147
virtual bool CanEat(Chara c)
Definition: Trait.cs:1175
virtual bool OnUse(Chara c)
Definition: Trait.cs:1212
virtual string LangUse
Definition: Trait.cs:381
virtual bool CanDrink(Chara c)
Definition: Trait.cs:1184

References Card.Add(), Card.c_refText, CanDrink(), CanEat(), CanName, CanRead(), CanUse(), card, cook, LayerDragGrid.Create(), Thing.DoAct(), Dialog.InputName(), LayerChara.Instance, IsBlendBase, LangUse, OnUse(), owner, and EClass.pc.

Referenced by InvOwnerEquip.ListInteractions().

◆ OnLockOpen()

virtual void Trait.OnLockOpen ( Chara  cc)
inlinevirtual

Definition at line 1132 of file Trait.cs.

1133 {
1134 owner.c_lockLv = 0;
1135 if (owner.c_lockedHard)
1136 {
1137 owner.c_lockedHard = false;
1138 owner.c_priceAdd = 0;
1139 }
1140 if (cc.IsPC && owner.isLostProperty)
1141 {
1143 }
1144 owner.isLostProperty = false;
1145 if (owner.GetBool(127))
1146 {
1147 Steam.GetAchievement(ID_Achievement.FIAMA_CHEST);
1148 }
1149 }
bool c_lockedHard
Definition: Card.cs:1063
bool isLostProperty
Definition: Card.cs:809
bool GetBool(string id)
Definition: Card.cs:2557
override bool IsPC
Definition: Chara.cs:632
void ModKarma(int a)
Definition: Player.cs:2645

References Card.c_lockedHard, Steam.GetAchievement(), Card.GetBool(), Card.isLostProperty, Chara.IsPC, Player.ModKarma(), and EClass.player.

◆ OnOpenDoor()

virtual void Trait.OnOpenDoor ( Chara  c)
inlinevirtual

Reimplemented in TraitDoorBell.

Definition at line 1285 of file Trait.cs.

1286 {
1287 }

Referenced by TraitDoor.TryOpen().

◆ OnRead()

◆ OnRemovedFromZone()

virtual void Trait.OnRemovedFromZone ( )
inlinevirtual

Reimplemented in TraitBoat.

Definition at line 724 of file Trait.cs.

725 {
726 }

Referenced by Map.OnCardRemovedFromZone().

◆ OnRenderExtra()

virtual void Trait.OnRenderExtra ( RenderParam  p)
inlinevirtual

Reimplemented in TraitPaintBoard, and TraitShrine.

Definition at line 668 of file Trait.cs.

669 {
670 }

Referenced by CardRenderer.Draw().

◆ OnRenderTile()

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

Reimplemented in TraitLightSun, and TraitRoadSign.

Definition at line 741 of file Trait.cs.

742 {
743 if (radius == 0)
744 {
745 return;
746 }
747 Vector3 vector = point.Position();
748 vector.z += EClass.setting.render.thingZ;
749 foreach (Point item in ListPoints(point))
750 {
751 Vector3 vector2 = item.Position();
752 EClass.screen.guide.passGuideFloor.Add(vector2.x, vector2.y, vector2.z, 10f, 0.3f);
753 }
754 }
ScreenGuide guide
static BaseGameScreen screen
Definition: EClass.cs:33
static GameSetting setting
Definition: EClass.cs:35
RenderSetting render
Definition: GameSetting.cs:348
void Add(Point point, float tile=0f, float color=0f)
Definition: MeshPass.cs:122
ref Vector3 Position(int height)
Definition: Point.cs:549
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 1269 of file Trait.cs.

1270 {
1271 }

Referenced by ButtonGrid.SetCard().

◆ OnSetCurrentItem()

virtual void Trait.OnSetCurrentItem ( )
inlinevirtual

Reimplemented in TraitToolTorch.

Definition at line 1251 of file Trait.cs.

1252 {
1253 }

◆ OnSetOwner()

virtual void Trait.OnSetOwner ( )
inlinevirtual

Reimplemented in TraitBook.

Definition at line 688 of file Trait.cs.

689 {
690 }

Referenced by SetOwner().

◆ OnSimulateHour()

virtual void Trait.OnSimulateHour ( VirtualDate  date)
inlinevirtual

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

Definition at line 728 of file Trait.cs.

729 {
730 }

Referenced by Card.OnSimulateHour().

◆ OnStepped()

virtual void Trait.OnStepped ( Chara  c)
inlinevirtual

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

Definition at line 1277 of file Trait.cs.

1278 {
1279 }

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

◆ OnSteppedOut()

virtual void Trait.OnSteppedOut ( Chara  c)
inlinevirtual

Reimplemented in TraitGeneratorWheel, and TraitSwing.

Definition at line 1281 of file Trait.cs.

1282 {
1283 }

Referenced by Chara._Move().

◆ OnThrowGround()

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

Reimplemented in TraitDrink, and TraitDye.

Definition at line 1193 of file Trait.cs.

1194 {
1195 }

Referenced by ActThrow.Throw().

◆ OnTickHeld()

virtual void Trait.OnTickHeld ( )
inlinevirtual

Reimplemented in TraitDetector.

Definition at line 1247 of file Trait.cs.

1248 {
1249 }

◆ OnToggle()

virtual void Trait.OnToggle ( )
inlinevirtual

Reimplemented in TraitJukeBox, and TraitLeverBreaker.

Definition at line 1441 of file Trait.cs.

1442 {
1443 }

◆ OnUnequip()

virtual void Trait.OnUnequip ( Chara  c)
inlinevirtual

Reimplemented in TraitEQFlower.

Definition at line 712 of file Trait.cs.

713 {
714 }

Referenced by CharaBody.Unequip().

◆ OnUninstall()

virtual void Trait.OnUninstall ( )
inlinevirtual

Definition at line 1331 of file Trait.cs.

1332 {
1333 }

◆ OnUnsetCurrentItem()

virtual void Trait.OnUnsetCurrentItem ( )
inlinevirtual

Reimplemented in TraitToolTorch.

Definition at line 1255 of file Trait.cs.

1256 {
1257 }

◆ OnUse() [1/3]

◆ OnUse() [2/3]

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

Reimplemented in TraitDye, and TraitFoodMeat.

Definition at line 1221 of file Trait.cs.

1222 {
1223 return true;
1224 }

◆ OnUse() [3/3]

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

Reimplemented in TraitPotionEmpty.

Definition at line 1226 of file Trait.cs.

1227 {
1228 return true;
1229 }

◆ PlayToggleEffect()

virtual void Trait.PlayToggleEffect ( bool  silent)
inlinevirtual

Reimplemented in TraitWoodMill.

Definition at line 1395 of file Trait.cs.

1396 {
1397 bool flag = ToggleType == ToggleType.Fire;
1398 bool isOn = owner.isOn;
1399 switch (ToggleType)
1400 {
1401 case ToggleType.Lever:
1402 if (!silent)
1403 {
1404 owner.Say("lever", EClass.pc, owner);
1405 owner.PlaySound("switch_lever");
1406 }
1407 return;
1408 case ToggleType.Curtain:
1409 if (!silent)
1410 {
1411 owner.Say(isOn ? "close" : "open", EClass.pc, owner);
1412 owner.PlaySound("Material/leather_drop");
1413 }
1416 return;
1417 case ToggleType.None:
1418 return;
1419 }
1420 if (isOn)
1421 {
1422 if (!silent)
1423 {
1424 owner.Say(flag ? "toggle_fire" : "toggle_ele", EClass.pc, owner);
1426 }
1429 }
1430 else
1431 {
1432 if (!silent)
1433 {
1435 }
1438 }
1439 }
void RefreshNeighborTiles()
Definition: Point.cs:1278
virtual string IdSoundToggleOff
Definition: Trait.cs:512
virtual string IdSoundToggleOn
Definition: Trait.cs:496

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

◆ PositionFix()

virtual void Trait.PositionFix ( ref Vector3  v)
inlinevirtual

Reimplemented in TraitDoorBigL.

Definition at line 1335 of file Trait.cs.

1336 {
1337 }

Referenced by BaseTileMap.DrawTile().

◆ RefreshRenderer()

virtual void Trait.RefreshRenderer ( )
inlinevirtual

Reimplemented in TraitToolTorch.

Definition at line 1626 of file Trait.cs.

1627 {
1628 if (owner.renderer.isSynced && !IdToggleExtra.IsEmpty())
1629 {
1630 if (owner.isOn)
1631 {
1633 }
1634 else
1635 {
1637 }
1638 }
1639 }
void AddExtra(string id)
void RemoveExtra(string id)
CardRenderer renderer
Definition: Card.cs:64
string IdToggleExtra
Definition: Trait.cs:481

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

◆ Refuel()

void Trait.Refuel ( Thing  t)
inline

Definition at line 1575 of file Trait.cs.

1576 {
1577 t.PlaySoundDrop(spatial: false);
1579 Msg.Say("fueled", t);
1580 if (!owner.isOn)
1581 {
1582 owner.trait.Toggle(on: true);
1583 }
1584 t.Destroy();
1586 }
void PlayAnime(AnimeID id, bool force)
void ModCharge(int a, bool destroy=false)
Definition: Card.cs:4131
void PlaySoundDrop(bool spatial=true)
Definition: Card.cs:6630
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:1361

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 1641 of file Trait.cs.

1642 {
1643 if (owner.isThing && !owner.Thing.source.attackType.IsEmpty() && owner.ammoData != null)
1644 {
1645 t.SetText(owner.c_ammo.ToString() ?? "", FontColor.Charge);
1646 t.SetActive(enable: true);
1647 }
1648 else if (owner.Num == 1 && ShowCharges && owner.IsIdentified)
1649 {
1650 t.SetText(owner.c_charges.ToString() ?? "", FontColor.Charge);
1651 t.SetActive(enable: true);
1652 }
1653 else
1654 {
1655 t.SetText(owner.Num.ToShortNumber(), FontColor.ButtonGrid);
1656 t.SetActive(owner.Num > 1);
1657 }
1658 }
FontColor
Definition: FontColor.cs:2
virtual bool isThing
Definition: Card.cs:2133
int c_ammo
Definition: Card.cs:1501
Thing ammoData
Definition: Card.cs:1825
bool IsIdentified
Definition: Card.cs:2447
virtual bool ShowCharges
Definition: Trait.cs:343
void SetText(string s)
Definition: UIText.cs:163

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 677 of file Trait.cs.

678 {
679 owner = _owner;
680 OnSetOwner();
681 }
virtual void OnSetOwner()
Definition: Trait.cs:688

References OnSetOwner(), and owner.

Referenced by Card.ApplyTrait().

◆ SetParams()

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

Definition at line 696 of file Trait.cs.

697 {
698 }

◆ Toggle()

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

Definition at line 1361 of file Trait.cs.

1362 {
1363 if (owner.isOn == on)
1364 {
1365 return;
1366 }
1367 if (Electricity < 0)
1368 {
1369 if (on)
1370 {
1372 {
1374 {
1375 if (!silent)
1376 {
1377 owner.Say("notEnoughElectricity", owner);
1378 }
1379 owner.PlaySound("electricity_insufficient");
1380 }
1381 return;
1382 }
1383 EClass._zone.electricity += Electricity;
1384 }
1385 else
1386 {
1387 EClass._zone.electricity -= Electricity;
1388 }
1389 }
1390 owner.isOn = on;
1391 PlayToggleEffect(silent);
1392 OnToggle();
1393 }
int electricity
Definition: Spatial.cs:250
virtual void PlayToggleEffect(bool silent)
Definition: Trait.cs:1395
virtual void OnToggle()
Definition: Trait.cs:1441

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 1014 of file Trait.cs.

1015 {
1016 Thing thing = cc.things.FindBest<TraitLockpick>((Thing t) => -t.c_charges);
1017 int num = ((thing == null) ? (cc.Evalue(280) / 2 + 2) : (cc.Evalue(280) + 10));
1018 int num2 = owner.c_lockLv;
1019 bool flag = this is TraitChestPractice;
1020 if (flag)
1021 {
1022 num2 = num / 4 * 3 - 1;
1023 }
1024 if (num <= num2 && cc.IsPC)
1025 {
1026 cc.PlaySound("lock");
1027 cc.Say("openLockFail2");
1028 owner.PlayAnime(AnimeID.Shiver);
1029 return LockOpenState.NotEnoughSkill;
1030 }
1031 if (thing != null && !flag)
1032 {
1033 thing.ModCharge(-1, destroy: true);
1034 }
1035 if (EClass.rnd(num + 6) > num2 + 5 || (!cc.IsPC && EClass.rnd(20) == 0) || EClass.rnd(200) == 0)
1036 {
1037 cc.PlaySound("lock_open");
1038 cc.Say("lockpick_success", cc, owner);
1039 int num3 = 100 + num2 * 10;
1040 if (owner.c_lockedHard)
1041 {
1042 num3 *= 10;
1043 }
1044 cc.ModExp(280, num3);
1045 OnLockOpen(cc);
1046 return LockOpenState.Success;
1047 }
1048 cc.PlaySound("lock");
1049 if (cc.IsPC)
1050 {
1051 cc.Say("openLockFail");
1052 }
1053 cc.ModExp(280, (thing != null) ? 50 : 30);
1054 if ((thing == null) | (EClass.rnd(2) == 0))
1055 {
1056 cc.stamina.Mod(-1);
1057 }
1058 return LockOpenState.Fail;
1059 }
LockOpenState
Definition: LockOpenState.cs:2
int c_lockLv
Definition: Card.cs:991
void PlayAnime(AnimeID id, bool force=false)
Definition: Card.cs:6664
Stats stamina
Definition: Chara.cs:1207
virtual void OnLockOpen(Chara cc)
Definition: Trait.cs:1132

References Card.c_lockedHard, Card.c_lockLv, Card.Evalue(), Chara.IsPC, Stats.Mod(), Card.ModCharge(), Card.ModExp(), Card.PlayAnime(), 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 1009 of file Trait.cs.

1010 {
1011 return true;
1012 }

Referenced by AI_Read.Run().

◆ TryPryOpenLock()

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

Definition at line 1061 of file Trait.cs.

1062 {
1063 Thing tool = cc.Tool;
1064 cc.stamina.Mod(-1);
1065 Point pos = owner.GetRootCard().pos;
1067 material.PlayHitEffect(pos);
1068 material.AddBlood(pos);
1069 if (!cc.IsAliveInCurrentZone || tool == null)
1070 {
1071 return LockOpenState.Fail;
1072 }
1073 cc.ModExp(280, 20);
1074 cc.ModExp(70, 30);
1075 int a = Mathf.Clamp(20 * tool.material.hardness / material.hardness, 10, 150);
1076 owner.hp -= EClass.rnd(a);
1077 int num = (int)Mathf.Clamp(20L * (long)(owner.c_lockLv + 20) / cc.STR, 5f, 50f);
1078 if (owner.c_lockedHard)
1079 {
1080 num = num * 3 / 2;
1081 }
1082 if (EClass.rnd(100) < num)
1083 {
1085 }
1086 if (owner.hp < 0)
1087 {
1088 cc.Say("pry_success", cc, owner);
1090 {
1091 cc.PlaySound("lock_open");
1092 }
1093 OnLockOpen(cc);
1094 foreach (Thing item in owner.things.List((Thing thing) => thing.Num > 10))
1095 {
1096 item.SetNum(item.Num / 10 * 8);
1097 }
1098 if (!(owner.trait is TraitChestPractice))
1099 {
1100 if (owner.isNPCProperty && cc.IsPC)
1101 {
1103 }
1104 owner.Die();
1105 }
1106 return LockOpenState.Success;
1107 }
1108 return LockOpenState.Fail;
1109 }
bool isNPCProperty
Definition: Card.cs:557
virtual void Die(Element e=null, Card origin=null, AttackSource attackSource=AttackSource.None, Chara originalTarget=null)
Definition: Card.cs:5245
SourceMaterial.Row material
Definition: Card.cs:2103
Thing Tool
Definition: Card.cs:2480
int hp
Definition: Card.cs:245
int STR
Definition: Card.cs:2403
Card GetRootCard()
Definition: Card.cs:3607
override bool IsAliveInCurrentZone
Definition: Chara.cs:569
void DamageRandomProperty(Chara cc)
Definition: Trait.cs:1111

References Card.c_lockedHard, Card.Die(), Card.GetRootCard(), Card.hp, Chara.IsAliveInCurrentZone, Card.isNPCProperty, Chara.IsPC, item, ThingContainer.List(), Card.material, material, Stats.Mod(), Card.ModExp(), Player.ModKarma(), Card.Num, EClass.player, Card.PlaySound(), Card.pos, EClass.rnd(), Card.Say(), Chara.stamina, Card.STR, Card.things, Card.Tool, tool, and Card.trait.

◆ TryRefuel()

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

Definition at line 1588 of file Trait.cs.

1589 {
1590 if (FindFuel(refuel: false))
1591 {
1592 FindFuel(refuel: true);
1593 }
1594 bool FindFuel(bool refuel)
1595 {
1596 int num = dest;
1597 List<Thing> list = EClass._zone.TryListThingsInSpot<TraitSpotFuel>((Thing t) => IsFuel(t));
1598 EClass.pc.things.Foreach(delegate(Thing t)
1599 {
1600 if (IsFuel(t) && t.tier == 0 && (excludes == null || !excludes.Contains(t)))
1601 {
1602 list.Add(t);
1603 }
1604 });
1605 foreach (Thing item in list)
1606 {
1607 if (num > 0)
1608 {
1609 int num2 = Mathf.Min(item.Num, Mathf.CeilToInt((float)num / (float)GetFuelValue(item)));
1610 num -= GetFuelValue(item) * num2;
1611 if (refuel)
1612 {
1613 Refuel(item.Split(num2));
1614 }
1615 }
1616 }
1617 return num <= 0;
1618 }
1619 }
void Foreach(Action< Thing > action, bool onlyAccessible=true)
bool IsFuel(string s)
Definition: Trait.cs:1533
void Refuel(Thing t)
Definition: Trait.cs:1575

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

◆ TrySetAct()

◆ TrySetHeldAct()

◆ TrySetToggleAct()

virtual void Trait.TrySetToggleAct ( ActPlan  p)
inlinevirtual

Definition at line 1445 of file Trait.cs.

1446 {
1447 if (!p.IsSelfOrNeighbor)
1448 {
1449 return;
1450 }
1451 switch (ToggleType)
1452 {
1453 case ToggleType.Lever:
1454 p.TrySetAct("ActToggleLever", delegate
1455 {
1456 Toggle(!owner.isOn);
1457 return true;
1458 }, owner);
1459 break;
1460 case ToggleType.Curtain:
1461 p.TrySetAct(owner.isOn ? "actOpen" : "actClose", delegate
1462 {
1463 Toggle(!owner.isOn);
1464 return true;
1465 }, owner);
1466 break;
1467 case ToggleType.Fire:
1468 case ToggleType.Light:
1469 case ToggleType.Electronics:
1470 {
1471 bool flag = ToggleType == ToggleType.Fire;
1472 if (EClass._zone.IsPCFaction || p.altAction || this is TraitCrafter || Electricity < 0)
1473 {
1474 if (owner.isOn)
1475 {
1476 if (p.altAction)
1477 {
1478 p.TrySetAct(flag ? "ActExtinguishTorch" : "ActToggleOff", delegate
1479 {
1480 Toggle(on: false);
1481 return true;
1482 }, owner);
1483 }
1484 }
1485 else if (!(this is TraitFactory) && !(this is TraitIncubator) && (!IsRequireFuel || owner.c_charges > 0))
1486 {
1487 p.TrySetAct(flag ? "ActTorch" : "ActToggleOn", delegate
1488 {
1489 Toggle(on: true);
1490 return true;
1491 }, owner);
1492 }
1494 {
1495 p.TrySetAct("ActFuel", delegate
1496 {
1498 return false;
1499 }, owner);
1500 }
1501 }
1502 if (p.altAction)
1503 {
1504 p.TrySetAct("disableAutoToggle".lang((owner.disableAutoToggle ? "off" : "on").lang()), delegate
1505 {
1506 owner.disableAutoToggle = !owner.disableAutoToggle;
1507 SE.Click();
1508 return true;
1509 }, owner);
1510 }
1511 break;
1512 }
1513 }
1514 }
bool altAction
Definition: ActPlan.cs:158
bool IsSelfOrNeighbor
Definition: ActPlan.cs:178
bool disableAutoToggle
Definition: Card.cs:605
virtual int MaxFuel
Definition: Trait.cs:464
virtual bool ShowFuelWindow
Definition: Trait.cs:477
bool IsPCFaction
Definition: Zone.cs:480

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 1339 of file Trait.cs.

1340 {
1341 if (!owner.IsInstalled)
1342 {
1343 return;
1344 }
1345 if (Electricity < 0 && owner.isOn && EClass._zone.electricity < 0)
1346 {
1347 Toggle(on: false, silent: true);
1348 }
1349 else if (AutoToggle)
1350 {
1351 int num = ((EClass._map.config.hour == -1) ? EClass.world.date.hour : EClass._map.config.hour);
1352 bool flag = !IsNightOnlyLight || num >= 17 || num <= 5 || EClass._map.IsIndoor;
1354 {
1355 flag = false;
1356 }
1357 Toggle(flag, silent: true);
1358 }
1359 }
bool IsInstalled
Definition: Card.cs:2451
Cell Cell
Definition: Card.cs:2107
bool HasRoof
Definition: Cell.cs:684
int hour
Definition: Date.cs:74
int hour
Definition: MapConfig.cs:98
bool IsIndoor
Definition: Map.cs:136
MapConfig config
Definition: Map.cs:40
virtual bool AutoToggle
Definition: Trait.cs:402
virtual bool IsNightOnlyLight
Definition: Trait.cs:438
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 1309 of file Trait.cs.

1310 {
1311 if (Electricity != 0)
1312 {
1313 if (owner.isOn)
1314 {
1315 Toggle(on: false, silent: true);
1316 }
1317 EClass._zone.dirtyElectricity = true;
1318 if (Electricity > 0)
1319 {
1320 EClass._zone.electricity -= Electricity;
1321 EClass.pc.PlaySound("electricity_off");
1322 }
1323 }
1324 OnUninstall();
1325 }
virtual void OnUninstall()
Definition: Trait.cs:1331

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 841 of file Trait.cs.

842 {
843 }

◆ WriteNote()

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

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

Definition at line 1151 of file Trait.cs.

1152 {
1153 }

Member Data Documentation

◆ listRadiusPoints

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

Definition at line 30 of file Trait.cs.

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

◆ owner

Card Trait.owner

Definition at line 28 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(), TraitBlackNote.CanStackTo(), TraitFood.CanStackTo(), TraitFoodEggFertilized.CanStackTo(), TraitMonsterBall.CanStackTo(), TraitCrafter.CanUse(), TraitFoodPreparedPackage.CanUse(), TraitGamble.CanUse(), TraitGarokkHammer.CanUse(), TraitGeneMachine.CanUse(), TraitGeneratorHamster.CanUse(), TraitGeneratorWheel.CanUse(), TraitItem.CanUse(), TraitLoytelMart.CanUse(), TraitMoongate.CanUse(), TraitPowerStatue.CanUse(), TraitShackle.CanUse(), TraitSlotMachine.CanUse(), TraitBed.ClearHolders(), TraitEffect.CompareTo(), Contains(), TraitBed.CountHolders(), 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(), TraitSyringe.EffectInject(), TraitBoat.ForeachDeck(), AI_Pray.GetAltar(), TraitTile.GetBuildModeRecipe(), TraitFactory.GetCostSp(), TraitItemProc.GetCraftNum(), TraitScrollMapTreasure.GetDest(), TraitDoorBig.GetDoorPair(), Hobby.GetEfficiency(), TraitNewZone.GetExitPos(), TraitStairs.GetExitPos(), TraitBed.GetHoverText(), TraitTrolley.GetIdSound(), GetName(), TraitFakeBlock.GetName(), TraitFakeObj.GetName(), TraitGene.GetName(), TraitPotionRandom.GetName(), GetPoint(), AI_Trolley.GetPoint(), TraitPotionAlchemy.GetPower(), SurvivalManager.GetRandomPoint(), GetRandomPoint(), TraitTile.GetRecipe(), TraitFakeTile.GetRenderData(), ZoneEventRaid.GetSpawnPos(), AI_Grab< T >.GetTarget(), TraitGeneMachine.GetTarget(), TeleportManager.GetTeleportZone(), GetValue(), TraitGene.GetValue(), TraitMod.GetValue(), TraitMonsterBall.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(), TraitGodStatue.OnBarter(), 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(), TraitMonsterBall.OnCreate(), TraitParchmentBottle.OnCreate(), TraitPotionRandom.OnCreate(), TraitPowerStatue.OnCreate(), TraitRecipe.OnCreate(), TraitRod.OnCreate(), TraitRodRandom.OnCreate(), TraitSeed.OnCreate(), TraitSpecialLantern.OnCreate(), TraitToolRangeCane.OnCreate(), TraitToolWaterPot.OnCreate(), TaskDrawWater.OnCreateProgress(), TaskPourWater.OnCreateProgress(), TraitGeneratorHamster.OnDie(), TraitStrangePainting.OnDie(), TraitStrangeStatue.OnDie(), TraitDrink.OnDrink(), TraitDrinkMilkMother.OnDrink(), TraitLumiestCrimAle.OnDrink(), AI_UseCrafter.OnEnd(), TraitRollingFortune.OnEndAI(), TraitEQFlower.OnEquip(), TraitAltar.OnImportMap(), TraitASMR.OnImportMap(), TraitBook.OnImportMap(), TraitSwitch.OnInstall(), OnListInteraction(), TraitCard.OnListInteraction(), TraitAltar.OnOffer(), TraitDoorBell.OnOpenDoor(), AI_Sleep.OnProgressComplete(), TraitBaseSpellbook.OnRead(), TraitBook.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(), TraitWeightScale.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(), TraitParchmentBottle.SetName(), TraitPowerStatue.SetName(), TraitRecipeCat.SetName(), TraitScrollMap.SetName(), TraitTape.SetName(), TraitToolWaterPot.SetName(), SetOwner(), TraitGenerator.ShortOut(), TraitTrolley.ShouldPlaySound(), 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(), TraitPartyBoard.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(), TraitFakeTile.TrySetHeldAct(), TraitGene.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(), and TraitBed.ValidateOwners().

◆ SelfFactory

TraitSelfFactory Trait.SelfFactory = new TraitSelfFactory()
static

Property Documentation

◆ AllowCriminal

virtual bool Trait.AllowCriminal
get

Definition at line 575 of file Trait.cs.

◆ AllowSell

virtual bool Trait.AllowSell
get

Definition at line 549 of file Trait.cs.

550 {
551 get
552 {
553 if (CurrencyType != CurrencyType.Money)
554 {
555 return CurrencyType == CurrencyType.None;
556 }
557 return true;
558 }
559 }

◆ AlwaysHideOnLowWall

virtual bool Trait.AlwaysHideOnLowWall
get

Definition at line 365 of file Trait.cs.

Referenced by BaseTileMap.DrawTile().

◆ AutoToggle

virtual bool Trait.AutoToggle
get

Definition at line 401 of file Trait.cs.

402 {
403 get
404 {
405 if (IsLighting || ToggleType == ToggleType.Curtain || ToggleType == ToggleType.Electronics)
406 {
407 return !owner.disableAutoToggle;
408 }
409 return false;
410 }
411 }
bool IsLighting
Definition: Trait.cs:414

◆ CanAutofire

virtual bool Trait.CanAutofire
get

Definition at line 145 of file Trait.cs.

Referenced by Thing.CanAutoFire().

◆ CanBeAttacked

◆ CanBeDestroyed

◆ CanBeDisassembled

virtual bool Trait.CanBeDisassembled
get

Definition at line 317 of file Trait.cs.

318 {
319 get
320 {
321 if (CanBeDestroyed && !(this is TraitTrap) && owner.things.Count == 0)
322 {
323 return owner.rarity < Rarity.Artifact;
324 }
325 return false;
326 }
327 }
virtual bool CanBeDestroyed
Definition: Trait.cs:307

Referenced by TaskHarvest.TryGetAct().

◆ CanBeDropped

◆ CanBeHallucinated

virtual bool Trait.CanBeHallucinated
get

Definition at line 311 of file Trait.cs.

Referenced by CardRenderer.Draw().

◆ CanBeHeld

virtual bool Trait.CanBeHeld
get

◆ CanBeHeldAsFurniture

virtual bool Trait.CanBeHeldAsFurniture
get

Definition at line 349 of file Trait.cs.

350 {
351 get
352 {
353 if (!(this is TraitTool))
354 {
355 return IsThrowMainAction;
356 }
357 return true;
358 }
359 }
virtual bool IsThrowMainAction
Definition: Trait.cs:194

◆ CanBeMasked

virtual bool Trait.CanBeMasked
get

Definition at line 271 of file Trait.cs.

◆ CanBeOnlyBuiltInHome

virtual bool Trait.CanBeOnlyBuiltInHome
get

◆ CanBeShipped

virtual bool Trait.CanBeShipped
get

Definition at line 329 of file Trait.cs.

330 {
331 get
332 {
333 if (!owner.IsImportant)
334 {
335 return !owner.IsUnique;
336 }
337 return false;
338 }
339 }
bool IsImportant
Definition: Card.cs:2157

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

◆ CanBeSmashedToDeath

virtual bool Trait.CanBeSmashedToDeath
get

Definition at line 309 of file Trait.cs.

Referenced by Card.Die().

◆ CanBeStolen

virtual bool Trait.CanBeStolen
get

Definition at line 293 of file Trait.cs.

294 {
295 get
296 {
297 if (!CanOnlyCarry)
298 {
299 return CanBeHeld;
300 }
301 return false;
302 }
303 }
virtual bool CanBeHeld
Definition: Trait.cs:291

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

◆ CanBeTeleported

virtual bool Trait.CanBeTeleported
get

Definition at line 179 of file Trait.cs.

Referenced by ActTelekinesis.CanPerform(), and Card.Teleport().

◆ CanBuildInTown

virtual bool Trait.CanBuildInTown
get

Definition at line 279 of file Trait.cs.

280 {
281 get
282 {
284 {
286 }
287 return false;
288 }
289 }
TileType TileType
Definition: Card.cs:2189
virtual bool IsBlockSight
Definition: TileType.cs:165
virtual bool IsBlockPass
Definition: TileType.cs:161

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

◆ CanChangeAffinity

virtual bool Trait.CanChangeAffinity
get

Definition at line 585 of file Trait.cs.

Referenced by DramaActor.Talk().

◆ CanChangeHeight

virtual bool Trait.CanChangeHeight
get

Definition at line 161 of file Trait.cs.

Referenced by HotItemHeld.CanChangeHeightByWheel().

◆ CanCopyInBlueprint

virtual bool Trait.CanCopyInBlueprint
get

Definition at line 165 of file Trait.cs.

166 {
167 get
168 {
169 if (owner.rarity <= Rarity.Superior && owner.sourceCard.value > 0)
170 {
171 return CanBeDestroyed;
172 }
173 return false;
174 }
175 }

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

◆ CanExtendBuild

virtual bool Trait.CanExtendBuild
get

Definition at line 181 of file Trait.cs.

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

◆ CanHarvest

virtual bool Trait.CanHarvest
get

Definition at line 92 of file Trait.cs.

Referenced by TaskHarvest.TryGetAct().

◆ CanName

virtual bool Trait.CanName
get

Definition at line 147 of file Trait.cs.

Referenced by ActPlan._Update(), and OnListInteraction().

◆ CanOnlyCarry

◆ CanOpenContainer

virtual bool Trait.CanOpenContainer
get

Definition at line 245 of file Trait.cs.

246 {
247 get
248 {
249 if (IsContainer)
250 {
251 return !owner.isNPCProperty;
252 }
253 return false;
254 }
255 }
virtual bool IsContainer
Definition: Trait.cs:225

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

◆ CanPutAway

virtual bool Trait.CanPutAway
get

Definition at line 149 of file Trait.cs.

150 {
151 get
152 {
153 if (!CanOnlyCarry)
154 {
155 return !owner.HasTag(CTAG.godArtifact);
156 }
157 return false;
158 }
159 }
CTAG
Definition: CTAG.cs:2
bool HasTag(CTAG tag)
Definition: Card.cs:2728

Referenced by AM_MoveInstalled.CanPutAway().

◆ CanSearchContent

virtual bool Trait.CanSearchContent
get

Definition at line 229 of file Trait.cs.

230 {
231 get
232 {
233 if (!owner.isChara)
234 {
235 if (IsContainer)
236 {
237 return owner.c_lockLv == 0;
238 }
239 return false;
240 }
241 return true;
242 }
243 }

Referenced by ThingContainer._List().

◆ CanStack

virtual bool Trait.CanStack
get

◆ CanUseContent

virtual bool Trait.CanUseContent
get

Definition at line 227 of file Trait.cs.

Referenced by QuestDeliver.IsDestThing().

◆ CanUseRoomRadius

virtual bool Trait.CanUseRoomRadius
get

Definition at line 98 of file Trait.cs.

Referenced by ListPoints().

◆ ColorExtra

virtual ? Color Trait.ColorExtra
get

Definition at line 461 of file Trait.cs.

◆ ContainerType

virtual ContainerType Trait.ContainerType
get

Definition at line 259 of file Trait.cs.

◆ CopyShop

virtual CopyShopType Trait.CopyShop
get

Definition at line 529 of file Trait.cs.

Referenced by OnBarter().

◆ CostRerollShop

virtual int Trait.CostRerollShop
get

Definition at line 561 of file Trait.cs.

562 {
563 get
564 {
565 if (CurrencyType == CurrencyType.Money || CurrencyType == CurrencyType.Influence)
566 {
567 return 1;
568 }
569 return 0;
570 }
571 }

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

◆ CraftNum

virtual int Trait.CraftNum
get

◆ CurrencyRerollShop

virtual CurrencyType Trait.CurrencyRerollShop
get

Definition at line 573 of file Trait.cs.

◆ CurrencyType

virtual CurrencyType Trait.CurrencyType
get

Definition at line 545 of file Trait.cs.

Referenced by TraitVendingMachine.OnUse().

◆ Decay

virtual int Trait.Decay
get

Definition at line 123 of file Trait.cs.

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

◆ DecaySpeed

virtual int Trait.DecaySpeed
get

Definition at line 125 of file Trait.cs.

◆ DecaySpeedChild

virtual int Trait.DecaySpeedChild
get

Definition at line 127 of file Trait.cs.

◆ DefaultStock

virtual int Trait.DefaultStock
get

Definition at line 131 of file Trait.cs.

Referenced by OnBarter().

◆ DisableAutoCombat

virtual bool Trait.DisableAutoCombat
get

Definition at line 211 of file Trait.cs.

Referenced by ActPlan._Update().

◆ DropChance

virtual float Trait.DropChance
get

Definition at line 371 of file Trait.cs.

Referenced by Card.SpawnLoot().

◆ EffectDead

virtual EffectDead Trait.EffectDead
get

Definition at line 263 of file Trait.cs.

Referenced by Card.Die().

◆ Electricity

◆ ExistsOnMap

bool Trait.ExistsOnMap
get

Definition at line 367 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 475 of file Trait.cs.

Referenced by AI_UseCrafter.Run().

◆ GuidePriotiy

virtual int Trait.GuidePriotiy
get

Definition at line 100 of file Trait.cs.

Referenced by DramaCustomSequence.GetListGuide().

◆ HasCharges

virtual bool Trait.HasCharges
get

Definition at line 341 of file Trait.cs.

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

◆ HaveUpdate

virtual bool Trait.HaveUpdate
get

Definition at line 139 of file Trait.cs.

◆ HideInAdv

virtual bool Trait.HideInAdv
get

Definition at line 361 of file Trait.cs.

◆ HoldAsDefaultInteraction

virtual bool Trait.HoldAsDefaultInteraction
get

Definition at line 133 of file Trait.cs.

Referenced by InvOwner.GetAutoUseLang().

◆ IDActorEx

virtual string Trait.IDActorEx
get

Definition at line 187 of file Trait.cs.

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

◆ IDInvStyle

virtual string Trait.IDInvStyle
get

Definition at line 185 of file Trait.cs.

◆ IdleUseChance

virtual int Trait.IdleUseChance
get

Definition at line 375 of file Trait.cs.

Referenced by AI_Idle.TryPerformIdleUse().

◆ IdNoRestock

virtual string Trait.IdNoRestock
get

Definition at line 373 of file Trait.cs.

Referenced by OnBarter().

◆ IdSkin

virtual int Trait.IdSkin
get

Definition at line 46 of file Trait.cs.

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

◆ IdSoundToggleOff

virtual string Trait.IdSoundToggleOff
get

Definition at line 511 of file Trait.cs.

512 {
513 get
514 {
515 if (Electricity >= 0)
516 {
517 if (ToggleType != ToggleType.Fire)
518 {
519 return "switch_off";
520 }
521 return "torch_unlit";
522 }
523 return "switch_off_electricity";
524 }
525 }

◆ IdSoundToggleOn

virtual string Trait.IdSoundToggleOn
get

Definition at line 495 of file Trait.cs.

496 {
497 get
498 {
499 if (Electricity >= 0)
500 {
501 if (ToggleType != ToggleType.Fire)
502 {
503 return "switch_on";
504 }
505 return "torch_lit";
506 }
507 return "switch_on_electricity";
508 }
509 }

◆ IdToggleExtra

string Trait.IdToggleExtra
get

Definition at line 481 of file Trait.cs.

◆ IgnoreLastStackHeight

virtual bool Trait.IgnoreLastStackHeight
get

Definition at line 121 of file Trait.cs.

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

◆ IgnoreOnSteppedWhenMoving

virtual bool Trait.IgnoreOnSteppedWhenMoving
get

Definition at line 383 of file Trait.cs.

Referenced by Chara.Tick().

◆ InstallBottomPriority

virtual int Trait.InstallBottomPriority
get

Definition at line 90 of file Trait.cs.

Referenced by Card.SetPlaceState().

◆ InvertHeldSprite

virtual bool Trait.InvertHeldSprite
get

Definition at line 72 of file Trait.cs.

Referenced by CharaActorPCC.OnRender().

◆ InvGridSize

virtual InvGridSize Trait.InvGridSize
get

Definition at line 213 of file Trait.cs.

214 {
215 get
216 {
217 if (!owner.IsPC)
218 {
219 return InvGridSize.Default;
220 }
221 return InvGridSize.Backpack;
222 }
223 }
InvGridSize
Definition: InvGridSize.cs:2
virtual bool IsPC
Definition: Card.cs:2197

◆ IsAltar

virtual bool Trait.IsAltar
get

Definition at line 267 of file Trait.cs.

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

◆ IsAnimeOn

virtual bool Trait.IsAnimeOn
get

Definition at line 387 of file Trait.cs.

388 {
389 get
390 {
391 if (!IsOn)
392 {
393 return !IsToggle;
394 }
395 return true;
396 }
397 }
bool IsToggle
Definition: Trait.cs:399
virtual bool IsOn
Definition: Trait.cs:385

◆ IsBlendBase

virtual bool Trait.IsBlendBase
get

Definition at line 275 of file Trait.cs.

Referenced by ActPlan._Update(), and OnListInteraction().

◆ IsBlockPath

virtual bool Trait.IsBlockPath
get

Definition at line 54 of file Trait.cs.

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

◆ IsBlockSight

virtual bool Trait.IsBlockSight
get

Definition at line 56 of file Trait.cs.

Referenced by Cell.Refresh().

◆ IsChangeFloorHeight

virtual bool Trait.IsChangeFloorHeight
get

Definition at line 74 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 64 of file Trait.cs.

Referenced by Cell.Refresh().

◆ IsFridge

virtual bool Trait.IsFridge
get

Definition at line 129 of file Trait.cs.

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

◆ IsGround

virtual bool Trait.IsGround
get

Definition at line 68 of file Trait.cs.

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

◆ IsHomeItem

virtual bool Trait.IsHomeItem
get

Definition at line 265 of file Trait.cs.

◆ IsLighting

bool Trait.IsLighting
get

Definition at line 413 of file Trait.cs.

414 {
415 get
416 {
417 if (ToggleType != ToggleType.Fire)
418 {
419 return ToggleType == ToggleType.Light;
420 }
421 return true;
422 }
423 }

◆ IsLightOn

virtual bool Trait.IsLightOn
get

Definition at line 425 of file Trait.cs.

426 {
427 get
428 {
429 if (!owner.isChara)
430 {
431 return owner.isOn;
432 }
433 return true;
434 }
435 }

Referenced by Card.GetLightRadius().

◆ IsLocalAct

virtual bool Trait.IsLocalAct
get

Definition at line 273 of file Trait.cs.

Referenced by HotItemHeld.TrySetAct().

◆ IsNightOnlyLight

virtual bool Trait.IsNightOnlyLight
get

Definition at line 437 of file Trait.cs.

438 {
439 get
440 {
441 if (ToggleType != ToggleType.Electronics && IsToggle)
442 {
443 return !owner.isRoofItem;
444 }
445 return false;
446 }
447 }
bool isRoofItem
Definition: Card.cs:581

◆ IsNoShop

virtual bool Trait.IsNoShop
get

Definition at line 66 of file Trait.cs.

Referenced by OnBarter().

◆ IsOn

virtual bool Trait.IsOn
get

Definition at line 385 of file Trait.cs.

Referenced by TraitASMR.Update().

◆ IsOnlyUsableByPc

virtual bool Trait.IsOnlyUsableByPc
get

Definition at line 70 of file Trait.cs.

◆ IsOpenPath

virtual bool Trait.IsOpenPath
get

Definition at line 62 of file Trait.cs.

Referenced by Cell.Refresh().

◆ IsOpenSight

virtual bool Trait.IsOpenSight
get

Definition at line 60 of file Trait.cs.

Referenced by Cell.Refresh().

◆ IsRequireFuel

bool Trait.IsRequireFuel
get

Definition at line 479 of file Trait.cs.

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

◆ IsRestSpot

virtual bool Trait.IsRestSpot
get

Definition at line 269 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 141 of file Trait.cs.

◆ IsThrowMainAction

virtual bool Trait.IsThrowMainAction
get

Definition at line 193 of file Trait.cs.

194 {
195 get
196 {
197 if (!owner.HasTag(CTAG.throwWeapon))
198 {
199 return owner.IsMeleeWeapon;
200 }
201 return true;
202 }
203 }
bool IsMeleeWeapon
Definition: Card.cs:2295

Referenced by HotItemHeld.TrySetAct().

◆ IsToggle

bool Trait.IsToggle
get

Definition at line 399 of file Trait.cs.

◆ IsTool

virtual bool Trait.IsTool
get

◆ LangBarter

virtual string Trait.LangBarter
get

Definition at line 581 of file Trait.cs.

◆ langNote

virtual string Trait.langNote
get

Definition at line 183 of file Trait.cs.

Referenced by TraitItem.WriteNote().

◆ LangUse

virtual string Trait.LangUse
get

Definition at line 381 of file Trait.cs.

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

◆ LevelAsQuality

virtual bool Trait.LevelAsQuality
get

Definition at line 205 of file Trait.cs.

Referenced by Card.Create().

◆ MaskOnBuild

virtual bool Trait.MaskOnBuild
get

Definition at line 189 of file Trait.cs.

Referenced by RecipeCard.Build().

◆ MaxFuel

virtual int Trait.MaxFuel
get

Definition at line 463 of file Trait.cs.

464 {
465 get
466 {
467 if (ToggleType != ToggleType.Fire)
468 {
469 return 0;
470 }
471 return 100;
472 }
473 }

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

◆ Name

virtual string Trait.Name
get

Definition at line 48 of file Trait.cs.

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

◆ NoHeldDir

virtual bool Trait.NoHeldDir
get

Definition at line 363 of file Trait.cs.

Referenced by CharaRenderer.DrawHeld().

◆ NumCopyItem

virtual int Trait.NumCopyItem
get

Definition at line 531 of file Trait.cs.

Referenced by OnBarter().

◆ OriginalElectricity

virtual int Trait.OriginalElectricity
get

Definition at line 102 of file Trait.cs.

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

◆ Params

string [] Trait.Params
get

Definition at line 32 of file Trait.cs.

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

Referenced by GetParam(), and GetParamInt().

◆ PriceType

virtual PriceType Trait.PriceType
get

Definition at line 547 of file Trait.cs.

Referenced by TraitVendingMachine.OnUse().

◆ radius

virtual int Trait.radius
get

◆ radiusType

virtual TraitRadiusType Trait.radiusType
get

Definition at line 96 of file Trait.cs.

Referenced by ListPoints().

◆ RecipeCat

virtual string Trait.RecipeCat
get

Definition at line 377 of file Trait.cs.

Referenced by BuildMenu.RefreshCategory().

◆ RefCardName

virtual RefCardName Trait.RefCardName
get

Definition at line 52 of file Trait.cs.

◆ RemoveGlobalOnBanish

virtual bool Trait.RemoveGlobalOnBanish
get

Definition at line 583 of file Trait.cs.

Referenced by FactionBranch.BanishMember().

◆ RenderExtra

virtual bool Trait.RenderExtra
get

Definition at line 369 of file Trait.cs.

Referenced by CardRenderer.Draw().

◆ ReqHarvest

virtual string Trait.ReqHarvest
get

Definition at line 315 of file Trait.cs.

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

◆ RequireFullStackCheck

virtual bool Trait.RequireFullStackCheck
get

Definition at line 209 of file Trait.cs.

◆ RestockDay

virtual int Trait.RestockDay
get

Definition at line 577 of file Trait.cs.

◆ ShopLv

virtual int Trait.ShopLv
get

Definition at line 527 of file Trait.cs.

Referenced by CustomMerchantStock.Generate().

◆ ShopType

virtual ShopType Trait.ShopType
get

Definition at line 533 of file Trait.cs.

534 {
535 get
536 {
537 if (!owner.GetStr("merchant_override").IsEmpty())
538 {
539 return ShopType.CustomContent;
540 }
541 return ShopType.None;
542 }
543 }

Referenced by Zone.GetRandomVisitPos(), and Chara.TryClearInventory().

◆ ShouldRefreshTile

virtual bool Trait.ShouldRefreshTile
get

Definition at line 76 of file Trait.cs.

77 {
78 get
79 {
80 if (!IsBlockPath && !IsOpenSight)
81 {
82 return IsBlockSight;
83 }
84 return true;
85 }
86 }
virtual bool IsBlockPath
Definition: Trait.cs:54
virtual bool IsBlockSight
Definition: Trait.cs:56
virtual bool IsOpenSight
Definition: Trait.cs:60

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

◆ ShouldTryRefreshRoom

virtual bool Trait.ShouldTryRefreshRoom
get

Definition at line 88 of file Trait.cs.

Referenced by Card.SetPlaceState().

◆ ShowAsTool

virtual bool Trait.ShowAsTool
get

Definition at line 347 of file Trait.cs.

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

◆ ShowCharges

virtual bool Trait.ShowCharges
get

Definition at line 343 of file Trait.cs.

Referenced by Thing.GetName().

◆ ShowChildrenNumber

virtual bool Trait.ShowChildrenNumber
get

Definition at line 345 of file Trait.cs.

◆ ShowContextOnPick

virtual bool Trait.ShowContextOnPick
get

Definition at line 191 of file Trait.cs.

Referenced by AM_MoveInstalled.OnProcessTiles().

◆ ShowFuelWindow

virtual bool Trait.ShowFuelWindow
get

Definition at line 477 of file Trait.cs.

◆ ShowOrbit

virtual bool Trait.ShowOrbit
get

Definition at line 137 of file Trait.cs.

Referenced by CardRenderer.TrySpawnOrbit().

◆ SlaverType

virtual SlaverType Trait.SlaverType
get

Definition at line 579 of file Trait.cs.

◆ TextNextRestock

string Trait.TextNextRestock
get

Definition at line 587 of file Trait.cs.

◆ TextNextRestockPet

string Trait.TextNextRestockPet
get

Definition at line 589 of file Trait.cs.

◆ ThrowType

virtual ThrowType Trait.ThrowType
get

Definition at line 261 of file Trait.cs.

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

◆ tileMode

virtual TileMode Trait.tileMode
get

Definition at line 449 of file Trait.cs.

◆ tileType

virtual TileType Trait.tileType
get

◆ ToggleType

virtual ToggleType Trait.ToggleType
get

Definition at line 483 of file Trait.cs.

484 {
485 get
486 {
487 if (Electricity >= 0)
488 {
489 return ToggleType.None;
490 }
491 return ToggleType.Electronics;
492 }
493 }

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

◆ UseAltTiles

virtual bool Trait.UseAltTiles
get

Definition at line 451 of file Trait.cs.

◆ UseDummyTile

virtual bool Trait.UseDummyTile
get

Definition at line 207 of file Trait.cs.

Referenced by CardRenderer.Draw().

◆ UseExtra

virtual bool Trait.UseExtra
get

Definition at line 457 of file Trait.cs.

◆ UseLightColor

virtual bool Trait.UseLightColor
get

Definition at line 459 of file Trait.cs.

◆ UseLowblock

virtual bool Trait.UseLowblock
get

Definition at line 455 of file Trait.cs.

Referenced by BaseTileMap.DrawTile().

◆ UsePositionFix

virtual bool Trait.UsePositionFix
get

Definition at line 453 of file Trait.cs.

Referenced by BaseTileMap.DrawTile().

◆ WeightMod

virtual byte Trait.WeightMod
get

Definition at line 44 of file Trait.cs.

Referenced by Cell.Refresh().


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