Elin Modding Docs Doc
Loading...
Searching...
No Matches
TraitToolTorch.cs
1using System;
2
3// Token: 0x0200032C RID: 812
5{
6 // Token: 0x17000778 RID: 1912
7 // (get) Token: 0x060019D6 RID: 6614 RVA: 0x000A3853 File Offset: 0x000A1A53
8 public bool IsLit
9 {
10 get
11 {
12 return EClass.pc.GetCondition<ConTorch>() != null;
13 }
14 }
15
16 // Token: 0x060019D7 RID: 6615 RVA: 0x000A3862 File Offset: 0x000A1A62
17 public override void OnEnterScreen()
18 {
19 this.RefreshRenderer();
20 }
21
22 // Token: 0x060019D8 RID: 6616 RVA: 0x000A386C File Offset: 0x000A1A6C
23 public override void RefreshRenderer()
24 {
25 if (!this.owner.renderer.isSynced)
26 {
27 return;
28 }
29 if (this.IsLit)
30 {
31 this.owner.renderer.AddExtra("torch_held");
32 return;
33 }
34 this.owner.renderer.RemoveExtra("torch_held");
35 }
36
37 // Token: 0x060019D9 RID: 6617 RVA: 0x000A38BF File Offset: 0x000A1ABF
38 public override void OnSetCurrentItem()
39 {
40 EClass.pc.RecalculateFOV();
41 if (this.IsLit)
42 {
43 EClass.pc.PlaySound("torch_lit", 1f, true);
44 }
45 }
46
47 // Token: 0x060019DA RID: 6618 RVA: 0x000A38E9 File Offset: 0x000A1AE9
48 public override void OnUnsetCurrentItem()
49 {
50 EClass.pc.RecalculateFOV();
51 this.RefreshRenderer();
52 }
53
54 // Token: 0x060019DB RID: 6619 RVA: 0x000A38FC File Offset: 0x000A1AFC
55 public void ToggleOn()
56 {
57 EClass.pc.Say("torch_start", EClass.pc, this.owner, null, null);
58 EClass.pc.AddCondition<ConTorch>(100, false);
59 EClass.pc.PlaySound("torch_lit", 1f, true);
60 this.RefreshRenderer();
61 }
62
63 // Token: 0x060019DC RID: 6620 RVA: 0x000A3950 File Offset: 0x000A1B50
64 public override void TrySetHeldAct(ActPlan p)
65 {
66 ConTorch con = EClass.pc.GetCondition<ConTorch>();
67 if (p.IsSelfOrNeighbor)
68 {
69 Func<bool> <>9__1;
70 foreach (Card card in p.pos.ListCards(false))
71 {
72 if (card.trait.IsLighting && con == null && card.isOn)
73 {
74 string lang = "ActTorch";
75 Func<bool> onPerform;
76 if ((onPerform = <>9__1) == null)
77 {
78 onPerform = (<>9__1 = delegate()
79 {
80 this.ToggleOn();
81 return true;
82 });
83 }
84 p.TrySetAct(lang, onPerform, this.owner, null, 1, false, true, false);
85 break;
86 }
87 }
88 }
89 if (p.IsSelf)
90 {
91 if (con != null)
92 {
93 p.TrySetAct("ActExtinguishTorch", delegate()
94 {
95 con.Kill(false);
96 this.RefreshRenderer();
97 return true;
98 }, null, 1);
99 return;
100 }
101 Thing log = EClass.pc.things.Find("log", -1, -1);
102 string text = "ActTorch".lang() + " ";
103 string str = text;
104 string s = "consumeResource";
105 string name = EClass.sources.cards.map["log"].GetName();
106 string @ref = 1.ToString() ?? "";
107 Thing log2 = log;
108 text = str + s.lang(name, @ref, ((log2 != null) ? log2.Num : 0).ToString() ?? "", null, null);
109 p.TrySetAct(text, delegate()
110 {
111 if (log == null)
112 {
113 Msg.Say("noLogForTorch");
114 return false;
115 }
116 log.ModNum(-1, true);
117 this.ToggleOn();
118 return true;
119 }, this.owner, null, 1, false, true, false);
120 }
121 }
122}
Definition Card.cs:13
Definition Msg.cs:7
Definition Thing.cs:10