Elin Modding Docs Doc
Loading...
Searching...
No Matches
TraitAmmo.cs
1using System;
2using System.Collections.Generic;
3using System.Linq;
4
5// Token: 0x02000443 RID: 1091
6public class TraitAmmo : TraitItem
7{
8 // Token: 0x17000982 RID: 2434
9 // (get) Token: 0x06001EA7 RID: 7847 RVA: 0x000AF940 File Offset: 0x000ADB40
10 public virtual bool ConsumeOnMiss
11 {
12 get
13 {
14 return true;
15 }
16 }
17
18 // Token: 0x17000983 RID: 2435
19 // (get) Token: 0x06001EA8 RID: 7848 RVA: 0x000AF943 File Offset: 0x000ADB43
20 public override int DefaultStock
21 {
22 get
23 {
24 return 20 + EClass.rnd(200);
25 }
26 }
27
28 // Token: 0x17000984 RID: 2436
29 // (get) Token: 0x06001EA9 RID: 7849 RVA: 0x000AF952 File Offset: 0x000ADB52
30 public override int CraftNum
31 {
32 get
33 {
34 return 40;
35 }
36 }
37
38 // Token: 0x17000985 RID: 2437
39 // (get) Token: 0x06001EAA RID: 7850 RVA: 0x000AF956 File Offset: 0x000ADB56
40 public override string LangUse
41 {
42 get
43 {
44 return "ActReload";
45 }
46 }
47
48 // Token: 0x06001EAB RID: 7851 RVA: 0x000AF960 File Offset: 0x000ADB60
49 public override bool OnUse(Chara c)
50 {
51 if (EClass.pc.HasCondition<ConReload>())
52 {
53 Msg.Say("isReloading");
54 return false;
55 }
56 Thing thing = EClass.player.currentHotItem.Thing;
57 TraitToolRange traitToolRange = ((thing != null) ? thing.trait : null) as TraitToolRange;
58 if (traitToolRange == null)
59 {
60 foreach (BodySlot bodySlot in EClass.pc.body.slots)
61 {
62 if (bodySlot.thing != null && bodySlot.thing.trait is TraitToolRange)
63 {
64 traitToolRange = (bodySlot.thing.trait as TraitToolRange);
65 break;
66 }
67 }
68 }
69 if (traitToolRange == null || !traitToolRange.IsAmmo(this.owner as Thing))
70 {
71 if (traitToolRange == null)
72 {
73 Msg.Say("invalidAction");
74 }
75 else
76 {
77 Msg.Say("wrongAmmo", this.owner, traitToolRange.owner, null, null);
78 }
79 return false;
80 }
81 return ActRanged.TryReload(traitToolRange.owner.Thing, this.owner.Thing);
82 }
83
84 // Token: 0x06001EAC RID: 7852 RVA: 0x000AFA7C File Offset: 0x000ADC7C
85 public override bool CanStackTo(Thing to)
86 {
87 if (this.owner.elements.dict.Count<KeyValuePair<int, Element>>() != to.elements.dict.Count<KeyValuePair<int, Element>>())
88 {
89 return false;
90 }
91 foreach (Element element in this.owner.elements.dict.Values)
92 {
93 Element element2 = to.elements.GetElement(element.id);
94 if (element2 == null || element.vBase != element2.vBase)
95 {
96 return false;
97 }
98 }
99 return base.CanStackTo(to);
100 }
101}
Definition Chara.cs:12
Definition Msg.cs:7
Definition Thing.cs:10