Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
TraitBaseSpellbook Class Reference
Inheritance diagram for TraitBaseSpellbook:
TraitScroll Trait EClass TraitAncientbook TraitErohon TraitSpellbook TraitUsuihon TraitSpellbookRandom

Public Types

enum  Type {
  Ancient , Spell , RandomSpell , Ero ,
  Dojin
}
 
- Public Types inherited from Trait
enum  TileMode {
  Default , Door , Illumination , DefaultNoAnime ,
  SignalAnime
}
 
enum  CopyShopType { None , Item , Spellbook }
 

Public Member Functions

override bool CanRead (Chara c)
 
override int GetActDuration (Chara c)
 
override void OnCreate (int lv)
 
override bool TryProgress (AIProgress p)
 
override void OnRead (Chara c)
 
void ModCharge (Chara c, int a=-1)
 
override void SetName (ref string s)
 
- Public Member Functions inherited from TraitScroll
override SourceElement.Row GetRefElement ()
 
override bool CanRead (Chara c)
 
override int GetValue ()
 
- Public Member Functions inherited from Trait
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 ()
 

Static Public Member Functions

static void ReadFailEffect (Chara c)
 
- 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)
 

Static Public Attributes

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

Properties

virtual Type BookType [get]
 
virtual int Difficulty [get]
 
override bool CanStack [get]
 
override bool HasCharges [get]
 
override float MTPValue [get]
 
- Properties inherited from TraitScroll
virtual SourceElement.Row source [get]
 
virtual int eleParent [get]
 
virtual float MTPValue [get]
 
virtual bool UseSourceValue [get]
 
- Properties inherited from Trait
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

- Public Attributes inherited from Trait
Card owner
 
- Static Protected Attributes inherited from Trait
static List< PointlistRadiusPoints = new List<Point>()
 

Detailed Description

Definition at line 5 of file TraitBaseSpellbook.cs.

Member Enumeration Documentation

◆ Type

Enumerator
Ancient 
Spell 
RandomSpell 
Ero 
Dojin 

Definition at line 7 of file TraitBaseSpellbook.cs.

Member Function Documentation

◆ CanRead()

override bool TraitBaseSpellbook.CanRead ( Chara  c)
inlinevirtual

Reimplemented from Trait.

Definition at line 32 of file TraitBaseSpellbook.cs.

33 {
34 return !c.isBlind;
35 }
bool isBlind
Definition: Chara.cs:125

References Chara.isBlind.

◆ GetActDuration()

override int TraitBaseSpellbook.GetActDuration ( Chara  c)
inlinevirtual

Reimplemented from Trait.

Definition at line 37 of file TraitBaseSpellbook.cs.

38 {
39 return Mathf.Max(Difficulty, 100) * Mathf.Max(100 - (int)Mathf.Sqrt(c.Evalue(285)) * 7, 10) / 400;
40 }
int Evalue(int ele)
Definition: Card.cs:2431

References Difficulty, and Card.Evalue().

Referenced by ConSleep.OnRemoved().

◆ ModCharge()

void TraitBaseSpellbook.ModCharge ( Chara  c,
int  a = -1 
)
inline

Definition at line 246 of file TraitBaseSpellbook.cs.

247 {
248 owner.ModCharge(a);
250 if (owner.c_charges <= 0)
251 {
252 c.Say("spellbookCrumble", owner);
253 owner.ModNum(-1);
254 }
255 }
void ModCharge(int a, bool destroy=false)
Definition: Card.cs:3627
void ModNum(int a, bool notify=true)
Definition: Card.cs:3262
int c_charges
Definition: Card.cs:1205
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:6046
static void SetDirtyAll(bool immediate=false)
Card owner
Definition: Trait.cs:26

References Card.c_charges, Card.ModCharge(), Card.ModNum(), Trait.owner, Card.Say(), and LayerInventory.SetDirtyAll().

Referenced by OnRead(), and TryProgress().

◆ OnCreate()

override void TraitBaseSpellbook.OnCreate ( int  lv)
inlinevirtual

Reimplemented from Trait.

Definition at line 42 of file TraitBaseSpellbook.cs.

43 {
44 owner.c_charges = 1 + EClass.rnd(4) + EClass.rnd(EClass.rnd(4) + 1);
45 switch (BookType)
46 {
47 case Type.RandomSpell:
48 owner.refVal = selecter.Select(lv);
49 break;
50 case Type.Ancient:
51 {
52 int max = Lang.GetList("ancientbook").Length;
53 owner.refVal = EClass.rnd(Mathf.Clamp(EClass.rnd(lv / 5 + 5), 1, max));
54 break;
55 }
56 case Type.Ero:
57 {
58 IEnumerable<SourceChara.Row> ie = EClass.sources.charas.rows.Where((SourceChara.Row a) => !a.name.IsEmpty() && a.name.Length > 2 && a.name[0] != '<' && a.race != "god" && !a.HasTag(CTAG.noRandomProduct));
59 owner.c_idRefName = ie.RandomItem().id;
60 break;
61 }
62 case Type.Dojin:
63 owner.c_idRefName = EClass.game.religions.dictAll.RandomItem().id;
64 break;
65 case Type.Spell:
66 break;
67 }
68 }
CTAG
Definition: CTAG.cs:2
Definition: EClass.cs:5
static Game game
Definition: EClass.cs:8
static int rnd(int a)
Definition: EClass.cs:50
static SourceManager sources
Definition: EClass.cs:42
int Select(int lv)
ReligionManager religions
Definition: Game.cs:158
Definition: Lang.cs:6
static string[] GetList(string id)
Definition: Lang.cs:114
Dictionary< string, Religion > dictAll
SourceChara charas
static ElementSelecter selecter

References BookType, SourceManager.charas, ReligionManager.dictAll, EClass.game, Lang.GetList(), Game.religions, EClass.rnd(), ElementSelecter.Select(), selecter, and EClass.sources.

◆ OnRead()

override void TraitBaseSpellbook.OnRead ( Chara  c)
inlinevirtual

Reimplemented from Trait.

Definition at line 150 of file TraitBaseSpellbook.cs.

151 {
152 bool flag = BookType == Type.Spell || BookType == Type.RandomSpell;
153 int a = -1;
154 string name = owner.Name;
155 if (c.IsPCParty)
156 {
157 owner.Thing?.Identify(show: true, IDTSource.SuperiorIdentify);
158 owner.isOn = true;
159 }
160 switch (BookType)
161 {
162 case Type.Ancient:
163 c.Say("book_decode", c, name);
164 if (!c.IsPC)
165 {
167 }
168 if (c.IsPC)
169 {
171 }
172 break;
173 case Type.Spell:
174 case Type.RandomSpell:
175 if (c.IsPC)
176 {
177 c.GainAbility(source.id);
178 }
179 ModCharge(c);
180 break;
181 case Type.Ero:
182 case Type.Dojin:
183 c.PlaySound("wow");
184 c.Say("book_decode", c, owner);
185 if (!c.IsPC)
186 {
187 c.Talk("wow");
188 }
189 switch (BookType)
190 {
191 case Type.Ero:
192 if (c.IsPC)
193 {
194 EClass.pc.SAN.Mod(-(EClass.rnd(5) + 1));
195 }
196 if (!owner.c_idRefName.IsEmpty())
197 {
199 c.Say("learn_weakspot", c, cardRow.GetName());
200 if (c.IsPC)
201 {
203 }
204 }
205 if (c.conSleep != null)
206 {
207 ActEffect.Proc(EffectId.Sleep, c);
208 }
209 break;
210 case Type.Dojin:
211 {
213 if (c.IsPC)
214 {
216 }
217 c.AddCondition<ConInsane>(500);
219 if (!c.IsPC && c.faith != religion)
220 {
221 if (!c.source.faith.IsEmpty())
222 {
223 c.Say("faith_stands", c);
224 break;
225 }
226 religion.JoinFaith(c);
227 a = -owner.c_charges;
228 }
229 break;
230 }
231 }
232 ModCharge(c, a);
233 break;
234 }
235 c.ModExp(285, 180);
236 if (flag)
237 {
238 c.ModExp(307, 200);
239 }
240 if (c.IsPC)
241 {
243 }
244 }
EffectId
Definition: EffectId.cs:2
IDTSource
Definition: IDTSource.cs:2
static void Proc(EffectId id, Card cc, Card tc=null, int power=100, ActRef actRef=default(ActRef))
Definition: ActEffect.cs:788
virtual string GetName(int i)
Definition: CardRow.cs:95
string id
Definition: CardRow.cs:7
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:5404
void Talk(string idTopic, string ref1=null, string ref2=null, bool forceSync=false)
Definition: Card.cs:5949
string Name
Definition: Card.cs:2013
int refVal
Definition: Card.cs:190
virtual Thing Thing
Definition: Card.cs:1934
void ModExp(string alias, int a)
Definition: Card.cs:2508
string c_idRefName
Definition: Card.cs:1541
Condition AddCondition(string id, int p=100, bool force=false)
Definition: Chara.cs:8415
override bool IsPC
Definition: Chara.cs:597
override bool IsPCParty
Definition: Chara.cs:600
ConSleep conSleep
Definition: Chara.cs:99
Stats SAN
Definition: Chara.cs:967
SourceChara.Row source
Definition: Chara.cs:143
void GainAbility(int ele, int mtp=100)
Definition: Chara.cs:9111
Religion faith
Definition: Chara.cs:424
void AddWeakspot(string id)
Definition: CodexManager.cs:60
static Player player
Definition: EClass.cs:12
static Chara pc
Definition: EClass.cs:14
void AddContribution(int a)
Definition: FACTION.cs:316
Definition: Guild.cs:2
static GuildMage Mage
Definition: Guild.cs:25
static void Redraw()
CodexManager codex
Definition: Player.cs:916
void ModKarma(int a)
Definition: Player.cs:2289
ReligionEyth Eyth
Dictionary< string, CardRow > map
Definition: SourceCard.cs:8
SourceCard cards
virtual void Mod(int a)
Definition: Stats.cs:135
Thing Identify(bool show=true, IDTSource idtSource=IDTSource.Identify)
Definition: Thing.cs:1959
void ModCharge(Chara c, int a=-1)
virtual SourceElement.Row source
Definition: TraitScroll.cs:5

References Chara.AddCondition(), Faction.AddContribution(), CodexManager.AddWeakspot(), BookType, Card.c_charges, Card.c_idRefName, SourceManager.cards, Player.codex, Chara.conSleep, ReligionManager.dictAll, ReligionManager.Eyth, Chara.faith, Chara.GainAbility(), EClass.game, CardRow.GetName(), CardRow.id, Thing.Identify(), Chara.IsPC, Chara.IsPCParty, Guild.Mage, SourceCard.map, Stats.Mod(), ModCharge(), Card.ModExp(), Player.ModKarma(), Card.Name, Trait.owner, EClass.pc, EClass.player, Card.PlaySound(), ActEffect.Proc(), LayerAbility.Redraw(), Card.refVal, religion, Game.religions, EClass.rnd(), Chara.SAN, Card.Say(), Chara.source, TraitScroll.source, EClass.sources, Card.Talk(), and Card.Thing.

Referenced by ConSleep.OnRemoved().

◆ ReadFailEffect()

static void TraitBaseSpellbook.ReadFailEffect ( Chara  c)
inlinestatic

Definition at line 113 of file TraitBaseSpellbook.cs.

