Elin Decompiled Documentation EA 23.229 Stable 1st Anniversary Patch 2
Loading...
Searching...
No Matches
Quest Class Reference
Inheritance diagram for Quest:
EClass QuestCraft QuestDummy QuestLumiest QuestRandom QuestSequence QuestTrackCraft QuestDestZone QuestHunt QuestInstance QuestCurry QuestCursedManor QuestGuild QuestHome QuestMain QuestNasu QuestProgression

Public Types

enum  DifficultyType {
  Default , Deliver , Supply , Escort ,
  Bulk , Meal , Farm , Music
}
 
enum  SubReward { plat , gacha_coin , money2 , ticket_furniture }
 

Public Member Functions

virtual Thing GetDestThing ()
 
virtual int GetExtraMoney ()
 
virtual int GetRewardPlat (int money)
 
override bool Equals (object obj)
 
virtual bool IsVisibleOnQuestBoard ()
 
virtual bool CanStartQuest ()
 
virtual bool CanUpdateOnTalk (Chara c)
 
virtual Zone CreateInstanceZone (Chara c)
 
virtual bool UpdateOnTalk ()
 
void Init ()
 
virtual void OnInit ()
 
Quest SetClient (Chara c, bool assignQuest=true)
 
void SetTask (QuestTask _task)
 
void Start ()
 
virtual void OnStart ()
 
virtual void OnEnterZone ()
 
virtual void OnClickQuest ()
 
void Fail ()
 
virtual void OnFail ()
 
virtual void ShowCompleteText ()
 
void Complete ()
 
virtual void OnBeforeComplete ()
 
virtual void OnDropReward ()
 
Thing DropReward (string id)
 
Thing DropReward (Thing t)
 
virtual void OnComplete ()
 
void CompleteTask ()
 
virtual void OnCompleteTask ()
 
virtual void OnGiveItem (Chara c, Thing t)
 
virtual void OnKillChara (Chara c)
 
virtual void OnModKarma (int a)
 
void NextPhase ()
 
void ChangePhase (int a)
 
virtual void OnChangePhase (int a)
 
string Parse (string s)
 
virtual string GetTitle ()
 
virtual string GetTrackerText ()
 
virtual string GetDetail (bool onJournal=false)
 
virtual string GetDetailText (bool onJournal=false)
 
virtual string GetTextProgress ()
 
string GetRewardText ()
 
virtual string GetTalkProgress ()
 
virtual string GetTalkComplete ()
 
void UpdateJournal ()
 
virtual bool IsDeliverTarget (Chara c)
 
virtual bool CanDeliverToClient (Chara c)
 
virtual bool CanDeliverToBox (Thing t)
 
virtual bool Deliver (Chara c, Thing t=null)
 

Static Public Member Functions

static Quest Create (string _id, string _idPerson=null, Chara c=null)
 
static List< ZoneListDeliver ()
 
- 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 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)
 

Public Attributes

string id
 
int uid
 
int uidClientZone
 
int phase
 
int lv
 
int deadline
 
int difficulty
 
int rewardMoney
 
int bonusMoney
 
int startDate
 
int dangerLv
 
bool isNew
 
bool isComplete
 
bool track
 
Person person
 
QuestTask task
 
RefChara refChara = new RefChara()
 

Static Public Attributes

const int PhaseComplete = 999
 
- Static Public Attributes inherited from EClass
static Core core
 

Properties

Zone ClientZone [get]
 
Chara chara [get]
 
virtual SourceQuest.Row source [get]
 
bool Confetti [get]
 
bool IsExpired [get]
 
int Hours [get]
 
string TextDeadline [get]
 
virtual bool HasDLC [get]
 
virtual string idSource [get]
 
virtual string RewardSuffix [get]
 
virtual bool FameContent [get]
 
virtual string TextExtra [get]
 
virtual string TextExtra2 [get]
 
virtual int DangerLv [get]
 
virtual int AffinityGain [get]
 
virtual int BaseMoney [get]
 
virtual int KarmaOnFail [get]
 
virtual bool CanAbandon [get]
 
virtual int FameOnComplete [get]
 
virtual int RangeDeadLine [get]
 
virtual bool UseInstanceZone [get]
 
virtual bool ForbidTeleport [get]
 
virtual bool TrackOnStart [get]
 
virtual bool RequireClientInSameZone [get]
 
virtual DifficultyType difficultyType [get]
 
virtual Chara DestChara [get]
 
virtual string RefDrama1 [get]
 
virtual string RefDrama2 [get]
 
virtual string RefDrama3 [get]
 
virtual string RefDrama4 [get]
 
virtual string TitlePrefix [get]
 
virtual bool CanAutoAdvance [get]
 
virtual bool IsRandomQuest [get]
 
virtual string NameDeliver [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]
 

Detailed Description

Definition at line 6 of file Quest.cs.

Member Enumeration Documentation

◆ DifficultyType

Enumerator
Default 
Deliver 
Supply 
Escort 
Bulk 
Meal 
Farm 
Music 

Definition at line 8 of file Quest.cs.

◆ SubReward

Enumerator
plat 
gacha_coin 
money2 
ticket_furniture 

Definition at line 20 of file Quest.cs.

Member Function Documentation

◆ CanDeliverToBox()

virtual bool Quest.CanDeliverToBox ( Thing  t)
inlinevirtual

Reimplemented in QuestDeliver.

Definition at line 706 of file Quest.cs.

707 {
708 return false;
709 }

◆ CanDeliverToClient()

virtual bool Quest.CanDeliverToClient ( Chara  c)
inlinevirtual

Reimplemented in QuestCraft, and QuestDeliver.

Definition at line 701 of file Quest.cs.

702 {
703 return false;
704 }

