Elin Decompiled Documentation EA 23.102 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 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)
 
- 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;
21 float num = Mathf.Clamp(EClass.pc.FameLv + 8, 8f, 24f + Mathf.Sqrt(EClass.pc.FameLv));
22 for (int i = 0; i < EClass.rndHalf((int)num); i++)
23 {
24 Point randomPointInRadius = EClass.pc.pos.GetRandomPointInRadius(2, 5, requireLos: false, allowChara: false);
25 if (randomPointInRadius != null)
26 {
27 Chara chara = EClass._zone.SpawnMob(randomPointInRadius, SpawnSetting.Mob(mob.id, (mob.MainElement == Element.Void) ? null : mob.MainElement.source.alias.Substring(3)));
28 Hostility hostility2 = (chara.c_originalHostility = Hostility.Enemy);
29 chara.hostility = hostility2;
30 chara.enemy = EClass.pc.party.members.RandomItem();
31 leader = chara;
32 if (EClass.rnd(5) == 0)
33 {
35 }
36 list.Add(chara);
37 }
38 }
39 if (leader != null)
40 {
41 List<Thing> list2 = EClass.pc.things.List(delegate(Thing t)
42 {
43 if (t.Num >= 10)
44 {
45 return false;
46 }
47 return t.trait.CanBeDestroyed && t.things.Count == 0 && t.invY != 1 && t.trait.CanBeStolen && !t.trait.CanOnlyCarry && !t.IsUnique && !t.isEquipped;
48 }, onlyAccessible: true);
49 Thing t2 = ((list2.Count > 0) ? list2.RandomItem() : null);
50 if (t2 == null)
51 {
52 GameLang.refDrama1 = (GameLang.refDrama2 = "mobPity".lang());
53 }
54 else
55 {
56 GameLang.refDrama1 = t2.NameSimple;
57 GameLang.refDrama2 = t2.Name;
58 }
59 LayerDrama.refAction1 = delegate
60 {
61 foreach (Chara item in list)
62 {
63 item.ShowEmo(Emo.angry);
64 if (EClass.rnd(6) == 0)
65 {
66 item.Talk((EClass.rnd(5) == 0) ? "rumor_bad" : ((EClass.rnd(5) == 0) ? "callGuards" : "disgust"));
67 }
68 }
69 };
70 LayerDrama.refAction2 = delegate
71 {
72 if (t2 != null)
73 {
74 leader.AddCard(t2);
75 }
76 foreach (Chara item2 in list)
77 {
78 if (EClass.rnd(6) == 0)
79 {
80 item2.Talk((EClass.rnd(5) == 0) ? "rumor_good" : ((EClass.rnd(3) == 0) ? "thanks3" : "thanks"));
81 }
82 item2.ShowEmo(Emo.happy);
83 Hostility hostility5 = (item2.c_originalHostility = Hostility.Neutral);
84 item2.hostility = hostility5;
85 item2.enemy = null;
86 }
88 };
89 leader.ShowDialog("_chara", "encounter_mob");
90 }
91 }
92 else
93 {
94 for (int j = 0; j < enemies; j++)
95 {
96 Point nearestPoint = (EClass.pc.pos.GetRandomPoint(4) ?? EClass.pc.pos).GetNearestPoint(allowBlock: false, allowChara: false);
97 Chara chara2 = EClass._zone.SpawnMob(nearestPoint, SpawnSetting.Encounter(lv));
98 Hostility hostility2 = (chara2.c_originalHostility = Hostility.Enemy);
99 chara2.hostility = hostility2;
100 chara2.enemy = EClass.pc.party.members.RandomItem();
101 }
102 }
103 if (flag && EClass.rnd(EClass.debug.enable ? 1 : 3) == 0)
104 {
105 Point nearestPoint2 = (EClass.pc.pos.GetRandomPoint(4) ?? EClass.pc.pos).GetNearestPoint(allowBlock: false, allowChara: false);
106 SpawnList list3 = SpawnListChara.Get("c_metal", (SourceChara.Row s) => s.race == "metal");
108 }
109 if ((EClass._zone.Tile.isRoad || EClass._zone.Tile.IsNeighborRoad) && EClass.rnd(2) == 0)
110 {
111 Point nearestPoint3 = (EClass.pc.pos.GetRandomPoint(4) ?? EClass.pc.pos).GetNearestPoint(allowBlock: false, allowChara: false);
112 EClass._zone.AddCard(CharaGen.Create("guard"), nearestPoint3);
113 }
114 }
Emo
Definition: Emo.cs:2
Hostility
Definition: Hostility.cs:2
int FameLv
Definition: Card.cs:2158
string id
Definition: Card.cs:31
Card AddCard(Card c)
Definition: Card.cs:2887
void Talk(string idTopic, string ref1=null, string ref2=null, bool forceSync=false)
Definition: Card.cs:5949
string Name
Definition: Card.cs:2013
Point pos
Definition: Card.cs:55
void ShowEmo(Emo _emo=Emo.none, float duration=0f, bool skipSame=true)
Definition: Card.cs:5372
ThingContainer things
Definition: Card.cs:34
string NameSimple
Definition: Card.cs:2015
int Num
Definition: Card.cs:154
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:702
void ShowDialog()
Definition: Chara.cs:6368
Party party
Definition: Chara.cs:43
bool HasCondition(string alias)
Definition: Chara.cs:8568
bool enable
Definition: CoreDebug.cs:285
Definition: EClass.cs:5
static int rnd(int a)
Definition: EClass.cs:50
static Zone _zone
Definition: EClass.cs:20
static int rndHalf(int a)
Definition: EClass.cs:74
static Player player
Definition: EClass.cs:12
static Chara pc
Definition: EClass.cs:14
static CoreDebug debug
Definition: EClass.cs:48
SourceElement.Row source
Definition: ELEMENT.cs:263
static Element Void
Definition: ELEMENT.cs:228
List< Chara > members
Definition: Party.cs:18
void ModKarma(int a)
Definition: Player.cs:2289
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:755
Point GetRandomPoint(int radius, bool requireLos=true, bool allowChara=true, bool allowBlocked=false, int tries=100)
Definition: Point.cs:741
EloMap.TileInfo Tile
Definition: Spatial.cs:516
static SpawnList Get(string id, Func< SourceChara.Row, bool > func)
static SpawnSetting Encounter(int lv)
Definition: SpawnSetting.cs:72
static SpawnSetting Mob(string id, string idEle=null, int fixedLv=-1)
Definition: SpawnSetting.cs:81
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(Point pos=null, SpawnSetting setting=null)
Definition: Zone.cs:2543
override int DangerLv
Definition: Zone.cs:107
Card AddCard(Card t, Point point)
Definition: Zone.cs:1893

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(), Card.id, Thing.isEquipped, item, ThingContainer.List(), Chara.MainElement, TraitFoodEggFertilized.MakeBaby(), 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, 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: