10 public override void OnAfterInit()
12 ELayer.ui.hud.textMouseHintRight.transform.parent.SetActive(
false);
13 this.textDetail.SetActive(!this.textDetail.text.IsEmpty());
14 this.listGrid.SetActive(this.gridItems.Count > 0);
15 if (this.gridItems.Count >= 8)
17 GridLayoutGroup gridLayoutGroup = this.listGrid.layoutItems as GridLayoutGroup;
18 gridLayoutGroup.constraint = GridLayoutGroup.Constraint.FixedColumnCount;
19 gridLayoutGroup.constraintCount = 8;
21 if (this.gridItems.Count > 0)
23 this.listGrid.Clear();
24 BaseList baseList = this.listGrid;
34 baseList.callbacks = callback;
35 foreach (
GridItem o
in this.gridItems)
39 this.listGrid.Refresh(
false);
41 this.list.Refresh(
false);
42 this.RebuildLayout(
true);
43 GraphicRaycaster g = this.windows[0].GetComponent<GraphicRaycaster>();
45 TweenUtil.Delay(0.3f, delegate
56 EInput.WaitReleaseKey();
60 public void AddButton(
string text, Action onClick =
null,
bool close =
true)
62 this.list.AddButton(
null, text, delegate
78 if (this.input && this.option.canClose && Input.GetKeyDown(KeyCode.Escape))
85 public override void OnUpdateInput()
87 if (this.input && this.option.canClose && Input.GetKeyDown(KeyCode.Return))
89 this.isInputEnter =
true;
93 if (!this.input.gameObject.activeInHierarchy &&
this.list !=
null)
95 foreach (UIList.ButtonPair buttonPair in
this.list.buttons)
97 UIButton uibutton = buttonPair.component as UIButton;
98 if (uibutton && uibutton.interactable && !EInput.waitReleaseAnyKey && uibutton.keyText && !uibutton.keyText.text.IsEmpty() && uibutton.keyText.text == Input.inputString)
100 uibutton.onClick.Invoke();
105 if (this.keymap !=
null)
107 List<KeyCode> list =
new List<KeyCode>
120 if (Input.GetKeyDown(KeyCode.Delete))
122 if (this.keymap.required)
128 this.keymap.key = KeyCode.None;
134 foreach (
object obj
in Enum.GetValues(typeof(KeyCode)))
136 KeyCode keyCode = (KeyCode)obj;
137 if (!list.Contains(keyCode) && Input.GetKey(keyCode))
139 foreach (EInput.KeyMap keyMap in
ELayer.core.config.input.keys.List())
141 if (keyMap.key == keyCode && keyMap.GetGroup() ==
this.keymap.GetGroup())
143 keyMap.key = this.keymap.key;
146 this.keymap.key = keyCode;
154 base.OnUpdateInput();
158 public void OnEnterInput()
160 this.isInputEnter =
true;
165 public override void OnKill()
167 ELayer.ui.hud.textMouseHintRight.transform.parent.SetActive(
true);
168 if (this.input && this.onEnterInput !=
null)
170 this.onEnterInput(!this.isInputEnter, this.input.Text);
172 EInput.WaitReleaseKey();
176 public static Dialog CreateNarration(
string idImage,
string idText)
178 Dialog dialog = Layer.Create<
Dialog>(
"DialogNarration");
179 dialog.image.SetActive(
true);
180 dialog.image.sprite = Resources.Load<Sprite>(
"Media/Graphics/Image/Dialog/" + idImage);
181 dialog.image.SetNativeSize();
182 dialog.textDetail.SetText(IO.LoadText(CorePath.CorePackage.TextNarration + idText +
".txt"));
187 public static Dialog Ok(
string langDetail)
190 dialog.textDetail.SetText(langDetail.lang() +
" ");
191 dialog.list.AddButton(
null, Lang.Get(
"ok"),
new Action(dialog.Close),
null);
192 ELayer.ui.AddLayer(dialog);
197 public static Dialog Choice(
string langDetail, Action<Dialog> action)
200 dialog.textDetail.SetText(langDetail.lang() +
" ");
202 ELayer.ui.AddLayer(dialog);
207 public static Dialog YesNo(
string langDetail, Action actionYes, Action actionNo =
null,
string langYes =
"yes",
string langNo =
"no")
210 d.textDetail.SetText(langDetail.lang() +
" ");
211 d.list.AddButton(
null, Lang.Get(langYes), delegate
213 if (actionYes != null)
219 d.list.AddButton(
null, Lang.Get(langNo), delegate
221 if (actionNo != null)
232 public static Dialog List<TValue>(
string langDetail, ICollection<TValue> items, Func<TValue, string> getString, Func<int, string, bool> onSelect,
bool canCancel =
false)
235 d.textDetail.SetText(langDetail.lang() +
" ");
237 using (IEnumerator<TValue> enumerator = items.GetEnumerator())
239 while (enumerator.MoveNext())
241 TValue item = enumerator.Current;
243 d.list.AddButton(
null, getString(item).lang(), delegate
245 if (onSelect(_i, getString(item)))
253 d.option.canClose = canCancel;
259 private static void TryWarn(
string lang, Action action)
262 d.textDetail.SetText(lang.lang() +
" ");
265 ELayer.core.actionsNextFrame.Add(delegate
267 ActPlan.warning =
false;
270 d.list.AddButton(
null, Lang.Get(
"yes"), delegate
273 base.<TryWarn>g__Commit|0();
275 d.list.AddButton(
null, Lang.Get(
"yes_dontask"), delegate
278 if (!(lang2 ==
"warn_crime"))
280 if (!(lang2 ==
"warn_mana"))
282 if (lang2 ==
"warn_disassemble")
284 ELayer.core.config.game.ignoreWarnDisassemble = true;
289 ELayer.core.config.game.ignoreWarnMana = true;
294 ELayer.core.config.game.ignoreWarnCrime = true;
297 base.<TryWarn>g__Commit|0();
299 d.list.AddButton(
null, Lang.Get(
"no"), delegate
307 public static void TryWarnCrime(Action action)
309 if (!
ELayer.core.config.game.warnCrime ||
ELayer.core.config.game.ignoreWarnCrime)
311 Dialog.warned =
true;
313 Dialog.warned =
false;
314 ActPlan.warning =
false;
317 Dialog.TryWarn(
"warn_crime", action);
321 public static void TryWarnMana(Action action)
323 if (!
ELayer.core.config.game.warnMana ||
ELayer.core.config.game.ignoreWarnMana)
325 Dialog.warned =
true;
327 Dialog.warned =
false;
328 ActPlan.warning =
false;
331 Dialog.TryWarn(
"warn_mana", action);
335 public static void TryWarnDisassemble(Action action)
337 if (!
ELayer.core.config.game.warnDisassemble ||
ELayer.core.config.game.ignoreWarnDisassemble)
339 Dialog.warned =
true;
341 Dialog.warned =
false;
344 Dialog.TryWarn(
"warn_disassemble", action);
348 public static Dialog Gift(
string langHeader,
bool autoAdd, params
Card[] cards)
350 return Dialog.Gift(langHeader, autoAdd,
new List<Card>(cards));
354 public static Dialog Gift(
string langHeader,
bool autoAdd, List<Card> list)
356 List<GridItem> list2 =
new List<GridItem>();
357 foreach (
Card c
in list)
364 return Dialog.Gift(langHeader, autoAdd, list2);
368 public static Dialog Gift(
string langHeader,
bool autoAdd, List<GridItem> list)
371 d.spacer.SetActive(
false);
372 d.note.AddHeader(langHeader.IsEmpty(
"headerGift").lang(),
null);
373 d.list.AddButton(
null, Lang.Get(
"ok"), delegate
377 foreach (GridItem gridItem in list)
384 d.option.soundActivate =
null;
385 d.option.canClose =
false;
387 ELayer.Sound.Play(
"good");
396 d.spacer.SetActive(
false);
397 d.note.AddHeader(
"giftRecipe".lang(),
null);
398 d.list.AddButton(
null, Lang.Get(
"ok"), delegate
402 d.option.soundActivate =
null;
403 for (
int i = 0; i < list.Count; i++)
407 if (ingredients.Count > 0 &&
ELayer.sources.cards.map.ContainsKey(ingredients[0].id))
409 ELayer.sources.cards.map[ingredients[0].id].GetName();
411 d.note.AddText(
"・" + recipeSource.Name.ToTitleCase(
false), FontColor.DontChange);
412 if (i >= 9 && list.Count > 10)
415 d.note.AddText(
"moreRecipes".lang((list.Count - 10).ToString() ??
"",
null,
null,
null,
null), FontColor.DontChange);
419 d.SetOnKill(
new Action(SE.Click));
420 ELayer.Sound.Play(
"idea");
426 public static Dialog Confetti(
string langTitle,
string langDetail,
string langConfetti =
"Grats!")
428 ELayer.Sound.Play(
"confetti");
429 return Dialog._Confetti(
"DialogConfetti", langTitle, langDetail, langConfetti);
433 public static Dialog ConfettiSimple(
string langTitle,
string langDetail,
string langConfetti =
"Grats!")
435 ELayer.Sound.Play(
"confettiSimple");
436 return Dialog._Confetti(
"DialogConfettiSimple", langTitle, langDetail, langConfetti);
440 public static Dialog _Confetti(
string idPrefab,
string langTitle,
string langDetail,
string langConfetti =
"Grats!")
443 d.textConfetti.text = langConfetti.lang();
444 d.textDetail.SetText(langDetail.lang());
445 d.list.AddButton(
null, Lang.Get(
"ok"), delegate
454 public static Dialog Keymap(EInput.KeyMap keymap)
457 dialog.textDetail.SetText(
"dialog_keymap".lang((
"key_" + keymap.action.ToString()).lang(),
null,
null,
null,
null));
458 dialog.keymap = keymap;
459 ELayer.ui.AddLayer(dialog);
464 public static Dialog InputName(
string langDetail,
string text, Action<bool, string> onClose,
Dialog.InputType inputType =
Dialog.InputType.Default)
467 d.inputType = inputType;
468 d.langHint = langDetail;
470 d.note.AddText(langDetail.lang(), FontColor.DontChange).text1.alignment = TextAnchor.MiddleCenter;
471 if (inputType ==
Dialog.InputType.Password)
473 d.input.field.characterLimit = 8;
474 d.input.field.contentType = InputField.ContentType.Alphanumeric;
476 d.onEnterInput = onClose;
477 d.list.AddButton(
null, Lang.Get(
"ok"), delegate
479 onClose(false, d.input.Text);
482 d.list.AddButton(
null, Lang.Get(
"cancel"), delegate
492 public Text textConfetti;
498 public UIText textDetail;
504 public UIButtonList list;
507 public LayoutGroup layout;
513 public UIList listGrid;
516 public Transform spacer;
519 public List<GridItem> gridItems =
new List<GridItem>();
522 public UIInputText input;
525 public Dialog.InputType inputType;
529 public EInput.KeyMap keymap;
533 public bool isInputEnter;
536 public Action<bool, string> onEnterInput;
539 public static bool warned;
542 public enum InputType