Elin Decompiled Documentation EA 23.253 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 (long a)
 
static int rnd (int a)
 
static int curve (int _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:155
QuestManager quests
Definition: Game.cs:182
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 266 of file QuestManager.cs.

267 {
268 Chara c = EClass.game.cards.globalCharas.Find("ashland");
269 QuestCraft obj = Quest.Create("ash1") as QuestCraft;
270 obj.SetClient(c);
271 obj.req1.Add(new QuestCraft.Req("rock", 1));
272 obj.req1.Add(new QuestCraft.Req("branch", 1));
273 obj.req2.Add(new QuestCraft.Req("axe", 1));
274 }
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 276 of file QuestManager.cs.

277 {
278 Chara c = EClass.game.cards.globalCharas.Find("fiama");
279 QuestCraft obj = Quest.Create("fiama1") as QuestCraft;
280 obj.SetClient(c);
281 obj.req1.Add(new QuestCraft.Req("crim", 3));
282 obj.req2.Add(new QuestCraft.Req("hotcrim", 1));
283 }

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

223 {
224 int num = 0;
225 foreach (Quest item in list)
226 {
227 if (item.isNew)
228 {
229 num++;
230 }
231 }
232 return num;
233 }
List< Quest > list
Definition: QuestManager.cs:11

References item, and list.

◆ CountRandomQuest()

int QuestManager.CountRandomQuest ( )
inline

Definition at line 235 of file QuestManager.cs.

236 {
237 int num = 0;
238 foreach (Quest item in list)
239 {
240 if (item is QuestRandom)
241 {
242 num++;
243 }
244 }
245 return num;
246 }

References item, and list.

Referenced by LayerQuestBoard.RefreshQuest().

◆ Get() [1/2]

Quest QuestManager.Get ( int  uid)
inline

Definition at line 193 of file QuestManager.cs.

194 {
195 foreach (Quest item in list)
196 {
197 if (item.uid == uid)
198 {
199 return item;
200 }
201 }
202 return null;
203 }

References item, list, and uid.

◆ Get() [2/2]

◆ Get< T >()

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

Definition at line 169 of file QuestManager.cs.

169 : Quest
170 {
171 foreach (Quest item in list)
172 {
173 if (item is T)
174 {
175 return item as T;
176 }
177 }
178 return null;
179 }

References item, and list.

◆ GetGlobal()

Quest QuestManager.GetGlobal ( string  id)
inline

Definition at line 205 of file QuestManager.cs.

206 {
207 foreach (Quest global in globalList)
208 {
209 if (global.GetType().ToString() == id || global.id == id)
210 {
211 return global;
212 }
213 }
214 return null;
215 }
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 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 285 of file QuestManager.cs.

286 {
287 bool has = false;
289 {
290 return false;
291 }
292 EClass._map.charas.ForeachReverse(delegate(Chara m)
293 {
294 if (m.IsEscorted() && EClass.pc.Dist(m) >= 5)
295 {
296 has = true;
297 if (execute)
298 {
299 m.Destroy();
300 }
301 }
302 });
303 if (has && execute)
304 {
305 OnEnterZone();
306 }
307 return has;
308 }
int Dist(Card c)
Definition: Card.cs:7698
bool IsEscorted()
Definition: Chara.cs:2394
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 217 of file QuestManager.cs.

218 {
219 return completedIDs.Contains(id);
220 }
HashSet< string > completedIDs
Definition: QuestManager.cs:17

References completedIDs.

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

◆ IsDeliverTarget()

bool QuestManager.IsDeliverTarget ( Chara  c)
inline

Definition at line 254 of file QuestManager.cs.

255 {
256 foreach (Quest item in list)
257 {
258 if (item.IsDeliverTarget(c))
259 {
260 return true;
261 }
262 }
263 return false;
264 }

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

311 {
312 list.ForeachReverse(delegate(Quest q)
313 {
314 q.OnEnterZone();
315 });
316 }
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:35
int uid
Definition: Card.cs:122
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 248 of file QuestManager.cs.

249 {
250 SE.WriteJournal();
251 Msg.Say("journalUpdate");
252 }
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: