Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
Party.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using Newtonsoft.Json;
3using UnityEngine;
4
5public class Party : EClass
6{
7 [JsonProperty]
8 public int uidLeader;
9
10 [JsonProperty]
11 public List<int> uidMembers = new List<int>();
12
13 public List<Chara> _members;
14
15 public RefChara refLeader = new RefChara();
16
17 public List<Chara> members
18 {
19 get
20 {
21 if (_members != null)
22 {
23 return _members;
24 }
25 return SetMembers();
26 }
27 }
28
30 {
31 get
32 {
34 }
35 set
36 {
37 refLeader.Set(ref uidLeader, value);
38 }
39 }
40
41 public List<Chara> SetMembers()
42 {
43 _members = new List<Chara>();
44 foreach (int uidMember in uidMembers)
45 {
46 members.Add(RefChara.Get(uidMember));
47 }
48 return _members;
49 }
50
51 public void AddMemeber(Chara c, bool showMsg = false)
52 {
53 if (c.party == this)
54 {
55 return;
56 }
57 if (!c.IsGlobal)
58 {
59 Debug.LogError("exception: " + c?.ToString() + " is not global chara");
60 }
61 members.Add(c);
62 uidMembers.Add(c.uid);
63 c.party = this;
64 c.isSale = false;
65 c.SetBool(18, enable: false);
66 if (c.homeBranch != null)
67 {
71 if (c.homeBranch.owner.map != null)
72 {
73 c.homeBranch.owner.map.props.sales.Remove(c);
74 }
75 }
76 if (showMsg)
77 {
78 Msg.Say("party_join", c.Name);
79 SE.Play("party_join");
80 }
82 }
83
84 public void RemoveMember(Chara c)
85 {
86 if (c.host != null)
87 {
88 ActRide.Unride(c.host, c.host.parasite == c);
89 }
90 members.Remove(c);
91 uidMembers.Remove(c.uid);
92 c.party = null;
93 c.c_wasInPcParty = false;
94 c.SetDirtySpeed();
95 if (c.homeBranch != null)
96 {
99 }
101 }
102
103 public void Replace(Chara c, int index)
104 {
105 members.Remove(c);
106 uidMembers.Remove(c.uid);
107 members.Insert(index, c);
108 uidMembers.Insert(index, c.uid);
109 }
110
111 public void SetLeader(Chara c)
112 {
113 leader = c;
114 }
115
116 public Element GetPartySkill(int ele)
117 {
118 return GetBestSkill(ele);
119 }
120
121 public void ModExpPartySkill(int ele, int a)
122 {
123 }
124
125 public Element GetBestSkill(int ele)
126 {
127 Element element = Element.Create(ele);
128 foreach (Chara member in members)
129 {
130 if (member.IsAliveInCurrentZone && member.Evalue(ele) > element.Value)
131 {
132 element = member.elements.GetElement(ele);
133 }
134 }
135 return element;
136 }
137
138 public bool IsCriticallyWounded(bool includePc = false)
139 {
140 foreach (Chara member in members)
141 {
142 if ((!includePc || !member.IsPC) && member.IsCriticallyWounded())
143 {
144 return true;
145 }
146 }
147 return false;
148 }
149
150 public int EValue(int ele)
151 {
152 int num = 0;
153 foreach (Chara member in members)
154 {
155 if (member.Evalue(ele) > num)
156 {
157 num = member.Evalue(ele);
158 }
159 }
160 return num;
161 }
162
163 public bool HasElement(int ele)
164 {
165 foreach (Chara member in members)
166 {
167 if (member.HasElement(ele))
168 {
169 return true;
170 }
171 }
172 return false;
173 }
174
175 public int Count()
176 {
177 int num = 0;
178 foreach (Chara member in members)
179 {
180 if (!member.isDead)
181 {
182 num++;
183 }
184 }
185 return num;
186 }
187}
static void Unride(Chara host, bool parasite=false, bool talk=true)
Definition: ActRide.cs:101
void SetBool(int id, bool enable)
Definition: BaseCard.cs:20
ElementContainerCard elements
Definition: Card.cs:37
bool HasElement(int ele, int req=1)
Definition: Card.cs:5214
string Name
Definition: Card.cs:2013
int uid
Definition: Card.cs:118
int Evalue(int ele)
Definition: Card.cs:2431
Definition: Chara.cs:10
override bool IsAliveInCurrentZone
Definition: Chara.cs:546
void SetDirtySpeed()
Definition: Chara.cs:1605
bool IsCriticallyWounded(bool includeRide=false)
Definition: Chara.cs:986
void RefreshWorkElements(ElementContainer parent=null)
Definition: Chara.cs:8175
override bool IsPC
Definition: Chara.cs:597
Chara host
Definition: Chara.cs:33
override bool IsGlobal
Definition: Chara.cs:595
Party party
Definition: Chara.cs:43
Chara parasite
Definition: Chara.cs:30
FactionBranch homeBranch
Definition: Chara.cs:889
bool isDead
Definition: Chara.cs:374
Definition: EClass.cs:5
Element GetElement(string alias)
static Element Create(int id, int v=0)
Definition: ELEMENT.cs:913
void RefreshEfficiency()
PolicyManager policies
ElementContainerZone elements
PropsManager props
Definition: Map.cs:91
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
Definition: Party.cs:6
Element GetBestSkill(int ele)
Definition: Party.cs:125
int uidLeader
Definition: Party.cs:8
Element GetPartySkill(int ele)
Definition: Party.cs:116
List< Chara > _members
Definition: Party.cs:13
RefChara refLeader
Definition: Party.cs:15
List< Chara > SetMembers()
Definition: Party.cs:41
List< int > uidMembers
Definition: Party.cs:11
void Replace(Chara c, int index)
Definition: Party.cs:103
void RemoveMember(Chara c)
Definition: Party.cs:84
int Count()
Definition: Party.cs:175
bool IsCriticallyWounded(bool includePc=false)
Definition: Party.cs:138
Chara leader
Definition: Party.cs:30
bool HasElement(int ele)
Definition: Party.cs:163
void ModExpPartySkill(int ele, int a)
Definition: Party.cs:121
List< Chara > members
Definition: Party.cs:18
int EValue(int ele)
Definition: Party.cs:150
void AddMemeber(Chara c, bool showMsg=false)
Definition: Party.cs:51
void SetLeader(Chara c)
Definition: Party.cs:111
List< Card > sales
Definition: PropsManager.cs:14
static Chara Get(int uid)
Definition: RefChara.cs:36
Chara GetAndCache(int uid)
Definition: RefChara.cs:5
void Set(ref int val, Chara c)
Definition: RefChara.cs:30
static void SetDirty()
Map map
Definition: Zone.cs:60