Elin Decompiled Documentation EA 23.102 Nightly
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Pages
InvOwnerMod.cs
Go to the documentation of this file.
2{
3 public override bool CanTargetAlly => true;
4
5 public override ProcessType processType => ProcessType.None;
6
7 public override string langTransfer => "invMod";
8
9 public static bool IsValidRangedMod(Thing t, SourceElement.Row row)
10 {
11 if (t.trait is TraitToolRangeCane && !row.tag.Contains("modCane"))
12 {
13 return false;
14 }
15 if ((t.trait is TraitToolRangeBow || t.trait is TraitToolRangeCrossbow) && row.id == 601)
16 {
17 return false;
18 }
19 return true;
20 }
21
22 public InvOwnerMod(Card owner = null, Card container = null, CurrencyType _currency = CurrencyType.None)
23 : base(owner, container, _currency)
24 {
25 count = 1;
26 }
27
28 public override bool ShouldShowGuide(Thing t)
29 {
30 TraitMod traitMod = owner.trait as TraitMod;
31 if (traitMod is TraitRune)
32 {
33 if (!t.CanAddRune(traitMod.source))
34 {
35 return false;
36 }
37 return true;
38 }
39 if (!IsValidRangedMod(t, traitMod.source))
40 {
41 return false;
42 }
43 if (t.sockets != null)
44 {
45 foreach (int socket in t.sockets)
46 {
47 if (socket == 0)
48 {
49 return true;
50 }
51 }
52 }
53 return false;
54 }
55
56 public override void _OnProcess(Thing t)
57 {
58 Msg.Say("modded", t, owner);
59 if (owner.trait is TraitRune)
60 {
61 SE.Play("intonation");
62 EClass.pc.PlayEffect("intonation");
63 t.AddRune(owner);
64 owner.ModNum(-1);
65 }
66 else
67 {
68 SE.Play("reloaded");
69 EClass.pc.PlayEffect("identify");
71 }
72 }
73}
CurrencyType
Definition: CurrencyType.cs:2
Definition: Card.cs:11
bool CanAddRune(SourceElement.Row row)
Definition: Card.cs:3407
SocketData AddRune(Card rune)
Definition: Card.cs:3345
void ApplySocket(Thing t)
Definition: Card.cs:3297
Effect PlayEffect(string id, bool useRenderPos=true, float range=0f, Vector3 fix=default(Vector3))
Definition: Card.cs:5438
Trait trait
Definition: Card.cs:49
virtual Thing Thing
Definition: Card.cs:1934
void ModNum(int a, bool notify=true)
Definition: Card.cs:3262
List< int > sockets
Definition: Card.cs:43
Definition: EClass.cs:5
static Chara pc
Definition: EClass.cs:14
override ProcessType processType
Definition: InvOwnerMod.cs:5
override bool ShouldShowGuide(Thing t)
Definition: InvOwnerMod.cs:28
static bool IsValidRangedMod(Thing t, SourceElement.Row row)
Definition: InvOwnerMod.cs:9
InvOwnerMod(Card owner=null, Card container=null, CurrencyType _currency=CurrencyType.None)
Definition: InvOwnerMod.cs:22
override bool CanTargetAlly
Definition: InvOwnerMod.cs:3
override void _OnProcess(Thing t)
Definition: InvOwnerMod.cs:56
override string langTransfer
Definition: InvOwnerMod.cs:7
Card owner
Definition: InvOwner.cs:538
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
SourceElement.Row source
Definition: TraitMod.cs:11
virtual bool Contains(RecipeSource r)
Definition: Trait.cs:533