Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
CharaBody Class Reference
Inheritance diagram for CharaBody:
EClass

Public Member Functions

void SetOwner (Chara chara, bool deserialized=false)
 
void Unequip (Thing thing, bool refresh=true)
 
void UnequipAll (int idSlot)
 
void Unequip (BodySlot slot, bool refresh=true)
 
bool IsEquippable (Thing thing, BodySlot slot, bool text=true)
 
bool IsTooHeavyToEquip (Thing thing)
 
void UnqeuipIfTooHeavy (Thing t)
 
bool Equip (Thing thing, BodySlot slot=null, bool msg=true)
 
void AddBodyPart (int ele, Thing thing=null)
 
void RefreshBodyParts ()
 
void RemoveBodyPart (int ele)
 
void RemoveBodyPartAt (int idx)
 
BodySlot GetSlot (Thing t, bool onlyEmpty=false, bool secondSlot=false)
 
BodySlot GetSlot (int elementId, bool onlyEmpty=true, bool secondSlot=false)
 
Thing GetEquippedThing (int elementId)
 
int GetWeight (bool armorOnly=false)
 
int GetAttackIndex (Thing t)
 
int GetMeleeDistance ()
 
AttackStyle GetAttackStyle ()
 
int GetAttackStyleElement (AttackStyle style)
 
int GetSortVal (BodySlot slot)
 
void SetBodyIndexText (BodySlot b, UIText t)
 

Public Attributes

Chara owner
 
List< BodySlotslots = new List<BodySlot>()
 
BodySlot slotMainHand
 
BodySlot slotOffHand
 
BodySlot slotRange
 

Properties

int[] rawSlots [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)
 
- Static Public Attributes inherited from EClass
static Core core
 

Detailed Description

Definition at line 4 of file CharaBody.cs.

Member Function Documentation

◆ AddBodyPart()

void CharaBody.AddBodyPart ( int  ele,
Thing  thing = null 
)
inline

Definition at line 261 of file CharaBody.cs.

262 {
264 {
265 elementId = ele,
266 thing = thing,
267 index = slots.Count
268 };
269 if (ele == 35)
270 {
271 if (slotMainHand == null)
272 {
274 }
275 else if (slotOffHand == null)
276 {
278 }
279 }
280 if (ele == 41)
281 {
282 slotRange = item;
283 }
284 slots.Add(item);
285 }
BodySlot slotOffHand
Definition: CharaBody.cs:12
List< BodySlot > slots
Definition: CharaBody.cs:8
BodySlot slotMainHand
Definition: CharaBody.cs:10
BodySlot slotRange
Definition: CharaBody.cs:14

References item, slotMainHand, slotOffHand, slotRange, and slots.

Referenced by Chara.AddRandomBodyPart(), DNA.Apply(), Chara.ApplyRace(), CoreDebug.ChangeRace(), Player.CreateEquip(), Chara.ResetBody(), and SetOwner().

◆ Equip()

bool CharaBody.Equip ( Thing  thing,
BodySlot  slot = null,
bool  msg = true 
)
inline

Definition at line 182 of file CharaBody.cs.

