Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
ZoneEventQuest.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using Newtonsoft.Json;
3
5{
6 [JsonProperty]
7 public int uidQuest;
8
9 [JsonProperty]
10 public List<int> enemies = new List<int>();
11
13
14 public virtual bool WarnBoss => true;
15
16 public virtual bool CountEnemy => false;
17
18 public virtual int TimeLimit => -1;
19
20 public void Spawn(int num = 1)
21 {
22 for (int i = 0; i < num; i++)
23 {
24 Point nearestPoint = EClass._map.bounds.GetRandomEdge().GetNearestPoint(allowBlock: false, allowChara: false);
26 Hostility hostility2 = (chara.c_originalHostility = Hostility.Enemy);
27 chara.hostility = hostility2;
28 if (CountEnemy)
29 {
30 enemies.Add(chara.uid);
31 }
32 }
33 }
34
35 public void SpawnBoss(bool evolve = false)
36 {
37 Point nearestPoint = EClass._map.bounds.GetRandomEdge().GetNearestPoint(allowBlock: false, allowChara: false);
38 Chara chara = (evolve ? EClass._zone.TryGenerateEvolved(force: true, nearestPoint) : EClass._zone.SpawnMob(nearestPoint, SpawnSetting.Boss(EClass._zone.DangerLv)));
39 Hostility hostility2 = (chara.c_originalHostility = Hostility.Enemy);
40 chara.hostility = hostility2;
41 if (CountEnemy)
42 {
43 enemies.Add(chara.uid);
44 }
45 if (WarnBoss)
46 {
47 Msg.Say("defense_boss", chara.Name);
49 }
50 }
51
52 public void AggroEnemy(int chance = 100)
53 {
54 foreach (Chara chara in EClass._map.charas)
55 {
56 if (!chara.IsPCFactionOrMinion && !chara.IsInCombat && EClass.rnd(100) <= chance)
57 {
58 chara.SetEnemy(EClass.pc.party.members.RandomItem());
59 chara.SetAIAggro();
60 }
61 }
62 }
63
64 public sealed override void OnTickRound()
65 {
67 if (TimeLimit != -1 && minElapsed >= TimeLimit)
68 {
69 EClass._zone.instance.status = OnReachTimeLimit();
70 EClass.game.Pause(delegate
71 {
73 });
74 }
75 }
76
77 public virtual void _OnTickRound()
78 {
79 }
80
82 {
83 return ZoneInstance.Status.Running;
84 }
85}
Hostility
Definition: Hostility.cs:2
bool IsPCFactionOrMinion
Definition: Card.cs:2132
string Name
Definition: Card.cs:2013
int uid
Definition: Card.cs:118
Definition: Chara.cs:10
Party party
Definition: Chara.cs:43
bool IsInCombat
Definition: Chara.cs:817
void SetAIAggro()
Definition: Chara.cs:8035
Chara SetEnemy(Chara c=null)
Definition: Chara.cs:5658
void MoveZone(string alias)
Definition: Chara.cs:3010
Definition: EClass.cs:5
static Game game
Definition: EClass.cs:8
static int rnd(int a)
Definition: EClass.cs:50
static Zone _zone
Definition: EClass.cs:20
static Map _map
Definition: EClass.cs:18
static Chara pc
Definition: EClass.cs:14
void Pause(Action onUnpause=null)
Definition: Game.cs:1052
QuestManager quests
Definition: Game.cs:179
Point GetRandomEdge(int r=3)
Definition: MapBounds.cs:221
List< Chara > charas
Definition: Map.cs:81
MapBounds bounds
Definition: Map.cs:52
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
List< Chara > members
Definition: Party.cs:18
Definition: Point.cs:9
Point GetNearestPoint(bool allowBlock=false, bool allowChara=true, bool allowInstalled=true, bool ignoreCenter=false)
Definition: Point.cs:595
Quest Get(string id)
Definition: Quest.cs:7
Spatial parent
Definition: Spatial.cs:10
static SpawnSetting Boss(int filterLv, int fixedLv=-1)
Definition: SpawnSetting.cs:45
static SpawnSetting DefenseEnemy(int lv)
virtual bool CountEnemy
virtual bool WarnBoss
List< int > enemies
sealed override void OnTickRound()
virtual void _OnTickRound()
virtual ZoneInstance.Status OnReachTimeLimit()
virtual int TimeLimit
void AggroEnemy(int chance=100)
void SpawnBoss(bool evolve=false)
void Spawn(int num=1)
int minElapsed
Definition: ZoneEvent.cs:15
Definition: Zone.cs:12
Chara TryGenerateEvolved(bool force=false, Point p=null)
Definition: Zone.cs:2436
Chara SpawnMob(Point pos=null, SpawnSetting setting=null)
Definition: Zone.cs:2543
override int DangerLv
Definition: Zone.cs:107