Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
ZoneEventSiege.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using Newtonsoft.Json;
3
5{
6 [JsonProperty]
7 public List<int> uids = new List<int>();
8
9 public List<Chara> members = new List<Chara>();
10
11 public override string id => "trial_siege";
12
13 public override Playlist playlist => EClass.Sound.playlistBattle;
14
15 public virtual Chara CreateChara()
16 {
17 return CharaGen.CreateFromFilter("c_wilds");
18 }
19
20 public override void OnFirstTick()
21 {
23 Msg.Say("startSiege");
25 Point randomEdge = EClass._map.GetRandomEdge();
26 for (int i = 0; i < 10; i++)
27 {
28 Chara chara = CreateChara();
29 EClass._zone.AddCard(chara, EClass._map.GetRandomSurface(randomEdge.x, randomEdge.z, 6));
30 chara.hostility = Hostility.Enemy;
31 members.Add(chara);
32 uids.Add(chara.uid);
33 }
34 Thing t = ThingGen.Create("torch");
35 EClass._zone.AddCard(t, randomEdge);
36 if (members.Count != 0)
37 {
38 return;
39 }
40 foreach (int uid in uids)
41 {
42 foreach (Chara chara2 in EClass._map.charas)
43 {
44 if (chara2.uid == uid)
45 {
46 members.Add(chara2);
47 }
48 }
49 }
50 }
51
52 public override void OnTickRound()
53 {
54 bool flag = true;
55 foreach (Chara member in members)
56 {
57 if (member.IsAliveInCurrentZone)
58 {
59 if (member.ai is GoalIdle)
60 {
61 member.SetAI(new GoalSiege());
62 }
63 flag = false;
64 }
65 }
66 if (flag || EClass.Branch.IsAllDead())
67 {
68 Kill();
69 }
70 }
71
72 public override void OnKill()
73 {
74 Msg.Say("endSiege");
76 }
77}
Hostility
Definition: Hostility.cs:2
int uid
Definition: Card.cs:118
static Chara CreateFromFilter(string id, int lv=-1, int levelRange=-1)
Definition: CharaGen.cs:22
Definition: Chara.cs:10
override bool IsAliveInCurrentZone
Definition: Chara.cs:546
AIAct ai
Definition: Chara.cs:187
AIAct SetAI(AIAct g)
Definition: Chara.cs:8045
Definition: EClass.cs:5
static Zone _zone
Definition: EClass.cs:20
static Map _map
Definition: EClass.cs:18
static FactionBranch Branch
Definition: EClass.cs:22
static Player player
Definition: EClass.cs:12
static SoundManager Sound
Definition: EClass.cs:46
Point GetRandomSurface(int x, int z, int radius, bool walkable=true, bool allowWater=false)
Definition: MapBounds.cs:182
new Point GetRandomEdge(int r=3)
Definition: Map.cs:2211
List< Chara > charas
Definition: Map.cs:81
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
int sieges
Definition: Player.cs:72
Stats stats
Definition: Player.cs:817
Definition: Point.cs:9
int x
Definition: Point.cs:36
int z
Definition: Point.cs:39
static Thing Create(string id, int idMat=-1, int lv=-1)
Definition: ThingGen.cs:53
Definition: Thing.cs:8
override void OnTickRound()
List< Chara > members
override Playlist playlist
virtual Chara CreateChara()
override void OnKill()
List< int > uids
override void OnFirstTick()
void Kill()
Definition: ZoneEvent.cs:115
void RefreshBGM()
Definition: Zone.cs:2742
Card AddCard(Card t, Point point)
Definition: Zone.cs:1893