183 {
184 slot = slot ?? GetSlot(thing.category.slot) ?? GetSlot(thing.category.slot, onlyEmpty: false);
185 if (slot == slotMainHand || slot == slotOffHand)
186 {
187 owner.combatCount = 10;
188 }
189 if (slot == null || slot.elementId != thing.category.slot)
190 {
191 Debug.LogWarning("could not equip:" + thing?.ToString() + "/" + slot?.ToString() + "/" + owner);
192 return false;
193 }
194 if (!IsEquippable(thing, slot))
195 {
196 return false;
197 }
198 if (slot.thing != null)
199 {
200 if (slot.thing == thing)
201 {
202 Unequip(slot);
203 return false;
204 }
205 Unequip(slot, refresh: false);
206 }
207 Unequip(thing, refresh: false);
208 if (thing.parent != owner)
209 {
210 if (msg && owner.IsPC && thing.parent is Thing)
211 {
212 Msg.Say("movedToEquip", thing, thing.parent as Thing);
213 }
214 owner.AddCard(thing);
215 }
216 slot.thing = thing;
217 thing.c_equippedSlot = slot.index + 1;
218 thing.elements.SetParent(owner);
219 thing.trait.OnEquip(owner, onSetOwner: false);
220 if (EClass.pc != null)
221 {
223 }
225 if (owner.IsPC)
226 {
227 if (msg)
228 {
230 }
233 }
234 if (slot.elementId == 45 && EClass.core.IsGameStarted)
235 {
237 }
239 {
240 owner.Refresh();
241 }
242 if (owner.isCreated)
243 {
244 if (thing.Evalue(656) > 0)
245 {
246 thing.blessedState = BlessedState.Cursed;
247 }
248 if (thing.blessedState <= BlessedState.Cursed)
249 {
250 owner.Say("equipCursed", owner);
251 owner.PlaySound("curse3");
252 }
253 }
254 if (slot.elementId == 37 && owner.HasElement(1209))
255 {
256 owner.Say("tail_covered", owner);
257 }
258 return true;
259 }
BlessedState
Definition: BlessedState.cs:2
int elementId
Definition: BodySlot.cs:6
Thing thing
Definition: BodySlot.cs:8
ElementContainerCard elements
Definition: Card.cs:37
bool HasElement(int ele, int req=1)
Definition: Card.cs:5214
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:5404
Card AddCard(Card c)
Definition: Card.cs:2887
ICardParent parent
Definition: Card.cs:51
void RecalculateFOV()
Definition: Card.cs:5616
Trait trait
Definition: Card.cs:49
int Evalue(int ele)
Definition: Card.cs:2431
BlessedState blessedState
Definition: Card.cs:262
SourceCategory.Row category
Definition: Card.cs:1925
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:6046
Chara owner
Definition: CharaBody.cs:6
void Unequip(Thing thing, bool refresh=true)
Definition: CharaBody.cs:49
bool IsEquippable(Thing thing, BodySlot slot, bool text=true)
Definition: CharaBody.cs:106
BodySlot GetSlot(Thing t, bool onlyEmpty=false, bool secondSlot=false)
Definition: CharaBody.cs:341
void Refresh(bool calledRecursive=false)
Definition: Chara.cs:1504
Faction faction
Definition: Chara.cs:412
override bool IsPC
Definition: Chara.cs:597
bool isCreated
Definition: Chara.cs:131
void SetTempHand(int right=0, int left=0)
Definition: Chara.cs:6057
bool IsGameStarted
Definition: Core.cs:84
Definition: EClass.cs:5
static Core core
Definition: EClass.cs:6
static Chara pc
Definition: EClass.cs:14
void OnEquip(Chara c, Thing t)
void SetParent(Card c)
ElementContainerFaction charaElements
Definition: FACTION.cs:144
static void Refresh()
Definition: LayerChara.cs:16
static void SetDirty(Thing t)
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
Definition: Thing.cs:8
virtual void OnEquip(Chara c, bool onSetOwner)
Definition: Trait.cs:622
static void SetDirty()
Definition: WidgetEquip.cs:34

References Card.AddCard(), Card.blessedState, Card.category, Faction.charaElements, EClass.core, Debug, BodySlot.elementId, Card.elements, Card.Evalue(), Chara.faction, GetSlot(), Card.HasElement(), Chara.isCreated, IsEquippable(), Core.IsGameStarted, Chara.IsPC, Trait.OnEquip(), ElementContainerFaction.OnEquip(), owner, Card.parent, EClass.pc, Card.PlaySound(), Card.RecalculateFOV(), LayerChara.Refresh(), Chara.Refresh(), Msg.Say(), Card.Say(), WidgetEquip.SetDirty(), LayerInventory.SetDirty(), ElementContainer.SetParent(), Chara.SetTempHand(), slotMainHand, slotOffHand, BodySlot.thing, Card.trait, and Unequip().

Referenced by CoreDebug.ChangeRace(), Chara.EQ_CAT(), Chara.EQ_ID(), InvOwner.ListInteractions(), InvOwner.OnDrag(), TraitMannequin.OnUse(), HotItemEQSet.Perform(), InvOwner.PutBack(), AI_Equip.Run(), and Chara.TryEquip().

◆ GetAttackIndex()

