Elin Modding Docs Doc
Loading...
Searching...
No Matches
Quest.cs
1using System;
2using System.Collections.Generic;
3using Newtonsoft.Json;
4using UnityEngine;
5
6// Token: 0x020000C2 RID: 194
7public class Quest : EClass
8{
9 // Token: 0x0600055D RID: 1373 RVA: 0x00025D44 File Offset: 0x00023F44
10 public static Quest Create(string _id, string _idPerson = null, Chara c = null)
11 {
12 Quest quest = ClassCache.Create<Quest>(EClass.sources.quests.map[_id].type.IsEmpty("Quest"), "Elin");
13 quest.id = _id;
14 quest.person = new Person(_idPerson, null);
15 QuestDestZone questDestZone = quest as QuestDestZone;
16 if (questDestZone != null && questDestZone.IsDeliver)
17 {
18 Zone zone = Quest.ListDeliver().RandomItem<Zone>();
19 questDestZone.SetDest(zone, zone.dictCitizen.Keys.RandomItem<int>());
20 }
21 if (c != null)
22 {
23 quest.SetClient(c, true);
24 }
25 quest.Init();
26 return quest;
27 }
28
29 // Token: 0x0600055E RID: 1374 RVA: 0x00025DDC File Offset: 0x00023FDC
30 public static List<Zone> ListDeliver()
31 {
32 List<Zone> list = new List<Zone>();
33 foreach (Zone zone in EClass.game.spatials.Zones)
34 {
35 if (zone != EClass._zone && zone.IsTown && !zone.IsClosed && !zone.IsPCFaction && zone.dictCitizen.Count > 0 && zone.CanBeDeliverDestination)
36 {
37 list.Add(zone);
38 }
39 }
40 return list;
41 }
42
43 // Token: 0x17000124 RID: 292
44 // (get) Token: 0x0600055F RID: 1375 RVA: 0x00025E78 File Offset: 0x00024078
45 public Zone ClientZone
46 {
47 get
48 {
49 Zone result;
50 if (this.chara == null || !this.chara.IsGlobal || this.chara.currentZone == null)
51 {
52 if ((result = RefZone.Get(this.uidClientZone)) == null)
53 {
54 if (this.source.idZone.IsEmpty())
55 {
56 return EClass.game.StartZone;
57 }
58 return EClass.game.spatials.Find(this.source.idZone);
59 }
60 }
61 else
62 {
63 result = this.chara.currentZone;
64 }
65 return result;
66 }
67 }
68
69 // Token: 0x17000125 RID: 293
70 // (get) Token: 0x06000560 RID: 1376 RVA: 0x00025EF9 File Offset: 0x000240F9
71 public Chara chara
72 {
73 get
74 {
75 return this.person.chara;
76 }
77 }
78
79 // Token: 0x17000126 RID: 294
80 // (get) Token: 0x06000561 RID: 1377 RVA: 0x00025F06 File Offset: 0x00024106
81 public SourceQuest.Row source
82 {
83 get
84 {
85 return EClass.sources.quests.map[this.idSource];
86 }
87 }
88
89 // Token: 0x17000127 RID: 295
90 // (get) Token: 0x06000562 RID: 1378 RVA: 0x00025F22 File Offset: 0x00024122
91 public bool Confetti
92 {
93 get
94 {
95 return false;
96 }
97 }
98
99 // Token: 0x17000128 RID: 296
100 // (get) Token: 0x06000563 RID: 1379 RVA: 0x00025F25 File Offset: 0x00024125
101 public bool IsExpired
102 {
103 get
104 {
105 return (this.deadline > 0 && this.Hours < 0) || this.isComplete;
106 }
107 }
108
109 // Token: 0x17000129 RID: 297
110 // (get) Token: 0x06000564 RID: 1380 RVA: 0x00025F41 File Offset: 0x00024141
111 public int Hours
112 {
113 get
114 {
115 if (this.deadline != 0)
116 {
117 return EClass.world.date.GetRemainingHours(this.deadline);
118 }
119 return -1;
120 }
121 }
122
123 // Token: 0x1700012A RID: 298
124 // (get) Token: 0x06000565 RID: 1381 RVA: 0x00025F62 File Offset: 0x00024162
125 public string TextDeadline
126 {
127 get
128 {
129 if (this.deadline != 0)
130 {
131 return Date.GetText((this.Hours < 0) ? 0 : this.Hours);
132 }
133 return "dateDayVoid".lang();
134 }
135 }
136
137 // Token: 0x1700012B RID: 299
138 // (get) Token: 0x06000566 RID: 1382 RVA: 0x00025F8E File Offset: 0x0002418E
139 public virtual bool HasDLC
140 {
141 get
142 {
143 return true;
144 }
145 }
146
147 // Token: 0x1700012C RID: 300
148 // (get) Token: 0x06000567 RID: 1383 RVA: 0x00025F91 File Offset: 0x00024191
149 public virtual string idSource
150 {
151 get
152 {
153 return this.id;
154 }
155 }
156
157 // Token: 0x1700012D RID: 301
158 // (get) Token: 0x06000568 RID: 1384 RVA: 0x00025F99 File Offset: 0x00024199
159 public virtual string RewardSuffix
160 {
161 get
162 {
163 return "";
164 }
165 }
166
167 // Token: 0x1700012E RID: 302
168 // (get) Token: 0x06000569 RID: 1385 RVA: 0x00025FA0 File Offset: 0x000241A0
169 public virtual bool FameContent
170 {
171 get
172 {
173 return false;
174 }
175 }
176
177 // Token: 0x1700012F RID: 303
178 // (get) Token: 0x0600056A RID: 1386 RVA: 0x00025FA4 File Offset: 0x000241A4
179 public virtual string TextExtra
180 {
181 get
182 {
183 if (!this.FameContent)
184 {
185 return null;
186 }
187 return "dangerLv".lang(this.DangerLv.ToString() ?? "", null, null, null, null);
188 }
189 }
190
191 // Token: 0x17000130 RID: 304
192 // (get) Token: 0x0600056B RID: 1387 RVA: 0x00025FE0 File Offset: 0x000241E0
193 public virtual int DangerLv
194 {
195 get
196 {
197 return this.dangerLv;
198 }
199 }
200
201 // Token: 0x17000131 RID: 305
202 // (get) Token: 0x0600056C RID: 1388 RVA: 0x00025FE8 File Offset: 0x000241E8
203 public virtual int AffinityGain
204 {
205 get
206 {
207 return 20;
208 }
209 }
210
211 // Token: 0x17000132 RID: 306
212 // (get) Token: 0x0600056D RID: 1389 RVA: 0x00025FEC File Offset: 0x000241EC
213 public virtual int BaseMoney
214 {
215 get
216 {
217 return this.source.money;
218 }
219 }
220
221 // Token: 0x17000133 RID: 307
222 // (get) Token: 0x0600056E RID: 1390 RVA: 0x00025FF9 File Offset: 0x000241F9
223 public virtual int KarmaOnFail
224 {
225 get
226 {
227 return 0;
228 }
229 }
230
231 // Token: 0x17000134 RID: 308
232 // (get) Token: 0x0600056F RID: 1391 RVA: 0x00025FFC File Offset: 0x000241FC
233 public virtual bool CanAbandon
234 {
235 get
236 {
237 return this.IsRandomQuest;
238 }
239 }
240
241 // Token: 0x17000135 RID: 309
242 // (get) Token: 0x06000570 RID: 1392 RVA: 0x00026004 File Offset: 0x00024204
243 public virtual int FameOnComplete
244 {
245 get
246 {
247 return 0;
248 }
249 }
250
251 // Token: 0x17000136 RID: 310
252 // (get) Token: 0x06000571 RID: 1393 RVA: 0x00026007 File Offset: 0x00024207
253 public virtual int RangeDeadLine
254 {
255 get
256 {
257 return 0;
258 }
259 }
260
261 // Token: 0x17000137 RID: 311
262 // (get) Token: 0x06000572 RID: 1394 RVA: 0x0002600A File Offset: 0x0002420A
263 public virtual bool UseInstanceZone
264 {
265 get
266 {
267 return false;
268 }
269 }
270
271 // Token: 0x17000138 RID: 312
272 // (get) Token: 0x06000573 RID: 1395 RVA: 0x0002600D File Offset: 0x0002420D
273 public virtual bool ForbidTeleport
274 {
275 get
276 {
277 return false;
278 }
279 }
280
281 // Token: 0x17000139 RID: 313
282 // (get) Token: 0x06000574 RID: 1396 RVA: 0x00026010 File Offset: 0x00024210
283 public virtual bool RequireClientInSameZone
284 {
285 get
286 {
287 return true;
288 }
289 }
290
291 // Token: 0x1700013A RID: 314
292 // (get) Token: 0x06000575 RID: 1397 RVA: 0x00026013 File Offset: 0x00024213
293 public virtual Quest.DifficultyType difficultyType
294 {
295 get
296 {
297 return Quest.DifficultyType.Default;
298 }
299 }
300
301 // Token: 0x06000576 RID: 1398 RVA: 0x00026016 File Offset: 0x00024216
302 public virtual Thing GetDestThing()
303 {
304 return null;
305 }
306
307 // Token: 0x06000577 RID: 1399 RVA: 0x00026019 File Offset: 0x00024219
308 public virtual int GetExtraMoney()
309 {
310 return 0;
311 }
312
313 // Token: 0x06000578 RID: 1400 RVA: 0x0002601C File Offset: 0x0002421C
314 public virtual int GetRewardPlat(int money)
315 {
316 return 1 + EClass.rnd(2) + EClass.rndHalf((int)Mathf.Sqrt((float)(money / 200)));
317 }
318
319 // Token: 0x1700013B RID: 315
320 // (get) Token: 0x06000579 RID: 1401 RVA: 0x0002603A File Offset: 0x0002423A
321 public virtual Chara DestChara
322 {
323 get
324 {
325 return this.chara;
326 }
327 }
328
329 // Token: 0x1700013C RID: 316
330 // (get) Token: 0x0600057A RID: 1402 RVA: 0x00026042 File Offset: 0x00024242
331 public virtual string RefDrama1
332 {
333 get
334 {
335 if (this.task == null)
336 {
337 return "";
338 }
339 return this.task.RefDrama1;
340 }
341 }
342
343 // Token: 0x1700013D RID: 317
344 // (get) Token: 0x0600057B RID: 1403 RVA: 0x0002605D File Offset: 0x0002425D
345 public virtual string RefDrama2
346 {
347 get
348 {
349 if (this.task == null)
350 {
351 return "";
352 }
353 return this.task.RefDrama2;
354 }
355 }
356
357 // Token: 0x1700013E RID: 318
358 // (get) Token: 0x0600057C RID: 1404 RVA: 0x00026078 File Offset: 0x00024278
359 public virtual string RefDrama3
360 {
361 get
362 {
363 if (this.task == null)
364 {
365 return "";
366 }
367 return this.task.RefDrama3;
368 }
369 }
370
371 // Token: 0x1700013F RID: 319
372 // (get) Token: 0x0600057D RID: 1405 RVA: 0x00026093 File Offset: 0x00024293
373 public virtual string RefDrama4
374 {
375 get
376 {
377 return "";
378 }
379 }
380
381 // Token: 0x17000140 RID: 320
382 // (get) Token: 0x0600057E RID: 1406 RVA: 0x0002609A File Offset: 0x0002429A
383 public virtual string TitlePrefix
384 {
385 get
386 {
387 return "";
388 }
389 }
390
391 // Token: 0x0600057F RID: 1407 RVA: 0x000260A4 File Offset: 0x000242A4
392 public override bool Equals(object obj)
393 {
394 int num = this.uid;
395 Quest quest = obj as Quest;
396 int? num2 = (quest != null) ? new int?(quest.uid) : null;
397 return num == num2.GetValueOrDefault() & num2 != null;
398 }
399
400 // Token: 0x06000580 RID: 1408 RVA: 0x000260E8 File Offset: 0x000242E8
401 public virtual bool IsVisibleOnQuestBoard()
402 {
403 return (!this.RequireClientInSameZone || (this.chara != null && this.chara.IsAliveInCurrentZone)) && EClass.world.date.GetRaw(0) >= this.startDate && this.CanStartQuest() && ((!this.chara.IsPCFaction && this is QuestRandom) || EClass._zone.IsPCFaction) && (this.chara == null || !(this.chara.trait is TraitLoytel) || this.chara.currentZone == null || this.chara.currentZone.IsPCFaction);
404 }
405
406 // Token: 0x06000581 RID: 1409 RVA: 0x00026195 File Offset: 0x00024395
407 public virtual bool CanStartQuest()
408 {
409 return true;
410 }
411
412 // Token: 0x06000582 RID: 1410 RVA: 0x00026198 File Offset: 0x00024398
413 public virtual bool CanUpdateOnTalk(Chara c)
414 {
415 return false;
416 }
417
418 // Token: 0x17000141 RID: 321
419 // (get) Token: 0x06000583 RID: 1411 RVA: 0x0002619B File Offset: 0x0002439B
420 public virtual bool CanAutoAdvance
421 {
422 get
423 {
424 return true;
425 }
426 }
427
428 // Token: 0x17000142 RID: 322
429 // (get) Token: 0x06000584 RID: 1412 RVA: 0x0002619E File Offset: 0x0002439E
430 public virtual bool IsRandomQuest
431 {
432 get
433 {
434 return false;
435 }
436 }
437
438 // Token: 0x06000585 RID: 1413 RVA: 0x000261A1 File Offset: 0x000243A1
439 public virtual Zone CreateInstanceZone(Chara c)
440 {
441 return null;
442 }
443
444 // Token: 0x06000586 RID: 1414 RVA: 0x000261A4 File Offset: 0x000243A4
445 public virtual bool UpdateOnTalk()
446 {
447 this.NextPhase();
448 this.OnClickQuest();
449 return true;
450 }
451
452 // Token: 0x06000587 RID: 1415 RVA: 0x000261B4 File Offset: 0x000243B4
453 public void Init()
454 {
455 if (this.RangeDeadLine != 0)
456 {
457 this.deadline = EClass.world.date.GetRaw(0) + (36 + EClass.rnd(12)) * 60 + EClass.rnd(this.RangeDeadLine) * 1440;
458 }
459 this.uid = EClass.game.quests.uid;
460 EClass.game.quests.uid++;
461 this.isNew = true;
462 this.track = true;
463 switch (this.difficultyType)
464 {
465 case Quest.DifficultyType.Deliver:
466 case Quest.DifficultyType.Supply:
467 case Quest.DifficultyType.Escort:
468 this.difficulty = Mathf.Clamp(6 - this.Hours / 48, 1, 6);
469 goto IL_160;
470 case Quest.DifficultyType.Bulk:
471 this.difficulty = Mathf.Clamp(EClass.rnd(EClass.rnd(((EClass._zone.branch != null) ? EClass._zone.branch.lv : 1) + 3)) + 1, 1, 6);
472 goto IL_160;
473 case Quest.DifficultyType.Farm:
474 this.difficulty = 1 + EClass.rnd(3 + EClass.pc.Evalue(250) / 10);
475 goto IL_160;
476 case Quest.DifficultyType.Music:
477 this.difficulty = 1 + EClass.rnd(3 + EClass.pc.Evalue(241) / 10);
478 goto IL_160;
479 }
480 this.difficulty = 3 + EClass.rnd(EClass.rnd(4)) - EClass.rnd(4);
481 IL_160:
482 this.difficulty = Mathf.Clamp(this.difficulty, 1, 7);
483 this.OnInit();
484 if (this.task != null)
485 {
486 this.task.OnInit();
487 }
488 int fameLv = EClass.pc.FameLv;
489 this.dangerLv = Mathf.Max(fameLv + EClass.rnd(fameLv / 10 + 5) - EClass.rnd(fameLv / 10 + 5), 1);
490 this.rewardMoney = (this.BaseMoney + EClass.rnd(this.BaseMoney / 4) + this.GetExtraMoney()) * (55 + this.difficulty * 15) / 100;
491 }
492
493 // Token: 0x06000588 RID: 1416 RVA: 0x000263AE File Offset: 0x000245AE
494 public virtual void OnInit()
495 {
496 }
497
498 // Token: 0x06000589 RID: 1417 RVA: 0x000263B0 File Offset: 0x000245B0
499 public Quest SetClient(Chara c, bool assignQuest = true)
500 {
501 if (c == null)
502 {
503 this.person = new Person();
504 return this;
505 }
506 if (assignQuest)
507 {
508 c.quest = this;
509 }
510 if (c.currentZone != null)
511 {
512 this.uidClientZone = c.currentZone.uid;
513 }
514 this.person = new Person(c);
515 return this;
516 }
517
518 // Token: 0x0600058A RID: 1418 RVA: 0x000263FD File Offset: 0x000245FD
519 public void SetTask(QuestTask _task)
520 {
521 this.task = _task;
522 this.task.SetOwner(this);
523 }
524
525 // Token: 0x0600058B RID: 1419 RVA: 0x00026412 File Offset: 0x00024612
526 public void Start()
527 {
528 this.OnStart();
529 if (this.task != null)
530 {
531 this.task.OnStart();
532 }
533 }
534
535 // Token: 0x0600058C RID: 1420 RVA: 0x0002642D File Offset: 0x0002462D
536 public virtual void OnStart()
537 {
538 }
539
540 // Token: 0x0600058D RID: 1421 RVA: 0x0002642F File Offset: 0x0002462F
541 public virtual void OnEnterZone()
542 {
543 }
544
545 // Token: 0x0600058E RID: 1422 RVA: 0x00026434 File Offset: 0x00024634
546 public virtual void OnClickQuest()
547 {
548 if (!this.source.drama.IsEmpty())
549 {
550 LayerDrama.currentQuest = this;
551 SoundManager.ForceBGM();
552 this.chara.ShowDialog(this.source.drama[0], (this.source.drama.Length > 1) ? this.source.drama[1] : ("quest_" + this.source.id), "");
553 return;
554 }
555 LayerDrama.currentQuest = this;
556 LayerDrama.forceJump = "_quest";
557 this.chara.ShowDialog();
558 }
559
560 // Token: 0x0600058F RID: 1423 RVA: 0x000264CC File Offset: 0x000246CC
561 public void Fail()
562 {
563 EClass.Sound.Play("questFail");
564 EClass.player.ModFame(-10 - (int)((float)EClass.player.fame * 0.05f));
565 EClass.player.ModKarma(this.KarmaOnFail);
566 EClass.game.quests.Remove(this);
567 if (this.chara != null && this.chara.quest != null && this.chara.quest.uid == this.uid)
568 {
569 this.chara.quest = null;
570 }
571 if (this.ClientZone != null)
572 {
573 this.ClientZone.completedQuests.Add(this.uid);
574 }
575 this.OnFail();
576 }
577
578 // Token: 0x06000590 RID: 1424 RVA: 0x00026586 File Offset: 0x00024786
579 public virtual void OnFail()
580 {
581 }
582
583 // Token: 0x06000591 RID: 1425 RVA: 0x00026588 File Offset: 0x00024788
584 public virtual void ShowCompleteText()
585 {
586 EClass.Sound.Play("questComplete");
587 Msg.Say("completeQuest", this.GetTitle(), null, null, null);
588 }
589
590 // Token: 0x06000592 RID: 1426 RVA: 0x000265B0 File Offset: 0x000247B0
591 public void Complete()
592 {
593 this.OnBeforeComplete();
594 EClass.game.quests.Remove(this);
595 EClass.game.quests.completedIDs.Add(this.id);
596 EClass.game.quests.completedTypes.Add(base.GetType().ToString());
597 this.ShowCompleteText();
598 this.OnDropReward();
599 if (this.Confetti)
600 {
601 EClass.Sound.Play("confetti");
602 ScreenEffect.Play("Firework");
603 }
604 if (this.chara != null && this.chara.quest != null && this.chara.quest.uid == this.uid)
605 {
606 this.chara.quest = null;
607 }
608 if (this.DestChara != null && this.DestChara.IsAliveInCurrentZone && this.AffinityGain != 0)
609 {
610 this.DestChara.ModAffinity(EClass.pc, this.AffinityGain, true);
611 }
612 if (this.ClientZone != null)
613 {
614 this.ClientZone.completedQuests.Add(this.uid);
615 }
616 this.OnComplete();
617 EClass.player.ModKarma(1);
618 this.isComplete = true;
619 }
620
621 // Token: 0x06000593 RID: 1427 RVA: 0x000266E0 File Offset: 0x000248E0
622 public virtual void OnBeforeComplete()
623 {
624 }
625
626 // Token: 0x06000594 RID: 1428 RVA: 0x000266E2 File Offset: 0x000248E2
627 public virtual void OnDropReward()
628 {
629 }
630
631 // Token: 0x06000595 RID: 1429 RVA: 0x000266E4 File Offset: 0x000248E4
632 public Thing DropReward(string id)
633 {
634 return this.DropReward(ThingGen.Create(id, -1, -1));
635 }
636
637 // Token: 0x06000596 RID: 1430 RVA: 0x000266F4 File Offset: 0x000248F4
638 public Thing DropReward(Thing t)
639 {
640 return EClass.player.DropReward(t, false);
641 }
642
643 // Token: 0x06000597 RID: 1431 RVA: 0x00026702 File Offset: 0x00024902
644 public virtual void OnComplete()
645 {
646 }
647
648 // Token: 0x06000598 RID: 1432 RVA: 0x00026704 File Offset: 0x00024904
649 public void CompleteTask()
650 {
651 this.OnCompleteTask();
652 this.task = null;
653 }
654
655 // Token: 0x06000599 RID: 1433 RVA: 0x00026713 File Offset: 0x00024913
656 public virtual void OnCompleteTask()
657 {
658 EClass.game.quests.Complete(this);
659 }
660
661 // Token: 0x0600059A RID: 1434 RVA: 0x00026725 File Offset: 0x00024925
662 public virtual void OnGiveItem(Chara c, Thing t)
663 {
664 if (this.task != null)
665 {
666 this.task.OnGiveItem(c, t);
667 if (this.task.IsComplete())
668 {
669 this.CompleteTask();
670 }
671 }
672 }
673
674 // Token: 0x0600059B RID: 1435 RVA: 0x0002674F File Offset: 0x0002494F
675 public virtual void OnKillChara(Chara c)
676 {
677 if (this.task != null)
678 {
679 this.task.OnKillChara(c);
680 if (this.task.IsComplete())
681 {
682 this.CompleteTask();
683 }
684 }
685 }
686
687 // Token: 0x0600059C RID: 1436 RVA: 0x00026778 File Offset: 0x00024978
688 public virtual void OnModKarma(int a)
689 {
690 if (this.task != null)
691 {
692 this.task.OnModKarma(a);
693 if (this.task.IsComplete())
694 {
695 this.CompleteTask();
696 }
697 }
698 }
699
700 // Token: 0x0600059D RID: 1437 RVA: 0x000267A1 File Offset: 0x000249A1
701 public void NextPhase()
702 {
703 this.ChangePhase(this.phase + 1);
704 }
705
706 // Token: 0x0600059E RID: 1438 RVA: 0x000267B1 File Offset: 0x000249B1
707 public void ChangePhase(int a)
708 {
709 this.phase = a;
710 this.UpdateJournal();
711 this.OnChangePhase(a);
712 }
713
714 // Token: 0x0600059F RID: 1439 RVA: 0x000267C7 File Offset: 0x000249C7
715 public virtual void OnChangePhase(int a)
716 {
717 }
718
719 // Token: 0x060005A0 RID: 1440 RVA: 0x000267CC File Offset: 0x000249CC
720 public string Parse(string s)
721 {
722 if (s.IsEmpty())
723 {
724 return s;
725 }
726 GameLang.refDrama1 = this.RefDrama1.TagColor(FontColor.QuestObjective, null);
727 GameLang.refDrama2 = this.RefDrama2.TagColor(FontColor.QuestObjective, null);
728 GameLang.refDrama3 = this.RefDrama3.TagColor(FontColor.QuestObjective, null);
729 GameLang.refDrama4 = this.RefDrama4.TagColor(FontColor.QuestObjective, null);
730 Rand.UseSeed(this.uid, delegate
731 {
732 s = GameLang.ConvertDrama(s, this.chara);
733 if (this.chara != null)
734 {
735 s = this.chara.ApplyTone(s, false);
736 return;
737 }
738 s = Card.ApplyTone(this.chara, ref s, this.person.tones, this.person.gender, false);
739 });
740 return s;
741 }
742
743 // Token: 0x060005A1 RID: 1441 RVA: 0x0002686C File Offset: 0x00024A6C
744 public virtual string GetTitle()
745 {
746 string s = "";
747 Rand.UseSeed(this.uid, delegate
748 {
749 s = this.source.GetText("name", false).Split(Environment.NewLine.ToCharArray()).RandomItem<string>();
750 });
751 return s;
752 }
753
754 // Token: 0x060005A2 RID: 1442 RVA: 0x000268B0 File Offset: 0x00024AB0
755 public virtual string GetTrackerText()
756 {
757 string text = this.GetTextProgress();
758 if (text.IsEmpty() && !this.IsRandomQuest)
759 {
760 text = this.GetDetail(true);
761 }
762 return text;
763 }
764
765 // Token: 0x060005A3 RID: 1443 RVA: 0x000268E0 File Offset: 0x00024AE0
766 public virtual string GetDetail(bool onJournal = false)
767 {
768 string text = this.Parse(this.GetDetailText(onJournal));
769 if (onJournal)
770 {
771 string textProgress = this.GetTextProgress();
772 if (!textProgress.IsEmpty())
773 {
774 text = text + "\n\n" + textProgress;
775 }
776 }
777 if (this.task != null)
778 {
779 this.task.OnGetDetail(ref text, onJournal);
780 }
781 text = GameLang.Convert(text);
782 return text;
783 }
784
785 // Token: 0x060005A4 RID: 1444 RVA: 0x00026938 File Offset: 0x00024B38
786 public virtual string GetDetailText(bool onJournal = false)
787 {
788 string s = "";
789 Rand.UseSeed(this.uid, delegate
790 {
791 s = this.source.GetText("detail", false).Split(Environment.NewLine.ToCharArray()).RandomItem<string>();
792 });
793 return s.ToTitleCase(false);
794 }
795
796 // Token: 0x060005A5 RID: 1445 RVA: 0x00026980 File Offset: 0x00024B80
797 public virtual string GetTextProgress()
798 {
799 if (this.task != null)
800 {
801 return this.task.GetTextProgress();
802 }
803 return "";
804 }
805
806 // Token: 0x060005A6 RID: 1446 RVA: 0x0002699C File Offset: 0x00024B9C
807 public string GetRewardText()
808 {
809 string result = "-";
810 if (this.rewardMoney != 0 || this is QuestRandom)
811 {
812 result = ("qReward" + this.RewardSuffix).lang(this.rewardMoney.ToString() ?? "", null, null, null, null);
813 }
814 return result;
815 }
816
817 // Token: 0x060005A7 RID: 1447 RVA: 0x000269EE File Offset: 0x00024BEE
818 public virtual string GetTalkProgress()
819 {
820 return this.Parse(this.source.GetText("talkProgress", true));
821 }
822
823 // Token: 0x060005A8 RID: 1448 RVA: 0x00026A07 File Offset: 0x00024C07
824 public virtual string GetTalkComplete()
825 {
826 return this.Parse(this.source.GetText("talkComplete", true));
827 }
828
829 // Token: 0x060005A9 RID: 1449 RVA: 0x00026A20 File Offset: 0x00024C20
830 public void UpdateJournal()
831 {
832 SE.WriteJournal();
833 Msg.Say("journalUpdate2", this.GetTitle(), null, null, null);
834 }
835
836 // Token: 0x060005AA RID: 1450 RVA: 0x00026A3B File Offset: 0x00024C3B
837 public virtual bool IsDeliverTarget(Chara c)
838 {
839 return false;
840 }
841
842 // Token: 0x060005AB RID: 1451 RVA: 0x00026A3E File Offset: 0x00024C3E
843 public virtual bool CanDeliverToClient(Chara c)
844 {
845 return false;
846 }
847
848 // Token: 0x060005AC RID: 1452 RVA: 0x00026A41 File Offset: 0x00024C41
849 public virtual bool CanDeliverToBox(Thing t)
850 {
851 return false;
852 }
853
854 // Token: 0x060005AD RID: 1453 RVA: 0x00026A44 File Offset: 0x00024C44
855 public virtual bool Deliver(Chara c, Thing t = null)
856 {
857 return false;
858 }
859
860 // Token: 0x17000143 RID: 323
861 // (get) Token: 0x060005AE RID: 1454 RVA: 0x00026A47 File Offset: 0x00024C47
862 public virtual string NameDeliver
863 {
864 get
865 {
866 return "";
867 }
868 }
869
870 // Token: 0x040006EB RID: 1771
871 public const int PhaseComplete = 999;
872
873 // Token: 0x040006EC RID: 1772
874 [JsonProperty]
875 public string id;
876
877 // Token: 0x040006ED RID: 1773
878 [JsonProperty]
879 public int uid;
880
881 // Token: 0x040006EE RID: 1774
882 [JsonProperty]
883 public int uidClientZone;
884
885 // Token: 0x040006EF RID: 1775
886 [JsonProperty]
887 public int phase;
888
889 // Token: 0x040006F0 RID: 1776
890 [JsonProperty]
891 public int lv;
892
893 // Token: 0x040006F1 RID: 1777
894 [JsonProperty]
895 public int deadline;
896
897 // Token: 0x040006F2 RID: 1778
898 [JsonProperty]
899 public int difficulty;
900
901 // Token: 0x040006F3 RID: 1779
902 [JsonProperty]
903 public int rewardMoney;
904
905 // Token: 0x040006F4 RID: 1780
906 [JsonProperty]
907 public int bonusMoney;
908
909 // Token: 0x040006F5 RID: 1781
910 [JsonProperty]
911 public int startDate;
912
913 // Token: 0x040006F6 RID: 1782
914 [JsonProperty]
915 public int dangerLv;
916
917 // Token: 0x040006F7 RID: 1783
918 [JsonProperty]
919 public bool isNew;
920
921 // Token: 0x040006F8 RID: 1784
922 [JsonProperty]
923 public bool isComplete;
924
925 // Token: 0x040006F9 RID: 1785
926 [JsonProperty]
927 public bool track;
928
929 // Token: 0x040006FA RID: 1786
930 [JsonProperty]
931 public Person person;
932
933 // Token: 0x040006FB RID: 1787
934 [JsonProperty]
935 public QuestTask task;
936
937 // Token: 0x040006FC RID: 1788
938 public RefChara refChara = new RefChara();
939
940 // Token: 0x02000816 RID: 2070
941 public enum DifficultyType
942 {
943 // Token: 0x040022E3 RID: 8931
944 Default,
945 // Token: 0x040022E4 RID: 8932
946 Deliver,
947 // Token: 0x040022E5 RID: 8933
948 Supply,
949 // Token: 0x040022E6 RID: 8934
950 Escort,
951 // Token: 0x040022E7 RID: 8935
952 Bulk,
953 // Token: 0x040022E8 RID: 8936
954 Meal,
955 // Token: 0x040022E9 RID: 8937
956 Farm,
957 // Token: 0x040022EA RID: 8938
958 Music
959 }
960
961 // Token: 0x02000817 RID: 2071
962 public enum SubReward
963 {
964 // Token: 0x040022EC RID: 8940
965 plat,
966 // Token: 0x040022ED RID: 8941
967 gacha_coin,
968 // Token: 0x040022EE RID: 8942
969 money2,
970 // Token: 0x040022EF RID: 8943
971 ticket_furniture
972 }
973}
Definition Card.cs:13
Definition Chara.cs:12
Definition Date.cs:6
Definition Msg.cs:7
Definition Quest.cs:8
Definition Thing.cs:10
Definition Zone.cs:14