◆ CanStartQuest()

virtual bool Quest.CanStartQuest ( )
inlinevirtual

Reimplemented in QuestDialog.

Definition at line 313 of file Quest.cs.

314 {
315 return true;
316 }

Referenced by IsVisibleOnQuestBoard().

◆ CanUpdateOnTalk()

virtual bool Quest.CanUpdateOnTalk ( Chara  c)
inlinevirtual

◆ ChangePhase()

void Quest.ChangePhase ( int  a)
inline

◆ Complete()

void Quest.Complete ( )
inline

Definition at line 473 of file Quest.cs.

474 {
476 EClass.game.quests.Remove(this);
478 EClass.game.quests.completedTypes.Add(GetType().ToString());
480 OnDropReward();
481 if (Confetti)
482 {
483 EClass.Sound.Play("confetti");
484 ScreenEffect.Play("Firework");
485 }
486 if (chara != null && chara.quest != null && chara.quest.uid == uid)
487 {
488 chara.quest = null;
489 }
491 {
493 }
494 if (ClientZone != null)
495 {
497 }
498 OnComplete();
500 isComplete = true;
501 }
override bool IsAliveInCurrentZone
Definition: Chara.cs:559
void ModAffinity(Chara c, int a, bool show=true, bool showOnlyEmo=false)
Definition: Chara.cs:7794
Quest quest
Definition: Chara.cs:24
Definition: EClass.cs:5
static Game game
Definition: EClass.cs:8
static Player player
Definition: EClass.cs:12
static Chara pc
Definition: EClass.cs:14
static SoundManager Sound
Definition: EClass.cs:46
QuestManager quests
Definition: Game.cs:179
void ModKarma(int a)
Definition: Player.cs:2496
HashSet< string > completedIDs
Definition: QuestManager.cs:17
void Remove(Quest q)
Definition: QuestManager.cs:67
HashSet< string > completedTypes
Definition: QuestManager.cs:20
bool isComplete
Definition: Quest.cs:67
virtual void OnBeforeComplete()
Definition: Quest.cs:503
int uid
Definition: Quest.cs:34
virtual void OnDropReward()
Definition: Quest.cs:507
virtual Chara DestChara
Definition: Quest.cs:193
virtual int AffinityGain
Definition: Quest.cs:171
Zone ClientZone
Definition: Quest.cs:81
Chara chara
Definition: Quest.cs:105
virtual void ShowCompleteText()
Definition: Quest.cs:467
bool Confetti
Definition: Quest.cs:109
virtual void OnComplete()
Definition: Quest.cs:521
static void Play(string id)
Definition: ScreenEffect.cs:17
HashSet< int > completedQuests
Definition: Zone.cs:37

References AffinityGain, chara, ClientZone, QuestManager.completedIDs, Zone.completedQuests, QuestManager.completedTypes, Confetti, DestChara, EClass.game, Chara.IsAliveInCurrentZone, isComplete, Chara.ModAffinity(), Player.ModKarma(), OnBeforeComplete(), OnComplete(), OnDropReward(), EClass.pc, ScreenEffect.Play(), EClass.player, Chara.quest, Game.quests, QuestManager.Remove(), ShowCompleteText(), EClass.Sound, and uid.

Referenced by QuestManager.Complete(), ZonePreEnterOnCompleteQuestInstance.Execute(), QuestDeliver.OnEnterZone(), QuestEscort.OnEnterZone(), ContentQuest.OnSwitchContent(), and Chara.ShowDialog().

◆ CompleteTask()

void Quest.CompleteTask ( )
inline

Definition at line 525 of file Quest.cs.

526 {
528 task = null;
529 }
virtual void OnCompleteTask()
Definition: Quest.cs:531
QuestTask task
Definition: Quest.cs:76

References OnCompleteTask(), and task.

Referenced by OnGiveItem(), OnKillChara(), and OnModKarma().

◆ Create()

static Quest Quest.Create ( string  _id,
string  _idPerson = null,
Chara  c = null 
)
inlinestatic

Definition at line 241 of file Quest.cs.

242 {
243 Quest quest = ClassCache.Create<Quest>(EClass.sources.quests.map[_id].type.IsEmpty("Quest"), "Elin");
244 quest.id = _id;
245 quest.person = new Person(_idPerson);
246 if (quest is QuestDestZone { IsDeliver: not false } questDestZone)
247 {
248 Zone zone = ListDeliver().RandomItem();
249 questDestZone.SetDest(zone, zone.dictCitizen.Keys.RandomItem());
250 }
251 if (c != null)
252 {
253 quest.SetClient(c);
254 }
255 quest.Init();
256 return quest;
257 }
static SourceManager sources
Definition: EClass.cs:42
Definition: Person.cs:6
Definition: Quest.cs:7
static List< Zone > ListDeliver()
Definition: Quest.cs:259
void Init()
Definition: Quest.cs:335
Quest SetClient(Chara c, bool assignQuest=true)
Definition: Quest.cs:380
SourceQuest quests
Definition: Zone.cs:12
Dictionary< int, string > dictCitizen
Definition: Zone.cs:49

References Zone.dictCitizen, Init(), ListDeliver(), SourceManager.quests, SetClient(), and EClass.sources.

Referenced by QuestManager.Add(), QuestManager.AddQuestAsh(), QuestManager.AddQuestFiama(), QuestDefense.OnChangePhase(), DramaOutcome.OnClaimLand(), QuestCraft.OnComplete(), QuestIntroInspector.OnComplete(), QuestSharedContainer.OnComplete(), QuestDialog.OnDropReward(), QuestExploration.OnStart(), DramaManager.ParseLine(), QuestManager.Start(), Game.StartNewGame(), Recipe.ToggleTrack(), and Zone.UpdateQuests().

◆ CreateInstanceZone()

virtual Zone Quest.CreateInstanceZone ( Chara  c)
inlinevirtual

Reimplemented in QuestInstance.

Definition at line 323 of file Quest.cs.

324 {
325 return null;
326 }

◆ Deliver()

virtual bool Quest.Deliver ( Chara  c,
Thing  t = null 
)
inlinevirtual

Reimplemented in QuestCraft, and QuestDeliver.

Definition at line 711 of file Quest.cs.

712 {
713 return false;
714 }

◆ DropReward() [1/2]

◆ DropReward() [2/2]

Thing Quest.DropReward ( Thing  t)
inline

Definition at line 516 of file Quest.cs.

517 {
518 return EClass.player.DropReward(t);
519 }
Thing DropReward(Thing t, bool silent=false)
Definition: Player.cs:2527

References Player.DropReward(), and EClass.player.

◆ Equals()

override bool Quest.Equals ( object  obj)
inline

Definition at line 287 of file Quest.cs.

288 {
289 return uid == (obj as Quest)?.uid;
290 }

References uid.

◆ Fail()

void Quest.Fail ( )
inline

Definition at line 443 of file Quest.cs.

444 {
445 EClass.Sound.Play("questFail");
446 if (!(this is QuestTrackCraft))
447 {
448 EClass.player.ModFame(-10 - (int)((float)EClass.player.fame * 0.05f));
450 }
451 EClass.game.quests.Remove(this);
452 if (chara != null && chara.quest != null && chara.quest.uid == uid)
453 {
454 chara.quest = null;
455 }
456 if (ClientZone != null)
457 {
459 }
460 OnFail();
461 }
void ModFame(int a)
Definition: Player.cs:2074
int fame
Definition: Player.cs:878
virtual void OnFail()
Definition: Quest.cs:463
virtual int KarmaOnFail
Definition: Quest.cs:175

References chara, ClientZone, Zone.completedQuests, Player.fame, EClass.game, KarmaOnFail, Player.ModFame(), Player.ModKarma(), OnFail(), EClass.player, Chara.quest, Game.quests, QuestManager.Remove(), EClass.Sound, and uid.

Referenced by ZonePreEnterOnCompleteQuestInstance.Execute(), QuestEscort.OnEnterZone(), and ContentQuest.SelectQuest().

◆ GetDestThing()

virtual Thing Quest.GetDestThing ( )
inlinevirtual

Reimplemented in QuestDeliver.

Definition at line 272 of file Quest.cs.

273 {
274 return null;
275 }

◆ GetDetail()

virtual string Quest.GetDetail ( bool  onJournal = false)
inlinevirtual

Reimplemented in QuestProgression, and QuestTrackCraft.

Definition at line 633 of file Quest.cs.

634 {
635 string detail = Parse(GetDetailText(onJournal));
636 if (onJournal)
637 {
638 string textProgress = GetTextProgress();
639 if (!textProgress.IsEmpty())
640 {
641 detail = detail + "\n\n" + textProgress;
642 }
643 }
644 if (task != null)
645 {
646 task.OnGetDetail(ref detail, onJournal);
647 }
648 return GameLang.Convert(detail);
649 }
static string Convert(string text)
Definition: GameLang.cs:124
virtual void OnGetDetail(ref string detail, bool onJournal)
Definition: QuestTask.cs:49
virtual string GetDetailText(bool onJournal=false)
Definition: Quest.cs:651
string Parse(string s)
Definition: Quest.cs:588
virtual string GetTextProgress()
Definition: Quest.cs:661

References GameLang.Convert(), GetDetailText(), GetTextProgress(), QuestTask.OnGetDetail(), Parse(), and task.

Referenced by GetTrackerText(), ContentQuest.SelectQuest(), and ItemQuest.SetQuest().

◆ GetDetailText()

virtual string Quest.GetDetailText ( bool  onJournal = false)
inlinevirtual

Reimplemented in QuestCraft, and QuestGuild.

Definition at line 651 of file Quest.cs.

652 {
653 string s = "";
654 Rand.UseSeed(uid, delegate
655 {
656 s = source.GetText("detail").Split(Environment.NewLine.ToCharArray()).RandomItem();
657 });
658 return s.ToTitleCase();
659 }
virtual SourceQuest.Row source
Definition: Quest.cs:107
Definition: Rand.cs:4
static void UseSeed(int seed, Action action)
Definition: Rand.cs:22

References source, uid, and Rand.UseSeed().

Referenced by GetDetail().

◆ GetExtraMoney()

virtual int Quest.GetExtraMoney ( )
inlinevirtual

Reimplemented in QuestDeliver, QuestEscort, and QuestSupplySpecific.

Definition at line 277 of file Quest.cs.

278 {
279 return 0;
280 }

Referenced by Init().

◆ GetRewardPlat()

virtual int Quest.GetRewardPlat ( int  money)
inlinevirtual

Reimplemented in QuestMusic.

Definition at line 282 of file Quest.cs.

283 {
284 return 1 + EClass.rnd(2) + EClass.rndHalf((int)Mathf.Sqrt(money / 200));
285 }
static int rnd(long a)
Definition: EClass.cs:58
static int rndHalf(int a)
Definition: EClass.cs:87

References money, EClass.rnd(), and EClass.rndHalf().

Referenced by QuestRandom.OnDropReward().

◆ GetRewardText()

string Quest.GetRewardText ( )
inline

Definition at line 670 of file Quest.cs.

671 {
672 string result = "-";
673 if (rewardMoney != 0 || this is QuestRandom)
674 {
675 result = ("qReward" + RewardSuffix).lang(rewardMoney.ToString() ?? "");
676 }
677 return result;
678 }
int rewardMoney
Definition: Quest.cs:52
virtual string RewardSuffix
Definition: Quest.cs:151

References rewardMoney, and RewardSuffix.

Referenced by ContentQuest.SelectQuest(), and ItemQuest.SetQuest().

◆ GetTalkComplete()

virtual string Quest.GetTalkComplete ( )
inlinevirtual

Reimplemented in QuestCraft.

Definition at line 685 of file Quest.cs.

686 {
687 return Parse(source.GetText("talkComplete", returnNull: true));
688 }

References Parse(), and source.

◆ GetTalkProgress()

virtual string Quest.GetTalkProgress ( )
inlinevirtual

Reimplemented in QuestCraft.

Definition at line 680 of file Quest.cs.

681 {
682 return Parse(source.GetText("talkProgress", returnNull: true));
683 }

References Parse(), and source.

◆ GetTextProgress()

virtual string Quest.GetTextProgress ( )
inlinevirtual

Reimplemented in QuestCompanion, QuestCraft, QuestDebt, QuestDefense, QuestDefenseGame, QuestDeliver, QuestEscort, QuestHarvest, QuestMusic, QuestSubdue, QuestSupplyCat, and QuestVernis.

Definition at line 661 of file Quest.cs.

662 {
663 if (task != null)
664 {
665 return task.GetTextProgress();
666 }
667 return "";
668 }
virtual string GetTextProgress()
Definition: QuestTask.cs:44

References QuestTask.GetTextProgress(), and task.

Referenced by GetDetail(), QuestProgression.GetDetail(), and GetTrackerText().

◆ GetTitle()

virtual string Quest.GetTitle ( )
inlinevirtual

Reimplemented in QuestSequence, and QuestTrackCraft.

Definition at line 613 of file Quest.cs.

614 {
615 string s = "";
616 Rand.UseSeed(uid, delegate
617 {
618 s = source.GetText().Split(Environment.NewLine.ToCharArray()).RandomItem();
619 });
620 return s;
621 }

References source, uid, and Rand.UseSeed().

Referenced by DramaCustomSequence.Build(), ContentQuest.OnSwitchContent(), ItemQuestTracker.Refresh(), ContentQuest.SelectQuest(), ItemQuest.SetQuest(), ShowCompleteText(), and UpdateJournal().

◆ GetTrackerText()

virtual string Quest.GetTrackerText ( )
inlinevirtual

Reimplemented in QuestGuild.

Definition at line 623 of file Quest.cs.

624 {
625 string text = GetTextProgress();
626 if (text.IsEmpty() && !IsRandomQuest)
627 {
628 text = GetDetail(onJournal: true);
629 }
630 return text;
631 }
virtual bool IsRandomQuest
Definition: Quest.cs:237
virtual string GetDetail(bool onJournal=false)
Definition: Quest.cs:633

References GetDetail(), GetTextProgress(), and IsRandomQuest.

Referenced by ItemQuestTracker.Refresh().

◆ Init()

void Quest.Init ( )
inline

Definition at line 335 of file Quest.cs.

336 {
337 if (RangeDeadLine != 0)
338 {
339 deadline = EClass.world.date.GetRaw() + (36 + EClass.rnd(12)) * 60 + EClass.rnd(RangeDeadLine) * 1440;
340 }
343 isNew = true;
345 switch (difficultyType)
346 {
347 case DifficultyType.Deliver:
348 case DifficultyType.Supply:
349 case DifficultyType.Escort:
350 difficulty = Mathf.Clamp(6 - Hours / 48, 1, 6);
351 break;
352 case DifficultyType.Bulk:
353 difficulty = Mathf.Clamp(EClass.rnd(EClass.rnd(((EClass._zone.branch == null) ? 1 : EClass._zone.branch.lv) + 3)) + 1, 1, 6);
354 break;
355 case DifficultyType.Farm:
356 difficulty = 1 + EClass.rnd(3 + EClass.pc.Evalue(250) / 10);
357 break;
358 case DifficultyType.Music:
359 difficulty = 1 + EClass.rnd(3 + EClass.pc.Evalue(241) / 10);
360 break;
361 default:
362 difficulty = 3 + EClass.rnd(EClass.rnd(4)) - EClass.rnd(4);
363 break;
364 }
365 difficulty = Mathf.Clamp(difficulty, 1, 7);
366 OnInit();
367 if (task != null)
368 {
369 task.OnInit();
370 }
371 int fameLv = EClass.pc.FameLv;
372 dangerLv = Mathf.Max(fameLv + EClass.rnd(fameLv / 10 + 5) - EClass.rnd(fameLv / 10 + 5), 1);
373 rewardMoney = (BaseMoney + EClass.rnd(BaseMoney / 4) + GetExtraMoney()) * (55 + difficulty * 15) / 100;
374 }
int FameLv
Definition: Card.cs:2286
int Evalue(int ele)
Definition: Card.cs:2559
int GetRaw(int offsetHours=0)
Definition: Date.cs:322
static Zone _zone
Definition: EClass.cs:20
static World world
Definition: EClass.cs:40
virtual void OnInit()
Definition: QuestTask.cs:24
virtual void OnInit()
Definition: Quest.cs:376
int Hours
Definition: Quest.cs:124
virtual DifficultyType difficultyType
Definition: Quest.cs:191
int deadline
Definition: Quest.cs:46
virtual int GetExtraMoney()
Definition: Quest.cs:277
int dangerLv
Definition: Quest.cs:61
virtual int BaseMoney
Definition: Quest.cs:173
virtual bool TrackOnStart
Definition: Quest.cs:187
virtual int RangeDeadLine
Definition: Quest.cs:181
bool isNew
Definition: Quest.cs:64
int difficulty
Definition: Quest.cs:49
DifficultyType
Definition: Quest.cs:9
bool track
Definition: Quest.cs:70
GameDate date
Definition: World.cs:6
FactionBranch branch
Definition: Zone.cs:34