int CharaBody.GetAttackIndex ( Thing  t)
inline

Definition at line 397 of file CharaBody.cs.

398 {
399 int num = 0;
400 foreach (BodySlot slot in slots)
401 {
402 if (slot.thing != null && slot.elementId == 35 && slot.thing.source.offense.Length >= 2)
403 {
404 if (slot.thing == t)
405 {
406 return num;
407 }
408 num++;
409 }
410 }
411 return -1;
412 }
SourceThing.Row source
Definition: Thing.cs:11

References BodySlot.elementId, slots, Thing.source, and BodySlot.thing.

◆ GetAttackStyle()

AttackStyle CharaBody.GetAttackStyle ( )
inline

Definition at line 427 of file CharaBody.cs.

428 {
429 bool flag = false;
430 int num = 0;
431 foreach (BodySlot slot in slots)
432 {
433 if (slot.elementId == 35 && slot.thing != null)
434 {
435 if (slot.thing.IsMeleeWeapon)
436 {
437 num++;
438 }
439 else
440 {
441 flag = true;
442 }
443 }
444 }
445 if (num > 1)
446 {
447 return AttackStyle.TwoWield;
448 }
449 if (flag)
450 {
451 return AttackStyle.Shield;
452 }
453 if (num == 1)
454 {
455 return AttackStyle.TwoHand;
456 }
457 return AttackStyle.Default;
458 }
AttackStyle
Definition: AttackStyle.cs:2
bool IsMeleeWeapon
Definition: Card.cs:2101

References BodySlot.elementId, Card.IsMeleeWeapon, slots, and BodySlot.thing.

Referenced by Chara.CalcCastingChance(), Card.DamageHP(), AttackProcess.Prepare(), WindowCharaMini.Refresh(), and WindowChara.RefreshProfile().

◆ GetAttackStyleElement()

int CharaBody.GetAttackStyleElement ( AttackStyle  style)
inline

Definition at line 460 of file CharaBody.cs.

461 {
462 return style switch
463 {
464 AttackStyle.TwoHand => 130,
465 AttackStyle.TwoWield => 131,
466 _ => 0,
467 };
468 }

Referenced by AttackProcess.Perform().

◆ GetEquippedThing()

Thing CharaBody.GetEquippedThing ( int  elementId)
inline

Definition at line 372 of file CharaBody.cs.

373 {
374 foreach (BodySlot slot in slots)
375 {
376 if (slot.elementId == elementId && slot.thing != null)
377 {
378 return slot.thing;
379 }
380 }
381 return null;
382 }

References BodySlot.elementId, slots, and BodySlot.thing.

Referenced by QuestCrafter.CanUpdateOnTalk(), Card.GetLightRadius(), and CoreDebug.QuickStart().

◆ GetMeleeDistance()

int CharaBody.GetMeleeDistance ( )
inline

Definition at line 414 of file CharaBody.cs.

415 {
416 int num = owner.Evalue(666);
417 foreach (BodySlot slot in slots)
418 {
419 if (slot.elementId == 35 && slot.thing != null && slot.thing.Evalue(666) > num)
420 {
421 num = slot.thing.Evalue(666);
422 }
423 }
424 return 1 + num;
425 }

References BodySlot.elementId, Card.Evalue(), owner, slots, and BodySlot.thing.

Referenced by GoalCombat.TryUseAbility().

◆ GetSlot() [1/2]

BodySlot CharaBody.GetSlot ( int  elementId,
bool  onlyEmpty = true,
bool  secondSlot = false 
)
inline

Definition at line 355 of file CharaBody.cs.

356 {
357 bool flag = true;
358 foreach (BodySlot slot in slots)
359 {
360 if (elementId == slot.elementId && (!onlyEmpty || slot.thing == null))
361 {
362 if (!(secondSlot && flag))
363 {
364 return slot;
365 }
366 flag = false;
367 }
368 }
369 return null;
370 }

References BodySlot.elementId, slots, and BodySlot.thing.

◆ GetSlot() [2/2]

BodySlot CharaBody.GetSlot ( Thing  t,
bool  onlyEmpty = false,
bool  secondSlot = false 
)
inline

Definition at line 341 of file CharaBody.cs.

342 {
343 BodySlot slot = GetSlot(t.category.slot, onlyEmpty: true, secondSlot);
344 if (slot != null)
345 {
346 return slot;
347 }
348 if (!onlyEmpty)
349 {
350 return GetSlot(t.category.slot, onlyEmpty: false, secondSlot);
351 }
352 return null;
353 }

References Card.category, and GetSlot().

Referenced by Chara.EQ_CAT(), Chara.EQ_ID(), Equip(), GetSlot(), InvOwner.ListInteractions(), HotItemEQSet.Perform(), Chara.RefreshSpeed(), Chara.ShouldEquip(), and Chara.TryEquip().

◆ GetSortVal()

int CharaBody.GetSortVal ( BodySlot  slot)
inline

Definition at line 470 of file CharaBody.cs.

471 {
472 return -(slot.element.sort * 100 + owner.body.slots.IndexOf(slot));
473 }
CharaBody body
Definition: Chara.cs:91

References Chara.body, owner, and slots.

Referenced by LayerEquip.RefreshEquipment(), WidgetEquip.RefreshEquipment(), WindowChara.RefreshEquipment(), and ButtonElement.SetGrid().

◆ GetWeight()

int CharaBody.GetWeight ( bool  armorOnly = false)
inline

Definition at line 384 of file CharaBody.cs.

385 {
386 int num = 0;
387 foreach (BodySlot slot in slots)
388 {
389 if (slot.thing != null && (!armorOnly || (slot.elementId != 44 && slot.elementId != 45)))
390 {
391 num += slot.thing.ChildrenAndSelfWeight;
392 }
393 }
394 return num;
395 }
int ChildrenAndSelfWeight
Definition: Card.cs:1917

References Card.ChildrenAndSelfWeight, BodySlot.elementId, slots, and BodySlot.thing.

Referenced by Chara.GetArmorSkill(), WindowCharaMini.Refresh(), and WindowChara.RefreshProfile().

◆ IsEquippable()

bool CharaBody.IsEquippable ( Thing  thing,
BodySlot  slot,
bool  text = true 
)
inline

Definition at line 106 of file CharaBody.cs.

107 {
108 if (slot == null)
109 {
110 return false;
111 }
112 switch (slot.elementId)
113 {
114 case 31:
115 if (owner.HasElement(1555))
116 {
117 return CannotEquip();
118 }
119 break;
120 case 33:
121 if (owner.HasElement(1554))
122 {
123 return CannotEquip();
124 }
125 break;
126 case 39:
127 if (owner.HasElement(1552))
128 {
129 return CannotEquip();
130 }
131 break;
132 }
133 if (slot.thing != null && slot.thing.blessedState <= BlessedState.Cursed)
134 {
135 return CannotEquip();
136 }
137 if (IsTooHeavyToEquip(thing))
138 {
139 if (EClass.core.IsGameStarted && owner.IsPC && text)
140 {
141 Msg.Say("tooHeavyToEquip", thing);
142 }
143 return false;
144 }
145 return true;
146 bool CannotEquip()
147 {
148 if (text)
149 {
150 Msg.Say("cannnotEquip", slot.element.GetName().ToLower());
151 }
152 return false;
153 }
154 }
SourceElement.Row element
Definition: BodySlot.cs:16
bool IsTooHeavyToEquip(Thing thing)
Definition: CharaBody.cs:156

References Card.blessedState, EClass.core, BodySlot.element, BodySlot.elementId, Card.HasElement(), Core.IsGameStarted, Chara.IsPC, IsTooHeavyToEquip(), owner, Msg.Say(), and BodySlot.thing.

Referenced by Equip(), InvOwner.OnDrag(), and Chara.ShouldEquip().

◆ IsTooHeavyToEquip()

bool CharaBody.IsTooHeavyToEquip ( Thing  thing)
inline

Definition at line 156 of file CharaBody.cs.

157 {
158 if (owner.HasElement(1204) && thing.ChildrenAndSelfWeight > 1000)
159 {
160 return thing.category.slot != 44;
161 }
162 return false;
163 }

References Card.ChildrenAndSelfWeight, Card.HasElement(), and owner.

