Elin Decompiled Documentation EA 23.102 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 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 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 245 of file QuestManager.cs.

246 {
247 Chara c = EClass.game.cards.globalCharas.Find("ashland");
248 QuestCraft obj = Quest.Create("ash1") as QuestCraft;
249 obj.SetClient(c);
250 obj.req1.Add(new QuestCraft.Req("rock", 1));
251 obj.req1.Add(new QuestCraft.Req("branch", 1));
252 obj.req2.Add(new QuestCraft.Req("axe", 1));
253 }
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 255 of file QuestManager.cs.

256 {
257 Chara c = EClass.game.cards.globalCharas.Find("fiama");
258 QuestCraft obj = Quest.Create("fiama1") as QuestCraft;
259 obj.SetClient(c);
260 obj.req1.Add(new QuestCraft.Req("crim", 3));
261 obj.req2.Add(new QuestCraft.Req("hotcrim", 1));
262 }

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

202 {
203 int num = 0;
204 foreach (Quest item in list)
205 {
206 if (item.isNew)
207 {
208 num++;
209 }
210 }
211 return num;
212 }
List< Quest > list
Definition: QuestManager.cs:11

References item, and list.

◆ CountRandomQuest()

int QuestManager.CountRandomQuest ( )
inline

Definition at line 214 of file QuestManager.cs.

215 {
216 int num = 0;
217 foreach (Quest item in list)
218 {
219 if (item is QuestRandom)
220 {
221 num++;
222 }
223 }
224 return num;
225 }

References item, and list.

Referenced by LayerQuestBoard.RefreshQuest().

◆ Get() [1/2]

Quest QuestManager.Get ( int  uid)
inline

Definition at line 172 of file QuestManager.cs.

173 {
174 foreach (Quest item in list)
175 {
176 if (item.uid == uid)
177 {
178 return item;
179 }
180 }
181 return null;
182 }

References item, list, and uid.

◆ Get() [2/2]

◆ Get< T >()

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

Definition at line 148 of file QuestManager.cs.

148 : Quest
149 {
150 foreach (Quest item in list)
151 {
152 if (item is T)
153 {
154 return item as T;
155 }
156 }
157 return null;
158 }

References item, and list.

◆ GetGlobal()

Quest QuestManager.GetGlobal ( string  id)
inline

Definition at line 184 of file QuestManager.cs.

185 {
186 foreach (Quest global in globalList)
187 {
188 if (global.GetType().ToString() == id || global.id == id)
189 {
190 return global;
191 }
192 }
193 return null;
194 }
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 132 of file QuestManager.cs.

132 : Quest
133 {
134 if (completedTypes.Contains(typeof(T).ToString()))
135 {
136 return 999;
137 }
138 foreach (Quest item in list)
139 {
140 if (item is T)
141 {
142 return item.phase;
143 }
144 }
145 return -1;
146 }
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 264 of file QuestManager.cs.

265 {
266 bool has = false;
268 {
269 return false;
270 }
271 EClass._map.charas.ForeachReverse(delegate(Chara m)
272 {
273 if (m.IsEscorted() && EClass.pc.Dist(m) >= 5)
274 {
275 has = true;
276 if (execute)
277 {
278 m.Destroy();
279 }
280 }
281 });
282 if (has && execute)
283 {
284 OnEnterZone();
285 }
286 return has;
287 }
int Dist(Card c)
Definition: Card.cs:6777
bool IsEscorted()
Definition: Chara.cs:2102
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:480
virtual bool IsTown
Definition: Zone.cs:220
bool IsPCFaction
Definition: Zone.cs:464

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().

◆ IsCompleted()

bool QuestManager.IsCompleted ( string  id)
inline

Definition at line 196 of file QuestManager.cs.

197 {
198 return completedIDs.Contains(id);
199 }
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 233 of file QuestManager.cs.

234 {
235 foreach (Quest item in list)
236 {
237 if (item.IsDeliverTarget(c))
238 {
239 return true;
240 }
241 }
242 return false;
243 }

References item, and list.

Referenced by ActPlan._Update().

◆ IsStarted< T >()

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

Definition at line 127 of file QuestManager.cs.

127 : Quest
128 {
129 return GetPhase<T>() != -1;
130 }
int GetPhase< T >()

References GetPhase< 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 289 of file QuestManager.cs.

290 {
291 list.ForeachReverse(delegate(Quest q)
292 {
293 q.OnEnterZone();
294 });
295 }
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:790
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 227 of file QuestManager.cs.

228 {
229 SE.WriteJournal();
230 Msg.Say("journalUpdate");
231 }
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: