Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
TraitAmmo.cs
Go to the documentation of this file.
1using System.Linq;
2
3public class TraitAmmo : TraitItem
4{
5 public virtual bool ConsumeOnMiss => true;
6
7 public override int DefaultStock => 20 + EClass.rnd(200);
8
9 public override int CraftNum => 40;
10
11 public override string LangUse => "ActReload";
12
13 public override bool OnUse(Chara c)
14 {
16 {
17 Msg.Say("isReloading");
18 return false;
19 }
21 if (traitToolRange == null)
22 {
23 foreach (BodySlot slot in EClass.pc.body.slots)
24 {
25 if (slot.thing != null && slot.thing.trait is TraitToolRange)
26 {
27 traitToolRange = slot.thing.trait as TraitToolRange;
28 break;
29 }
30 }
31 }
32 if (traitToolRange == null || !traitToolRange.IsAmmo(owner as Thing))
33 {
34 if (traitToolRange == null)
35 {
36 Msg.Say("invalidAction");
37 }
38 else
39 {
40 Msg.Say("wrongAmmo", owner, traitToolRange.owner);
41 }
42 return false;
43 }
44 return ActRanged.TryReload(traitToolRange.owner.Thing, owner.Thing);
45 }
46
47 public override bool CanStackTo(Thing to)
48 {
49 if (owner.elements.dict.Count() != to.elements.dict.Count())
50 {
51 return false;
52 }
53 foreach (Element value in owner.elements.dict.Values)
54 {
55 Element element = to.elements.GetElement(value.id);
56 if (element == null || value.vBase != element.vBase)
57 {
58 return false;
59 }
60 }
61 return base.CanStackTo(to);
62 }
63}
static bool TryReload(Thing weapon, Thing ammo=null)
Definition: ActRanged.cs:342
Thing thing
Definition: BodySlot.cs:8
ElementContainerCard elements
Definition: Card.cs:37
Trait trait
Definition: Card.cs:49
virtual Thing Thing
Definition: Card.cs:1934
List< BodySlot > slots
Definition: CharaBody.cs:8
Definition: Chara.cs:10
CharaBody body
Definition: Chara.cs:91
bool HasCondition(string alias)
Definition: Chara.cs:8568
Definition: EClass.cs:5
static int rnd(int a)
Definition: EClass.cs:50
static Player player
Definition: EClass.cs:12
static Chara pc
Definition: EClass.cs:14
Dictionary< int, Element > dict
int id
Definition: ELEMENT.cs:240
int vBase
Definition: ELEMENT.cs:242
virtual Thing Thing
Definition: HotItem.cs:38
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
HotItem currentHotItem
Definition: Player.cs:901
Definition: Thing.cs:8
override int DefaultStock
Definition: TraitAmmo.cs:7
virtual bool ConsumeOnMiss
Definition: TraitAmmo.cs:5
override int CraftNum
Definition: TraitAmmo.cs:9
override string LangUse
Definition: TraitAmmo.cs:11
override bool CanStackTo(Thing to)
Definition: TraitAmmo.cs:47
override bool OnUse(Chara c)
Definition: TraitAmmo.cs:13
virtual bool IsAmmo(Thing t)
Card owner
Definition: Trait.cs:26