References EClass._zone, BaseMoney, Zone.branch, dangerLv, World.date, deadline, difficulty, difficultyType, Card.Evalue(), Card.FameLv, EClass.game, GetExtraMoney(), Date.GetRaw(), Hours, isNew, FactionBranch.lv, OnInit(), QuestTask.OnInit(), EClass.pc, Game.quests, RangeDeadLine, rewardMoney, EClass.rnd(), task, track, TrackOnStart, uid, QuestManager.uid, and EClass.world.

Referenced by Create().

◆ IsDeliverTarget()

virtual bool Quest.IsDeliverTarget ( Chara  c)
inlinevirtual

Reimplemented in QuestDeliver.

Definition at line 696 of file Quest.cs.

697 {
698 return false;
699 }

◆ IsVisibleOnQuestBoard()

virtual bool Quest.IsVisibleOnQuestBoard ( )
inlinevirtual

Definition at line 292 of file Quest.cs.

293 {
295 {
296 return false;
297 }
299 {
300 return false;
301 }
302 if ((chara.IsPCFaction || !(this is QuestRandom)) && !EClass._zone.IsPCFaction)
303 {
304 return false;
305 }
306 if (chara != null && chara.trait is TraitLoytel && chara.currentZone != null && !chara.currentZone.IsPCFaction)
307 {
308 return false;
309 }
310 return true;
311 }
new TraitChara trait
Definition: Chara.cs:501
ConSuspend conSuspend
Definition: Chara.cs:104
override bool IsPCFaction
Definition: Chara.cs:669
Zone currentZone
Definition: Chara.cs:253
int startDate
Definition: Quest.cs:58
virtual bool RequireClientInSameZone
Definition: Quest.cs:189
virtual bool CanStartQuest()
Definition: Quest.cs:313
bool IsPCFaction
Definition: Zone.cs:470

References EClass._zone, CanStartQuest(), chara, Chara.conSuspend, Chara.currentZone, World.date, Date.GetRaw(), Chara.IsAliveInCurrentZone, Chara.IsPCFaction, Zone.IsPCFaction, RequireClientInSameZone, startDate, Chara.trait, and EClass.world.

Referenced by TCExtra.OnDraw(), and LayerQuestBoard.RefreshQuest().

◆ ListDeliver()

static List< Zone > Quest.ListDeliver ( )
inlinestatic

Definition at line 259 of file Quest.cs.

260 {
261 List<Zone> list = new List<Zone>();
262 foreach (Zone zone in EClass.game.spatials.Zones)
263 {
264 if (zone != EClass._zone && zone.IsTown && !zone.IsClosed && !zone.IsPCFaction && zone.dictCitizen.Count > 0 && zone.CanBeDeliverDestination)
265 {
266 list.Add(zone);
267 }
268 }
269 return list;
270 }
SpatialManager spatials
Definition: Game.cs:152
List< Zone > Zones
bool IsClosed
Definition: Spatial.cs:457
virtual bool CanBeDeliverDestination
Definition: Zone.cs:222
virtual bool IsTown
Definition: Zone.cs:220

References EClass._zone, Zone.CanBeDeliverDestination, Zone.dictCitizen, EClass.game, Spatial.IsClosed, Zone.IsPCFaction, Zone.IsTown, Game.spatials, and SpatialManager.Zones.

Referenced by Create(), and Zone.UpdateQuests().

◆ NextPhase()

void Quest.NextPhase ( )
inline

◆ OnBeforeComplete()

virtual void Quest.OnBeforeComplete ( )
inlinevirtual

Reimplemented in QuestDefenseGame, and QuestHarvest.

Definition at line 503 of file Quest.cs.

504 {
505 }

Referenced by Complete().

◆ OnChangePhase()

virtual void Quest.OnChangePhase ( int  a)
inlinevirtual

Reimplemented in QuestDefense, QuestGuildFighter, QuestHome, and QuestVernis.

Definition at line 584 of file Quest.cs.

585 {
586 }

Referenced by ChangePhase().

◆ OnClickQuest()

virtual void Quest.OnClickQuest ( )
inlinevirtual

Definition at line 422 of file Quest.cs.

423 {
424 Chara chara = this.chara;
425 if (chara == null && !source.drama[0].IsEmpty())
426 {
428 }
429 if (!source.drama.IsEmpty())
430 {
431 LayerDrama.currentQuest = this;
432 SoundManager.ForceBGM();
433 chara.ShowDialog(source.drama[0], (source.drama.Length > 1) ? source.drama[1] : ("quest_" + source.id));
434 }
435 else
436 {
437 LayerDrama.currentQuest = this;
438 LayerDrama.forceJump = "_quest";
440 }
441 }
Chara Find(string id)
Definition: CardManager.cs:20
GlobalCharaList globalCharas
Definition: CardManager.cs:46
Definition: Chara.cs:10
void ShowDialog()
Definition: Chara.cs:6920
CardManager cards
Definition: Game.cs:155

References Game.cards, chara, CardManager.GlobalCharaList.Find(), EClass.game, CardManager.globalCharas, Chara.ShowDialog(), and source.

Referenced by LayerQuestBoard.RefreshQuest(), and UpdateOnTalk().

◆ OnComplete()

virtual void Quest.OnComplete ( )
inlinevirtual

Reimplemented in QuestCraft, QuestCurry, QuestIntroInspector, QuestLoytelFarm, QuestNasu, QuestSharedContainer, QuestShippingChest, QuestTax, and QuestVernis.

Definition at line 521 of file Quest.cs.

522 {
523 }

Referenced by Complete().

◆ OnCompleteTask()

virtual void Quest.OnCompleteTask ( )
inlinevirtual

Reimplemented in QuestSequence.

Definition at line 531 of file Quest.cs.

532 {
534 }
void Complete(Quest q)
Definition: QuestManager.cs:98

References QuestManager.Complete(), EClass.game, and Game.quests.

Referenced by CompleteTask().

◆ OnDropReward()

virtual void Quest.OnDropReward ( )
inlinevirtual

Reimplemented in QuestCompanion, QuestCraft, QuestCrafter, QuestDefense, QuestDialog, QuestPuppy, QuestRandom, and QuestTax.

Definition at line 507 of file Quest.cs.

508 {
509 }

Referenced by Complete().

◆ OnEnterZone()

virtual void Quest.OnEnterZone ( )
inlinevirtual

Reimplemented in QuestDeliver, QuestEscort, and QuestVernis.

Definition at line 418 of file Quest.cs.

419 {
420 }

Referenced by QuestManager.OnEnterZone().

◆ OnFail()

virtual void Quest.OnFail ( )
inlinevirtual

Reimplemented in QuestEscort.

Definition at line 463 of file Quest.cs.

464 {
465 }

Referenced by Fail().

◆ OnGiveItem()

virtual void Quest.OnGiveItem ( Chara  c,
Thing  t 
)
inlinevirtual

Definition at line 536 of file Quest.cs.

537 {
538 if (task != null)
539 {
540 task.OnGiveItem(c, t);
541 if (task.IsComplete())
542 {
543 CompleteTask();
544 }
545 }
546 }
virtual void OnGiveItem(Chara c, Thing t)
Definition: QuestTask.cs:36
virtual bool IsComplete()
Definition: QuestTask.cs:19
void CompleteTask()
Definition: Quest.cs:525

References CompleteTask(), QuestTask.IsComplete(), QuestTask.OnGiveItem(), and task.

Referenced by Chara.GiveGift().

◆ OnInit()

virtual void Quest.OnInit ( )
inlinevirtual

Reimplemented in QuestDefenseGame, QuestDeliver, QuestGuildFighter, QuestGuildMerchant, QuestGuildThief, QuestHarvest, QuestHunt, QuestHuntRace, and QuestMusic.

Definition at line 376 of file Quest.cs.

377 {
378 }

Referenced by Init().

◆ OnKillChara()

virtual void Quest.OnKillChara ( Chara  c)
inlinevirtual

Definition at line 548 of file Quest.cs.

549 {
550 if (task != null)
551 {
552 task.OnKillChara(c);
553 if (task.IsComplete())
554 {
555 CompleteTask();
556 }
557 }
558 }
virtual void OnKillChara(Chara c)
Definition: QuestTask.cs:32

References CompleteTask(), QuestTask.IsComplete(), QuestTask.OnKillChara(), and task.

◆ OnModKarma()

virtual void Quest.OnModKarma ( int  a)
inlinevirtual

Definition at line 560 of file Quest.cs.

561 {
562 if (task != null)
563 {
564 task.OnModKarma(a);
565 if (task.IsComplete())
566 {
567 CompleteTask();
568 }
569 }
570 }
virtual void OnModKarma(int a)
Definition: QuestTask.cs:40

References CompleteTask(), QuestTask.IsComplete(), QuestTask.OnModKarma(), and task.

Referenced by Player.ModKarma().

◆ OnStart()

virtual void Quest.OnStart ( )
inlinevirtual

Reimplemented in QuestDebt, QuestDeliver, QuestEscort, QuestExploration, QuestFiamaLock, QuestHuntRace, and QuestIntoDarkness.

Definition at line 414 of file Quest.cs.

415 {
416 }

Referenced by Start().

◆ Parse()

string Quest.Parse ( string  s)
inline

Definition at line 588 of file Quest.cs.

589 {
590 if (s.IsEmpty())
591 {
592 return s;
593 }
594 GameLang.refDrama1 = RefDrama1.TagColor(FontColor.QuestObjective);
595 GameLang.refDrama2 = RefDrama2.TagColor(FontColor.QuestObjective);
596 GameLang.refDrama3 = RefDrama3.TagColor(FontColor.QuestObjective);
597 GameLang.refDrama4 = RefDrama4.TagColor(FontColor.QuestObjective);
598 Rand.UseSeed(uid, delegate
599 {
601 if (chara != null)
602 {
603 s = chara.ApplyTone(s);
604 }
605 else
606 {
608 }
609 });
610 return s;
611 }
FontColor
Definition: FontColor.cs:2
Definition: Card.cs:11
string ApplyTone(string text, bool stripPun=false)
Definition: Card.cs:6736
static string ConvertDrama(string text, Chara c=null)
Definition: GameLang.cs:14
string tones
Definition: Person.cs:17
int gender
Definition: Person.cs:23
virtual string RefDrama2
Definition: Quest.cs:208
Person person
Definition: Quest.cs:73
virtual string RefDrama1
Definition: Quest.cs:196
virtual string RefDrama3
Definition: Quest.cs:220
virtual string RefDrama4
Definition: Quest.cs:231

References Card.ApplyTone(), chara, GameLang.ConvertDrama(), Person.gender, person, RefDrama1, RefDrama2, RefDrama3, RefDrama4, Person.tones, uid, and Rand.UseSeed().

Referenced by GetDetail(), GetTalkComplete(), QuestCraft.GetTalkComplete(), and GetTalkProgress().

◆ SetClient()

Quest Quest.SetClient ( Chara  c,
bool  assignQuest = true 
)
inline

Definition at line 380 of file Quest.cs.

381 {
382 if (c == null)
383 {
384 person = new Person();
385 return this;
386 }
387 if (assignQuest)
388 {
389 c.quest = this;
390 }
391 if (c.currentZone != null)
392 {
394 }
395 person = new Person(c);
396 return this;
397 }
int uidClientZone
Definition: Quest.cs:37
int uid
Definition: Spatial.cs:70

References Chara.currentZone, person, Spatial.uid, and uidClientZone.

Referenced by QuestManager.Add(), QuestManager.AddQuestAsh(), QuestManager.AddQuestFiama(), Create(), QuestDefense.OnChangePhase(), DramaOutcome.OnClaimLand(), QuestCraft.OnComplete(), QuestIntroInspector.OnComplete(), QuestSharedContainer.OnComplete(), QuestDialog.OnDropReward(), QuestExploration.OnStart(), QuestManager.Start(), and Game.StartNewGame().

◆ SetTask()

void Quest.SetTask ( QuestTask  _task)
inline

Definition at line 399 of file Quest.cs.

400 {
401 task = _task;
402 task.SetOwner(this);
403 }
void SetOwner(Quest quest)
Definition: QuestTask.cs:14

References QuestTask.SetOwner(), and task.

Referenced by QuestGuildFighter.OnInit(), QuestGuildMerchant.OnInit(), QuestGuildThief.OnInit(), QuestHunt.OnInit(), and QuestHuntRace.OnInit().

◆ ShowCompleteText()

virtual void Quest.ShowCompleteText ( )
inlinevirtual

Reimplemented in QuestDialog, and QuestNegotiationDarkness.

Definition at line 467 of file Quest.cs.

468 {
469 EClass.Sound.Play("questComplete");
470 Msg.Say("completeQuest", GetTitle());
471 }
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
virtual string GetTitle()
Definition: Quest.cs:613

References GetTitle(), Msg.Say(), and EClass.Sound.

Referenced by Complete().

◆ Start()

void Quest.Start ( )
inline

Definition at line 405 of file Quest.cs.

406 {
407 OnStart();
408 if (task != null)
409 {
410 task.OnStart();
411 }
412 }
virtual void OnStart()
Definition: QuestTask.cs:28
virtual void OnStart()
Definition: Quest.cs:414

References OnStart(), QuestTask.OnStart(), and task.

Referenced by QuestManager.Start().

◆ UpdateJournal()

void Quest.UpdateJournal ( )
inline

Definition at line 690 of file Quest.cs.

691 {
692 SE.WriteJournal();
693 Msg.Say("journalUpdate2", GetTitle());
694 }

References GetTitle(), and Msg.Say().

Referenced by ChangePhase(), QuestCraft.Deliver(), InvOwnerDeliver.PayBill(), and QuestManager.Start().

◆ UpdateOnTalk()

virtual bool Quest.UpdateOnTalk ( )
inlinevirtual

Reimplemented in QuestGuild.

Definition at line 328 of file Quest.cs.

329 {
330 NextPhase();
331 OnClickQuest();
332 return true;
333 }
virtual void OnClickQuest()
Definition: Quest.cs:422
void NextPhase()
Definition: Quest.cs:572

References NextPhase(), and OnClickQuest().

Referenced by QuestVernis.OnEnterZone().

Member Data Documentation

◆ bonusMoney

◆ dangerLv

int Quest.dangerLv

Definition at line 61 of file Quest.cs.

Referenced by Init().

◆ deadline

◆ difficulty

◆ id

◆ isComplete

bool Quest.isComplete

Definition at line 67 of file Quest.cs.

Referenced by Complete().

◆ isNew

bool Quest.isNew

Definition at line 64 of file Quest.cs.

Referenced by Init(), TCExtra.OnDraw(), and ItemQuest.SetQuest().

◆ lv

int Quest.lv

Definition at line 43 of file Quest.cs.

◆ person

◆ phase

◆ PhaseComplete

const int Quest.PhaseComplete = 999
static

Definition at line 28 of file Quest.cs.

◆ refChara

RefChara Quest.refChara = new RefChara()

Definition at line 78 of file Quest.cs.

◆ rewardMoney

int Quest.rewardMoney

◆ startDate

◆ task

◆ track

bool Quest.track

◆ uid

◆ uidClientZone

int Quest.uidClientZone

Definition at line 37 of file Quest.cs.

Referenced by SetClient().

Property Documentation

◆ AffinityGain

virtual int Quest.AffinityGain
get

Definition at line 171 of file Quest.cs.

Referenced by Complete().

◆ BaseMoney

virtual int Quest.BaseMoney
get

Definition at line 173 of file Quest.cs.

Referenced by Init().

◆ CanAbandon

virtual bool Quest.CanAbandon
get

Definition at line 177 of file Quest.cs.

Referenced by ContentQuest.SelectQuest().

◆ CanAutoAdvance

virtual bool Quest.CanAutoAdvance
get

Definition at line 235 of file Quest.cs.

Referenced by ContentQuest.OnSwitchContent().

◆ chara

◆ ClientZone

Zone Quest.ClientZone
get

Definition at line 80 of file Quest.cs.

81 {
82 get
83 {
84 Zone zone;
85 if (chara == null || !chara.IsGlobal || chara.currentZone == null)
86 {
88 if (zone == null)
89 {
90 if (source.idZone.IsEmpty())
91 {
92 return EClass.game.StartZone;
93 }
94 return EClass.game.spatials.Find(source.idZone);
95 }
96 }
97 else
98 {
99 zone = chara.currentZone;
100 }
101 return zone;
102 }
103 }
override bool IsGlobal
Definition: Chara.cs:608
Zone StartZone
Definition: Game.cs:274
static Zone Get(int uid)
Definition: RefZone.cs:3
Zone Find(string id)

