Elin Decompiled Documentation EA 23.153 Nightly
Loading...
Searching...
No Matches
QuestManager Class Reference
Inheritance diagram for QuestManager:
EClass

Public Member Functions

Quest Add (string id, string idGlobalChara=null)
 
Quest Start (string id, string idGlobalChara)
 
Quest Start (string id, Chara c=null, bool assignQuest=true)
 
Quest Start (Quest q)
 
void Remove (Quest q)
 
void RemoveGlobal (Quest q)
 
void RemoveAll (Chara c)
 
void Complete (Quest q)
 
bool OnShowDialog (Chara c)
 
void OnAdvanceHour ()
 
bool IsAdded< T > ()
 
bool IsStarted< T > ()
 
int GetPhase< T > ()
 
Get< T > ()
 
Quest Get (string id)
 
Quest Get (int uid)
 
Quest GetGlobal (string id)
 
bool IsCompleted (string id)
 
int CountNew ()
 
int CountRandomQuest ()
 
void UpdateJournal ()
 
bool IsDeliverTarget (Chara c)
 
void AddQuestAsh ()
 
void AddQuestFiama ()
 
bool HasFarAwayEscort (bool execute=false)
 
void OnEnterZone ()
 

Public Attributes

List< Questlist = new List<Quest>()
 
List< QuestglobalList = new List<Quest>()
 
HashSet< string > completedIDs = new HashSet<string>()
 
HashSet< string > completedTypes = new HashSet<string>()
 
int uid
 

Static Public Attributes

const int MaxRandomQuest = 5
 
- Static Public Attributes inherited from EClass
static Core core
 

Properties

QuestMain Main [get]
 
new QuestHome Home [get]
 
- Properties inherited from EClass
static Game game [get]
 
static bool AdvMode [get]
 
static Player player [get]
 
static Chara pc [get]
 
static UI ui [get]
 
static Map _map [get]
 
static Zone _zone [get]
 
static FactionBranch Branch [get]
 
static FactionBranch BranchOrHomeBranch [get]
 
static Faction Home [get]
 
static Faction Wilds [get]
 
static Scene scene [get]
 
static BaseGameScreen screen [get]
 
static GameSetting setting [get]
 
static GameData gamedata [get]
 
static ColorProfile Colors [get]
 
static World world [get]
 
static SourceManager sources [get]
 
static SourceManager editorSources [get]
 
static SoundManager Sound [get]
 
static CoreDebug debug [get]
 

Additional Inherited Members

- Static Public Member Functions inherited from EClass
static int rndSeed (int a, int seed)
 
static int rnd (int a)
 
static int curve (int a, int start, int step, int rate=75)
 
static int rndHalf (int a)
 
static float rndf (float a)
 
static int rndSqrt (int a)
 
static void Wait (float a, Card c)
 
static void Wait (float a, Point p)
 
static int Bigger (int a, int b)
 
static int Smaller (int a, int b)
 

Detailed Description

Definition at line 6 of file QuestManager.cs.

Member Function Documentation

◆ Add()

Quest QuestManager.Add ( string  id,
string  idGlobalChara = null 
)
inline

Definition at line 29 of file QuestManager.cs.

30 {
31 Quest quest = Quest.Create(id);
32 if (idGlobalChara.IsEmpty())
33 {
34 idGlobalChara = quest.source.drama[0];
35 }
36 quest.SetClient(EClass.game.cards.globalCharas.Find(idGlobalChara), assignQuest: false);
37 EClass.game.quests.globalList.Add(quest);
38 return quest;
39 }
Chara Find(string id)
Definition: CardManager.cs:20
GlobalCharaList globalCharas
Definition: CardManager.cs:46
Definition: EClass.cs:5
static Game game
Definition: EClass.cs:8
CardManager cards
Definition: Game.cs:155
QuestManager quests
Definition: Game.cs:179
List< Quest > globalList
Definition: QuestManager.cs:14
Definition: Quest.cs:7
Quest SetClient(Chara c, bool assignQuest=true)
Definition: Quest.cs:380
virtual SourceQuest.Row source
Definition: Quest.cs:107
static Quest Create(string _id, string _idPerson=null, Chara c=null)
Definition: Quest.cs:241

References Game.cards, Quest.Create(), CardManager.GlobalCharaList.Find(), EClass.game, CardManager.globalCharas, globalList, Game.quests, Quest.SetClient(), and Quest.source.

Referenced by GameDate.AdvanceDay(), QuestLoytelFarm.OnComplete(), QuestShippingChest.OnComplete(), QuestVernis.OnComplete(), QuestDialog.OnDropReward(), QuestIntoDarkness.OnStart(), CoreDebug.QuickStart(), Chara.ShowDialog(), and CoreDebug.UpdateInput().

