2using System.Collections.Generic;
90 if (
source.idZone.IsEmpty())
115 if (deadline <= 0 || Hours >= 0)
143 return "dateDayVoid".lang();
165 return "dangerLv".lang(
DangerLv.ToString() ??
"");
245 quest.person =
new Person(_idPerson);
246 if (quest is
QuestDestZone { IsDeliver: not
false } questDestZone)
249 questDestZone.SetDest(zone, zone.
dictCitizen.Keys.RandomItem());
261 List<Zone> list =
new List<Zone>();
424 if (!
source.drama.IsEmpty())
426 LayerDrama.currentQuest =
this;
427 SoundManager.ForceBGM();
432 LayerDrama.currentQuest =
this;
433 LayerDrama.forceJump =
"_quest";
613 s =
source.GetText().Split(Environment.NewLine.ToCharArray()).RandomItem();
634 if (!textProgress.IsEmpty())
636 detail = detail +
"\n\n" + textProgress;
651 s =
source.GetText(
"detail").Split(Environment.NewLine.ToCharArray()).RandomItem();
653 return s.ToTitleCase();
677 return Parse(
source.GetText(
"talkProgress", returnNull:
true));
682 return Parse(
source.GetText(
"talkComplete", returnNull:
true));
string ApplyTone(string text, bool stripPun=false)
override bool IsAliveInCurrentZone
void ModAffinity(Chara c, int a, bool show=true, bool showOnlyEmo=false)
override bool IsPCFaction
int GetRaw(int offsetHours=0)
string GetText(TextFormat format)
int GetRemainingHours(int rawDeadLine)
static SourceManager sources
static int rndHalf(int a)
static SoundManager Sound
static string ConvertDrama(string text, Chara c=null)
static string Convert(string text)
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Thing DropReward(Thing t, bool silent=false)
HashSet< string > completedIDs
HashSet< string > completedTypes
virtual void OnGetDetail(ref string detail, bool onJournal)
virtual void OnGiveItem(Chara c, Thing t)
virtual void OnKillChara(Chara c)
virtual bool IsComplete()
void SetOwner(Quest quest)
virtual string GetTextProgress()
virtual void OnModKarma(int a)
virtual bool CanUpdateOnTalk(Chara c)
static List< Zone > ListDeliver()
virtual bool IsRandomQuest
virtual int FameOnComplete
virtual void OnBeforeComplete()
virtual int GetRewardPlat(int money)
virtual string GetTalkComplete()
virtual bool UpdateOnTalk()
void SetTask(QuestTask _task)
virtual void OnEnterZone()
virtual void OnDropReward()
virtual bool UseInstanceZone
virtual DifficultyType difficultyType
virtual bool RequireClientInSameZone
virtual string GetTrackerText()
virtual int GetExtraMoney()
virtual bool CanStartQuest()
virtual string GetDetailText(bool onJournal=false)
virtual void OnGiveItem(Chara c, Thing t)
virtual bool TrackOnStart
virtual void OnKillChara(Chara c)
virtual int RangeDeadLine
virtual bool CanDeliverToBox(Thing t)
virtual void OnChangePhase(int a)
Thing DropReward(string id)
virtual string GetTitle()
virtual string NameDeliver
virtual Thing GetDestThing()
virtual bool CanAutoAdvance
virtual string RewardSuffix
virtual bool CanDeliverToClient(Chara c)
virtual void OnClickQuest()
virtual bool ForbidTeleport
virtual void OnCompleteTask()
Thing DropReward(Thing t)
virtual void ShowCompleteText()
virtual string TextExtra2
virtual string GetTalkProgress()
override bool Equals(object obj)
virtual string GetDetail(bool onJournal=false)
virtual bool IsVisibleOnQuestBoard()
virtual string GetTextProgress()
virtual bool IsDeliverTarget(Chara c)
Quest SetClient(Chara c, bool assignQuest=true)
virtual void OnComplete()
virtual bool Deliver(Chara c, Thing t=null)
virtual Zone CreateInstanceZone(Chara c)
virtual SourceQuest.Row source
static Quest Create(string _id, string _idPerson=null, Chara c=null)
virtual string TitlePrefix
virtual void OnModKarma(int a)
static void UseSeed(int seed, Action action)
static void Play(string id)
static Thing Create(string id, int idMat=-1, int lv=-1)
Dictionary< int, string > dictCitizen
HashSet< int > completedQuests
virtual bool CanBeDeliverDestination