Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
TraitToolTorch.cs
Go to the documentation of this file.
2{
3 public bool IsLit => EClass.pc.GetCondition<ConTorch>() != null;
4
5 public override void OnEnterScreen()
6 {
8 }
9
10 public override void RefreshRenderer()
11 {
13 {
14 if (IsLit)
15 {
16 owner.renderer.AddExtra("torch_held");
17 }
18 else
19 {
20 owner.renderer.RemoveExtra("torch_held");
21 }
22 }
23 }
24
25 public override void OnSetCurrentItem()
26 {
28 if (IsLit)
29 {
30 EClass.pc.PlaySound("torch_lit");
31 }
32 }
33
34 public override void OnUnsetCurrentItem()
35 {
38 }
39
40 public void ToggleOn()
41 {
42 EClass.pc.Say("torch_start", EClass.pc, owner);
44 EClass.pc.PlaySound("torch_lit");
46 }
47
48 public override void TrySetHeldAct(ActPlan p)
49 {
50 ConTorch con = EClass.pc.GetCondition<ConTorch>();
51 if (p.IsSelfOrNeighbor)
52 {
53 foreach (Card item in p.pos.ListCards())
54 {
55 if (item.trait.IsLighting && con == null && item.isOn)
56 {
57 p.TrySetAct("ActTorch", delegate
58 {
59 ToggleOn();
60 return true;
61 }, owner);
62 break;
63 }
64 }
65 }
66 if (!p.IsSelf)
67 {
68 return;
69 }
70 if (con != null)
71 {
72 p.TrySetAct("ActExtinguishTorch", delegate
73 {
74 con.Kill();
76 return true;
77 });
78 return;
79 }
80 Thing log = EClass.pc.things.Find("log");
81 string text = "ActTorch".lang() + " ";
82 text += "consumeResource".lang(EClass.sources.cards.map["log"].GetName(), 1.ToString() ?? "", (log?.Num ?? 0).ToString() ?? "");
83 p.TrySetAct(text, delegate
84 {
85 if (log == null)
86 {
87 Msg.Say("noLogForTorch");
88 return false;
89 }
90 log.ModNum(-1);
91 ToggleOn();
92 return true;
93 }, owner);
94 }
95}
Point pos
Definition: ActPlan.cs:149
bool IsSelfOrNeighbor
Definition: ActPlan.cs:175
bool IsSelf
Definition: ActPlan.cs:173
bool TrySetAct(string lang, Func< bool > onPerform, Card tc, CursorInfo cursor=null, int dist=1, bool isHostileAct=false, bool localAct=true, bool canRepeat=false)
Definition: ActPlan.cs:344
void AddExtra(string id)
void RemoveExtra(string id)
Definition: Card.cs:11
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:5404
void RecalculateFOV()
Definition: Card.cs:5616
ThingContainer things
Definition: Card.cs:34
int Num
Definition: Card.cs:154
void ModNum(int a, bool notify=true)
Definition: Card.cs:3262
CardRenderer renderer
Definition: Card.cs:57
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:6046
Condition AddCondition(string id, int p=100, bool force=false)
Definition: Chara.cs:8415
void Kill(bool silent=false)
Definition: Condition.cs:91
Definition: EClass.cs:5
static SourceManager sources
Definition: EClass.cs:42
static Chara pc
Definition: EClass.cs:14
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
List< Card > ListCards(bool includeMasked=false)
Definition: Point.cs:1015
Dictionary< string, CardRow > map
Definition: SourceCard.cs:8
SourceCard cards
Thing Find(int uid)
Definition: Thing.cs:8
override void OnUnsetCurrentItem()
override void OnSetCurrentItem()
override void OnEnterScreen()
override void RefreshRenderer()
override void TrySetHeldAct(ActPlan p)
Card owner
Definition: Trait.cs:26