Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
Quest Class Reference
Inheritance diagram for Quest:
EClass QuestCraft QuestDummy QuestLumiest QuestRandom QuestSequence QuestTrackCraft QuestDestZone QuestHunt QuestInstance QuestCursedManor QuestGuild QuestHome QuestMain 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 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 701 of file Quest.cs.

702 {
703 return false;
704 }

◆ CanDeliverToClient()

virtual bool Quest.CanDeliverToClient ( Chara  c)
inlinevirtual

Reimplemented in QuestCraft, and QuestDeliver.

Definition at line 696 of file Quest.cs.

697 {
698 return false;
699 }

◆ 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 468 of file Quest.cs.

469 {
471 EClass.game.quests.Remove(this);
473 EClass.game.quests.completedTypes.Add(GetType().ToString());
475 OnDropReward();
476 if (Confetti)
477 {
478 EClass.Sound.Play("confetti");
479 ScreenEffect.Play("Firework");
480 }
481 if (chara != null && chara.quest != null && chara.quest.uid == uid)
482 {
483 chara.quest = null;
484 }
486 {
488 }
489 if (ClientZone != null)
490 {
492 }
493 OnComplete();
495 isComplete = true;
496 }
override bool IsAliveInCurrentZone
Definition: Chara.cs:546
void ModAffinity(Chara c, int a, bool show=true, bool showOnlyEmo=false)
Definition: Chara.cs:7166
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:2289
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:498
int uid
Definition: Quest.cs:34
virtual void OnDropReward()
Definition: Quest.cs:502
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:462
bool Confetti
Definition: Quest.cs:109
virtual void OnComplete()
Definition: Quest.cs:516
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 520 of file Quest.cs.

521 {
523 task = null;
524 }
virtual void OnCompleteTask()
Definition: Quest.cs:526
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 706 of file Quest.cs.

707 {
708 return false;
709 }

◆ DropReward() [1/2]

Thing Quest.DropReward ( string  id)
inline

◆ DropReward() [2/2]

Thing Quest.DropReward ( Thing  t)
inline

Definition at line 511 of file Quest.cs.

512 {
513 return EClass.player.DropReward(t);
514 }
Thing DropReward(Thing t, bool silent=false)
Definition: Player.cs:2320

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 438 of file Quest.cs.

439 {
440 EClass.Sound.Play("questFail");
441 if (!(this is QuestTrackCraft))
442 {
443 EClass.player.ModFame(-10 - (int)((float)EClass.player.fame * 0.05f));
445 }
446 EClass.game.quests.Remove(this);
447 if (chara != null && chara.quest != null && chara.quest.uid == uid)
448 {
449 chara.quest = null;
450 }
451 if (ClientZone != null)
452 {
454 }
455 OnFail();
456 }
void ModFame(int a)
Definition: Player.cs:1879
int fame
Definition: Player.cs:688
virtual void OnFail()
Definition: Quest.cs:458
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 628 of file Quest.cs.

629 {
630 string detail = Parse(GetDetailText(onJournal));
631 if (onJournal)
632 {
633 string textProgress = GetTextProgress();
634 if (!textProgress.IsEmpty())
635 {
636 detail = detail + "\n\n" + textProgress;
637 }
638 }
639 if (task != null)
640 {
641 task.OnGetDetail(ref detail, onJournal);
642 }
643 return GameLang.Convert(detail);
644 }
static string Convert(string text)
Definition: GameLang.cs:106
virtual void OnGetDetail(ref string detail, bool onJournal)
Definition: QuestTask.cs:49
virtual string GetDetailText(bool onJournal=false)
Definition: Quest.cs:646
string Parse(string s)
Definition: Quest.cs:583
virtual string GetTextProgress()
Definition: Quest.cs:656

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 646 of file Quest.cs.

647 {
648 string s = "";
649 Rand.UseSeed(uid, delegate
650 {
651 s = source.GetText("detail").Split(Environment.NewLine.ToCharArray()).RandomItem();
652 });
653 return s.ToTitleCase();
654 }
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(int a)
Definition: EClass.cs:50
static int rndHalf(int a)
Definition: EClass.cs:74

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

Referenced by QuestRandom.OnDropReward().

◆ GetRewardText()

string Quest.GetRewardText ( )
inline

Definition at line 665 of file Quest.cs.

666 {
667 string result = "-";
668 if (rewardMoney != 0 || this is QuestRandom)
669 {
670 result = ("qReward" + RewardSuffix).lang(rewardMoney.ToString() ?? "");
671 }
672 return result;
673 }
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 680 of file Quest.cs.

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

References Parse(), and source.

◆ GetTalkProgress()

virtual string Quest.GetTalkProgress ( )
inlinevirtual

Reimplemented in QuestCraft.

Definition at line 675 of file Quest.cs.

676 {
677 return Parse(source.GetText("talkProgress", returnNull: true));
678 }

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 656 of file Quest.cs.

657 {
658 if (task != null)
659 {
660 return task.GetTextProgress();
661 }
662 return "";
663 }
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 608 of file Quest.cs.

609 {
610 string s = "";
611 Rand.UseSeed(uid, delegate
612 {
613 s = source.GetText().Split(Environment.NewLine.ToCharArray()).RandomItem();
614 });
615 return s;
616 }

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 618 of file Quest.cs.

619 {
620 string text = GetTextProgress();
621 if (text.IsEmpty() && !IsRandomQuest)
622 {
623 text = GetDetail(onJournal: true);
624 }
625 return text;
626 }
virtual bool IsRandomQuest
Definition: Quest.cs:237
virtual string GetDetail(bool onJournal=false)
Definition: Quest.cs:628

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:2158
int Evalue(int ele)
Definition: Card.cs:2431
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 691 of file Quest.cs.

692 {
693 return false;
694 }

◆ 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:488
ConSuspend conSuspend
Definition: Chara.cs:101
override bool IsPCFaction
Definition: Chara.cs:656
Zone currentZone
Definition: Chara.cs:240
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:464

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:445
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

Definition at line 567 of file Quest.cs.

568 {
569 ChangePhase(phase + 1);
570 }
void ChangePhase(int a)
Definition: Quest.cs:572

References ChangePhase(), and phase.

Referenced by DramaOutcome.guild_mageTrial(), QuestSequence.OnCompleteTask(), ContentQuest.OnSwitchContent(), DramaOutcome.poppy_found(), and UpdateOnTalk().

◆ OnBeforeComplete()

virtual void Quest.OnBeforeComplete ( )
inlinevirtual

Reimplemented in QuestDefenseGame, and QuestHarvest.

Definition at line 498 of file Quest.cs.

499 {
500 }

Referenced by Complete().

◆ OnChangePhase()

virtual void Quest.OnChangePhase ( int  a)
inlinevirtual

Reimplemented in QuestDefense, QuestGuildFighter, QuestHome, and QuestVernis.

Definition at line 579 of file Quest.cs.

580 {
581 }

Referenced by ChangePhase().

◆ OnClickQuest()

virtual void Quest.OnClickQuest ( )
inlinevirtual

Definition at line 422 of file Quest.cs.

423 {
424 if (!source.drama.IsEmpty())
425 {
426 LayerDrama.currentQuest = this;
427 SoundManager.ForceBGM();
428 chara.ShowDialog(source.drama[0], (source.drama.Length > 1) ? source.drama[1] : ("quest_" + source.id));
429 }
430 else
431 {
432 LayerDrama.currentQuest = this;
433 LayerDrama.forceJump = "_quest";
435 }
436 }
void ShowDialog()
Definition: Chara.cs:6368

References chara, Chara.ShowDialog(), and source.

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

◆ OnComplete()

virtual void Quest.OnComplete ( )
inlinevirtual

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

Definition at line 516 of file Quest.cs.

517 {
518 }

Referenced by Complete().

◆ OnCompleteTask()

virtual void Quest.OnCompleteTask ( )
inlinevirtual

Reimplemented in QuestSequence.

Definition at line 526 of file Quest.cs.

527 {
529 }
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 502 of file Quest.cs.

503 {
504 }

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 458 of file Quest.cs.

459 {
460 }

Referenced by Fail().

◆ OnGiveItem()

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

Definition at line 531 of file Quest.cs.

532 {
533 if (task != null)
534 {
535 task.OnGiveItem(c, t);
536 if (task.IsComplete())
537 {
538 CompleteTask();
539 }
540 }
541 }
virtual void OnGiveItem(Chara c, Thing t)
Definition: QuestTask.cs:36
virtual bool IsComplete()
Definition: QuestTask.cs:19
void CompleteTask()
Definition: Quest.cs:520

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 543 of file Quest.cs.

544 {
545 if (task != null)
546 {
547 task.OnKillChara(c);
548 if (task.IsComplete())
549 {
550 CompleteTask();
551 }
552 }
553 }
virtual void OnKillChara(Chara c)
Definition: QuestTask.cs:32

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

Referenced by Card.DamageHP().

◆ OnModKarma()

virtual void Quest.OnModKarma ( int  a)
inlinevirtual

Definition at line 555 of file Quest.cs.

556 {
557 if (task != null)
558 {
559 task.OnModKarma(a);
560 if (task.IsComplete())
561 {
562 CompleteTask();
563 }
564 }
565 }
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 583 of file Quest.cs.

584 {
585 if (s.IsEmpty())
586 {
587 return s;
588 }
589 GameLang.refDrama1 = RefDrama1.TagColor(FontColor.QuestObjective);
590 GameLang.refDrama2 = RefDrama2.TagColor(FontColor.QuestObjective);
591 GameLang.refDrama3 = RefDrama3.TagColor(FontColor.QuestObjective);
592 GameLang.refDrama4 = RefDrama4.TagColor(FontColor.QuestObjective);
593 Rand.UseSeed(uid, delegate
594 {
596 if (chara != null)
597 {
598 s = chara.ApplyTone(s);
599 }
600 else
601 {
603 }
604 });
605 return s;
606 }
FontColor
Definition: FontColor.cs:2
Definition: Card.cs:11
string ApplyTone(string text, bool stripPun=false)
Definition: Card.cs:6092
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.

Definition at line 462 of file Quest.cs.

463 {
464 EClass.Sound.Play("questComplete");
465 Msg.Say("completeQuest", GetTitle());
466 }
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:608

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 685 of file Quest.cs.

686 {
687 SE.WriteJournal();
688 Msg.Say("journalUpdate2", GetTitle());
689 }

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:567

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:595
Zone StartZone
Definition: Game.cs:269
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: