7public class WidgetMinimap :
Widget, IPointerDownHandler, IEventSystemHandler, IPointerUpHandler, IDragHandler, IChangeResolution, IInitializePotentialDragHandler
10 public override object CreateExtra()
17 public override Type SetSiblingAfter
41 return this.preview.Size;
47 public override bool AlwaysBottom
56 public override void OnActivate()
58 WidgetMinimap.Instance =
this;
59 this.preview.limitBounds = this.extra.limitBounds;
60 this.preview.monoColor = this.extra.monoColor;
61 this.preview.SetMap(
EMono._map);
62 base.InvokeRepeating(
"RefreshMarkers", 0f, this.interval);
71 public static void UpdateMap(List<Cell> newPoints)
81 public static void UpdateMap(
int x,
int z)
90 public static void UpdateMap()
99 public void OnMoveZone()
101 this.preview.SetMap(
EMono._map);
108 this.preview.SetMap(this.preview.map);
112 public void OnPointerDown(PointerEventData e)
114 if (!
EMono.pc.HasNoGoal ||
EMono.game.activeZone.IsRegion ||
EMono.ui.IsActive)
119 Vector2 size = this.rectMap.rect.size;
121 RectTransformUtility.ScreenPointToLocalPointInRectangle(this.rectMap, e.position, e.pressEventCamera, out vector);
126 else if (vector.x >= size.x)
134 else if (vector.y >= size.y)
138 this.pos.Set((
int)((
float)this.Size * vector.x / size.x), (
int)((
float)
this.Size * vector.y / size.y));
139 this.pos.Clamp(
false);
140 if (this.preview.limitBounds)
142 this.pos.x += EMono._map.bounds.x - this.preview.offsetX;
143 this.pos.z += EMono._map.bounds.z - this.preview.offsetZ;
145 if (this.pos.cell.outOfBounds || !
this.pos.cell.isSeen)
150 EMono.pc.SetAIImmediate(
new AI_Goto(this.pos, 0,
false,
false));
154 public void OnPointerUp(PointerEventData e)
159 public void OnInitializePotentialDrag(PointerEventData ped)
161 ped.useDragThreshold =
false;
165 public void OnDrag(PointerEventData e)
170 public override void OnSetContextMenu(UIContextMenu m)
172 UIContextMenu uicontextMenu = m.AddChild(
"setting");
173 uicontextMenu.AddSlider(
"size", (
float a) => this.extra.scale.ToString() ??
"", (
float)
this.extra.scale, delegate(
float a)
175 this.extra.scale = (int)a;
177 }, 5f, 20f,
true,
true,
false);
178 uicontextMenu.AddSlider(
"width", (
float a) => (100 + this.extra.width).ToString() +
"%", (
float)
this.extra.width, delegate(
float a)
180 this.extra.width = (int)a;
182 }, -25f, 25f,
true,
true,
false);
183 uicontextMenu.AddSlider(
"alpha", (
float a) => this.extra.alpha.ToString() ??
"", (
float)
this.extra.alpha, delegate(
float a)
185 this.extra.alpha = (int)a;
187 }, 0f, 255f,
true,
true,
false);
188 uicontextMenu.AddToggle(
"rotation", this.extra.rotate, delegate(
bool a)
190 this.extra.rotate = a;
193 uicontextMenu.AddToggle(
"monoColor", this.extra.monoColor, delegate(
bool a)
196 this.preview.monoColor = a;
198 this.preview.SetMap(
EMono._map);
201 base.SetBaseContextMenu(m);
205 public void RefreshStyle()
207 this.rectAll.localEulerAngles = ((this.extra.rotate && !
EMono._zone.IsRegion) ?
new Vector3(60f, 0f, -45f) : Vector3.zero);
208 this.preview.matMap.SetColor(
"_Color",
new Color(1f, 1f, 1f, (
float)this.extra.alpha / 255f));
209 this.Rect().sizeDelta =
new Vector2(0.1f * this.baseSize.x * (
float)(10 +
this.extra.scale) * (
float)(100 +
this.extra.width) * 0.01f, 0.1f *
this.baseSize.y * (
float)(10 +
this.extra.scale));
213 public void OnUpdate()
215 this.point.Set(
EMono.screen.position);
216 if (this.preview.limitBounds)
218 this.point.x -= EMono._map.bounds.x - this.preview.offsetX;
219 this.point.z -= EMono._map.bounds.z - this.preview.offsetZ;
221 float x = (float)(this.point.x /
this.Size) - 0.5f;
222 float y = (float)(this.point.z /
this.Size) - 0.5f;
223 this.transBound.localScale =
new Vector3(Mathf.Min((
float)
EMono.screen.width / (
float)
this.Size * 1.5f, 1f), Mathf.Min((
float)
EMono.screen.height / (
float)
this.Size / 2f, 1f), 1f);
224 this.transBound.localPosition =
new Vector3(x, y, 50f);
225 this.transCam.localScale =
new Vector3(1f /
EMono.core.uiScale, 1f /
EMono.core.uiScale, 1f);
229 public void RefreshMarkers()
231 if (!base.gameObject.activeInHierarchy)
235 this.EmitParticle(
EMono.pc,
this.psAlly,
this.colorAlly);
239 public void EmitParticle(
Card c, ParticleSystem ps, Color col)
243 if (this.preview.limitBounds)
245 num -= EMono._map.bounds.x - this.preview.offsetX;
246 num2 -= EMono._map.bounds.z - this.preview.offsetZ;
248 float x = (float)num / (
float)this.Size - 0.5f;
249 float y = (float)num2 / (
float)this.Size - 0.5f;
251 ParticleSystem.EmitParams emitParams =
new ParticleSystem.EmitParams
253 position =
new Vector3(x, y, 10f),
254 startSize = this.psSize,
255 startLifetime = this.intervalPS,
258 this.psAlly.Emit(emitParams, 1);
265 public float interval;
268 public float intervalPS;
274 public RectTransform rectAll;
277 public RectTransform rectMap;
280 public Vector2 baseSize;
286 public UIButton buttonMaptool;
292 public Color colorAlly;
295 public Color colorEnemy;
298 public Color colorGuest;
301 public ParticleSystem psAlly;
304 public Transform transBound;
307 public Vector2 posPs;
310 public Transform transCam;
325 public bool monoColor;
328 public bool limitBounds;