Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
QuestCraft.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3using Newtonsoft.Json;
4
5public class QuestCraft : Quest
6{
7 public class Req
8 {
9 [JsonProperty]
10 public string idThing;
11
12 [JsonProperty]
13 public int num;
14
15 public Req()
16 {
17 }
18
19 public Req(string id, int n)
20 {
21 idThing = id;
22 num = n;
23 }
24 }
25
26 [JsonProperty]
27 public List<Req> req1 = new List<Req>();
28
29 [JsonProperty]
30 public List<Req> req2 = new List<Req>();
31
32 [JsonProperty]
33 public int progress;
34
35 public bool ConsumeGoods => false;
36
37 public List<Req> CurrentReq
38 {
39 get
40 {
41 if (progress != 0)
42 {
43 return req2;
44 }
45 return req1;
46 }
47 }
48
49 public bool hasSecondReq => req2.Count > 0;
50
51 public override bool CanDeliverToClient(Chara c)
52 {
53 if (c.quest != this)
54 {
55 return false;
56 }
57 bool result = true;
58 foreach (Req item in CurrentReq)
59 {
60 Thing thing = EClass.pc.things.Find(item.idThing);
61 if (thing == null || thing.Num < item.num)
62 {
63 result = false;
64 break;
65 }
66 }
67 return result;
68 }
69
70 public override bool Deliver(Chara c, Thing t = null)
71 {
72 if (!CanDeliverToClient(c))
73 {
74 return false;
75 }
76 _ = ConsumeGoods;
77 if (progress == 0 && hasSecondReq)
78 {
80 }
81 else
82 {
84 }
86 return true;
87 }
88
89 public void OnProgressComplete()
90 {
91 if (progress == 0)
92 {
93 string text = id;
94 if (!(text == "fiama1"))
95 {
96 if (text == "ash1")
97 {
99 }
100 }
101 else
102 {
104 }
105 }
106 progress++;
107 }
108
109 public override void OnDropReward()
110 {
111 string text = id;
112 if (!(text == "fiama1"))
113 {
114 if (text == "ash1")
115 {
116 DropReward(ThingGen.Create("crimAle"));
117 }
118 }
119 else
120 {
121 DropReward(ThingGen.Create("crimAle"));
122 }
123 }
124
125 public override void OnComplete()
126 {
127 string text = id;
128 if (!(text == "ash1"))
129 {
130 if (text == "fiama1")
131 {
132 QuestCraft obj = Quest.Create("fiama2") as QuestCraft;
133 obj.SetClient(base.chara);
134 obj.req1.Add(new Req("torch_held", 1));
135 }
136 }
137 else
138 {
139 QuestCraft obj2 = Quest.Create("ash2") as QuestCraft;
140 obj2.SetClient(base.chara);
141 obj2.req1.Add(new Req("torch_held", 1));
142 }
143 }
144
145 public override string GetTextProgress()
146 {
147 string text = "";
148 foreach (Req item in CurrentReq)
149 {
150 text = text + (text.IsEmpty() ? "" : Environment.NewLine) + "progressShowSupply".lang(EClass.sources.things.map[item.idThing].GetName(item.num));
151 }
152 return text;
153 }
154
155 public override string GetDetailText(bool onJournal = false)
156 {
157 return source.GetDetail().Split('|')[progress];
158 }
159
160 public override string GetTalkProgress()
161 {
162 return GetDetailText();
163 }
164
165 public override string GetTalkComplete()
166 {
167 if (progress != 1 || !hasSecondReq)
168 {
169 return Parse(source.GetText("talkComplete"));
170 }
171 return GetDetailText();
172 }
173}
Point pos
Definition: Card.cs:55
ThingContainer things
Definition: Card.cs:34
int Num
Definition: Card.cs:154
Definition: Chara.cs:10
Quest quest
Definition: Chara.cs:24
Definition: EClass.cs:5
static Game game
Definition: EClass.cs:8
static Zone _zone
Definition: EClass.cs:20
static SourceManager sources
Definition: EClass.cs:42
static Chara pc
Definition: EClass.cs:14
QuestManager quests
Definition: Game.cs:179
string idThing
Definition: QuestCraft.cs:10
Req(string id, int n)
Definition: QuestCraft.cs:19
override bool Deliver(Chara c, Thing t=null)
Definition: QuestCraft.cs:70
List< Req > req1
Definition: QuestCraft.cs:27
void OnProgressComplete()
Definition: QuestCraft.cs:89
List< Req > req2
Definition: QuestCraft.cs:30
bool ConsumeGoods
Definition: QuestCraft.cs:35
List< Req > CurrentReq
Definition: QuestCraft.cs:38
override bool CanDeliverToClient(Chara c)
Definition: QuestCraft.cs:51
override void OnDropReward()
Definition: QuestCraft.cs:109
override void OnComplete()
Definition: QuestCraft.cs:125
override string GetTalkComplete()
Definition: QuestCraft.cs:165
override string GetTalkProgress()
Definition: QuestCraft.cs:160
override string GetDetailText(bool onJournal=false)
Definition: QuestCraft.cs:155
bool hasSecondReq
Definition: QuestCraft.cs:49
int progress
Definition: QuestCraft.cs:33
override string GetTextProgress()
Definition: QuestCraft.cs:145
void Complete(Quest q)
Definition: QuestManager.cs:98
Definition: Quest.cs:7
Thing DropReward(string id)
Definition: Quest.cs:506
string Parse(string s)
Definition: Quest.cs:583
string id
Definition: Quest.cs:31
Quest SetClient(Chara c, bool assignQuest=true)
Definition: Quest.cs:380
void UpdateJournal()
Definition: Quest.cs:685
virtual SourceQuest.Row source
Definition: Quest.cs:107
static Quest Create(string _id, string _idPerson=null, Chara c=null)
Definition: Quest.cs:241
SourceThing things
Thing Find(int uid)
static Thing Create(string id, int idMat=-1, int lv=-1)
Definition: ThingGen.cs:53
Definition: Thing.cs:8
Card AddCard(Card t, Point point)
Definition: Zone.cs:1893