Elin Modding Docs Doc
Loading...
Searching...
No Matches
TraitTeleporter.cs
1using System;
2using System.Collections.Generic;
3
4// Token: 0x0200046A RID: 1130
6{
7 // Token: 0x170009CA RID: 2506
8 // (get) Token: 0x06001F64 RID: 8036 RVA: 0x000B1C6C File Offset: 0x000AFE6C
9 // (set) Token: 0x06001F65 RID: 8037 RVA: 0x000B1C7C File Offset: 0x000AFE7C
10 public string id
11 {
12 get
13 {
14 return this.owner.GetStr(31, null);
15 }
16 set
17 {
18 this.owner.SetStr(31, value);
19 }
20 }
21
22 // Token: 0x170009CB RID: 2507
23 // (get) Token: 0x06001F66 RID: 8038 RVA: 0x000B1C8C File Offset: 0x000AFE8C
24 public override ZoneTransition.EnterState enterState
25 {
26 get
27 {
28 return ZoneTransition.EnterState.Teleport;
29 }
30 }
31
32 // Token: 0x170009CC RID: 2508
33 // (get) Token: 0x06001F67 RID: 8039 RVA: 0x000B1C90 File Offset: 0x000AFE90
34 public override string langOnUse
35 {
36 get
37 {
38 return "actUse";
39 }
40 }
41
42 // Token: 0x170009CD RID: 2509
43 // (get) Token: 0x06001F68 RID: 8040 RVA: 0x000B1C97 File Offset: 0x000AFE97
44 public override bool IsTeleport
45 {
46 get
47 {
48 return true;
49 }
50 }
51
52 // Token: 0x170009CE RID: 2510
53 // (get) Token: 0x06001F69 RID: 8041 RVA: 0x000B1C9A File Offset: 0x000AFE9A
54 public override bool CanBeHeld
55 {
56 get
57 {
58 return true;
59 }
60 }
61
62 // Token: 0x06001F6A RID: 8042 RVA: 0x000B1CA0 File Offset: 0x000AFEA0
63 public override void TrySetAct(ActPlan p)
64 {
65 base.TrySetAct(p);
66 if (p.input == ActInput.AllAction && (EClass.debug.enable || !this.owner.isNPCProperty))
67 {
68 p.TrySetAct("actSetTeleporterID", delegate()
69 {
70 Dialog.InputName("dialogTeleportId", this.id.IsEmpty(""), delegate(bool cancel, string text)
71 {
72 if (!cancel)
73 {
74 this.id = text;
75 EClass.game.teleports.SetID(this, EClass._zone.uid);
76 }
77 }, Dialog.InputType.Default);
78 return false;
79 }, this.owner, null, 1, false, true, false);
80 }
81 }
82
83 // Token: 0x06001F6B RID: 8043 RVA: 0x000B1CF9 File Offset: 0x000AFEF9
84 public override void OnChangePlaceState(PlaceState state)
85 {
86 if (state == PlaceState.installed)
87 {
88 EClass.game.teleports.SetID(this, EClass._zone.uid);
89 return;
90 }
91 EClass.game.teleports.Remove(this.owner.uid);
92 }
93
94 // Token: 0x06001F6C RID: 8044 RVA: 0x000B1D34 File Offset: 0x000AFF34
95 public override bool TryTeleport()
96 {
97 if (this.id.IsEmpty() && !base.GetParam(1, null).IsEmpty())
98 {
99 return false;
100 }
101 if (this.teleportedTurn == EClass.pc.turn)
102 {
103 this.teleportedTurn = 0;
104 return true;
105 }
106 List<TraitTeleporter> list = new List<TraitTeleporter>();
107 foreach (Thing thing in EClass._map.things)
108 {
109 TraitTeleporter traitTeleporter = thing.trait as TraitTeleporter;
110 if (traitTeleporter != null && traitTeleporter != this && traitTeleporter.owner.IsInstalled && traitTeleporter.owner.pos.IsInBounds && traitTeleporter.IsOn && traitTeleporter.id == this.id && traitTeleporter != this)
111 {
112 list.Add(traitTeleporter);
113 }
114 }
115 if (list.Count > 0)
116 {
117 TraitTeleporter traitTeleporter2 = list.RandomItem<TraitTeleporter>();
118 traitTeleporter2.teleportedTurn = EClass.pc.turn;
119 EClass.pc.Teleport(traitTeleporter2.owner.pos, false, true);
120 return true;
121 }
122 Zone teleportZone = EClass.game.teleports.GetTeleportZone(this);
123 if (teleportZone == null)
124 {
125 return false;
126 }
127 if ((EClass._zone.IsPCFaction && !EClass._zone.branch.HasNetwork) || (teleportZone.IsPCFaction && !teleportZone.branch.HasNetwork))
128 {
129 Msg.Say("noNetwork");
130 return false;
131 }
132 if (EClass._zone.IsPCFaction || teleportZone.IsPCFaction)
133 {
134 bool flag = true;
135 using (List<Quest>.Enumerator enumerator2 = EClass.game.quests.list.GetEnumerator())
136 {
137 while (enumerator2.MoveNext())
138 {
139 if (enumerator2.Current.ForbidTeleport)
140 {
141 flag = false;
142 }
143 }
144 }
145 if (!flag)
146 {
147 Msg.Say("hasInvalidQuest");
148 return false;
149 }
150 }
151 EClass.pc.MoveZone(teleportZone, new ZoneTransition
152 {
153 state = this.enterState,
154 idTele = this.id.IsEmpty(base.GetParam(3, null))
155 });
156 return true;
157 }
158
159 // Token: 0x040010D2 RID: 4306
160 public int teleportedTurn;
161}
Definition Msg.cs:7
Definition Thing.cs:10
Definition Zone.cs:14