◆ AddQuestAsh()

void QuestManager.AddQuestAsh ( )
inline

Definition at line 261 of file QuestManager.cs.

262 {
263 Chara c = EClass.game.cards.globalCharas.Find("ashland");
264 QuestCraft obj = Quest.Create("ash1") as QuestCraft;
265 obj.SetClient(c);
266 obj.req1.Add(new QuestCraft.Req("rock", 1));
267 obj.req1.Add(new QuestCraft.Req("branch", 1));
268 obj.req2.Add(new QuestCraft.Req("axe", 1));
269 }
Definition: Chara.cs:10
List< Req > req1
Definition: QuestCraft.cs:27
List< Req > req2
Definition: QuestCraft.cs:30

References Game.cards, Quest.Create(), CardManager.GlobalCharaList.Find(), EClass.game, CardManager.globalCharas, QuestCraft.req1, QuestCraft.req2, and Quest.SetClient().

◆ AddQuestFiama()

void QuestManager.AddQuestFiama ( )
inline

Definition at line 271 of file QuestManager.cs.

272 {
273 Chara c = EClass.game.cards.globalCharas.Find("fiama");
274 QuestCraft obj = Quest.Create("fiama1") as QuestCraft;
275 obj.SetClient(c);
276 obj.req1.Add(new QuestCraft.Req("crim", 3));
277 obj.req2.Add(new QuestCraft.Req("hotcrim", 1));
278 }

References Game.cards, Quest.Create(), CardManager.GlobalCharaList.Find(), EClass.game, CardManager.globalCharas, QuestCraft.req1, QuestCraft.req2, and Quest.SetClient().

◆ Complete()

void QuestManager.Complete ( Quest  q)
inline

Definition at line 98 of file QuestManager.cs.

99 {
100 q.Complete();
101 }
void Complete()
Definition: Quest.cs:468

References Quest.Complete().

Referenced by QuestCraft.Deliver(), QuestDeliver.Deliver(), Quest.OnCompleteTask(), and DramaManager.ParseLine().

◆ CountNew()

int QuestManager.CountNew ( )
inline

Definition at line 217 of file QuestManager.cs.

218 {
219 int num = 0;
220 foreach (Quest item in list)
221 {
222 if (item.isNew)
223 {
224 num++;
225 }
226 }
227 return num;
228 }
List< Quest > list
Definition: QuestManager.cs:11

References item, and list.

◆ CountRandomQuest()

int QuestManager.CountRandomQuest ( )
inline

Definition at line 230 of file QuestManager.cs.

231 {
232 int num = 0;
233 foreach (Quest item in list)
234 {
235 if (item is QuestRandom)
236 {
237 num++;
238 }
239 }
240 return num;
241 }

References item, and list.

Referenced by LayerQuestBoard.RefreshQuest().

◆ Get() [1/2]

Quest QuestManager.Get ( int  uid)
inline

Definition at line 188 of file QuestManager.cs.

189 {
190 foreach (Quest item in list)
191 {
192 if (item.uid == uid)
193 {
194 return item;
195 }
196 }
197 return null;
198 }

References item, list, and uid.

◆ Get() [2/2]

◆ Get< T >()

T QuestManager.Get< T > ( )
inline
Type Constraints
T :Quest 

Definition at line 164 of file QuestManager.cs.

164 : Quest
165 {
166 foreach (Quest item in list)
167 {
168 if (item is T)
169 {
170 return item as T;
171 }
172 }
173 return null;
174 }

References item, and list.

◆ GetGlobal()

Quest QuestManager.GetGlobal ( string  id)
inline

Definition at line 200 of file QuestManager.cs.

201 {
202 foreach (Quest global in globalList)
203 {
204 if (global.GetType().ToString() == id || global.id == id)
205 {
206 return global;
207 }
208 }
209 return null;
210 }
string id
Definition: Quest.cs:31

References globalList, and Quest.id.

Referenced by GameDate.AdvanceDay().

◆ GetPhase< T >()

int QuestManager.GetPhase< T > ( )
inline
Type Constraints
T :Quest 

Definition at line 148 of file QuestManager.cs.

148 : Quest
149 {
150 if (completedTypes.Contains(typeof(T).ToString()))
151 {
152 return 999;
153 }
154 foreach (Quest item in list)
155 {
156 if (item is T)
157 {
158 return item.phase;
159 }
160 }
161 return -1;
162 }
HashSet< string > completedTypes
Definition: QuestManager.cs:20

References completedTypes, item, and list.

