17 public override void OnEnterScreen()
19 this.RefreshRenderer();
23 public override void RefreshRenderer()
25 if (!this.owner.renderer.isSynced)
31 this.owner.renderer.AddExtra(
"torch_held");
34 this.owner.renderer.RemoveExtra(
"torch_held");
38 public override void OnSetCurrentItem()
40 EClass.pc.RecalculateFOV();
43 EClass.pc.PlaySound(
"torch_lit", 1f,
true);
48 public override void OnUnsetCurrentItem()
50 EClass.pc.RecalculateFOV();
51 this.RefreshRenderer();
55 public void ToggleOn()
57 EClass.pc.Say(
"torch_start",
EClass.pc,
this.owner,
null,
null);
59 EClass.pc.PlaySound(
"torch_lit", 1f,
true);
60 this.RefreshRenderer();
64 public override void TrySetHeldAct(
ActPlan p)
67 if (p.IsSelfOrNeighbor)
70 foreach (
Card card
in p.pos.ListCards(
false))
72 if (card.trait.IsLighting && con ==
null && card.isOn)
74 string lang =
"ActTorch";
76 if ((onPerform = <>9__1) ==
null)
78 onPerform = (<>9__1 = delegate()
84 p.TrySetAct(lang, onPerform, this.owner,
null, 1,
false,
true,
false);
93 p.TrySetAct(
"ActExtinguishTorch", delegate()
96 this.RefreshRenderer();
102 string text =
"ActTorch".lang() +
" ";
104 string s =
"consumeResource";
105 string name =
EClass.sources.cards.map[
"log"].GetName();
106 string @ref = 1.ToString() ??
"";
108 text = str + s.lang(name, @ref, ((log2 !=
null) ? log2.Num : 0).ToString() ??
"",
null,
null);
109 p.TrySetAct(text, delegate()
113 Msg.Say(
"noLogForTorch");
116 log.ModNum(-1,
true);
119 }, this.owner,
null, 1,
false,
true,
false);