114 {
115 if (EClass.rnd(2) == 0)
116 {
117 c.Say("spell_fail_mana", c);
118 c.mana.Mod(-c.mana.max / (c.IsPC ? 2 : 5));
119 }
120 else if (EClass.rnd(3) == 0)
121 {
122 c.Say("spell_fail_confuse", c);
124 }
125 else if (((c.IsPCFaction && c.memberType == FactionMemberType.Default) || !EClass._zone.IsPCFaction) && EClass.rnd(3) == 0)
126 {
127 c.Say("spell_fail_monster", c);
128 c.PlaySound("spell_funnel");
129 for (int i = 0; i < Mathf.Clamp(1 + EClass._zone.DangerLv / 15 + EClass.rnd(3 + EClass._zone.DangerLv / 15), 1, 8); i++)
130 {
131 Chara chara = CharaGen.CreateFromFilter("c_readFail", EClass._zone.DangerLv);
132 EClass._zone.AddCard(chara, c.pos.GetNearestPoint(allowBlock: false, allowChara: false));
133 chara.pos.PlayEffect("teleport");
134 }
135 }
136 else
137 {
138 c.Say("spell_fail_teleport", c);
139 if (c.IsPCFaction && !c.IsPC)
140 {
142 }
143 else
144 {
145 ActEffect.Proc(EffectId.Teleport, c);
146 }
147 }
148 }
FactionMemberType
Point pos
Definition: Card.cs:55
void SayNothingHappans()
Definition: Card.cs:6041
static Chara CreateFromFilter(string id, int lv=-1, int levelRange=-1)
Definition: CharaGen.cs:22
Definition: Chara.cs:10
override bool IsPCFaction
Definition: Chara.cs:656
Stats mana
Definition: Chara.cs:963
FactionMemberType memberType
Definition: Chara.cs:46
static Zone _zone
Definition: EClass.cs:20
Effect PlayEffect(string id)
Definition: Point.cs:1212
Point GetNearestPoint(bool allowBlock=false, bool allowChara=true, bool allowInstalled=true, bool ignoreCenter=false)
Definition: Point.cs:595
virtual int max
Definition: Stats.cs:68
override int DangerLv
Definition: Zone.cs:107
bool IsPCFaction
Definition: Zone.cs:464
Card AddCard(Card t, Point point)
Definition: Zone.cs:1893

References EClass._zone, Zone.AddCard(), Chara.AddCondition(), CharaGen.CreateFromFilter(), Zone.DangerLv, Point.GetNearestPoint(), Chara.IsPC, Chara.IsPCFaction, Zone.IsPCFaction, Chara.mana, Stats.max, Chara.memberType, Stats.Mod(), Point.PlayEffect(), Card.PlaySound(), Card.pos, ActEffect.Proc(), EClass.rnd(), Card.Say(), and Card.SayNothingHappans().

Referenced by TraitScrollStatic.OnRead(), and TryProgress().

◆ SetName()

override void TraitBaseSpellbook.SetName ( ref string  s)
inlinevirtual

Reimplemented from Trait.

Definition at line 257 of file TraitBaseSpellbook.cs.

258 {
259 if (!owner.IsIdentified)
260 {
261 return;
262 }
263 switch (BookType)
264 {
265 case Type.Ancient:
266 s = "_titled".lang(Lang.GetList("ancientbook")[owner.refVal], s);
267 if (owner.isOn)
268 {
269 s = "_deciphered ".lang(s);
270 }
271 break;
272 case Type.Ero:
273 case Type.Dojin:
274 {
275 string c_idRefName = owner.c_idRefName;
276 if (!c_idRefName.IsEmpty())
277 {
278 string @ref = ((BookType == Type.Dojin) ? EClass.game.religions.dictAll[c_idRefName].Name : EClass.sources.charas.map.TryGetValue(c_idRefName, "putty").GetName());
279 s = "_'s".lang(@ref, s);
280 }
281 break;
282 }
283 }
284 }
bool isOn
Definition: Card.cs:514
bool IsIdentified
Definition: Card.cs:2237

References BookType, Card.c_idRefName, SourceManager.charas, ReligionManager.dictAll, EClass.game, Lang.GetList(), Card.IsIdentified, Card.isOn, Trait.owner, Card.refVal, Game.religions, and EClass.sources.

◆ TryProgress()

override bool TraitBaseSpellbook.TryProgress ( AIProgress  p)
inlinevirtual

Reimplemented from Trait.

Definition at line 70 of file TraitBaseSpellbook.cs.

71 {
72 Chara c = p.owner;
73 if (BookType == Type.Ancient && owner.isOn)
74 {
75 if (c.IsPC)
76 {
77 c.Say("alreadyDecoded");
78 }
79 return false;
80 }
81 if (c.isBlind)
82 {
83 c.Say("blinded", c);
84 return false;
85 }
86 int diff = Mathf.Max(1, Difficulty * ((owner.blessedState >= BlessedState.Blessed) ? 75 : ((owner.blessedState <= BlessedState.Cursed) ? 300 : 100)) / 100);
87 int check = Mathf.Max(1, c.Evalue(eleParent) * (100 + c.Evalue(285) * 10) / 100);
88 if (ReadCheck() || EClass.debug.godMode || owner.HasEditorTag(EditorTag.NoReadFail))
89 {
90 return true;
91 }
93 ModCharge(c);
94 return false;
95 bool ReadCheck()
96 {
97 if (EClass.rnd(4) != 0 && (c.isConfused || c.HasCondition<ConDim>()))
98 {
99 return false;
100 }
101 if (check > diff * 3)
102 {
103 return true;
104 }
105 if (EClass.rnd(check * 30) < diff)
106 {
107 return false;
108 }
109 return true;
110 }
111 }
BlessedState
Definition: BlessedState.cs:2
EditorTag
Definition: EditorTag.cs:2
new Chara owner
Definition: AIAct.cs:14
bool HasEditorTag(EditorTag tag)
Definition: Card.cs:2460
BlessedState blessedState
Definition: Card.cs:262
bool HasCondition(string alias)
Definition: Chara.cs:8568
bool isConfused
Definition: Chara.cs:121
Definition: ConDim.cs:2
bool godMode
Definition: CoreDebug.cs:172
static CoreDebug debug
Definition: EClass.cs:48
static void ReadFailEffect(Chara c)
virtual int eleParent
Definition: TraitScroll.cs:8

References Card.blessedState, BookType, EClass.debug, Difficulty, TraitScroll.eleParent, Card.Evalue(), CoreDebug.godMode, Chara.HasCondition(), Card.HasEditorTag(), Chara.isBlind, Chara.isConfused, Card.isOn, Chara.IsPC, ModCharge(), AIAct.owner, Trait.owner, ReadFailEffect(), EClass.rnd(), and Card.Say().

Referenced by ConSleep.OnRemoved().

Member Data Documentation

◆ selecter

ElementSelecter TraitBaseSpellbook.selecter
static
Initial value:
{
type = "B",
useDomain = true
}

Definition at line 16 of file TraitBaseSpellbook.cs.

Referenced by OnCreate().

Property Documentation

◆ BookType

virtual Type TraitBaseSpellbook.BookType
get

Definition at line 22 of file TraitBaseSpellbook.cs.

Referenced by OnCreate(), OnRead(), SetName(), and TryProgress().

◆ CanStack

override bool TraitBaseSpellbook.CanStack
get

Definition at line 26 of file TraitBaseSpellbook.cs.

◆ Difficulty

virtual int TraitBaseSpellbook.Difficulty
get

Definition at line 24 of file TraitBaseSpellbook.cs.

Referenced by GetActDuration(), and TryProgress().

◆ HasCharges

override bool TraitBaseSpellbook.HasCharges
get

Definition at line 28 of file TraitBaseSpellbook.cs.

◆ MTPValue

override float TraitBaseSpellbook.MTPValue
get

Definition at line 30 of file TraitBaseSpellbook.cs.


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