Referenced by IsStarted< T >().

◆ HasFarAwayEscort()

bool QuestManager.HasFarAwayEscort ( bool  execute = false)
inline

Definition at line 280 of file QuestManager.cs.

281 {
282 bool has = false;
284 {
285 return false;
286 }
287 EClass._map.charas.ForeachReverse(delegate(Chara m)
288 {
289 if (m.IsEscorted() && EClass.pc.Dist(m) >= 5)
290 {
291 has = true;
292 if (execute)
293 {
294 m.Destroy();
295 }
296 }
297 });
298 if (has && execute)
299 {
300 OnEnterZone();
301 }
302 return has;
303 }
int Dist(Card c)
Definition: Card.cs:7235
bool IsEscorted()
Definition: Chara.cs:2170
static Zone _zone
Definition: EClass.cs:20
static Map _map
Definition: EClass.cs:18
static Chara pc
Definition: EClass.cs:14
List< Chara > charas
Definition: Map.cs:81
void OnEnterZone()
virtual bool HasLaw
Definition: Zone.cs:226
bool IsInstance
Definition: Zone.cs:482
virtual bool IsTown
Definition: Zone.cs:220
bool IsPCFaction
Definition: Zone.cs:466

References EClass._map, EClass._zone, Map.charas, Card.Dist(), Zone.HasLaw, Chara.IsEscorted(), Zone.IsInstance, Zone.IsPCFaction, Zone.IsTown, and EClass.pc.

Referenced by Player.ExitBorder().

◆ IsAdded< T >()

bool QuestManager.IsAdded< T > ( )
inline
Type Constraints
T :Quest 

Definition at line 127 of file QuestManager.cs.

127 : Quest
128 {
129 if (IsStarted<T>())
130 {
131 return true;
132 }
133 foreach (Quest global in globalList)
134 {
135 if (global is T)
136 {
137 return true;
138 }
139 }
140 return false;
141 }
bool IsStarted< T >()

References globalList, and IsStarted< T >().

◆ IsCompleted()

bool QuestManager.IsCompleted ( string  id)
inline

Definition at line 212 of file QuestManager.cs.

213 {
214 return completedIDs.Contains(id);
215 }
HashSet< string > completedIDs
Definition: QuestManager.cs:17

References completedIDs.

Referenced by GameDate.AdvanceDay(), QuestVernis.CanUpdateOnTalk(), and QuestDialog.OnDropReward().

◆ IsDeliverTarget()

bool QuestManager.IsDeliverTarget ( Chara  c)
inline

Definition at line 249 of file QuestManager.cs.

250 {
251 foreach (Quest item in list)
252 {
253 if (item.IsDeliverTarget(c))
254 {
255 return true;
256 }
257 }
258 return false;
259 }

References item, and list.

Referenced by ActPlan._Update().

◆ IsStarted< T >()

bool QuestManager.IsStarted< T > ( )
inline
Type Constraints
T :Quest 

Definition at line 143 of file QuestManager.cs.

143 : Quest
144 {
145 return GetPhase<T>() != -1;
146 }
int GetPhase< T >()

References GetPhase< T >().

Referenced by IsAdded< T >().

◆ OnAdvanceHour()

void QuestManager.OnAdvanceHour ( )
inline

Definition at line 115 of file QuestManager.cs.

116 {
117 list.ForeachReverse(delegate(Quest q)
118 {
119 if (q.IsExpired)
120 {
121 Msg.Say("questExpired", q.GetTitle());
122 q.Fail();
123 }
124 });
125 }
bool IsExpired
Definition: Quest.cs:112

References Quest.IsExpired, and list.

Referenced by GameDate.AdvanceHour().

◆ OnEnterZone()

void QuestManager.OnEnterZone ( )
inline

Definition at line 305 of file QuestManager.cs.

306 {
307 list.ForeachReverse(delegate(Quest q)
308 {
309 q.OnEnterZone();
310 });
311 }
virtual void OnEnterZone()
Definition: Quest.cs:418

References Quest.OnEnterZone().

Referenced by Scene.Init().

◆ OnShowDialog()

bool QuestManager.OnShowDialog ( Chara  c)
inline

Definition at line 103 of file QuestManager.cs.

104 {
105 foreach (Quest item in list)
106 {
107 if (item.person.chara == c && (item.CanUpdateOnTalk(c) || (item.CanAutoAdvance && EClass.debug.autoAdvanceQuest)))
108 {
109 return item.UpdateOnTalk();
110 }
111 }
112 return false;
113 }
bool autoAdvanceQuest
Definition: CoreDebug.cs:210
static CoreDebug debug
Definition: EClass.cs:48

References CoreDebug.autoAdvanceQuest, EClass.debug, item, and list.

Referenced by Chara.ShowDialog().

◆ Remove()

void QuestManager.Remove ( Quest  q)
inline

Definition at line 67 of file QuestManager.cs.

68 {
69 if (!list.Remove(q))
70 {
71 Debug.Log("exception: Failed to remove quest:" + q?.ToString() + "/" + q.uid + "/" + q.source.id + "/" + q.deadline + "/" + q.Hours);
72 q = Get(q.uid);
73 Debug.Log(q);
74 if (q != null && q.IsRandomQuest)
75 {
76 list.Remove(q);
77 }
78 }
79 }
Quest Get(string id)
virtual bool IsRandomQuest
Definition: Quest.cs:237
int uid
Definition: Quest.cs:34
int Hours
Definition: Quest.cs:124
int deadline
Definition: Quest.cs:46

References Quest.deadline, Debug, Get(), Quest.Hours, Quest.IsRandomQuest, list, Quest.source, and Quest.uid.

Referenced by Quest.Complete(), Quest.Fail(), ItemQuestTracker.OnClickClose(), RemoveAll(), and Recipe.ToggleTrack().

◆ RemoveAll()

void QuestManager.RemoveAll ( Chara  c)
inline

Definition at line 86 of file QuestManager.cs.

87 {
88 foreach (Quest item in list.Where((Quest a) => a.chara == c).ToList())
89 {
90 Remove(item);
91 }
92 foreach (Quest item2 in globalList.Where((Quest a) => a.chara == c).ToList())
93 {
94 RemoveGlobal(item2);
95 }
96 }
void RemoveGlobal(Quest q)
Definition: QuestManager.cs:81
void Remove(Quest q)
Definition: QuestManager.cs:67
Chara chara
Definition: Quest.cs:105

References Quest.chara, globalList, item, list, Remove(), and RemoveGlobal().

Referenced by DramaOutcome.QuestExploration_AfterComplete().

◆ RemoveGlobal()

void QuestManager.RemoveGlobal ( Quest  q)
inline

Definition at line 81 of file QuestManager.cs.

82 {
83 globalList.Remove(q);
84 }

References globalList.

Referenced by RemoveAll().

◆ Start() [1/3]

Quest QuestManager.Start ( Quest  q)
inline

Definition at line 52 of file QuestManager.cs.

53 {
54 list.Insert(0, q);
55 q.Start();
57 {
58 q.UpdateJournal();
60 {
62 }
63 }
64 return q;
65 }
bool IsGameStarted
Definition: Core.cs:84
static Core core
Definition: EClass.cs:6
static Player player
Definition: EClass.cs:12
bool questTracker
Definition: Player.cs:805
void Start()
Definition: Quest.cs:405
void UpdateJournal()
Definition: Quest.cs:685

References EClass.core, Core.IsGameStarted, list, EClass.player, Player.questTracker, WidgetQuestTracker.Show(), Quest.Start(), and Quest.UpdateJournal().

◆ Start() [2/3]

Quest QuestManager.Start ( string  id,
Chara  c = null,
bool  assignQuest = true 
)
inline

Definition at line 47 of file QuestManager.cs.

48 {
49 return Start(Quest.Create(id).SetClient(c, assignQuest));
50 }
Quest Start(string id, string idGlobalChara)
Definition: QuestManager.cs:41

References Quest.Create(), Quest.SetClient(), and Start().

◆ Start() [3/3]

◆ UpdateJournal()

void QuestManager.UpdateJournal ( )
inline

Definition at line 243 of file QuestManager.cs.

244 {
245 SE.WriteJournal();
246 Msg.Say("journalUpdate");
247 }
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58

References Msg.Say().

Referenced by DramaManager.ParseLine().

Member Data Documentation

◆ completedIDs

HashSet<string> QuestManager.completedIDs = new HashSet<string>()

◆ completedTypes

HashSet<string> QuestManager.completedTypes = new HashSet<string>()

Definition at line 20 of file QuestManager.cs.

Referenced by Quest.Complete(), and GetPhase< T >().

◆ globalList

◆ list

◆ MaxRandomQuest

const int QuestManager.MaxRandomQuest = 5
static

Definition at line 8 of file QuestManager.cs.

◆ uid

int QuestManager.uid

Definition at line 23 of file QuestManager.cs.

Referenced by Get(), and Quest.Init().

Property Documentation

◆ Home

new QuestHome QuestManager.Home
get

Definition at line 27 of file QuestManager.cs.

◆ Main

QuestMain QuestManager.Main
get

The documentation for this class was generated from the following file: