Elin Decompiled Documentation EA 23.270 Nightly Patch 1
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 > ()
 
int GetPhase (string id)
 
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 (long a)
 
static int rnd (int a)
 
static int curve (long _a, int start, int step, int rate=75)
 
static int sqrt (int a)
 
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:6
static Game game
Definition: EClass.cs:9
CardManager cards
Definition: Game.cs:156
QuestManager quests
Definition: Game.cs:183
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(), SurvivalManager.CheckLoytelDebt(), 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 282 of file QuestManager.cs.

283 {
284 Chara c = EClass.game.cards.globalCharas.Find("ashland");
285 QuestCraft obj = Quest.Create("ash1") as QuestCraft;
286 obj.SetClient(c);
287 obj.req1.Add(new QuestCraft.Req("rock", 1));
288 obj.req1.Add(new QuestCraft.Req("branch", 1));
289 obj.req2.Add(new QuestCraft.Req("axe", 1));
290 }
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 292 of file QuestManager.cs.

293 {
294 Chara c = EClass.game.cards.globalCharas.Find("fiama");
295 QuestCraft obj = Quest.Create("fiama1") as QuestCraft;
296 obj.SetClient(c);
297 obj.req1.Add(new QuestCraft.Req("crim", 3));
298 obj.req2.Add(new QuestCraft.Req("hotcrim", 1));
299 }

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:473

References Quest.Complete().

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

◆ CountNew()

int QuestManager.CountNew ( )
inline

Definition at line 238 of file QuestManager.cs.

239 {
240 int num = 0;
241 foreach (Quest item in list)
242 {
243 if (item.isNew)
244 {
245 num++;
246 }
247 }
248 return num;
249 }
List< Quest > list
Definition: QuestManager.cs:11

References item, and list.

◆ CountRandomQuest()

int QuestManager.CountRandomQuest ( )
inline

Definition at line 251 of file QuestManager.cs.

252 {
253 int num = 0;
254 foreach (Quest item in list)
255 {
256 if (item is QuestRandom)
257 {
258 num++;
259 }
260 }
261 return num;
262 }

References item, and list.

Referenced by LayerQuestBoard.RefreshQuest().

◆ Get() [1/2]

Quest QuestManager.Get ( int  uid)
inline

Definition at line 209 of file QuestManager.cs.

210 {
211 foreach (Quest item in list)
212 {
213 if (item.uid == uid)
214 {
215 return item;
216 }
217 }
218 return null;
219 }

References item, list, and uid.

◆ Get() [2/2]

◆ Get< T >()

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

Definition at line 185 of file QuestManager.cs.

185 : Quest
186 {
187 foreach (Quest item in list)
188 {
189 if (item is T)
190 {
191 return item as T;
192 }
193 }
194 return null;
195 }

References item, and list.

◆ GetGlobal()

Quest QuestManager.GetGlobal ( string  id)
inline

Definition at line 221 of file QuestManager.cs.

222 {
223 foreach (Quest global in globalList)
224 {
225 if (global.GetType().ToString() == id || global.id == id)
226 {
227 return global;
228 }
229 }
230 return null;
231 }
string id
Definition: Quest.cs:31

References globalList, and Quest.id.

Referenced by GameDate.AdvanceDay().

◆ GetPhase()

int QuestManager.GetPhase ( string  id)
inline

Definition at line 169 of file QuestManager.cs.

170 {
171 if (IsCompleted(id))
172 {
173 return 999;
174 }
175 foreach (Quest item in list)
176 {
177 if (item.id == id)
178 {
179 return item.phase;
180 }
181 }
182 return -1;
183 }
bool IsCompleted(string id)

References IsCompleted(), item, and list.

Referenced by TraitDamnPool.CanUse(), RecipeManager.ListSources(), Zone_DungeonDead.OnActivate(), Zone_Exile.OnActivate(), Trait.OnBarter(), Player.Flags.OnEnterZone(), TCOrbitChara.RefreshAll(), RecipeUpdater.RunRecipe(), CardRenderer.ShowBossText(), Chara.ShowDialog(), ActThrow.Throw(), and Chara.TryDropBossLoot().

◆ GetPhase< T >()

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

Definition at line 153 of file QuestManager.cs.

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

References completedTypes, item, and list.

Referenced by IsAdded< T >(), and IsStarted< T >().

◆ HasFarAwayEscort()

bool QuestManager.HasFarAwayEscort ( bool  execute = false)
inline

Definition at line 301 of file QuestManager.cs.

302 {
303 bool has = false;
305 {
306 return false;
307 }
308 EClass._map.charas.ForeachReverse(delegate(Chara m)
309 {
310 if (m.IsEscorted() && EClass.pc.Dist(m) >= 5)
311 {
312 has = true;
313 if (execute)
314 {
315 m.Destroy();
316 }
317 }
318 });
319 if (has && execute)
320 {
321 OnEnterZone();
322 }
323 return has;
324 }
int Dist(Card c)
Definition: Card.cs:7838
bool IsEscorted()
Definition: Chara.cs:2428
static Zone _zone
Definition: EClass.cs:21
static Map _map
Definition: EClass.cs:19
static Chara pc
Definition: EClass.cs:15
List< Chara > charas
Definition: Map.cs:81
void OnEnterZone()
virtual bool HasLaw
Definition: Zone.cs:229
bool IsInstance
Definition: Zone.cs:489
virtual bool IsTown
Definition: Zone.cs:223
bool IsPCFaction
Definition: Zone.cs:473

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 132 of file QuestManager.cs.

132 : Quest
133 {
134 if (IsStarted<T>() || GetPhase<T>() == 999)
135 {
136 return true;
137 }
138 foreach (Quest global in globalList)
139 {
140 if (global is T)
141 {
142 return true;
143 }
144 }
145 return false;
146 }
int GetPhase< T >()
bool IsStarted< T >()

References GetPhase< T >(), globalList, and IsStarted< T >().

◆ IsCompleted()

bool QuestManager.IsCompleted ( string  id)
inline

Definition at line 233 of file QuestManager.cs.

234 {
235 return completedIDs.Contains(id);
236 }
HashSet< string > completedIDs
Definition: QuestManager.cs:17

References completedIDs.

Referenced by GameDate.AdvanceDay(), QuestVernis.CanUpdateOnTalk(), GetPhase(), Zone_Specwing.OnActivate(), Trait.OnBarter(), and QuestDialog.OnDropReward().

◆ IsDeliverTarget()

bool QuestManager.IsDeliverTarget ( Chara  c)
inline

Definition at line 270 of file QuestManager.cs.

271 {
272 foreach (Quest item in list)
273 {
274 if (item.IsDeliverTarget(c))
275 {
276 return true;
277 }
278 }
279 return false;
280 }

References item, and list.

Referenced by ActPlan._Update().

◆ IsStarted< T >()

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

Definition at line 148 of file QuestManager.cs.

148 : Quest
149 {
150 return GetPhase<T>() != -1;
151 }

References GetPhase< T >().

Referenced by IsAdded< T >().

◆ OnAdvanceHour()

void QuestManager.OnAdvanceHour ( )
inline

Definition at line 120 of file QuestManager.cs.

121 {
122 list.ForeachReverse(delegate(Quest q)
123 {
124 if (q.IsExpired)
125 {
126 Msg.Say("questExpired", q.GetTitle());
127 q.Fail();
128 }
129 });
130 }
bool IsExpired
Definition: Quest.cs:112

References Quest.IsExpired, and list.

Referenced by GameDate.AdvanceHour().

◆ OnEnterZone()

void QuestManager.OnEnterZone ( )
inline

Definition at line 326 of file QuestManager.cs.

327 {
328 list.ForeachReverse(delegate(Quest q)
329 {
330 q.OnEnterZone();
331 });
332 }
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.hasChara && item is QuestExploration && item.phase == 5 && c.id == "ashland")
108 {
109 EClass.ui.Say("Bug: Quest Ash not found");
110 item.person.uidChara = c.uid;
111 }
112 if (item.person.chara == c && (item.CanUpdateOnTalk(c) || (item.CanAutoAdvance && EClass.debug.autoAdvanceQuest)))
113 {
114 return item.UpdateOnTalk();
115 }
116 }
117 return false;
118 }
string id
Definition: Card.cs:36
int uid
Definition: Card.cs:123
bool autoAdvanceQuest
Definition: CoreDebug.cs:211
static CoreDebug debug
Definition: EClass.cs:49
static UI ui
Definition: EClass.cs:17

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

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:7
static Player player
Definition: EClass.cs:13
bool questTracker
Definition: Player.cs:989
void Start()
Definition: Quest.cs:405
void UpdateJournal()
Definition: Quest.cs:690

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 264 of file QuestManager.cs.

265 {
266 SE.WriteJournal();
267 Msg.Say("journalUpdate");
268 }
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: