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

Public Types

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

Public Member Functions

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

Public Attributes

Card owner
 

Static Public Attributes

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

Static Protected Attributes

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

Properties

string[] Params [get]
 
virtual byte WeightMod [get]
 
virtual int IdSkin [get]
 
virtual string Name [get]
 
virtual TileType tileType [get]
 
virtual RefCardName RefCardName [get]
 
virtual bool IsBlockPath [get]
 
virtual bool IsBlockSight [get]
 
virtual bool IsDoor [get]
 
virtual bool IsOpenSight [get]
 
virtual bool IsOpenPath [get]
 
virtual bool IsFloating [get]
 
virtual bool IsGround [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 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 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 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 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 IsOn [get]
 
virtual bool IsAnimeOn [get]
 
bool IsToggle [get]
 
virtual bool AutoToggle [get]
 
bool IsLighting [get]
 
virtual bool IsLightOn [get]
 
virtual bool IsNightOnlyLight [get]
 
virtual TileMode tileMode [get]
 
virtual bool UseAltTiles [get]
 
virtual bool UseLowblock [get]
 
virtual bool UseExtra [get]
 
virtual bool UseLightColor [get]
 
virtual ? Color ColorExtra [get]
 
virtual int MaxFuel [get]
 
virtual int FuelCost [get]
 
virtual bool ShowFuelWindow [get]
 
bool IsRequireFuel [get]
 
string IdToggleExtra [get]
 
virtual ToggleType ToggleType [get]
 
virtual int ShopLv [get]
 
virtual CopyShopType CopyShop [get]
 
virtual int NumCopyItem [get]
 
virtual ShopType ShopType [get]
 
virtual CurrencyType CurrencyType [get]
 
virtual PriceType PriceType [get]
 
virtual bool AllowSell [get]
 
virtual int CostRerollShop [get]
 
virtual bool AllowCriminal [get]
 
virtual int RestockDay [get]
 
virtual SlaverType SlaverType [get]
 
virtual string LangBarter [get]
 
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 rnd (int a)
 
static int curve (int a, int start, int step, int rate=75)
 
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 17 of file Trait.cs.

◆ TileMode

Enumerator
Default 
Door 
Illumination 
DefaultNoAnime 
SignalAnime 

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

559 {
560 return false;
561 }

Referenced by InvOwnerBlend.ShouldShowGuide().

◆ CanBuiltAt()

virtual bool Trait.CanBuiltAt ( Point  p)
inlinevirtual

Reimplemented in TraitSpotExit.

Definition at line 675 of file Trait.cs.

676 {
677 return true;
678 }

Referenced by TileType._HitTest().

◆ CanChildDecay()

virtual bool Trait.CanChildDecay ( Card  c)
inlinevirtual

Reimplemented in TraitBrewery, and TraitContainerCompost.

Definition at line 1017 of file Trait.cs.

1018 {
1019 return false;
1020 }

Referenced by Card.DecayNatural().

◆ CanCook()

virtual bool Trait.CanCook ( Card  c)
inlinevirtual

Definition at line 768 of file Trait.cs.

769 {
770 if (c == null || !ExistsOnMap || !(c.trait is TraitFood))
771 {
772 return false;
773 }
774 return true;
775 }
Trait trait
Definition: Card.cs:49
bool ExistsOnMap
Definition: Trait.cs:343

References Card.trait.

Referenced by AI_Cook.IsValidTarget().

◆ CanCopy()

virtual bool Trait.CanCopy ( Thing  t)
inlinevirtual

Reimplemented in TraitDemitas, and TraitKettle.

Definition at line 1413 of file Trait.cs.

1414 {
1415 return false;
1416 }

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

◆ CanDrink()

virtual bool Trait.CanDrink ( Chara  c)
inlinevirtual

Reimplemented in TraitDrink, and TraitPotionEmpty.

Definition at line 937 of file Trait.cs.

938 {
939 return false;
940 }

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

◆ CanEat()

virtual bool Trait.CanEat ( Chara  c)
inlinevirtual

Reimplemented in TraitFood, and TraitFoodPreparedPackage.

Definition at line 928 of file Trait.cs.

929 {
930 return owner.HasElement(10);
931 }
bool HasElement(int ele, int req=1)
Definition: Card.cs:5214
Card owner
Definition: Trait.cs:26

References Card.HasElement().

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

◆ CanOffer()

virtual bool Trait.CanOffer ( Card  tg)
inlinevirtual

Reimplemented in TraitAltar.

Definition at line 790 of file Trait.cs.

791 {
792 if (tg == null || tg.isChara || tg.trait.CanOnlyCarry)
793 {
794 return false;
795 }
796 if (tg.rarity == Rarity.Artifact)
797 {
798 return false;
799 }
800 return true;
801 }
Rarity
Definition: Rarity.cs:2
Rarity rarity
Definition: Card.cs:298
virtual bool isChara
Definition: Card.cs:1959
virtual bool CanOnlyCarry
Definition: Trait.cs:283

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, TraitBookSecret, TraitBookSkill, TraitScroll, and TraitScrollStatic.

Definition at line 919 of file Trait.cs.

920 {
921 return false;
922 }

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

◆ CanStackTo()

virtual bool Trait.CanStackTo ( Thing  to)
inlinevirtual

Reimplemented in TraitAmmo, TraitAncientbook, TraitBlueprint, TraitBook, TraitFood, TraitFoodEggFertilized, TraitGambleChest, TraitMonsterBall, TraitNote, TraitRecipe, TraitRecipeCat, TraitSalesTag, and TraitShackle.

Definition at line 543 of file Trait.cs.

544 {
545 return CanStack;
546 }
virtual bool CanStack
Definition: Trait.cs:145

References CanStack.

◆ CanUse() [1/3]

virtual bool Trait.CanUse ( Chara  c)
inlinevirtual

◆ CanUse() [2/3]

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

Reimplemented in TraitDye, and TraitFoodMeat.

Definition at line 955 of file Trait.cs.

956 {
957 return false;
958 }

◆ CanUse() [3/3]

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

Reimplemented in TraitPotionEmpty.

Definition at line 960 of file Trait.cs.

961 {
962 return false;
963 }

◆ CompareTo()

virtual int Trait.CompareTo ( Card  b)
inlinevirtual

Reimplemented in TraitEffect.

Definition at line 670 of file Trait.cs.

671 {
672 return 0;
673 }

Referenced by Card.SecondaryCompare().

◆ Contains()

virtual bool Trait.Contains ( RecipeSource  r)
inlinevirtual

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

Definition at line 533 of file Trait.cs.

534 {
535 return r.idFactory == ((owner.sourceCard.origin != null) ? owner.sourceCard.origin.id : owner.id);
536 }
CardRow origin
Definition: CardRow.cs:49
string id
Definition: CardRow.cs:7
string id
Definition: Card.cs:31
virtual CardRow sourceCard
Definition: Card.cs:2007

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

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

◆ CookProgress()

void Trait.CookProgress ( )
inline

Definition at line 777 of file Trait.cs.

778 {
779 if (!ExistsOnMap)
780 {
781 return;
782 }
783 foreach (Card item in owner.pos.ListCards())
784 {
785 owner.PlaySound("cook");
786 item.renderer.PlayAnime(AnimeID.Jump);
787 }
788 }
AnimeID
Definition: AnimeID.cs:2
Definition: Card.cs:11
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:5404
Point pos
Definition: Card.cs:55
List< Card > ListCards(bool includeMasked=false)
Definition: Point.cs:1015

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

Referenced by AI_Cook.Run().

◆ CreateStock()

Thing Trait.CreateStock ( )
inline

Definition at line 1993 of file Trait.cs.

1994 {
1995 switch (ShopType)
1996 {
1997 case ShopType.Dye:
1998 {
1999 Thing thing4 = ThingGen.Create("dye").SetNum(15 + EClass.rnd(30));
2000 thing4.ChangeMaterial(EClass.sources.materials.rows.RandomItem().alias);
2001 return thing4;
2002 }
2003 case ShopType.GeneralExotic:
2004 return FromFilter("shop_generalExotic");
2005 case ShopType.VMachine:
2006 if (EClass.rnd(10) == 0)
2007 {
2008 return Create("panty");
2009 }
2010 if (EClass.rnd(5) == 0)
2011 {
2012 return Create("234");
2013 }
2014 return FromFilter("shop_drink");
2015 case ShopType.Furniture:
2016 return FromFilter("shop_furniture");
2017 case ShopType.Book:
2018 return FromFilter("shop_book");
2019 case ShopType.Magic:
2020 return FromFilter("shop_magic");
2021 case ShopType.Ecopo:
2022 {
2023 Thing thing = TraitSeed.MakeRandomSeed(enc: true);
2024 TraitSeed.LevelSeed(thing, (thing.trait as TraitSeed).row, 1);
2025 return thing;
2026 }
2027 case ShopType.Healer:
2028 {
2029 Thing thing2 = null;
2030 for (int i = 0; i < 1000; i++)
2031 {
2032 thing2 = FromFilter("shop_healer");
2033 if (thing2.trait is TraitScroll { source: not null } traitScroll)
2034 {
2035 if (!(traitScroll.source.aliasParent != "WIL") && !(traitScroll.source.categorySub == "attack"))
2036 {
2037 break;
2038 }
2039 }
2040 else if (thing2.trait is TraitPotionRandom { source: not null } traitPotionRandom)
2041 {
2042 if (!(traitPotionRandom.source.aliasParent != "WIL") && !(traitPotionRandom.source.categorySub == "attack"))
2043 {
2044 thing2.SetNum(EClass.rnd(5) + 1);
2045 break;
2046 }
2047 }
2048 else if (thing2.trait is TraitRodRandom { source: not null } traitRodRandom && !(traitRodRandom.source.aliasParent != "WIL") && !(traitRodRandom.source.categorySub == "attack"))
2049 {
2050 break;
2051 }
2052 }
2053 return thing2;
2054 }
2055 case ShopType.Milk:
2056 if (EClass._zone is Zone_Nefu && EClass.rnd(2) == 0)
2057 {
2058 Thing thing3 = ThingGen.Create("milk");
2059 thing3.MakeRefFrom(EClass.sources.charas.rows.Where((SourceChara.Row r) => r.race == "mifu" || r.race == "nefu").RandomItem().model);
2060 Debug.Log(thing3);
2061 return thing3;
2062 }
2063 return Create("milk");
2064 case ShopType.Map:
2065 return ThingGen.CreateMap();
2066 case ShopType.Plan:
2067 return Create("book_plan");
2068 case ShopType.Weapon:
2069 return FromFilter("shop_weapon");
2070 case ShopType.Gun:
2071 if (EClass.rnd(8) == 0)
2072 {
2073 return Create("mod_ranged");
2074 }
2075 return FromFilter("shop_gun");
2076 case ShopType.Blackmarket:
2077 case ShopType.Exotic:
2078 {
2079 int num = 30;
2081 {
2082 num = 25;
2083 }
2085 {
2086 num = 15;
2087 }
2088 if (EClass.debug.enable)
2089 {
2090 num = 1;
2091 }
2092 CardBlueprint.SetRarity((EClass.rnd(num * 5) == 0) ? Rarity.Mythical : ((EClass.rnd(num) == 0) ? Rarity.Legendary : ((EClass.rnd(5) == 0) ? Rarity.Superior : Rarity.Normal)));
2093 return FromFilter("shop_blackmarket");
2094 }
2095 case ShopType.Drink:
2096 return FromFilter("shop_drink");
2097 case ShopType.Booze:
2098 return FromFilter("shop_booze");
2099 case ShopType.Fruit:
2100 return FromFilter("shop_fruit");
2101 case ShopType.Fish:
2102 if (EClass.rnd(2) == 0)
2103 {
2104 return Create("bait");
2105 }
2106 if (EClass.rnd(3) == 0)
2107 {
2108 return Create("fishingRod");
2109 }
2110 return FromFilter("shop_fish");
2111 case ShopType.Meat:
2112 if (EClass.rnd(5) == 0)
2113 {
2114 return Create("seasoning");
2115 }
2116 return FromFilter("shop_meat");
2117 case ShopType.Bread:
2118 if (EClass.rnd(3) == 0)
2119 {
2120 return Create("dough");
2121 }
2122 return FromFilter("shop_bread");
2123 case ShopType.Sweet:
2124 if (EClass.rnd(3) == 0)
2125 {
2126 return Create("dough");
2127 }
2128 return FromFilter("shop_sweet");
2129 case ShopType.Food:
2130 if (EClass.rnd(5) == 0)
2131 {
2132 return Create("seasoning");
2133 }
2134 return FromFilter("shop_food");
2135 case ShopType.Drug:
2136 return FromFilter("shop_drug");
2137 case ShopType.LoytelMart:
2139 {
2140 if (EClass.rnd(10) == 0)
2141 {
2142 return Create("monsterball").SetLv(40 + EClass.rnd(ShopLv)).Thing;
2143 }
2144 if (EClass.rnd(30) == 0)
2145 {
2146 return ThingGen.Create("rp_random", -1, ShopLv + 10);
2147 }
2148 if (EClass.rnd(100) == 0)
2149 {
2150 return ThingGen.Create("map_treasure", -1, EClass.rndHalf(ShopLv));
2151 }
2152 if (EClass.rnd(40) == 0)
2153 {
2154 return Create("water").SetPriceFix(1000);
2155 }
2156 if (EClass.rnd(EClass.debug.enable ? 20 : 1000) == 0)
2157 {
2158 return Create("1165");
2159 }
2160 }
2161 return FromFilter("shop_junk");
2162 case ShopType.Junk:
2163 return FromFilter("shop_junk");
2164 case ShopType.Souvenir:
2165 return FromFilter("shop_souvenir");
2166 case ShopType.StrangeGirl:
2167 return DNA.GenerateGene(SpawnList.Get("chara").Select(ShopLv + 10), DNA.Type.Brain);
2168 case ShopType.Fireworks:
2169 if (EClass.rnd(3) == 0)
2170 {
2171 return Create("firework_launcher");
2172 }
2173 return Create("firework");
2174 case ShopType.Festival:
2175 if (EClass.rnd(3) == 0)
2176 {
2177 if (IsFestival("olvina"))
2178 {
2179 return Create(new string[4] { "1125", "1126", "pillow_truth", "1230" }.RandomItem());
2180 }
2181 if (IsFestival("yowyn"))
2182 {
2183 return Create(new string[3] { "hat_mushroom", "hat_witch", "hat_kumiromi" }.RandomItem());
2184 }
2185 if (IsFestival("noyel"))
2186 {
2187 return Create(new string[9] { "1127", "1128", "xmas_sled", "xmas_bigbag", "xmas_bigbox", "xmas_blackcat", "xmas_blackcat", "xmas_jure", "xmas_crown" }.RandomItem());
2188 }
2189 }
2190 if (EClass.rnd(2) == 0)
2191 {
2192 return Create(new string[4] { "1081", "1082", "1083", "1084" }.RandomItem());
2193 }
2194 if (EClass.rnd(3) == 0)
2195 {
2196 return FromFilter("shop_junk");
2197 }
2198 return FromFilter("shop_souvenir");
2199 case ShopType.Lamp:
2200 if (EClass.rnd(3) != 0)
2201 {
2202 if (IsFestival("kapul"))
2203 {
2204 return Create(new string[6] { "999", "1000", "1001", "1002", "1003", "1004" }.RandomItem());
2205 }
2206 if (IsFestival("yowyn"))
2207 {
2208 return Create(new string[2] { "1072", "1073" }.RandomItem());
2209 }
2210 if (IsFestival("noyel"))
2211 {
2212 return Create(new string[1] { "1069" }.RandomItem());
2213 }
2214 if (IsFestival("olvina"))
2215 {
2216 return Create(new string[2] { "1070", "1071" }.RandomItem());
2217 }
2218 }
2219 if (EClass._zone.IsFestival && EClass.rnd(2) == 0)
2220 {
2221 return Create(new string[4] { "953", "954", "955", "956" }.RandomItem());
2222 }
2223 return FromFilter("shop_lamp");
2224 default:
2225 if (EClass.rnd(100) == 0)
2226 {
2227 return Create("lockpick");
2228 }
2229 return FromFilter("shop_general");
2230 }
2231 Thing Create(string s)
2232 {
2233 return ThingGen.Create(s, -1, ShopLv);
2234 }
2235 Thing FromFilter(string s)
2236 {
2237 return ThingGen.CreateFromFilter(s, ShopLv);
2238 }
2239 static bool IsFestival(string id)
2240 {
2241 if (EClass._zone.id == id)
2242 {
2243 return EClass._zone.IsFestival;
2244 }
2245 return false;
2246 }
2247 }
ShopType
Definition: ShopType.cs:2
static void SetRarity(Rarity q=Rarity.Normal)
void MakeRefFrom(string id)
Definition: Card.cs:5094
Card ChangeMaterial(int idNew, bool ignoreFixedMaterial=false)
Definition: Card.cs:2838
Thing SetNum(int a)
Definition: Card.cs:3242
Thing SetPriceFix(int a)
Definition: Card.cs:6360
bool enable
Definition: CoreDebug.cs:285
Definition: DNA.cs:8
Type
Definition: DNA.cs:10
static Thing GenerateGene(Chara c, Type? type=null)
Definition: DNA.cs:104
Definition: EClass.cs:5
static int rnd(int a)
Definition: EClass.cs:50
static Zone _zone
Definition: EClass.cs:20
static SourceManager sources
Definition: EClass.cs:42
static int rndHalf(int a)
Definition: EClass.cs:74
static Player player
Definition: EClass.cs:12
static CoreDebug debug
Definition: EClass.cs:48
override bool IsCurrentZone
Definition: GuildMerchant.cs:5
override bool IsCurrentZone
Definition: GuildThief.cs:6
Definition: Guild.cs:2
static GuildMerchant Merchant
Definition: Guild.cs:29
static GuildThief Thief
Definition: Guild.cs:27
int loytelMartLv
Definition: Player.cs:522
Flags flags
Definition: Player.cs:895
SourceMaterial materials
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 CreateFromFilter(string id, int lv=-1)
Definition: ThingGen.cs:63
static Thing CreateMap(string idSource=null, int lv=-1)
Definition: ThingGen.cs:124
static Thing 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:176
static void LevelSeed(Thing t, SourceObj.Row obj, int num)
Definition: TraitSeed.cs:129
virtual int ShopLv
Definition: Trait.cs:467
virtual bool IsFestival
Definition: Zone.cs:206

References EClass._zone, Card.ChangeMaterial(), SourceManager.charas, ThingGen.Create(), ThingGen.CreateFromFilter(), ThingGen.CreateMap(), EClass.debug, Debug, Card.Dye(), CoreDebug.enable, Player.flags, DNA.GenerateGene(), SpawnList.Get(), 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, and Card.trait.

◆ GetActDuration()

virtual int Trait.GetActDuration ( Chara  c)
inlinevirtual

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

Definition at line 567 of file Trait.cs.

568 {
569 return 0;
570 }

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

◆ GetBuildModeRecipe()

virtual Recipe Trait.GetBuildModeRecipe ( )
inlinevirtual

Reimplemented in TraitTile.

Definition at line 763 of file Trait.cs.

764 {
765 return Recipe.Create(owner.Thing);
766 }
virtual Thing Thing
Definition: Card.cs:1934
Definition: Recipe.cs:7
static Recipe Create(RecipeSource _source, int idMat=-1, Thing ing=null)
Definition: Recipe.cs:308

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

Referenced by BuildMenu.RefreshCategory().

◆ GetFuelValue() [1/2]

int Trait.GetFuelValue ( string  id)
inline

Definition at line 1305 of file Trait.cs.

1306 {
1307 if (ToggleType == ToggleType.Electronics)
1308 {
1309 if (id == "battery")
1310 {
1311 return 20;
1312 }
1313 }
1314 else
1315 {
1316 if (id == "log")
1317 {
1318 return 20;
1319 }
1320 if (id == "branch")
1321 {
1322 return 5;
1323 }
1324 }
1325 return 0;
1326 }
ToggleType
Definition: ToggleType.cs:2

◆ GetFuelValue() [2/2]

int Trait.GetFuelValue ( Thing  t)
inline

Definition at line 1296 of file Trait.cs.

1297 {
1298 if (t.c_isImportant)
1299 {
1300 return 0;
1301 }
1302 return GetFuelValue(t.id);
1303 }
bool c_isImportant
Definition: Card.cs:984
int GetFuelValue(Thing t)
Definition: Trait.cs:1296

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

554 {
555 return null;
556 }

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

◆ GetHeldEmo()

virtual Emo2 Trait.GetHeldEmo ( Chara  c)
inlinevirtual

Reimplemented in TraitDrinkMilkMother, TraitToolBrush, and TraitToolShears.

Definition at line 586 of file Trait.cs.

587 {
588 return Emo2.none;
589 }
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 548 of file Trait.cs.

549 {
550 return null;
551 }

◆ GetName()

virtual string Trait.GetName ( )
inlinevirtual

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

Definition at line 646 of file Trait.cs.

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

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

Referenced by Thing.GetName().

◆ GetParam()

◆ GetParamInt()

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

Definition at line 524 of file Trait.cs.

525 {
526 if (i < Params.Length)
527 {
528 return Params[i].ToInt();
529 }
530 return def;
531 }

References Params.

Referenced by TraitItemProc.OnUse().

◆ GetPoint()

Point Trait.GetPoint ( )
inline

Definition at line 684 of file Trait.cs.

685 {
686 return owner.pos;
687 }

References owner, and Card.pos.

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

◆ GetRandomPoint()

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

Definition at line 689 of file Trait.cs.

690 {
691 if (radius == 0)
692 {
693 return owner.pos;
694 }
695 List<Point> list = ListPoints();
696 for (int i = 0; i < 50; i++)
697 {
698 Point point = list.RandomItem();
699 if (point.IsValid && (func == null || func(point)) && (accessChara == null || accessChara.HasAccess(point)))
700 {
701 return point;
702 }
703 }
704 return list[0];
705 }
bool HasAccess(Card c)
Definition: Chara.cs:1089
Definition: Point.cs:9
bool IsValid
Definition: Point.cs:88
virtual int radius
Definition: Trait.cs:88
virtual List< Point > ListPoints(Point center=null, bool onlyPassable=true)
Definition: Trait.cs:707

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

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

◆ GetRecipe()

virtual Recipe Trait.GetRecipe ( )
inlinevirtual

Reimplemented in TraitTile.

Definition at line 758 of file Trait.cs.

759 {
760 return Recipe.Create(owner.Thing);
761 }

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

Referenced by HotItemHeld.OnSetCurrentItem().

◆ GetRefElement()

virtual SourceElement.Row Trait.GetRefElement ( )
inlinevirtual

Reimplemented in TraitPotionRandom, TraitRod, and TraitScroll.

Definition at line 572 of file Trait.cs.

573 {
574 return null;
575 }

Referenced by ButtonGrid.SetCard().

◆ GetRefSprite()

virtual Sprite Trait.GetRefSprite ( )
inlinevirtual

Definition at line 577 of file Trait.cs.

578 {
579 return null;
580 }

Referenced by ButtonGrid.SetCard().

◆ GetRestockedIcon()

Emo2 Trait.GetRestockedIcon ( )
inline

Definition at line 1441 of file Trait.cs.

1442 {
1443 if (SlaverType != 0)
1444 {
1445 SlaverData obj = owner.GetObj<SlaverData>(5);
1446 if (obj != null && EClass.world.date.IsExpired(obj.dateRefresh))
1447 {
1448 return Emo2.restock;
1449 }
1450 }
1451 int c_dateStockExpire = owner.c_dateStockExpire;
1452 if (c_dateStockExpire != 0 && EClass.world.date.IsExpired(c_dateStockExpire))
1453 {
1454 if (ShopType == ShopType.None)
1455 {
1456 return Emo2.blessing;
1457 }
1458 return Emo2.restock;
1459 }
1460 return Emo2.none;
1461 }
SlaverType
Definition: SlaverType.cs:2
int c_dateStockExpire
Definition: Card.cs:1169
bool IsExpired(int time)
Definition: Date.cs:332
static World world
Definition: EClass.cs:40
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 908 of file Trait.cs.

909 {
910 _ = 7;
911 return owner.sourceCard._index;
912 }

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

1419 {
1420 int rawDeadLine = 0;
1421 if (pet)
1422 {
1423 SlaverData obj = owner.GetObj<SlaverData>(5);
1424 if (obj != null)
1425 {
1426 rawDeadLine = obj.dateRefresh;
1427 }
1428 }
1429 else
1430 {
1431 rawDeadLine = owner.c_dateStockExpire;
1432 }
1433 int remainingHours = EClass.world.date.GetRemainingHours(rawDeadLine);
1434 if (remainingHours > 0)
1435 {
1436 return "nextRestock".lang(lang.lang(), Date.GetText(remainingHours) ?? "");
1437 }
1438 return lang.lang();
1439 }
Definition: Date.cs:4
string GetText(TextFormat format)
Definition: Date.cs:245
int GetRemainingHours(int rawDeadLine)
Definition: Date.cs:337

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

598 {
599 return false;
600 }

Referenced by AI_Idle.TryPerformIdleUse().

◆ Install()

void Trait.Install ( bool  byPlayer)
inline

Definition at line 1038 of file Trait.cs.

1039 {
1040 if (Electricity != 0)
1041 {
1042 EClass._zone.dirtyElectricity = true;
1043 if (Electricity > 0)
1044 {
1045 EClass._zone.electricity += Electricity;
1046 EClass.pc.PlaySound("electricity_on");
1047 }
1048 }
1049 TryToggle();
1052 {
1053 owner.PlaySound("fire");
1054 }
1055 OnInstall(byPlayer);
1056 }
void RecalculateFOV()
Definition: Card.cs:5616
bool isOn
Definition: Card.cs:514
static Chara pc
Definition: EClass.cs:14
virtual void TryToggle()
Definition: Trait.cs:1084
virtual void OnInstall(bool byPlayer)
Definition: Trait.cs:1076
virtual int Electricity
Definition: Trait.cs:97
bool isStarted
Definition: Zone.cs:70

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

1287 {
1288 return GetFuelValue(s) > 0;
1289 }

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

◆ IsFuel() [2/2]

bool Trait.IsFuel ( Thing  t)
inline

Definition at line 1291 of file Trait.cs.

1292 {
1293 return GetFuelValue(t) > 0;
1294 }

◆ IsFuelEnough()

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

Definition at line 1269 of file Trait.cs.

1270 {
1271 if (!IsRequireFuel)
1272 {
1273 return true;
1274 }
1275 if (owner.c_charges >= FuelCost * num)
1276 {
1277 return true;
1278 }
1279 if (owner.autoRefuel)
1280 {
1281 TryRefuel(FuelCost * num - owner.c_charges, excludes);
1282 }
1283 return owner.c_charges >= FuelCost * num;
1284 }
bool autoRefuel
Definition: Card.cs:598
int c_charges
Definition: Card.cs:1205
virtual int FuelCost
Definition: Trait.cs:447
bool IsRequireFuel
Definition: Trait.cs:451
void TryRefuel(int dest, List< Thing > excludes)
Definition: Trait.cs:1341

References Card.autoRefuel, and Card.c_charges.

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

◆ ListPoints()

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

Reimplemented in TraitLightSun.

Definition at line 707 of file Trait.cs.

708 {
709 listRadiusPoints.Clear();
710 if (center == null)
711 {
712 center = owner.pos;
713 }
714 if (radius == 0)
715 {
716 listRadiusPoints.Add(center.Copy());
717 return listRadiusPoints;
718 }
719 Room room = center.cell.room;
720 if (room != null && CanUseRoomRadius)
721 {
722 foreach (Point point in room.points)
723 {
724 if (radiusType == TraitRadiusType.Farm)
725 {
726 listRadiusPoints.Add(point.Copy());
727 }
728 else if ((!onlyPassable || !point.cell.blocked) && !point.cell.HasBlock && point.cell.HasFloor)
729 {
730 listRadiusPoints.Add(point.Copy());
731 }
732 }
733 }
734 else
735 {
736 EClass._map.ForeachSphere(center.x, center.z, radius + 1, delegate(Point p)
737 {
738 if (radiusType == TraitRadiusType.Farm)
739 {
740 if (!p.cell.HasBlock || p.cell.HasFence)
741 {
742 listRadiusPoints.Add(p.Copy());
743 }
744 }
745 else if ((!onlyPassable || !p.cell.blocked) && !p.cell.HasBlock && p.cell.HasFloor && (!onlyPassable || Los.IsVisible(center, p)))
746 {
747 listRadiusPoints.Add(p.Copy());
748 }
749 });
750 }
751 if (listRadiusPoints.Count == 0)
752 {
753 listRadiusPoints.Add(center.Copy());
754 }
755 return listRadiusPoints;
756 }
TraitRadiusType
PointList points
Definition: BaseArea.cs:26
Room room
Definition: Cell.cs:102
bool HasBlock
Definition: Cell.cs:643
bool HasFloor
Definition: Cell.cs:645
static Map _map
Definition: EClass.cs:18
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:2358
Point Copy()
Definition: Point.cs:467
int x
Definition: Point.cs:36
int z
Definition: Point.cs:39
Cell cell
Definition: Point.cs:51
Definition: Room.cs:4
virtual bool CanUseRoomRadius
Definition: Trait.cs:92
virtual TraitRadiusType radiusType
Definition: Trait.cs:90
static List< Point > listRadiusPoints
Definition: Trait.cs:28

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

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

◆ Offer()

void Trait.Offer ( Chara  cc)
inline

Definition at line 825 of file Trait.cs.

826 {
827 if (!ExistsOnMap)
828 {
829 return;
830 }
831 foreach (Card item in owner.pos.ListCards())
832 {
833 if (CanOffer(item))
834 {
835 item.Destroy();
836 cc.depression.Mod(100);
837 owner.PlaySound("offering");
838 }
839 }
840 }
Stats depression
Definition: Chara.cs:957
virtual void Mod(int a)
Definition: Stats.cs:135
virtual bool CanOffer(Card tg)
Definition: Trait.cs:790

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

Referenced by AI_Offer.Run().

◆ OfferProcess()

void Trait.OfferProcess ( Chara  cc)
inline

Definition at line 803 of file Trait.cs.

804 {
805 if (!ExistsOnMap)
806 {
807 return;
808 }
810 string @ref = row.GetTextArray("name2")[1];
811 string ref2 = row.GetTextArray("name2")[0];
812 if (EClass.rnd(3) == 0)
813 {
814 cc.Talk("offer", @ref, ref2);
815 }
816 foreach (Card item in owner.pos.ListCards())
817 {
818 if (CanOffer(item))
819 {
820 item.renderer.PlayAnime(AnimeID.Shiver);
821 }
822 }
823 }
string c_idDeity
Definition: Card.cs:1481
void Talk(string idTopic, string ref1=null, string ref2=null, bool forceSync=false)
Definition: Card.cs:5949
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 634 of file Trait.cs.

635 {
636 }

Referenced by Map.OnCardAddedToZone().

◆ OnBarter()

void Trait.OnBarter ( )
inline

Definition at line 1463 of file Trait.cs.

1464 {
1465 Thing t = owner.things.Find("chest_merchant");
1466 if (t == null)
1467 {
1468 t = ThingGen.Create("chest_merchant");
1469 owner.AddThing(t);
1470 }
1471 t.c_lockLv = 0;
1473 {
1474 return;
1475 }
1476 owner.c_dateStockExpire = EClass.world.date.GetRaw(24 * RestockDay);
1477 owner.isRestocking = true;
1478 t.things.DestroyAll((Thing _t) => _t.GetInt(101) != 0);
1479 foreach (Thing thing7 in t.things)
1480 {
1481 thing7.invX = -1;
1482 }
1483 switch (ShopType)
1484 {
1485 case ShopType.Plat:
1486 NoRestock(ThingGen.Create("lucky_coin").SetNum(10));
1487 break;
1488 case ShopType.Copy:
1489 {
1490 Thing c_copyContainer = owner.c_copyContainer;
1491 if (c_copyContainer == null)
1492 {
1493 break;
1494 }
1495 int num3 = 0;
1496 foreach (Thing thing8 in c_copyContainer.things)
1497 {
1498 if (!owner.trait.CanCopy(thing8))
1499 {
1500 continue;
1501 }
1502 Thing thing4 = thing8.Duplicate(1);
1503 thing4.isStolen = false;
1504 thing4.isCopy = true;
1505 thing4.c_priceFix = 0;
1506 foreach (Element item in thing4.elements.dict.Values.Where((Element e) => e.HasTag("noInherit")).ToList())
1507 {
1508 thing4.elements.Remove(item.id);
1509 }
1510 int num4 = 1;
1511 switch (owner.trait.CopyShop)
1512 {
1513 case CopyShopType.Item:
1514 {
1515 num4 = (1000 + owner.c_invest * 100) / (thing4.GetPrice() + 50);
1516 int[] array = new int[4] { 701, 704, 703, 702 };
1517 foreach (int ele in array)
1518 {
1519 if (thing4.HasElement(ele))
1520 {
1521 num4 = 1;
1522 }
1523 }
1524 break;
1525 }
1526 case CopyShopType.Spellbook:
1527 thing4.c_charges = thing8.c_charges;
1528 break;
1529 }
1530 if (num4 > 1 && thing4.trait.CanStack)
1531 {
1532 thing4.SetNum(num4);
1533 }
1534 AddThing(thing4);
1535 num3++;
1536 if (num3 > owner.trait.NumCopyItem)
1537 {
1538 break;
1539 }
1540 }
1541 break;
1542 }
1543 case ShopType.Specific:
1544 {
1545 string id2 = owner.id;
1546 if (!(id2 == "mogu"))
1547 {
1548 if (!(id2 == "felmera"))
1549 {
1550 break;
1551 }
1552 foreach (Thing item2 in new DramaOutcome().ListFelmeraBarter())
1553 {
1554 AddThing(item2);
1555 }
1556 }
1557 else
1558 {
1559 AddThing(ThingGen.Create("casino_coin").SetNum(5000));
1560 }
1561 break;
1562 }
1563 case ShopType.Deed:
1564 Add("deed", 1, 0);
1565 Add("deed_move", 2 + EClass.rnd(5), 0);
1566 Add("license_illumination", 1, 0);
1567 Add("license_void", 1, 0);
1568 Add("license_adv", 1, 0);
1569 break;
1570 case ShopType.RedBook:
1571 {
1572 for (int l = 0; l < 30; l++)
1573 {
1574 AddThing(ThingGen.CreateFromCategory("book"));
1575 }
1576 break;
1577 }
1578 case ShopType.Seed:
1579 {
1580 AddThing(TraitSeed.MakeSeed("rice")).SetNum(4 + EClass.rnd(4));
1581 AddThing(TraitSeed.MakeSeed("cabbage")).SetNum(4 + EClass.rnd(4));
1582 AddThing(TraitSeed.MakeSeed("carrot")).SetNum(4 + EClass.rnd(4));
1583 AddThing(TraitSeed.MakeSeed("potato")).SetNum(4 + EClass.rnd(4));
1584 AddThing(TraitSeed.MakeSeed("corn")).SetNum(4 + EClass.rnd(4));
1585 for (int n = 0; n < EClass.rnd(3) + 1; n++)
1586 {
1587 Add("462", 1, 0);
1588 }
1589 for (int num5 = 0; num5 < EClass.rnd(3) + 1; num5++)
1590 {
1591 Add("1167", 1, 0);
1592 }
1593 break;
1594 }
1595 case ShopType.Loytel:
1596 Add("board_map", 1, 0);
1597 Add("board_build", 1, 0);
1598 Add("book_resident", 1, 0);
1599 Add("3", 1, 0);
1600 Add("4", 1, 0);
1601 Add("5", 1, 0);
1602 AddThing(ThingGen.CreatePlan(2512));
1603 AddThing(ThingGen.CreatePlan(2810));
1604 NoRestock(ThingGen.Create("rp_block").SetLv(1).SetNum(10));
1605 if (EClass.game.quests.GetPhase<QuestVernis>() >= 3)
1606 {
1607 NoRestock(ThingGen.CreateRecipe("explosive"));
1608 }
1609 break;
1610 case ShopType.Starter:
1611 case ShopType.StarterEx:
1612 Add("board_home", 1, 0);
1613 Add("board_resident", 1, 0);
1614 Add("1", 1, 0);
1615 Add("2", 1, 0);
1616 if (ShopType == ShopType.StarterEx)
1617 {
1618 Add("board_expedition", 1, 0);
1619 Add("mailpost", 1, 0);
1620 Add("record", 1, 0);
1621 Add("tent2", 1, 0);
1622 Add("tent1", 1, 0);
1623 Add("wagon1", 1, 0);
1624 Add("wagon_big", 1, 0);
1625 Add("wagon_big2", 1, 0);
1626 Add("wagon_big3", 1, 0);
1627 Add("wagon_big4", 1, 0);
1628 Add("wagon_big5", 1, 0);
1629 Add("teleporter", 1, 0);
1630 Add("teleporter2", 1, 0);
1631 Add("recharger", 1, 0);
1632 Add("machine_gene2", 1, 0);
1633 NoRestock(ThingGen.CreateRecipe("torch_wall"));
1634 NoRestock(ThingGen.CreateRecipe("factory_sign"));
1635 NoRestock(ThingGen.CreateRecipe("beehive"));
1636 NoRestock(ThingGen.Create("rp_food").SetNum(5).SetLv(10)
1637 .Thing);
1638 }
1639 else
1640 {
1641 AddThing(ThingGen.CreatePlan(2119));
1642 NoRestock(ThingGen.Create("rp_food").SetNum(5).SetLv(5)
1643 .Thing);
1644 }
1645 break;
1646 case ShopType.Farris:
1647 AddThing(ThingGen.CreateScroll(8220, 4 + EClass.rnd(6)));
1648 AddThing(ThingGen.CreateScroll(8221, 4 + EClass.rnd(6)));
1649 Add("drawing_paper", 10, 0);
1650 Add("drawing_paper2", 10, 0);
1651 Add("stethoscope", 1, 0);
1652 Add("whip_love", 1, 0);
1653 Add("whip_interest", 1, 0);
1654 break;
1655 case ShopType.Guild:
1656 if (this is TraitClerk_Merchant)
1657 {
1658 Add("flyer", 1, 0).SetNum(99);
1659 }
1660 break;
1661 case ShopType.Influence:
1662 {
1663 bool num2 = owner.id == "big_sister";
1664 TraitTicketFurniture.SetZone(num2 ? EClass.game.spatials.Find("little_garden") : EClass._zone, Add("ticket_furniture", 1, 0).SetNum(99));
1665 if (num2)
1666 {
1667 Add("littleball", 10, 0);
1668 break;
1669 }
1670 for (int k = 0; k < 10; k++)
1671 {
1672 Thing thing3 = ThingGen.Create(EClass._zone.IsFestival ? "1123" : ((EClass.rnd(3) == 0) ? "1169" : "1160"));
1673 thing3.DyeRandom();
1674 AddThing(thing3);
1675 }
1676 break;
1677 }
1678 case ShopType.Casino:
1679 {
1680 Add("chest_tax", 1, 0);
1681 Add("1165", 1, 0);
1682 Add("monsterball", 1, 0).SetNum(3).SetLv(10);
1683 Add("1175", 1, 0);
1684 Add("1176", 1, 0);
1685 Add("pillow_ehekatl", 1, 0);
1686 Add("grave_dagger1", 1, 0);
1687 Add("grave_dagger2", 1, 0);
1688 Add("434", 1, 0);
1689 Add("433", 1, 0);
1690 Add("714", 1, 0);
1691 Add("1017", 1, 0);
1692 Add("1155", 1, 0);
1693 Add("1011", 1, 0);
1694 AddThing(ThingGen.CreatePerfume(9500, 5));
1695 AddThing(ThingGen.CreatePerfume(9501, 5));
1696 AddThing(ThingGen.CreatePerfume(9502, 5));
1697 AddThing(ThingGen.CreatePerfume(9503, 5));
1698 for (int j = 0; j < 5; j++)
1699 {
1700 Thing thing2 = ThingGen.CreateFromCategory("seasoning").SetNum(10);
1701 thing2.elements.SetBase(2, 40);
1702 thing2.c_priceFix = 1000;
1703 AddThing(thing2);
1704 }
1705 break;
1706 }
1707 case ShopType.Medal:
1708 NoRestock(ThingGen.Create("sword_dragon"));
1709 Add("sword_dragon", 1, 0).SetReplica(on: true);
1710 NoRestock(ThingGen.Create("axe_destruction"));
1711 Add("axe_destruction", 1, 0).SetReplica(on: true);
1712 NoRestock(ThingGen.Create("blunt_bonehammer"));
1713 Add("blunt_bonehammer", 1, 0).SetReplica(on: true);
1714 NoRestock(ThingGen.Create("pole_gunlance"));
1715 Add("pole_gunlance", 1, 0).SetReplica(on: true);
1716 NoRestock(ThingGen.Create("sword_muramasa"));
1717 Add("sword_muramasa", 1, 0).SetReplica(on: true);
1718 NoRestock(ThingGen.Create("sword_forgetmenot"));
1719 Add("sword_forgetmenot", 1, 0).SetReplica(on: true);
1720 NoRestock(ThingGen.Create("dagger_fish"));
1721 Add("dagger_fish", 1, 0).SetReplica(on: true);
1722 NoRestock(ThingGen.Create("sword_zephir"));
1723 Add("sword_zephir", 1, 0).SetReplica(on: true);
1724 Add("ribbon", 1, 0);
1725 Add("helm_sage", 1, 0);
1726 Add("diary_sister", 1, 0);
1727 Add("diary_catsister", 1, 0);
1728 Add("diary_lady", 1, 0);
1729 Add("1165", 1, 0).SetNum(5);
1730 AddThing(ThingGen.CreateScroll(9160).SetNum(5));
1731 Add("monsterball", 1, 0).SetNum(3).SetLv(20);
1732 Add("monsterball", 1, 0).SetNum(3).SetLv(40);
1733 Add("bill_tax", 1, 0).c_bill = 1;
1734 Add("bill_tax", 1, 0).c_bill = 1;
1735 Add("bill_tax", 1, 0).c_bill = 1;
1736 Add("container_magic", 1, 0);
1737 Add("container_magic", 1, 0).ChangeMaterial("iron").idSkin = 1;
1738 Add("container_magic", 1, 0).ChangeMaterial("bamboo").idSkin = 2;
1739 Add("wrench_tent_elec", 1, 0);
1740 Add("wrench_tent_soil", 1, 0);
1741 Add("wrench_bed", 1, 0).SetNum(20);
1742 Add("wrench_storage", 1, 0).SetNum(10);
1743 Add("wrench_fridge", 1, 0).SetNum(1);
1744 Add("wrench_extend_v", 1, 0).SetNum(2);
1745 Add("wrench_extend_h", 1, 0).SetNum(2);
1746 break;
1747 default:
1748 {
1749 float num = (float)(3 + Mathf.Min(ShopLv / 5, 10)) + Mathf.Sqrt(ShopLv);
1750 num = num * (float)(100 + EClass.pc.Evalue(1406) * 5) / 100f;
1751 num = Mathf.Min(num, 300f);
1752 for (int i = 0; (float)i < num; i++)
1753 {
1754 Thing thing = CreateStock();
1755 if ((!(thing.trait is TraitRod) || thing.c_charges != 0) && thing.GetPrice() > 0)
1756 {
1757 t.AddThing(thing);
1758 }
1759 }
1760 break;
1761 }
1762 }
1763 foreach (RecipeSource item3 in RecipeManager.list)
1764 {
1765 if (item3.row.recipeKey.IsEmpty())
1766 {
1767 continue;
1768 }
1769 string[] recipeKey = item3.row.recipeKey;
1770 for (int m = 0; m < recipeKey.Length; m++)
1771 {
1772 if (recipeKey[m] == ShopType.ToString())
1773 {
1774 NoRestock(ThingGen.CreateRecipe(item3.id));
1775 break;
1776 }
1777 }
1778 }
1779 switch (ShopType)
1780 {
1781 case ShopType.StrangeGirl:
1782 {
1783 int num8 = (EClass.debug.enable ? 20 : (EClass._zone.development / 10));
1784 if (num8 > 0)
1785 {
1786 Add("syringe_gene", num8, 0);
1787 }
1788 if (num8 > 10)
1789 {
1790 Add("syringe_heaven", num8 / 5, 0);
1791 }
1792 break;
1793 }
1794 case ShopType.GeneralExotic:
1795 Add("tool_talisman", 1, 0);
1796 break;
1797 case ShopType.Healer:
1798 AddThing(ThingGen.CreatePotion(8400).SetNum(4 + EClass.rnd(6)));
1799 AddThing(ThingGen.CreatePotion(8401).SetNum(2 + EClass.rnd(4)));
1800 AddThing(ThingGen.CreatePotion(8402).SetNum(1 + EClass.rnd(3)));
1801 break;
1802 case ShopType.Food:
1803 Add("ration", 2 + EClass.rnd(4), 0);
1804 break;
1805 case ShopType.Ecopo:
1806 Add("ecomark", 5, 0);
1807 Add("1165", 1, 0);
1808 AddThing(ThingGen.CreateScroll(9160).SetNum(5));
1809 break;
1810 case ShopType.Gun:
1811 Add("bullet", 1, 0).SetNum(300 + EClass.rnd(100)).ChangeMaterial("iron");
1812 Add("bullet_energy", 1, 0).SetNum(100 + EClass.rnd(100)).ChangeMaterial("iron");
1813 break;
1814 case ShopType.Magic:
1815 if ((EClass._zone.id == "lumiest" && EClass._zone.lv == 0) || (EClass._zone.id != "lumiest" && EClass.rnd(4) == 0))
1816 {
1817 t.AddThing(ThingGen.Create("letter_trial"));
1818 }
1819 break;
1820 case ShopType.Festival:
1822 {
1823 Add("1085", 1, 0);
1824 if (EClass._zone.id == "noyel")
1825 {
1826 Add("holyFeather", 1, 0);
1827 }
1828 }
1829 break;
1830 case ShopType.Junk:
1831 case ShopType.LoytelMart:
1832 {
1833 if (ShopType == ShopType.LoytelMart)
1834 {
1835 Add("ticket_massage", 1, 0);
1836 Add("ticket_armpillow", 1, 0);
1837 Add("ticket_champagne", 1, 0);
1838 }
1839 for (int num6 = 0; num6 < (EClass.debug.enable ? 30 : 3); num6++)
1840 {
1841 if (EClass.rnd(5) == 0)
1842 {
1843 TreasureType treasureType = ((EClass.rnd(10) == 0) ? TreasureType.BossNefia : ((EClass.rnd(10) == 0) ? TreasureType.Map : TreasureType.RandomChest));
1844 int num7 = EClass.rnd(EClass.rnd(ShopLv + (EClass.debug.enable ? 200 : 50)) + 1) + 1;
1845 Thing thing5 = ThingGen.Create(treasureType switch
1846 {
1847 TreasureType.Map => "chest_treasure",
1848 TreasureType.BossNefia => "chest_boss",
1849 _ => "chest3",
1850 });
1851 thing5.c_lockedHard = true;
1852 thing5.c_lockLv = num7;
1853 thing5.c_priceAdd = 2000 + num7 * 250 * ((treasureType == TreasureType.RandomChest) ? 1 : 5);
1854 thing5.c_revealLock = true;
1855 ThingGen.CreateTreasureContent(thing5, num7, treasureType, clearContent: true);
1856 AddThing(thing5);
1857 }
1858 }
1859 break;
1860 }
1861 }
1862 ShopType shopType = ShopType;
1863 if (shopType == ShopType.General || shopType == ShopType.Food)
1864 {
1865 for (int num9 = 0; num9 < (EClass.debug.enable ? 3 : 3); num9++)
1866 {
1867 if (EClass.rnd(3) == 0)
1868 {
1869 int lv = EClass.rnd(EClass.rnd(ShopLv + (EClass.debug.enable ? 200 : 50)) + 1) + 1;
1870 Thing t2 = ThingGen.Create("chest_gamble", -1, lv).SetNum(1 + EClass.rnd(20));
1871 AddThing(t2);
1872 }
1873 }
1874 }
1875 switch (owner.id)
1876 {
1877 case "rodwyn":
1878 AddThing(ThingGen.CreateSpellbook(8790));
1879 AddThing(ThingGen.CreatePotion(8791).SetNum(3 + EClass.rnd(3)));
1880 break;
1881 case "girl_blue":
1882 Add("779", 1 + EClass.rnd(3), 0);
1883 break;
1884 case "nola":
1885 AddThing(ThingGen.CreateRecipe("ic").SetPriceFix(400));
1886 AddThing(ThingGen.CreateRecipe("bullet").SetPriceFix(300));
1887 AddThing(ThingGen.CreateRecipe("break_powder").SetPriceFix(1000));
1888 AddThing(ThingGen.CreateRecipe("quarrel").SetPriceFix(100));
1889 AddThing(ThingGen.CreateRecipe("1099").SetPriceFix(400));
1890 AddThing(ThingGen.CreateRecipe("detector").SetPriceFix(700));
1891 AddThing(ThingGen.CreatePlan(2710)).SetPriceFix(-100);
1892 AddThing(ThingGen.CreatePlan(2711)).SetPriceFix(-100);
1893 AddThing(ThingGen.CreatePlan(2712)).SetPriceFix(200);
1894 break;
1895 }
1897 {
1898 Add("lockpick", 1, 0);
1899 if (EClass.rnd(2) == 0)
1900 {
1901 Add("lockpick", 1, 0);
1902 }
1903 AddThing(ThingGen.CreateScroll(8780, EClass.rndHalf(5)));
1904 }
1905 foreach (Thing thing9 in t.things)
1906 {
1907 thing9.c_idBacker = 0;
1908 if (ShopType != ShopType.Copy)
1909 {
1910 thing9.TryMakeRandomItem(ShopLv);
1911 if (thing9.Num == 1)
1912 {
1913 thing9.SetNum(thing9.trait.DefaultStock);
1914 }
1915 if (thing9.trait is TraitFoodMeal)
1916 {
1918 }
1919 if (thing9.IsFood && owner.id == "rodwyn")
1920 {
1921 SourceElement.Row row = EClass.sources.elements.rows.Where((SourceElement.Row e) => !e.foodEffect.IsEmpty() && e.category != "feat" && e.chance > 0).RandomItem();
1922 thing9.elements.SetBase(row.id, 10 + EClass.rnd(10));
1923 }
1924 }
1925 if (CurrencyType == CurrencyType.Casino_coin)
1926 {
1927 thing9.noSell = true;
1928 }
1930 {
1931 thing9.isStolen = true;
1932 }
1933 if (!(thing9.trait is TraitErohon))
1934 {
1935 thing9.c_IDTState = 0;
1936 }
1937 if (CurrencyType == CurrencyType.Money && (thing9.category.IsChildOf("meal") || thing9.category.IsChildOf("preserved")) && thing9.id != "ration")
1938 {
1939 thing9.c_priceFix = -70;
1940 }
1941 if (thing9.trait is TraitErohon)
1942 {
1943 thing9.c_IDTState = 5;
1944 }
1945 if (thing9.IsContainer && !thing9.c_revealLock)
1946 {
1947 thing9.RemoveThings();
1948 t.c_lockLv = 0;
1949 }
1950 }
1951 if (t.things.Count <= t.things.GridSize)
1952 {
1953 return;
1954 }
1955 int num10 = t.things.width * 10;
1956 if (t.things.Count > num10)
1957 {
1958 int num11 = t.things.Count - num10;
1959 for (int num12 = 0; num12 < num11; num12++)
1960 {
1961 t.things.LastItem().Destroy();
1962 }
1963 }
1964 t.things.ChangeSize(t.things.width, Mathf.Min(t.things.Count / t.things.width + 1, 10));
1965 Thing Add(string id, int a, int idSkin)
1966 {
1968 Thing thing6 = ThingGen.Create(id, -1, ShopLv).SetNum(a);
1969 thing6.idSkin = idSkin;
1970 return t.AddThing(thing6);
1971 }
1972 Thing AddThing(Thing _t)
1973 {
1974 return t.AddThing(_t);
1975 }
1976 void NoRestock(Thing _t)
1977 {
1978 HashSet<string> hashSet = EClass.player.noRestocks.TryGetValue(owner.id);
1979 if (hashSet == null)
1980 {
1981 hashSet = new HashSet<string>();
1982 }
1983 if (!hashSet.Contains(_t.trait.IdNoRestock))
1984 {
1985 hashSet.Add(_t.trait.IdNoRestock);
1986 EClass.player.noRestocks[owner.id] = hashSet;
1987 _t.SetInt(101, 1);
1988 AddThing(_t);
1989 }
1990 }
1991 }
CurrencyType
Definition: CurrencyType.cs:2
TreasureType
Definition: TreasureType.cs:2
list. Add(item3)
int GetInt(int id, int? defaultInt=null)
Definition: BaseCard.cs:25
void SetInt(int id, int value=0)
Definition: BaseCard.cs:39
static void SetNormalRarity(bool fixedMat=false)
virtual Chara Chara
Definition: Card.cs:1946
ElementContainerCard elements
Definition: Card.cs:37
virtual int GetPrice(CurrencyType currency=CurrencyType.Money, bool sell=false, PriceType priceType=PriceType.Default, Chara c=null)
Definition: Card.cs:6449
Thing AddThing(string id, int lv=-1)
Definition: Card.cs:2901
Card SetLv(int a)
Definition: Card.cs:2735
bool c_revealLock
Definition: Card.cs:1008
bool IsFood
Definition: Card.cs:2051
void DyeRandom()
Definition: Card.cs:5262
ThingContainer things
Definition: Card.cs:34
int Evalue(int ele)
Definition: Card.cs:2431
Thing TryMakeRandomItem(int lv=-1)
Definition: Card.cs:4861
Thing Duplicate(int num)
Definition: Card.cs:3191
Thing c_copyContainer
Definition: Card.cs:1709
int Num
Definition: Card.cs:154
SourceCategory.Row category
Definition: Card.cs:1925
bool IsContainer
Definition: Card.cs:1965
void RemoveThings()
Definition: Card.cs:3056
static void MakeDish(Thing food, int lv, Chara crafter=null)
Definition: CraftUtil.cs:54
int GetRaw(int offsetHours=0)
Definition: Date.cs:322
static Game game
Definition: EClass.cs:8
Dictionary< int, Element > dict
Element SetBase(string alias, int v, int potential=0)
void Remove(int id)
bool HasTag(string tag)
Definition: ELEMENT.cs:463
SpatialManager spatials
Definition: Game.cs:152
QuestManager quests
Definition: Game.cs:179
Dictionary< string, HashSet< string > > noRestocks
Definition: Player.cs:928
static List< RecipeSource > list
Definition: RecipeManager.cs:9
RenderRow row
Definition: RecipeSource.cs:5
string[] recipeKey
Definition: RenderRow.cs:56
SourceElement elements
Zone Find(string id)
int lv
Definition: Spatial.cs:142
void DestroyAll(Func< Thing, bool > funcExclude=null)
Thing Find(int uid)
void ChangeSize(int w, int h)
static Thing CreatePotion(int ele, int num=1)
Definition: ThingGen.cs:170
static Thing CreatePerfume(int ele, int num=1)
Definition: ThingGen.cs:177
static void CreateTreasureContent(Thing t, int lv, TreasureType type, bool clearContent)
Definition: ThingGen.cs:210
static Thing CreateSpellbook(string alias, int num=1)
Definition: ThingGen.cs:151
static Thing CreatePlan(int ele)
Definition: ThingGen.cs:137
static Thing CreateRecipe(string id)
Definition: ThingGen.cs:144
static Thing CreateFromCategory(string idCat, int lv=-1)
Definition: ThingGen.cs:75
static Thing CreateScroll(int ele, int num=1)
Definition: ThingGen.cs:163
static Thing MakeSeed(SourceObj.Row obj, PlantData plant=null)
Definition: TraitSeed.cs:77
static void SetZone(Zone zone, Thing t)
virtual CopyShopType CopyShop
Definition: Trait.cs:469
Thing CreateStock()
Definition: Trait.cs:1993
virtual int RestockDay
Definition: Trait.cs:505
virtual string IdNoRestock
Definition: Trait.cs:349
virtual ShopType ShopType
Definition: Trait.cs:473
virtual int DefaultStock
Definition: Trait.cs:123
virtual bool CanCopy(Thing t)
Definition: Trait.cs:1413
CopyShopType
Definition: Trait.cs:18
virtual int NumCopyItem
Definition: Trait.cs:471

References EClass._zone, Add(), Card.AddThing(), Card.c_charges, Card.c_copyContainer, Card.c_dateStockExpire, Card.c_revealLock, CanCopy(), Card.category, Card.Chara, CopyShop, ThingGen.Create(), ThingGen.CreateFromCategory(), ThingGen.CreatePerfume(), ThingGen.CreatePlan(), ThingGen.CreatePotion(), ThingGen.CreateRecipe(), ThingGen.CreateScroll(), 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(), EClass.game, BaseCard.GetInt(), Card.GetPrice(), Date.GetRaw(), Element.HasTag(), Card.id, RecipeSource.id, SourceElement.Row.id, Spatial.id, IdNoRestock, Card.IsContainer, GuildThief.IsCurrentZone, Date.IsExpired(), Zone.IsFestival, Card.IsFood, item, RecipeManager.list, Spatial.lv, CraftUtil.MakeDish(), TraitSeed.MakeSeed(), Player.noRestocks, Card.Num, NumCopyItem, EClass.pc, EClass.player, Game.quests, RenderRow.recipeKey, ElementContainer.Remove(), Card.RemoveThings(), EClass.rnd(), EClass.rndHalf(), RecipeSource.row, ElementContainer.SetBase(), BaseCard.SetInt(), Card.SetLv(), CardBlueprint.SetNormalRarity(), Card.SetNum(), Card.SetPriceFix(), TraitTicketFurniture.SetZone(), EClass.sources, Game.spatials, Guild.Thief, Card.Thing, Card.things, Card.trait, Card.TryMakeRandomItem(), and EClass.world.

Referenced by TraitVendingMachine.OnUse().

◆ OnBlend()

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

Reimplemented in TraitDreamBug, TraitDrink, TraitDye, and TraitWell.

Definition at line 563 of file Trait.cs.

564 {
565 }

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

631 {
632 }

Referenced by Card.SetPlaceState().

◆ OnChildDecay()

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

Reimplemented in TraitBrewery.

Definition at line 1012 of file Trait.cs.

1013 {
1014 return true;
1015 }

◆ OnCrafted()

virtual void Trait.OnCrafted ( Recipe  recipe)
inlinevirtual

Reimplemented in TraitBlanket.

Definition at line 614 of file Trait.cs.

615 {
616 }

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

◆ OnCreate()

◆ OnDrink()

virtual void Trait.OnDrink ( Chara  c)
inlinevirtual

Reimplemented in TraitDrink, TraitDrinkMilkMother, and TraitPotionEmpty.

Definition at line 942 of file Trait.cs.

943 {
944 }

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

◆ OnEat()

virtual void Trait.OnEat ( Chara  c)
inlinevirtual

Reimplemented in TraitFortuneCookie.

Definition at line 933 of file Trait.cs.

934 {
935 }

◆ OnEnterScreen()

virtual void Trait.OnEnterScreen ( )
inlinevirtual

Reimplemented in TraitToolTorch.

Definition at line 1374 of file Trait.cs.

1375 {
1377 }
virtual void RefreshRenderer()
Definition: Trait.cs:1379

Referenced by CardRenderer.OnEnterScreen().

◆ OnEquip()

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

Reimplemented in TraitEQFlower.

Definition at line 622 of file Trait.cs.

623 {
624 }

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

◆ OnHeld()

virtual void Trait.OnHeld ( )
inlinevirtual

Reimplemented in TraitDetector.

Definition at line 996 of file Trait.cs.

997 {
998 }

Referenced by HotItemHeld.OnSetCurrentItem().

◆ OnImportMap()

virtual void Trait.OnImportMap ( )
inlinevirtual

Reimplemented in TraitAltar, TraitBook, TraitNewZone, and TraitNote.

Definition at line 606 of file Trait.cs.

607 {
608 }

Referenced by SerializedCards.Restore().

◆ OnInstall()

virtual void Trait.OnInstall ( bool  byPlayer)
inlinevirtual

Reimplemented in TraitSwitch.

Definition at line 1076 of file Trait.cs.

1077 {
1078 }

◆ OnOpenDoor()

virtual void Trait.OnOpenDoor ( Chara  c)
inlinevirtual

Reimplemented in TraitDoorBell.

Definition at line 1034 of file Trait.cs.

1035 {
1036 }

Referenced by TraitDoor.TryOpen().

◆ OnRead()

◆ OnRemovedFromZone()

virtual void Trait.OnRemovedFromZone ( )
inlinevirtual

Reimplemented in TraitBoat.

Definition at line 638 of file Trait.cs.

639 {
640 }

Referenced by Map.OnCardRemovedFromZone().

◆ OnRenderExtra()

virtual void Trait.OnRenderExtra ( RenderParam  p)
inlinevirtual

Reimplemented in TraitPaintBoard, and TraitShrine.

Definition at line 582 of file Trait.cs.

583 {
584 }

Referenced by CardRenderer.Draw().

◆ OnRenderTile()

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

Reimplemented in TraitLightSun, and TraitRoadSign.

Definition at line 655 of file Trait.cs.

656 {
657 if (radius == 0)
658 {
659 return;
660 }
661 Vector3 vector = point.Position();
662 vector.z += EClass.setting.render.thingZ;
663 foreach (Point item in ListPoints(point))
664 {
665 Vector3 vector2 = item.Position();
666 EClass.screen.guide.passGuideFloor.Add(vector2.x, vector2.y, vector2.z, 10f, 0.3f);
667 }
668 }
ScreenGuide guide
static BaseGameScreen screen
Definition: EClass.cs:32
static GameSetting setting
Definition: EClass.cs:34
RenderSetting render
Definition: GameSetting.cs:301
void Add(Point point, float tile=0f, float color=0f)
Definition: MeshPass.cs:122
ref Vector3 Position(int height)
Definition: Point.cs:524
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 1022 of file Trait.cs.

1023 {
1024 }

Referenced by ButtonGrid.SetCard().

◆ OnSetCurrentItem()

virtual void Trait.OnSetCurrentItem ( )
inlinevirtual

Reimplemented in TraitToolTorch.

Definition at line 1004 of file Trait.cs.

1005 {
1006 }

◆ OnSetOwner()

virtual void Trait.OnSetOwner ( )
inlinevirtual

Definition at line 602 of file Trait.cs.

603 {
604 }

Referenced by SetOwner().

◆ OnSimulateHour()

virtual void Trait.OnSimulateHour ( VirtualDate  date)
inlinevirtual

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

Definition at line 642 of file Trait.cs.

643 {
644 }

Referenced by Card.OnSimulateHour().

◆ OnStepped()

virtual void Trait.OnStepped ( Chara  c)
inlinevirtual

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

Definition at line 1026 of file Trait.cs.

1027 {
1028 }

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

◆ OnSteppedOut()

virtual void Trait.OnSteppedOut ( Chara  c)
inlinevirtual

Reimplemented in TraitGeneratorWheel, and TraitSwing.

Definition at line 1030 of file Trait.cs.

1031 {
1032 }

Referenced by Chara._Move().

◆ OnThrowGround()

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

Reimplemented in TraitDrink, and TraitDye.

Definition at line 946 of file Trait.cs.

947 {
948 }

Referenced by ActThrow.Throw().

◆ OnTickHeld()

virtual void Trait.OnTickHeld ( )
inlinevirtual

Reimplemented in TraitDetector.

Definition at line 1000 of file Trait.cs.

1001 {
1002 }

Referenced by Chara.Tick().

◆ OnToggle()

virtual void Trait.OnToggle ( )
inlinevirtual

Reimplemented in TraitJukeBox, and TraitLeverBreaker.

Definition at line 1194 of file Trait.cs.

1195 {
1196 }

◆ OnUnequip()

virtual void Trait.OnUnequip ( Chara  c)
inlinevirtual

Reimplemented in TraitEQFlower.

Definition at line 626 of file Trait.cs.

627 {
628 }

Referenced by CharaBody.Unequip().

◆ OnUninstall()

virtual void Trait.OnUninstall ( )
inlinevirtual

Definition at line 1080 of file Trait.cs.

1081 {
1082 }

◆ OnUnsetCurrentItem()

virtual void Trait.OnUnsetCurrentItem ( )
inlinevirtual

Reimplemented in TraitToolTorch.

Definition at line 1008 of file Trait.cs.

1009 {
1010 }

◆ OnUse() [1/3]

◆ OnUse() [2/3]

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

Reimplemented in TraitDye, and TraitFoodMeat.

Definition at line 974 of file Trait.cs.

975 {
976 return true;
977 }

◆ OnUse() [3/3]

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

Reimplemented in TraitPotionEmpty.

Definition at line 979 of file Trait.cs.

980 {
981 return true;
982 }

◆ PlayToggleEffect()

virtual void Trait.PlayToggleEffect ( bool  silent)
inlinevirtual

Reimplemented in TraitWoodMill.

Definition at line 1140 of file Trait.cs.

1141 {
1142 bool flag = ToggleType == ToggleType.Fire;
1143 bool isOn = owner.isOn;
1144 switch (ToggleType)
1145 {
1146 case ToggleType.Lever:
1147 if (!silent)
1148 {
1149 owner.Say("lever", EClass.pc, owner);
1150 owner.PlaySound("switch_lever");
1151 }
1152 return;
1153 case ToggleType.Curtain:
1154 if (!silent)
1155 {
1156 owner.Say(isOn ? "close" : "open", EClass.pc, owner);
1157 owner.PlaySound("Material/leather_drop");
1158 }
1161 return;
1162 case ToggleType.None:
1163 return;
1164 }
1165 if (isOn)
1166 {
1167 if (!silent)
1168 {
1169 owner.Say(flag ? "toggle_fire" : "toggle_ele", EClass.pc, owner);
1170 string id = ((Electricity < 0) ? "switch_on_electricity" : (flag ? "torch_lit" : "switch_on"));
1171 if (this is TraitMusicBox)
1172 {
1173 id = "switch_on_musicbox";
1174 }
1175 owner.PlaySound(id);
1176 }
1179 return;
1180 }
1181 if (!silent)
1182 {
1183 string id2 = ((Electricity < 0) ? "switch_off_electricity" : (flag ? "torch_unlit" : "switch_off"));
1184 if (this is TraitMusicBox)
1185 {
1186 id2 = "switch_off_musicbox";
1187 }
1188 owner.PlaySound(id2);
1189 }
1192 }
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:6046
void RefreshNeighborTiles()
Definition: Point.cs:1240

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

◆ RefreshRenderer()

virtual void Trait.RefreshRenderer ( )
inlinevirtual

Reimplemented in TraitToolTorch.

Definition at line 1379 of file Trait.cs.

1380 {
1381 if (owner.renderer.isSynced && !IdToggleExtra.IsEmpty())
1382 {
1383 if (owner.isOn)
1384 {
1386 }
1387 else
1388 {
1390 }
1391 }
1392 }
void AddExtra(string id)
void RemoveExtra(string id)
CardRenderer renderer
Definition: Card.cs:57
string IdToggleExtra
Definition: Trait.cs:453

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

◆ Refuel()

void Trait.Refuel ( Thing  t)
inline

Definition at line 1328 of file Trait.cs.

1329 {
1330 t.PlaySoundDrop(spatial: false);
1332 Msg.Say("fueled", t);
1333 if (!owner.isOn)
1334 {
1335 owner.trait.Toggle(on: true);
1336 }
1337 t.Destroy();
1339 }
void PlayAnime(AnimeID id, bool force)
void ModCharge(int a, bool destroy=false)
Definition: Card.cs:3627
void Destroy()
Definition: Card.cs:4538
void PlaySoundDrop(bool spatial=true)
Definition: Card.cs:5389
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:1106

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

1395 {
1396 if (owner.isThing && !owner.Thing.source.attackType.IsEmpty() && owner.ammoData != null)
1397 {
1398 t.SetText(owner.c_ammo.ToString() ?? "", FontColor.Charge);
1399 t.SetActive(enable: true);
1400 }
1401 else if (owner.Num == 1 && ShowCharges && owner.IsIdentified)
1402 {
1403 t.SetText(owner.c_charges.ToString() ?? "", FontColor.Charge);
1404 t.SetActive(enable: true);
1405 }
1406 else
1407 {
1408 t.SetText(owner.Num.ToShortNumber(), FontColor.ButtonGrid);
1409 t.SetActive(owner.Num > 1);
1410 }
1411 }
FontColor
Definition: FontColor.cs:2
virtual bool isThing
Definition: Card.cs:1957
int c_ammo
Definition: Card.cs:1385
Thing ammoData
Definition: Card.cs:1685
bool IsIdentified
Definition: Card.cs:2237
SourceThing.Row source
Definition: Thing.cs:11
virtual bool ShowCharges
Definition: Trait.cs:319
void SetText(string s)
Definition: UIText.cs:159

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

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

◆ SetName()

◆ SetOwner()

virtual void Trait.SetOwner ( Card  _owner)
inlinevirtual

Definition at line 591 of file Trait.cs.

592 {
593 owner = _owner;
594 OnSetOwner();
595 }
virtual void OnSetOwner()
Definition: Trait.cs:602

References OnSetOwner(), and owner.

Referenced by Card.ApplyTrait().

◆ SetParams()

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

Definition at line 610 of file Trait.cs.

611 {
612 }

◆ Toggle()

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

Definition at line 1106 of file Trait.cs.

1107 {
1108 if (owner.isOn == on)
1109 {
1110 return;
1111 }
1112 if (Electricity < 0)
1113 {
1114 if (on)
1115 {
1117 {
1119 {
1120 if (!silent)
1121 {
1122 owner.Say("notEnoughElectricity", owner);
1123 }
1124 owner.PlaySound("electricity_insufficient");
1125 }
1126 return;
1127 }
1128 EClass._zone.electricity += Electricity;
1129 }
1130 else
1131 {
1132 EClass._zone.electricity -= Electricity;
1133 }
1134 }
1135 owner.isOn = on;
1136 PlayToggleEffect(silent);
1137 OnToggle();
1138 }
int electricity
Definition: Spatial.cs:250
virtual void PlayToggleEffect(bool silent)
Definition: Trait.cs:1140
virtual void OnToggle()
Definition: Trait.cs:1194

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

Referenced by Card.AddThing(), AI_UseCrafter.OnEnd(), TraitFireworkLauncher.OnUse(), TraitMusicBox.OnUse(), Refuel(), and AI_UseCrafter.Run().

◆ TryOpenLock()

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

Definition at line 847 of file Trait.cs.

848 {
849 Thing thing = cc.things.FindBest<TraitLockpick>((Thing t) => -t.c_charges);
850 int num = ((thing == null) ? (cc.Evalue(280) / 2 + 2) : (cc.Evalue(280) + 10));
851 int num2 = owner.c_lockLv;
852 bool flag = this is TraitChestPractice;
853 if (flag)
854 {
855 num2 = num / 4 * 3 - 1;
856 }
857 if (num <= num2 && cc.IsPC)
858 {
859 cc.PlaySound("lock");
860 cc.Say("openLockFail2");
861 owner.PlayAnime(AnimeID.Shiver);
862 return LockOpenState.NotEnoughSkill;
863 }
864 if (thing != null && !flag)
865 {
866 thing.ModCharge(-1, destroy: true);
867 }
868 if (EClass.rnd(num + 6) > num2 + 5 || (!cc.IsPC && EClass.rnd(20) == 0) || EClass.rnd(200) == 0)
869 {
870 cc.PlaySound("lock_open");
871 cc.Say("lockpick_success", cc, owner);
872 int num3 = 100 + num2 * 10;
874 {
875 num3 *= 10;
876 }
877 cc.ModExp(280, num3);
878 owner.c_lockLv = 0;
880 {
881 owner.c_lockedHard = false;
882 owner.c_priceAdd = 0;
883 }
884 if (cc.IsPC && owner.isLostProperty)
885 {
887 }
888 owner.isLostProperty = false;
889 return LockOpenState.Success;
890 }
891 cc.PlaySound("lock");
892 if (cc.IsPC)
893 {
894 cc.Say("openLockFail");
895 }
896 cc.ModExp(280, (thing != null) ? 50 : 30);
897 if ((thing == null) | (EClass.rnd(2) == 0))
898 {
899 cc.stamina.Mod(-1);
900 }
901 return LockOpenState.Fail;
902 }
LockOpenState
Definition: LockOpenState.cs:2
bool c_lockedHard
Definition: Card.cs:996
bool isLostProperty
Definition: Card.cs:778
int c_lockLv
Definition: Card.cs:924
void ModExp(string alias, int a)
Definition: Card.cs:2508
void PlayAnime(AnimeID id, bool force=false)
Definition: Card.cs:5423
override bool IsPC
Definition: Chara.cs:597
Stats stamina
Definition: Chara.cs:955
void ModKarma(int a)
Definition: Player.cs:2289

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

◆ TryProgress()

virtual bool Trait.TryProgress ( AIProgress  p)
inlinevirtual

Reimplemented in TraitBaseSpellbook.

Definition at line 842 of file Trait.cs.

843 {
844 return true;
845 }

Referenced by AI_Read.Run().

◆ TryRefuel()

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

Definition at line 1341 of file Trait.cs.

1342 {
1343 if (FindFuel(refuel: false))
1344 {
1345 FindFuel(refuel: true);
1346 }
1347 bool FindFuel(bool refuel)
1348 {
1349 int num = dest;
1350 List<Thing> list = EClass._zone.TryListThingsInSpot<TraitSpotFuel>((Thing t) => IsFuel(t));
1351 EClass.pc.things.Foreach(delegate(Thing t)
1352 {
1353 if (IsFuel(t) && t.qualityTier == 0 && (excludes == null || !excludes.Contains(t)))
1354 {
1355 list.Add(t);
1356 }
1357 });
1358 foreach (Thing item in list)
1359 {
1360 if (num > 0)
1361 {
1362 int num2 = Mathf.Min(item.Num, Mathf.CeilToInt((float)num / (float)GetFuelValue(item)));
1363 num -= GetFuelValue(item) * num2;
1364 if (refuel)
1365 {
1366 Refuel(item.Split(num2));
1367 }
1368 }
1369 }
1370 return num <= 0;
1371 }
1372 }
void Foreach(Action< Thing > action, bool onlyAccessible=true)
bool IsFuel(string s)
Definition: Trait.cs:1286
void Refuel(Thing t)
Definition: Trait.cs:1328

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

◆ TrySetAct()

virtual void Trait.TrySetAct ( ActPlan  p)
inlinevirtual

◆ TrySetHeldAct()

◆ TrySetToggleAct()

virtual void Trait.TrySetToggleAct ( ActPlan  p)
inlinevirtual

Definition at line 1198 of file Trait.cs.

1199 {
1200 if (!p.IsSelfOrNeighbor)
1201 {
1202 return;
1203 }
1204 switch (ToggleType)
1205 {
1206 case ToggleType.Lever:
1207 p.TrySetAct("ActToggleLever", delegate
1208 {
1209 Toggle(!owner.isOn);
1210 return true;
1211 }, owner);
1212 break;
1213 case ToggleType.Curtain:
1214 p.TrySetAct(owner.isOn ? "actOpen" : "actClose", delegate
1215 {
1216 Toggle(!owner.isOn);
1217 return true;
1218 }, owner);
1219 break;
1220 case ToggleType.Fire:
1221 case ToggleType.Light:
1222 case ToggleType.Electronics:
1223 {
1224 bool flag = ToggleType == ToggleType.Fire;
1225 if (EClass._zone.IsPCFaction || p.altAction || this is TraitCrafter || Electricity < 0)
1226 {
1227 if (owner.isOn)
1228 {
1229 if (p.altAction)
1230 {
1231 p.TrySetAct(flag ? "ActExtinguishTorch" : "ActToggleOff", delegate
1232 {
1233 Toggle(on: false);
1234 return true;
1235 }, owner);
1236 }
1237 }
1238 else if (!(this is TraitFactory) && !(this is TraitIncubator) && (!IsRequireFuel || owner.c_charges > 0))
1239 {
1240 p.TrySetAct(flag ? "ActTorch" : "ActToggleOn", delegate
1241 {
1242 Toggle(on: true);
1243 return true;
1244 }, owner);
1245 }
1247 {
1248 p.TrySetAct("ActFuel", delegate
1249 {
1251 return false;
1252 }, owner);
1253 }
1254 }
1255 if (p.altAction)
1256 {
1257 p.TrySetAct("disableAutoToggle".lang((owner.disableAutoToggle ? "off" : "on").lang()), delegate
1258 {
1259 owner.disableAutoToggle = !owner.disableAutoToggle;
1260 SE.Click();
1261 return true;
1262 }, owner);
1263 }
1264 break;
1265 }
1266 }
1267 }
bool altAction
Definition: ActPlan.cs:155
bool IsSelfOrNeighbor
Definition: ActPlan.cs:175
bool disableAutoToggle
Definition: Card.cs:574
static LayerDragGrid Create(InvOwnerDraglet owner, bool refuelFromLayerDragGrid=false)
virtual int MaxFuel
Definition: Trait.cs:436
virtual bool ShowFuelWindow
Definition: Trait.cs:449
bool IsPCFaction
Definition: Zone.cs:464

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

1085 {
1086 if (!owner.IsInstalled)
1087 {
1088 return;
1089 }
1090 if (Electricity < 0 && owner.isOn && EClass._zone.electricity < 0)
1091 {
1092 Toggle(on: false, silent: true);
1093 }
1094 else if (AutoToggle)
1095 {
1096 int hour = EClass.world.date.hour;
1097 bool on = !IsNightOnlyLight || hour >= 17 || hour <= 5 || EClass._map.IsIndoor;
1099 {
1100 on = false;
1101 }
1102 Toggle(on, silent: true);
1103 }
1104 }
bool IsInstalled
Definition: Card.cs:2241
Cell Cell
Definition: Card.cs:1931
bool HasRoof
Definition: Cell.cs:648
int hour
Definition: Date.cs:74
bool IsIndoor
Definition: Map.cs:131
virtual bool AutoToggle
Definition: Trait.cs:376
virtual bool IsNightOnlyLight
Definition: Trait.cs:412
bool IsRaining
Definition: Weather.cs:117
Weather weather
Definition: World.cs:12

References EClass._map, EClass._zone, Card.Cell, World.date, Spatial.electricity, Cell.HasRoof, Date.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 1058 of file Trait.cs.

1059 {
1060 if (Electricity != 0)
1061 {
1062 if (owner.isOn)
1063 {
1064 Toggle(on: false, silent: true);
1065 }
1066 EClass._zone.dirtyElectricity = true;
1067 if (Electricity > 0)
1068 {
1069 EClass._zone.electricity -= Electricity;
1070 EClass.pc.PlaySound("electricity_off");
1071 }
1072 }
1073 OnUninstall();
1074 }
virtual void OnUninstall()
Definition: Trait.cs:1080

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

Referenced by Card.SetPlaceState().

◆ Update()

virtual void Trait.Update ( )
inlinevirtual

Reimplemented in TraitDoor, TraitFoodEgg, TraitGeneratorWheel, and TraitSpotSpawn.

Definition at line 680 of file Trait.cs.

681 {
682 }

◆ WriteNote()

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

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

Definition at line 904 of file Trait.cs.

905 {
906 }

Member Data Documentation

◆ listRadiusPoints

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

Definition at line 28 of file Trait.cs.

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

◆ owner

Card Trait.owner

Definition at line 26 of file Trait.cs.

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

◆ SelfFactory

TraitSelfFactory Trait.SelfFactory = new TraitSelfFactory()
static

Property Documentation

◆ AllowCriminal

virtual bool Trait.AllowCriminal
get

Definition at line 503 of file Trait.cs.

◆ AllowSell

virtual bool Trait.AllowSell
get

Definition at line 479 of file Trait.cs.

480 {
481 get
482 {
483 if (CurrencyType != CurrencyType.Money)
484 {
485 return CurrencyType == CurrencyType.None;
486 }
487 return true;
488 }
489 }

◆ AlwaysHideOnLowWall

virtual bool Trait.AlwaysHideOnLowWall
get

Definition at line 341 of file Trait.cs.

Referenced by BaseTileMap.DrawTile().

◆ AutoToggle

virtual bool Trait.AutoToggle
get

Definition at line 375 of file Trait.cs.

376 {
377 get
378 {
379 if (IsLighting || ToggleType == ToggleType.Curtain || ToggleType == ToggleType.Electronics)
380 {
381 return !owner.disableAutoToggle;
382 }
383 return false;
384 }
385 }
bool IsLighting
Definition: Trait.cs:388

◆ CanAutofire

virtual bool Trait.CanAutofire
get

Definition at line 137 of file Trait.cs.

Referenced by Thing.CanAutoFire().

◆ CanBeAttacked

virtual bool Trait.CanBeAttacked
get

◆ CanBeDestroyed

◆ CanBeDisassembled

virtual bool Trait.CanBeDisassembled
get

Definition at line 293 of file Trait.cs.

294 {
295 get
296 {
297 if (CanBeDestroyed && !(this is TraitTrap) && owner.things.Count == 0)
298 {
299 return owner.rarity < Rarity.Artifact;
300 }
301 return false;
302 }
303 }
virtual bool CanBeDestroyed
Definition: Trait.cs:285

Referenced by TaskHarvest.TryGetAct().

◆ CanBeDropped

◆ CanBeHallucinated

virtual bool Trait.CanBeHallucinated
get

Definition at line 287 of file Trait.cs.

Referenced by CardRenderer.Draw().

◆ CanBeHeld

virtual bool Trait.CanBeHeld
get

◆ CanBeHeldAsFurniture

virtual bool Trait.CanBeHeldAsFurniture
get

Definition at line 325 of file Trait.cs.

326 {
327 get
328 {
329 if (!(this is TraitTool))
330 {
331 return IsThrowMainAction;
332 }
333 return true;
334 }
335 }
virtual bool IsThrowMainAction
Definition: Trait.cs:174

◆ CanBeMasked

virtual bool Trait.CanBeMasked
get

Definition at line 251 of file Trait.cs.

◆ CanBeOnlyBuiltInHome

virtual bool Trait.CanBeOnlyBuiltInHome
get

◆ CanBeShipped

virtual bool Trait.CanBeShipped
get

Definition at line 305 of file Trait.cs.

306 {
307 get
308 {
309 if (!owner.IsImportant)
310 {
311 return !owner.IsUnique;
312 }
313 return false;
314 }
315 }
bool IsImportant
Definition: Card.cs:1981
bool IsUnique
Definition: Card.cs:1967

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

◆ CanBeStolen

virtual bool Trait.CanBeStolen
get

Definition at line 271 of file Trait.cs.

272 {
273 get
274 {
275 if (!CanOnlyCarry)
276 {
277 return CanBeHeld;
278 }
279 return false;
280 }
281 }
virtual bool CanBeHeld
Definition: Trait.cs:269

Referenced by ThingContainer.FindStealable(), and AI_Steal.IsValidTC().

◆ CanBuildInTown

virtual bool Trait.CanBuildInTown
get

Definition at line 257 of file Trait.cs.

258 {
259 get
260 {
262 {
264 }
265 return false;
266 }
267 }
TileType TileType
Definition: Card.cs:2011
virtual bool IsBlockSight
Definition: TileType.cs:153
virtual bool IsBlockPass
Definition: TileType.cs:149

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

◆ CanChangeHeight

virtual bool Trait.CanChangeHeight
get

Definition at line 143 of file Trait.cs.

Referenced by HotItemHeld.CanChangeHeightByWheel().

◆ CanCopyInBlueprint

virtual bool Trait.CanCopyInBlueprint
get

Definition at line 147 of file Trait.cs.

148 {
149 get
150 {
151 if (owner.rarity <= Rarity.Superior && owner.sourceCard.value > 0)
152 {
153 return CanBeDestroyed;
154 }
155 return false;
156 }
157 }

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

◆ CanExtendBuild

virtual bool Trait.CanExtendBuild
get

Definition at line 161 of file Trait.cs.

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

◆ CanHarvest

virtual bool Trait.CanHarvest
get

Definition at line 86 of file Trait.cs.

Referenced by TaskHarvest.TryGetAct().

◆ CanName

virtual bool Trait.CanName
get

Definition at line 139 of file Trait.cs.

Referenced by ActPlan._Update().

◆ CanOnlyCarry

◆ CanOpenContainer

virtual bool Trait.CanOpenContainer
get

Definition at line 225 of file Trait.cs.

226 {
227 get
228 {
229 if (IsContainer)
230 {
231 return !owner.isNPCProperty;
232 }
233 return false;
234 }
235 }
bool isNPCProperty
Definition: Card.cs:526
virtual bool IsContainer
Definition: Trait.cs:205

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

◆ CanPutAway

virtual bool Trait.CanPutAway
get

Definition at line 141 of file Trait.cs.

◆ CanSearchContent

virtual bool Trait.CanSearchContent
get

Definition at line 209 of file Trait.cs.

210 {
211 get
212 {
213 if (!owner.isChara)
214 {
215 if (IsContainer)
216 {
217 return owner.c_lockLv == 0;
218 }
219 return false;
220 }
221 return true;
222 }
223 }

Referenced by ThingContainer._List().

◆ CanStack

virtual bool Trait.CanStack
get

◆ CanUseContent

virtual bool Trait.CanUseContent
get

Definition at line 207 of file Trait.cs.

Referenced by QuestDeliver.IsDestThing().

◆ CanUseRoomRadius

virtual bool Trait.CanUseRoomRadius
get

Definition at line 92 of file Trait.cs.

Referenced by ListPoints().

◆ ColorExtra

virtual ? Color Trait.ColorExtra
get

Definition at line 433 of file Trait.cs.

◆ ContainerType

virtual ContainerType Trait.ContainerType
get

Definition at line 239 of file Trait.cs.

◆ CopyShop

virtual CopyShopType Trait.CopyShop
get

Definition at line 469 of file Trait.cs.

Referenced by OnBarter().

◆ CostRerollShop

virtual int Trait.CostRerollShop
get

Definition at line 491 of file Trait.cs.

492 {
493 get
494 {
495 if (CurrencyType == CurrencyType.Money || CurrencyType == CurrencyType.Influence)
496 {
497 return 1;
498 }
499 return 0;
500 }
501 }

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

◆ CraftNum

virtual int Trait.CraftNum
get

Definition at line 127 of file Trait.cs.

Referenced by RecipeCard.Craft(), and FactionBranch.DailyOutcome().

◆ CurrencyType

virtual CurrencyType Trait.CurrencyType
get

Definition at line 475 of file Trait.cs.

Referenced by TraitVendingMachine.OnUse().

◆ Decay

virtual int Trait.Decay
get

Definition at line 115 of file Trait.cs.

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

◆ DecaySpeed

virtual int Trait.DecaySpeed
get

Definition at line 117 of file Trait.cs.

◆ DecaySpeedChild

virtual int Trait.DecaySpeedChild
get

Definition at line 119 of file Trait.cs.

◆ DefaultStock

virtual int Trait.DefaultStock
get

Definition at line 123 of file Trait.cs.

Referenced by OnBarter().

◆ DisableAutoCombat

virtual bool Trait.DisableAutoCombat
get

Definition at line 191 of file Trait.cs.

Referenced by ActPlan._Update().

◆ DropChance

virtual float Trait.DropChance
get

Definition at line 347 of file Trait.cs.

Referenced by Card.SpawnLoot().

◆ EffectDead

virtual EffectDead Trait.EffectDead
get

Definition at line 243 of file Trait.cs.

Referenced by Card.Die().

◆ Electricity

virtual int Trait.Electricity
get

Definition at line 96 of file Trait.cs.

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

Referenced by TraitGamble.CanUse(), TraitItem.CanUse(), Zone.GetElectricity(), TraitNewZone.MoveZone(), TraitJukeBox.OnSetBGM(), UIMagicChest.RefreshBottom(), and Zone.RefreshElectricity().

◆ ExistsOnMap

bool Trait.ExistsOnMap
get

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

Referenced by AI_UseCrafter.Run().

◆ GuidePriotiy

virtual int Trait.GuidePriotiy
get

Definition at line 94 of file Trait.cs.

Referenced by DramaCustomSequence.GetListGuide().

◆ HasCharges

virtual bool Trait.HasCharges
get

Definition at line 317 of file Trait.cs.

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

◆ HaveUpdate

virtual bool Trait.HaveUpdate
get

Definition at line 131 of file Trait.cs.

◆ HideInAdv

virtual bool Trait.HideInAdv
get

Definition at line 337 of file Trait.cs.

◆ HoldAsDefaultInteraction

virtual bool Trait.HoldAsDefaultInteraction
get

Definition at line 125 of file Trait.cs.

Referenced by InvOwner.GetAutoUseLang().

◆ IDActorEx

virtual string Trait.IDActorEx
get

Definition at line 167 of file Trait.cs.

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

◆ IDInvStyle

virtual string Trait.IDInvStyle
get

Definition at line 165 of file Trait.cs.

◆ IdleUseChance

virtual int Trait.IdleUseChance
get

Definition at line 351 of file Trait.cs.

Referenced by AI_Idle.TryPerformIdleUse().

◆ IdNoRestock

virtual string Trait.IdNoRestock
get

Definition at line 349 of file Trait.cs.

Referenced by OnBarter().

◆ IdSkin

virtual int Trait.IdSkin
get

Definition at line 44 of file Trait.cs.

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

◆ IdToggleExtra

string Trait.IdToggleExtra
get

Definition at line 453 of file Trait.cs.

◆ IgnoreLastStackHeight

virtual bool Trait.IgnoreLastStackHeight
get

Definition at line 113 of file Trait.cs.

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

◆ InstallBottomPriority

virtual int Trait.InstallBottomPriority
get

Definition at line 84 of file Trait.cs.

Referenced by Card.SetPlaceState().

◆ InvertHeldSprite

virtual bool Trait.InvertHeldSprite
get

Definition at line 66 of file Trait.cs.

Referenced by CharaActorPCC.OnRender().

◆ InvGridSize

virtual InvGridSize Trait.InvGridSize
get

Definition at line 193 of file Trait.cs.

194 {
195 get
196 {
197 if (!owner.IsPC)
198 {
199 return InvGridSize.Default;
200 }
201 return InvGridSize.Backpack;
202 }
203 }
InvGridSize
Definition: InvGridSize.cs:2
virtual bool IsPC
Definition: Card.cs:2019

◆ IsAltar

virtual bool Trait.IsAltar
get

Definition at line 247 of file Trait.cs.

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

◆ IsAnimeOn

virtual bool Trait.IsAnimeOn
get

Definition at line 361 of file Trait.cs.

362 {
363 get
364 {
365 if (!IsOn)
366 {
367 return !IsToggle;
368 }
369 return true;
370 }
371 }
bool IsToggle
Definition: Trait.cs:373
virtual bool IsOn
Definition: Trait.cs:359

◆ IsBlendBase

virtual bool Trait.IsBlendBase
get

Definition at line 253 of file Trait.cs.

Referenced by ActPlan._Update().

◆ IsBlockPath

virtual bool Trait.IsBlockPath
get

Definition at line 52 of file Trait.cs.

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

◆ IsBlockSight

virtual bool Trait.IsBlockSight
get

Definition at line 54 of file Trait.cs.

Referenced by Cell.Refresh().

◆ IsChangeFloorHeight

virtual bool Trait.IsChangeFloorHeight
get

Definition at line 68 of file Trait.cs.

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

◆ IsContainer

virtual bool Trait.IsContainer
get

◆ IsDoor

◆ IsFactory

◆ IsFloating

virtual bool Trait.IsFloating
get

Definition at line 62 of file Trait.cs.

Referenced by Cell.Refresh().

◆ IsFridge

virtual bool Trait.IsFridge
get

Definition at line 121 of file Trait.cs.

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

◆ IsGround

virtual bool Trait.IsGround
get

Definition at line 64 of file Trait.cs.

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

◆ IsHomeItem

virtual bool Trait.IsHomeItem
get

Definition at line 245 of file Trait.cs.

◆ IsLighting

bool Trait.IsLighting
get

Definition at line 387 of file Trait.cs.

388 {
389 get
390 {
391 if (ToggleType != ToggleType.Fire)
392 {
393 return ToggleType == ToggleType.Light;
394 }
395 return true;
396 }
397 }

◆ IsLightOn

virtual bool Trait.IsLightOn
get

Definition at line 399 of file Trait.cs.

400 {
401 get
402 {
403 if (!owner.isChara)
404 {
405 return owner.isOn;
406 }
407 return true;
408 }
409 }

Referenced by Card.GetLightRadius().

◆ IsNightOnlyLight

virtual bool Trait.IsNightOnlyLight
get

Definition at line 411 of file Trait.cs.

412 {
413 get
414 {
415 if (ToggleType != ToggleType.Electronics && IsToggle)
416 {
417 return !owner.isRoofItem;
418 }
419 return false;
420 }
421 }
bool isRoofItem
Definition: Card.cs:550

◆ IsOn

virtual bool Trait.IsOn
get

Definition at line 359 of file Trait.cs.

◆ IsOpenPath

virtual bool Trait.IsOpenPath
get

Definition at line 60 of file Trait.cs.

Referenced by Cell.Refresh().

◆ IsOpenSight

virtual bool Trait.IsOpenSight
get

Definition at line 58 of file Trait.cs.

Referenced by Cell.Refresh().

◆ IsRequireFuel

bool Trait.IsRequireFuel
get

Definition at line 451 of file Trait.cs.

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

◆ IsRestSpot

virtual bool Trait.IsRestSpot
get

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

◆ IsThrowMainAction

virtual bool Trait.IsThrowMainAction
get

Definition at line 173 of file Trait.cs.

174 {
175 get
176 {
177 if (!owner.HasTag(CTAG.throwWeapon))
178 {
179 return owner.IsMeleeWeapon;
180 }
181 return true;
182 }
183 }
CTAG
Definition: CTAG.cs:2
bool HasTag(CTAG tag)
Definition: Card.cs:2455
bool IsMeleeWeapon
Definition: Card.cs:2101

Referenced by HotItemHeld.TrySetAct().

◆ IsToggle

bool Trait.IsToggle
get

Definition at line 373 of file Trait.cs.

◆ IsTool

virtual bool Trait.IsTool
get

◆ LangBarter

virtual string Trait.LangBarter
get

Definition at line 509 of file Trait.cs.

◆ langNote

virtual string Trait.langNote
get

Definition at line 163 of file Trait.cs.

Referenced by TraitItem.WriteNote().

◆ LangUse

virtual string Trait.LangUse
get

Definition at line 357 of file Trait.cs.

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

◆ LevelAsQuality

virtual bool Trait.LevelAsQuality
get

Definition at line 185 of file Trait.cs.

Referenced by Card.Create().

◆ MaskOnBuild

virtual bool Trait.MaskOnBuild
get

Definition at line 169 of file Trait.cs.

Referenced by RecipeCard.Build().

◆ MaxFuel

virtual int Trait.MaxFuel
get

Definition at line 435 of file Trait.cs.

436 {
437 get
438 {
439 if (ToggleType != ToggleType.Fire)
440 {
441 return 0;
442 }
443 return 100;
444 }
445 }

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

◆ Name

virtual string Trait.Name
get

Definition at line 46 of file Trait.cs.

Referenced by LayerHome.RefreshSpots().

◆ NoHeldDir

virtual bool Trait.NoHeldDir
get

Definition at line 339 of file Trait.cs.

Referenced by CharaRenderer.DrawHeld().

◆ NumCopyItem

virtual int Trait.NumCopyItem
get

Definition at line 471 of file Trait.cs.

Referenced by OnBarter().

◆ Params

string [] Trait.Params
get

Definition at line 30 of file Trait.cs.

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

Referenced by GetParam(), and GetParamInt().

◆ PriceType

virtual PriceType Trait.PriceType
get

Definition at line 477 of file Trait.cs.

Referenced by TraitVendingMachine.OnUse().

◆ radius

virtual int Trait.radius
get

◆ radiusType

virtual TraitRadiusType Trait.radiusType
get

Definition at line 90 of file Trait.cs.

Referenced by ListPoints().

◆ RecipeCat

virtual string Trait.RecipeCat
get

Definition at line 353 of file Trait.cs.

Referenced by BuildMenu.RefreshCategory().

◆ RefCardName

virtual RefCardName Trait.RefCardName
get

Definition at line 50 of file Trait.cs.

◆ RenderExtra

virtual bool Trait.RenderExtra
get

Definition at line 345 of file Trait.cs.

Referenced by CardRenderer.Draw().

◆ ReqHarvest

virtual string Trait.ReqHarvest
get

Definition at line 291 of file Trait.cs.

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

◆ RequireFullStackCheck

virtual bool Trait.RequireFullStackCheck
get

Definition at line 189 of file Trait.cs.

◆ RestockDay

virtual int Trait.RestockDay
get

Definition at line 505 of file Trait.cs.

◆ ShopLv

virtual int Trait.ShopLv
get

Definition at line 467 of file Trait.cs.

◆ ShopType

virtual ShopType Trait.ShopType
get

Definition at line 473 of file Trait.cs.

Referenced by Zone.GetRandomVisitPos().

◆ ShouldRefreshTile

virtual bool Trait.ShouldRefreshTile
get

Definition at line 70 of file Trait.cs.

71 {
72 get
73 {
74 if (!IsBlockPath && !IsOpenSight)
75 {
76 return IsBlockSight;
77 }
78 return true;
79 }
80 }
virtual bool IsBlockPath
Definition: Trait.cs:52
virtual bool IsBlockSight
Definition: Trait.cs:54
virtual bool IsOpenSight
Definition: Trait.cs:58

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

◆ ShouldTryRefreshRoom

virtual bool Trait.ShouldTryRefreshRoom
get

Definition at line 82 of file Trait.cs.

Referenced by Card.SetPlaceState().

◆ ShowAsTool

virtual bool Trait.ShowAsTool
get

Definition at line 323 of file Trait.cs.

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

◆ ShowCharges

virtual bool Trait.ShowCharges
get

Definition at line 319 of file Trait.cs.

Referenced by Thing.GetName().

◆ ShowChildrenNumber

virtual bool Trait.ShowChildrenNumber
get

Definition at line 321 of file Trait.cs.

◆ ShowContextOnPick

virtual bool Trait.ShowContextOnPick
get

Definition at line 171 of file Trait.cs.

Referenced by AM_MoveInstalled.OnProcessTiles().

◆ ShowFuelWindow

virtual bool Trait.ShowFuelWindow
get

Definition at line 449 of file Trait.cs.

◆ ShowOrbit

virtual bool Trait.ShowOrbit
get

Definition at line 129 of file Trait.cs.

Referenced by CardRenderer.TrySpawnOrbit().

◆ SlaverType

virtual SlaverType Trait.SlaverType
get

Definition at line 507 of file Trait.cs.

◆ TextNextRestock

string Trait.TextNextRestock
get

Definition at line 511 of file Trait.cs.

◆ TextNextRestockPet

string Trait.TextNextRestockPet
get

Definition at line 513 of file Trait.cs.

◆ ThrowType

virtual ThrowType Trait.ThrowType
get

Definition at line 241 of file Trait.cs.

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

◆ tileMode

virtual TileMode Trait.tileMode
get

Definition at line 423 of file Trait.cs.

◆ tileType

virtual TileType Trait.tileType
get

◆ ToggleType

virtual ToggleType Trait.ToggleType
get

Definition at line 455 of file Trait.cs.

456 {
457 get
458 {
459 if (Electricity >= 0)
460 {
461 return ToggleType.None;
462 }
463 return ToggleType.Electronics;
464 }
465 }

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

◆ UseAltTiles

virtual bool Trait.UseAltTiles
get

Definition at line 425 of file Trait.cs.

◆ UseDummyTile

virtual bool Trait.UseDummyTile
get

Definition at line 187 of file Trait.cs.

Referenced by CardRenderer.Draw().

◆ UseExtra

virtual bool Trait.UseExtra
get

Definition at line 429 of file Trait.cs.

◆ UseLightColor

virtual bool Trait.UseLightColor
get

Definition at line 431 of file Trait.cs.

◆ UseLowblock

virtual bool Trait.UseLowblock
get

Definition at line 427 of file Trait.cs.

Referenced by BaseTileMap.DrawTile().

◆ WeightMod

virtual byte Trait.WeightMod
get

Definition at line 42 of file Trait.cs.

Referenced by Cell.Refresh().


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