Referenced by Complete(), Fail(), and ContentQuest.SelectQuest().

◆ Confetti

bool Quest.Confetti
get

Definition at line 109 of file Quest.cs.

Referenced by Complete().

◆ DangerLv

virtual int Quest.DangerLv
get

Definition at line 169 of file Quest.cs.

◆ DestChara

virtual Chara Quest.DestChara
get

Definition at line 193 of file Quest.cs.

Referenced by Complete().

◆ difficultyType

virtual DifficultyType Quest.difficultyType
get

Definition at line 191 of file Quest.cs.

Referenced by Init().

◆ FameContent

virtual bool Quest.FameContent
get

Definition at line 153 of file Quest.cs.

◆ FameOnComplete

virtual int Quest.FameOnComplete
get

Definition at line 179 of file Quest.cs.

◆ ForbidTeleport

virtual bool Quest.ForbidTeleport
get

Definition at line 185 of file Quest.cs.

◆ HasDLC

virtual bool Quest.HasDLC
get

Definition at line 147 of file Quest.cs.

Referenced by DramaManager.ParseLine().

◆ Hours

int Quest.Hours
get

Definition at line 123 of file Quest.cs.

124 {
125 get
126 {
127 if (deadline != 0)
128 {
130 }
131 return -1;
132 }
133 }
int GetRemainingHours(int rawDeadLine)
Definition: Date.cs:337

Referenced by Init(), QuestManager.Remove(), and ItemQuest.SetQuest().

◆ idSource

virtual string Quest.idSource
get

Definition at line 149 of file Quest.cs.

◆ IsExpired

bool Quest.IsExpired
get

Definition at line 111 of file Quest.cs.

112 {
113 get
114 {
115 if (deadline <= 0 || Hours >= 0)
116 {
117 return isComplete;
118 }
119 return true;
120 }
121 }

Referenced by QuestManager.OnAdvanceHour().

◆ IsRandomQuest

virtual bool Quest.IsRandomQuest
get

◆ KarmaOnFail

virtual int Quest.KarmaOnFail
get

Definition at line 175 of file Quest.cs.

Referenced by Fail().

◆ NameDeliver

virtual string Quest.NameDeliver
get

Definition at line 239 of file Quest.cs.

◆ RangeDeadLine

virtual int Quest.RangeDeadLine
get

Definition at line 181 of file Quest.cs.

Referenced by Init().

◆ RefDrama1

virtual string Quest.RefDrama1
get

Definition at line 195 of file Quest.cs.

196 {
197 get
198 {
199 if (task == null)
200 {
201 return "";
202 }
203 return task.RefDrama1;
204 }
205 }
virtual string RefDrama1
Definition: QuestTask.cs:8

Referenced by Parse().

◆ RefDrama2

virtual string Quest.RefDrama2
get

Definition at line 207 of file Quest.cs.

208 {
209 get
210 {
211 if (task == null)
212 {
213 return "";
214 }
215 return task.RefDrama2;
216 }
217 }
virtual string RefDrama2
Definition: QuestTask.cs:10

Referenced by Parse().

◆ RefDrama3

virtual string Quest.RefDrama3
get

Definition at line 219 of file Quest.cs.

220 {
221 get
222 {
223 if (task == null)
224 {
225 return "";
226 }
227 return task.RefDrama3;
228 }
229 }
virtual string RefDrama3
Definition: QuestTask.cs:12

Referenced by Parse().

◆ RefDrama4

virtual string Quest.RefDrama4
get

Definition at line 231 of file Quest.cs.

Referenced by Parse().

◆ RequireClientInSameZone

virtual bool Quest.RequireClientInSameZone
get

Definition at line 189 of file Quest.cs.

Referenced by IsVisibleOnQuestBoard().

◆ RewardSuffix

virtual string Quest.RewardSuffix
get

Definition at line 151 of file Quest.cs.

Referenced by GetRewardText().

◆ source

◆ TextDeadline

string Quest.TextDeadline
get

Definition at line 135 of file Quest.cs.

136 {
137 get
138 {
139 if (deadline != 0)
140 {
141 return Date.GetText((Hours >= 0) ? Hours : 0);
142 }
143 return "dateDayVoid".lang();
144 }
145 }
Definition: Date.cs:4
string GetText(TextFormat format)
Definition: Date.cs:245

Referenced by ContentQuest.OnSwitchContent(), ItemQuestTracker.Refresh(), and ContentQuest.SelectQuest().

◆ TextExtra

virtual string Quest.TextExtra
get

Definition at line 155 of file Quest.cs.

Referenced by ItemQuest.SetQuest().

◆ TextExtra2

virtual string Quest.TextExtra2
get

Definition at line 157 of file Quest.cs.

158 {
159 get
160 {
161 if (!FameContent)
162 {
163 return null;
164 }
165 return "dangerLv".lang(DangerLv.ToString() ?? "");
166 }
167 }
virtual int DangerLv
Definition: Quest.cs:169
virtual bool FameContent
Definition: Quest.cs:153

Referenced by QuestDeliver.GetTextProgress(), and ItemQuest.SetQuest().

◆ TitlePrefix

virtual string Quest.TitlePrefix
get

Definition at line 233 of file Quest.cs.

Referenced by ContentQuest.OnSwitchContent(), and ItemQuest.SetQuest().

◆ TrackOnStart

virtual bool Quest.TrackOnStart
get

Definition at line 187 of file Quest.cs.

Referenced by Init().

◆ UseInstanceZone

virtual bool Quest.UseInstanceZone
get

Definition at line 183 of file Quest.cs.

Referenced by ItemQuestTracker.Refresh().


The documentation for this class was generated from the following file: