Elin Decompiled Documentation EA 23.301 Nightly
Loading...
Searching...
No Matches
ZonePreEnterEncounter Class Reference
Inheritance diagram for ZonePreEnterEncounter:
ZonePreEnterEvent EClass

Public Member Functions

override void Execute ()
 
virtual void Execute ()
 

Public Attributes

int enemies
 
int roadDist
 
Chara mob
 

Additional Inherited Members

- 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 (long _a, int start, int step, int rate=75)
 
static int sqrt (int a)
 
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)
 
- Static Public Attributes inherited from EClass
static Core core
 
- 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 5 of file ZonePreEnterEncounter.cs.

Member Function Documentation

◆ Execute()

override void ZonePreEnterEncounter.Execute ( )
inlinevirtual

Reimplemented from ZonePreEnterEvent.

Definition at line 13 of file ZonePreEnterEncounter.cs.

14 {
15 bool flag = EClass.pc.HasCondition<ConDrawMetal>();
16 int lv = Mathf.Max(EClass._zone.DangerLv, EClass.pc.FameLv * Math.Min(roadDist * 20, 100) / 100);
17 if (mob != null)
18 {
19 List<Chara> list = new List<Chara>();
20 Chara leader = null;
22 {
23 lv = Mathf.Max(20, EClass.pc.FameLv * 2);
24 Point randomPointInRadius = EClass.pc.pos.GetRandomPointInRadius(2, 5, requireLos: false, allowChara: false);
25 for (int i = 0; i < EClass.rndHalf(12); i++)
26 {
27 Point randomPointInRadius2 = randomPointInRadius.GetRandomPointInRadius(1, 4, requireLos: false, allowChara: false);
28 if (randomPointInRadius2 != null)
29 {
30 Chara chara = null;
31 if (i == 0)
32 {
33 chara = (leader = EClass._zone.SpawnMob(randomPointInRadius2, SpawnSetting.TravelMerchant(mob.id, lv)));
34 }
35 else
36 {
37 string[] source = new string[5] { "merc", "merc_archer", "merc_mage", "merc_warrior", "dog_hound" };
38 chara = EClass._zone.SpawnMob(randomPointInRadius2, SpawnSetting.Mob(source.RandomItem(), null, lv * 2 / 3));
39 Chara chara2 = chara;
40 Hostility hostility2 = (chara.c_originalHostility = Hostility.Neutral);
41 chara2.hostility = hostility2;
42 chara.MakeMinion(leader);
43 }
44 list.Add(chara);
45 }
46 }
47 leader.ShowDialog();
48 }
49 else
50 {
51 float num = Mathf.Clamp(EClass.pc.FameLv + 8, 8f, Mathf.Min(24f + Mathf.Sqrt(EClass.pc.FameLv), 100f));
52 for (int j = 0; j < EClass.rndHalf((int)num); j++)
53 {
54 Point randomPointInRadius3 = EClass.pc.pos.GetRandomPointInRadius(2, 5, requireLos: false, allowChara: false);
55 if (randomPointInRadius3 != null)
56 {
57 bool flag2 = EClass.rnd(5) == 0;
58 Chara chara3 = EClass._zone.SpawnMob(randomPointInRadius3, SpawnSetting.Mob(mob.id, (mob.MainElement == Element.Void) ? null : mob.MainElement.source.alias.Substring(3), -1, (!flag2 && EClass.player.HasKeyItem("license_adv")) ? EClass.rndHalf(EClass.pc.FameLv) : 0));
59 Hostility hostility2 = (chara3.c_originalHostility = Hostility.Enemy);
60 chara3.hostility = hostility2;
61 chara3.enemy = EClass.pc.party.members.RandomItem();
62 leader = chara3;
63 if (flag2)
64 {
66 }
67 list.Add(chara3);
68 }
69 }
70 if (leader != null)
71 {
72 List<Thing> list2 = EClass.pc.things.List(delegate(Thing t)
73 {
74 if (t.Num >= 10)
75 {
76 return false;
77 }
78 return t.trait.CanBeDestroyed && t.things.Count == 0 && t.invY != 1 && t.trait.CanBeStolen && !t.trait.CanOnlyCarry && !t.IsUnique && !t.isEquipped;
79 }, onlyAccessible: true);
80 Thing t2 = ((list2.Count > 0) ? list2.RandomItem() : null);
81 if (t2 == null)
82 {
83 GameLang.refDrama1 = (GameLang.refDrama2 = "mobPity".lang());
84 }
85 else
86 {
87 GameLang.refDrama1 = t2.NameSimple;
88 GameLang.refDrama2 = t2.Name;
89 }
90 LayerDrama.refAction1 = delegate
91 {
92 foreach (Chara item in list)
93 {
94 item.ShowEmo(Emo.angry);
95 if (EClass.rnd(6) == 0)
96 {
97 item.Talk((EClass.rnd(5) == 0) ? "rumor_bad" : ((EClass.rnd(5) == 0) ? "callGuards" : "disgust"));
98 }
99 }
100 };
101 LayerDrama.refAction2 = delegate
102 {
103 if (t2 != null)
104 {
105 leader.AddCard(t2);
106 }
107 foreach (Chara item2 in list)
108 {
109 if (EClass.rnd(6) == 0)
110 {
111 item2.Talk((EClass.rnd(5) == 0) ? "rumor_good" : ((EClass.rnd(3) == 0) ? "thanks3" : "thanks"));
112 }
113 item2.ShowEmo(Emo.happy);
114 Hostility hostility6 = (item2.c_originalHostility = Hostility.Neutral);
115 item2.hostility = hostility6;
116 item2.enemy = null;
117 }
119 };
120 leader.ShowDialog("_chara", "encounter_mob");
121 }
122 }
123 }
124 else
125 {
126 for (int k = 0; k < enemies; k++)
127 {
128 Point nearestPoint = (EClass.pc.pos.GetRandomPoint(4) ?? EClass.pc.pos).GetNearestPoint(allowBlock: false, allowChara: false);
129 Chara chara4 = EClass._zone.SpawnMob(nearestPoint, SpawnSetting.Encounter(lv));
130 Hostility hostility2 = (chara4.c_originalHostility = Hostility.Enemy);
131 chara4.hostility = hostility2;
132 chara4.enemy = EClass.pc.party.members.RandomItem();
133 }
134 }
135 if (flag && EClass.rnd(EClass.debug.enable ? 1 : 3) == 0)
136 {
137 Point nearestPoint2 = (EClass.pc.pos.GetRandomPoint(4) ?? EClass.pc.pos).GetNearestPoint(allowBlock: false, allowChara: false);
138 SpawnList list3 = SpawnListChara.Get("c_metal", (SourceChara.Row s) => s.race == "metal");
140 }
141 if ((EClass._zone.Tile.isRoad || EClass._zone.Tile.IsNeighborRoad) && EClass.rnd(2) == 0)
142 {
143 Point nearestPoint3 = (EClass.pc.pos.GetRandomPoint(4) ?? EClass.pc.pos).GetNearestPoint(allowBlock: false, allowChara: false);
144 EClass._zone.AddCard(CharaGen.Create("guard"), nearestPoint3);
145 }
146 }
Emo
Definition: Emo.cs:2
Hostility
Definition: Hostility.cs:2
int FameLv
Definition: Card.cs:2340
string id
Definition: Card.cs:36
Card AddCard(Card c)
Definition: Card.cs:3168
void Talk(string idTopic, string ref1=null, string ref2=null, bool forceSync=false)
Definition: Card.cs:7007
string Name
Definition: Card.cs:2179
Point pos
Definition: Card.cs:60
void ShowEmo(Emo _emo=Emo.none, float duration=0f, bool skipSame=true)
Definition: Card.cs:6415
ThingContainer things
Definition: Card.cs:39
string NameSimple
Definition: Card.cs:2181
int Num
Definition: Card.cs:161
static Chara CreateFromFilter(string id, int lv=-1, int levelRange=-1)
Definition: CharaGen.cs:22
static Chara Create(string id, int lv=-1)
Definition: CharaGen.cs:17
Definition: Chara.cs:10
Element MainElement
Definition: Chara.cs:731
new TraitChara trait
Definition: Chara.cs:505
void ShowDialog()
Definition: Chara.cs:7214
Party party
Definition: Chara.cs:43
bool HasCondition(string alias)
Definition: Chara.cs:9633
void MakeMinion(Chara _master, MinionType type=MinionType.Default)
Definition: Chara.cs:2402
bool enable
Definition: CoreDebug.cs:301
Definition: EClass.cs:6
static Zone _zone
Definition: EClass.cs:21
static int rnd(long a)
Definition: EClass.cs:59
static int rndHalf(int a)
Definition: EClass.cs:97
static Player player
Definition: EClass.cs:13
static Chara pc
Definition: EClass.cs:15
static CoreDebug debug
Definition: EClass.cs:49
SourceElement.Row source
Definition: ELEMENT.cs:278
static Element Void
Definition: ELEMENT.cs:243
List< Chara > members
Definition: Party.cs:19
void ModKarma(int a)
Definition: Player.cs:2610
bool HasKeyItem(string alias)
Definition: Player.cs:2235
Definition: Point.cs:9
Point GetRandomPointInRadius(int minRadius, int maxRadius, bool requireLos=true, bool allowChara=true, bool allowBlocked=false, int tries=2000)
Definition: Point.cs:783
Point GetRandomPoint(int radius, bool requireLos=true, bool allowChara=true, bool allowBlocked=false, int tries=100)
Definition: Point.cs:769
EloMap.TileInfo Tile
Definition: Spatial.cs:530
static SpawnList Get(string id, Func< SourceChara.Row, bool > func)
static SpawnSetting Encounter(int lv)
Definition: SpawnSetting.cs:76
static SpawnSetting Mob(string id, string idEle=null, int fixedLv=-1, int addLv=0)
Definition: SpawnSetting.cs:85
static SpawnSetting TravelMerchant(string id, int fixedLv=-1)
Definition: SpawnSetting.cs:96
List< Thing > List(Func< Thing, bool > func, bool onlyAccessible=false)
Definition: Thing.cs:8
bool isEquipped
Definition: Thing.cs:17
static void MakeBaby(Chara c, int baby)
Chara SpawnMob(string id, Point pos=null)
Definition: Zone.cs:2805
override int DangerLv
Definition: Zone.cs:110
Card AddCard(Card t, Point point)
Definition: Zone.cs:2017

References EClass._zone, Card.AddCard(), Zone.AddCard(), CharaGen.Create(), CharaGen.CreateFromFilter(), Zone.DangerLv, EClass.debug, CoreDebug.enable, SpawnSetting.Encounter(), enemies, Card.FameLv, SpawnListChara.Get(), Point.GetRandomPoint(), Point.GetRandomPointInRadius(), Chara.HasCondition(), Player.HasKeyItem(), Card.id, Thing.isEquipped, item, ThingContainer.List(), Chara.MainElement, TraitFoodEggFertilized.MakeBaby(), Chara.MakeMinion(), Party.members, SpawnSetting.Mob(), mob, Player.ModKarma(), Card.Name, Card.NameSimple, Card.Num, Chara.party, EClass.pc, EClass.player, Card.pos, EClass.rnd(), EClass.rndHalf(), roadDist, Chara.ShowDialog(), Card.ShowEmo(), Element.source, Zone.SpawnMob(), Card.Talk(), Card.things, Spatial.Tile, Chara.trait, SpawnSetting.TravelMerchant(), and Element.Void.

Member Data Documentation

◆ enemies

int ZonePreEnterEncounter.enemies

Definition at line 7 of file ZonePreEnterEncounter.cs.

Referenced by Execute().

◆ mob

Chara ZonePreEnterEncounter.mob

Definition at line 11 of file ZonePreEnterEncounter.cs.

Referenced by Execute().

◆ roadDist

int ZonePreEnterEncounter.roadDist

Definition at line 9 of file ZonePreEnterEncounter.cs.

Referenced by Execute().


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