Elin Decompiled Documentation EA 23.102 Nightly
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Pages
Tutorial.cs
Go to the documentation of this file.
1using System;
2
3public class Tutorial : EClass
4{
5 public static bool debugSkip;
6
7 public static void Play(string idStep)
8 {
9 bool flag = debugSkip || !EClass.core.config.game.tutorial;
10 int id = EClass.player.flags.GetStoryRowID("_tutorial", idStep);
11 EClass.debug.Log(idStep + "/" + id + "/" + flag + "/" + debugSkip + "/" + EClass.player.flags.playedStories.Contains(id));
12 if (EClass.player.flags.playedStories.Contains(id))
13 {
14 return;
15 }
16 if (!flag)
17 {
18 EClass.core.actionsNextFrame.Add(delegate
19 {
20 EClass.player.flags.PlayStory("_tutorial", id);
21 if ((bool)LayerDrama.Instance)
22 {
23 LayerDrama.Instance.SetOnKill(delegate
24 {
25 AfterPlay();
26 });
27 }
28 });
29 }
30 else
31 {
33 AfterPlay();
34 }
35 void AfterPlay()
36 {
37 if (idStep == "first")
38 {
39 EClass.pc.PickOrDrop(EClass.pc.pos, ThingGen.Create("book_tutorial"));
40 }
41 if (id < 950)
42 {
43 Msg.Say("tutorial_added");
44 SE.WriteJournal();
45 }
46 }
47 }
48
49 public static void Remove(string idStep)
50 {
51 int storyRowID = EClass.player.flags.GetStoryRowID("_tutorial", idStep);
52 EClass.player.flags.playedStories.Remove(storyRowID);
53 }
54
55 public static void Reserve(string idStep, Action onBeforePlay = null)
56 {
57 if (!EClass.player.flags.reservedTutorial.Contains(idStep))
58 {
59 int storyRowID = EClass.player.flags.GetStoryRowID("_tutorial", idStep);
60 if (!EClass.player.flags.playedStories.Contains(storyRowID))
61 {
62 onBeforePlay?.Invoke();
64 }
65 }
66 }
67
68 public static void TryPlayReserve()
69 {
70 if (!EClass.ui.IsActive && EClass.player.flags.reservedTutorial.Count != 0 && !LayerDrama.Instance)
71 {
74 }
75 }
76}
List< Action > actionsNextFrame
Definition: BaseCore.cs:31
Point pos
Definition: Card.cs:55
void PickOrDrop(Point p, string idThing, int idMat=-1, int num=1, bool msg=true)
Definition: Chara.cs:3900
new GameConfig game
Definition: CoreConfig.cs:596
void Log(object o)
Definition: CoreDebug.cs:2247
CoreConfig config
Definition: Core.cs:70
Definition: EClass.cs:5
static Core core
Definition: EClass.cs:6
static Player player
Definition: EClass.cs:12
static Chara pc
Definition: EClass.cs:14
static CoreDebug debug
Definition: EClass.cs:48
static UI ui
Definition: EClass.cs:16
static LayerDrama Instance
Definition: LayerDrama.cs:20
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
int GetStoryRowID(string idBook, string idStep)
Definition: Player.cs:566
bool PlayStory(string idBook, int id, bool fromBook=false)
Definition: Player.cs:603
List< string > reservedTutorial
Definition: Player.cs:155
List< int > playedStories
Definition: Player.cs:146
Flags flags
Definition: Player.cs:895
static Thing Create(string id, int idMat=-1, int lv=-1)
Definition: ThingGen.cs:53
static bool debugSkip
Definition: Tutorial.cs:5
static void TryPlayReserve()
Definition: Tutorial.cs:68
static void Reserve(string idStep, Action onBeforePlay=null)
Definition: Tutorial.cs:55
static void Play(string idStep)
Definition: Tutorial.cs:7
static void Remove(string idStep)
Definition: Tutorial.cs:49