Referenced by Thing.CanAutoFire(), Chara.CanEquipRanged(), IsEquippable(), ActRanged.Perform(), and UnqeuipIfTooHeavy().

◆ RefreshBodyParts()

void CharaBody.RefreshBodyParts ( )
inline

Definition at line 287 of file CharaBody.cs.

288 {
289 foreach (BodySlot slot in slots)
290 {
291 int elementId = slot.elementId;
292 if (elementId == 35)
293 {
294 if (slotMainHand == null)
295 {
296 slotMainHand = slot;
297 }
298 else if (slotOffHand == null)
299 {
300 slotOffHand = slot;
301 }
302 }
303 if (elementId == 41)
304 {
305 slotRange = slot;
306 }
307 }
308 }

References BodySlot.elementId, slotMainHand, slotOffHand, slotRange, and slots.

Referenced by DNA.Apply(), and Chara.ResetBody().

◆ RemoveBodyPart()

void CharaBody.RemoveBodyPart ( int  ele)
inline

Definition at line 310 of file CharaBody.cs.

311 {
312 int idx = slots.FindIndex((BodySlot a) => a.elementId == ele);
313 RemoveBodyPartAt(idx);
314 }
void RemoveBodyPartAt(int idx)
Definition: CharaBody.cs:316

References BodySlot.elementId, RemoveBodyPartAt(), and slots.

Referenced by DNA.Apply(), Chara.ApplyRace(), CoreDebug.ChangeRace(), and Chara.ResetBody().

◆ RemoveBodyPartAt()

void CharaBody.RemoveBodyPartAt ( int  idx)
inline

Definition at line 316 of file CharaBody.cs.

317 {
318 if (idx != -1)
319 {
320 BodySlot bodySlot = slots[idx];
321 if (bodySlot.thing != null)
322 {
323 Unequip(bodySlot);
324 }
325 if (slotMainHand == bodySlot)
326 {
327 slotMainHand = null;
328 }
329 if (slotOffHand == bodySlot)
330 {
331 slotOffHand = null;
332 }
333 if (slotRange == bodySlot)
334 {
335 slotRange = null;
336 }
337 slots.RemoveAt(idx);
338 }
339 }

References slotMainHand, slotOffHand, slotRange, slots, BodySlot.thing, and Unequip().

Referenced by RemoveBodyPart(), and Chara.RemoveLastBodyPart().

◆ SetBodyIndexText()

void CharaBody.SetBodyIndexText ( BodySlot  b,
UIText  t 
)
inline

Definition at line 475 of file CharaBody.cs.

476 {
477 if (!t)
478 {
479 return;
480 }
481 if (b.indexPart == 0)
482 {
483 int num = 0;
484 foreach (BodySlot slot in slots)
485 {
486 if (slot.elementId == b.element.id)
487 {
488 num++;
489 }
490 if (b == slot)
491 {
492 break;
493 }
494 }
495 b.indexPart = num;
496 }
497 if (b.elementId == 35)
498 {
499 t.SetText(b.indexPart.ToString() ?? "");
500 t.SetActive(enable: true);
501 }
502 else
503 {
504 t.SetActive(enable: false);
505 }
506 }
int indexPart
Definition: BodySlot.cs:12
void SetText(string s)
Definition: UIText.cs:159

References BodySlot.element, BodySlot.elementId, BodySlot.indexPart, UIText.SetText(), and slots.

Referenced by ButtonGrid.SetBodySlot().

◆ SetOwner()

void CharaBody.SetOwner ( Chara  chara,
bool  deserialized = false 
)
inline

Definition at line 18 of file CharaBody.cs.

19 {
20 owner = chara;
21 if (!deserialized)
22 {
23 return;
24 }
25 if (rawSlots != null)
26 {
27 for (int i = 0; i < rawSlots.Length; i++)
28 {
30 }
31 }
32 foreach (Thing thing in owner.things)
33 {
34 if (thing.isEquipped)
35 {
36 int num = thing.c_equippedSlot - 1;
37 if (num < 0 || num >= slots.Count)
38 {
39 thing.c_equippedSlot = 0;
40 continue;
41 }
42 slots[num].thing = thing;
44 thing.trait.OnEquip(owner, onSetOwner: true);
45 }
46 }
47 }
ThingContainer things
Definition: Card.cs:34
void AddBodyPart(int ele, Thing thing=null)
Definition: CharaBody.cs:261
int[] rawSlots
Definition: CharaBody.cs:16
bool isEquipped
Definition: Thing.cs:17

References AddBodyPart(), Card.elements, Thing.isEquipped, Trait.OnEquip(), owner, rawSlots, ElementContainer.SetParent(), slots, Card.things, and Card.trait.

Referenced by Chara.OnCreate(), and Chara.OnDeserialized().

◆ Unequip() [1/2]

void CharaBody.Unequip ( BodySlot  slot,
bool  refresh = true 
)
inline

Definition at line 68 of file CharaBody.cs.

69 {
70 if (slot.thing == null)
71 {
72 return;
73 }
74 Thing thing = slot.thing;
75 if (EClass.pc != null)
76 {
78 }
79 thing.elements.SetParent();
80 thing.trait.OnUnequip(owner);
81 thing.c_equippedSlot = 0;
82 slot.thing = null;
83 if (owner.IsPC)
84 {
85 if (refresh)
86 {
88 }
90 }
92 if (slot.elementId == 45 && EClass.core.IsGameStarted)
93 {
95 }
96 if (refresh && owner.isCreated && EClass.core.IsGameStarted)
97 {
98 owner.Refresh();
99 if (slot.elementId == 37 && owner.HasElement(1209))
100 {
101 owner.Say("tail_free", owner);
102 }
103 }
104 }
void OnUnequip(Chara c, Thing t)
virtual void OnUnequip(Chara c)
Definition: Trait.cs:626

References Faction.charaElements, EClass.core, BodySlot.elementId, Card.elements, Chara.faction, Card.HasElement(), Chara.isCreated, Core.IsGameStarted, Chara.IsPC, Trait.OnUnequip(), ElementContainerFaction.OnUnequip(), owner, EClass.pc, Card.RecalculateFOV(), LayerChara.Refresh(), Chara.Refresh(), Card.Say(), WidgetEquip.SetDirty(), LayerInventory.SetDirty(), ElementContainer.SetParent(), BodySlot.thing, and Card.trait.

◆ Unequip() [2/2]

void CharaBody.Unequip ( Thing  thing,
bool  refresh = true 
)
inline

◆ UnequipAll()

void CharaBody.UnequipAll ( int  idSlot)
inline

Definition at line 57 of file CharaBody.cs.

58 {
59 foreach (BodySlot slot in slots)
60 {
61 if (slot.elementId == idSlot)
62 {
63 Unequip(slot);
64 }
65 }
66 }

References BodySlot.elementId, slots, and Unequip().

Referenced by Feat.Apply().

◆ UnqeuipIfTooHeavy()

void CharaBody.UnqeuipIfTooHeavy ( Thing  t)
inline

Definition at line 165 of file CharaBody.cs.

166 {
167 if (t.isEquipped)
168 {
169 _ = slots[t.c_equippedSlot - 1];
170 if (IsTooHeavyToEquip(t))
171 {
172 owner.Say("tooHeavyToEquip", t);
173 Unequip(t);
174 }
175 }
176 if (!owner.IsPC && !t.isEquipped)
177 {
178 owner.TryEquip(t);
179 }
180 }
bool TryEquip(Thing t, bool useFav=false)
Definition: Chara.cs:6961

References Thing.isEquipped, Chara.IsPC, IsTooHeavyToEquip(), owner, Card.Say(), slots, Chara.TryEquip(), and Unequip().

Referenced by ActEffect.Proc().

Member Data Documentation

◆ owner

◆ slotMainHand

◆ slotOffHand

BodySlot CharaBody.slotOffHand

◆ slotRange

BodySlot CharaBody.slotRange

Definition at line 14 of file CharaBody.cs.

Referenced by AddBodyPart(), RefreshBodyParts(), and RemoveBodyPartAt().

◆ slots

Property Documentation

◆ rawSlots

int [] CharaBody.rawSlots
get

Definition at line 16 of file CharaBody.cs.

Referenced by SetOwner().


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