Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
DramaActor.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3using System.Text;
4
5public class DramaActor : EMono
6{
7 public static bool useGlitch;
8
9 public string id;
10
11 public Person owner;
12
14
15 private int choiceIdx;
16
18
19 public void Init(DramaSequence _sequence, string _id, Person _owner)
20 {
21 sequence = _sequence;
22 id = _id;
23 owner = _owner;
24 base.gameObject.SetActive(value: false);
25 }
26
27 public void Talk(string text, List<DramaChoice> choices, bool center, bool unknown)
28 {
29 Chara chara = owner.chara;
30 dialog.gameObject.SetActive(value: true);
31 dialog.textName.text = (unknown ? "???" : owner.GetDramaTitle());
32 if ((bool)dialog.portrait)
33 {
34 dialog.portrait.enableFull = sequence.fullPortrait;
36 }
37 if (!owner.HumanSpeak)
38 {
39 if (!text.StartsWith("("))
40 {
41 text = "(" + text + ")";
42 }
43 text = text.Replace("。)", ")");
44 }
45 text = ConvertAdv(text);
46 text = GameLang.ConvertDrama(text, owner.chara);
47 if (chara != null)
48 {
49 if (chara.HasElement(1232))
50 {
51 BackerContent.GakiConvert(ref text, "babu");
52 }
53 else
54 {
55 string text2 = chara.id;
56 if (!(text2 == "adv_gaki"))
57 {
58 if (text2 == "corgon")
59 {
60 BackerContent.GakiConvert(ref text, "mokyu");
61 }
62 }
63 else
64 {
65 BackerContent.GakiConvert(ref text);
66 }
67 }
68 }
69 text = text.Replace("((", "(").Replace("))", ")").Replace("((", "(")
70 .Replace("))", ")");
71 if ((bool)dialog.goAffinity)
72 {
73 dialog.layoutInterest.SetActive(chara != null);
74 dialog.textNoInterest.SetActive(chara == null);
75 bool flag = chara?.trait.ShowAdvRank ?? false;
76 if ((bool)dialog.transFav)
77 {
78 dialog.transFav.SetActive(chara?.knowFav ?? false);
79 }
80 if ((bool)dialog.transRank)
81 {
82 dialog.transRank.SetActive(flag);
83 if (flag)
84 {
85 dialog.textRank.text = "factionRank2".lang() + " " + chara.trait.GetAdvRankText() + " " + ((chara.GetInt(111) > 0) ? "advDefeated".lang(chara.GetInt(111).ToString() ?? "") : "");
86 }
87 }
88 if (chara != null)
89 {
90 dialog.textAffinity.text = ((chara.c_bossType != 0) ? " - " : (chara.affinity.Name + " (" + chara._affinity + ")"));
91 dialog.layoutInterest.DestroyChildren();
92 int num = chara.interest / 10 + 1;
93 if (chara.interest <= 0)
94 {
95 num = 0;
96 }
97 if (num > 10)
98 {
99 num = 10;
100 }
101 for (int i = 0; i < num; i++)
102 {
104 }
105 dialog.layoutInterest.RebuildLayout();
106 dialog.textNoInterest.SetActive(num <= 0);
107 if ((bool)dialog.textFav && chara.knowFav)
108 {
109 dialog.textFav.text = chara.GetFavCat().GetName().ToTitleCase() + Environment.NewLine + chara.GetFavFood().GetName().ToTitleCase();
110 }
111 }
112 else
113 {
114 dialog.textAffinity.text = "???";
115 dialog.textNoInterest.text = "???";
116 }
117 }
118 if ((bool)dialog.glitch)
119 {
120 dialog.glitch.enabled = useGlitch;
121 useGlitch = false;
122 }
123 dialog.SetText(text.ToTitleCase(), center);
125 choiceIdx = 1;
126 for (int j = 0; j < choices.Count; j++)
127 {
128 SetChoice(choices[j], j);
129 }
130 dialog.transChoices.RebuildLayout(recursive: true);
131 dialog.iconNext.SetActive(choiceIdx == 1);
134 EMono.core.actionsNextFrame.Add(delegate
135 {
137 });
138 }
139
140 private void SetChoice(DramaChoice item, int index)
141 {
142 item.index = index;
143 if ((!item.IF.IsEmpty() && !DramaOutcome.If(item, owner.chara)) || (item.activeCondition != null && !item.activeCondition()))
144 {
145 return;
146 }
147 DramaOutcome.idJump = null;
148 string text = item.text.TrimEnd(Environment.NewLine.ToCharArray());
149 text = ConvertAdv(text);
150 text = GameLang.ConvertDrama(text, owner.chara);
151 if (item.check != null && EMono.debug.logDice)
152 {
153 text = text + " (" + item.check.GetText(EMono.pc, owner.chara, inDialog: true) + ")";
154 }
155 Check check = null;
156 string idJump = item.idJump;
157 string idAction = item.idAction;
158 object[] PARAMS = null;
159 int? affinity = null;
160 if (!item.CHECK.IsEmpty())
161 {
162 string[] array = item.CHECK.Split('/');
163 string text2 = array[0];
164 if (!(text2 == "check"))
165 {
166 if (text2 == "affinity")
167 {
168 }
169 }
170 else
171 {
172 check = Check.Get(array[1]);
173 }
174 }
175 UIButton uIButton = dialog.AddChoice(item, text, delegate
176 {
177 base.gameObject.SetActive(value: false);
178 DramaChoice.lastChoice = item;
179 _ = check;
180 if (affinity.HasValue)
181 {
182 bool flag = true;
183 if (flag)
184 {
185 idJump = idJump.Split('/')[0];
186 }
187 else
188 {
189 idJump = idJump.Split('/')[1];
190 }
191 PARAMS = new object[1] { flag };
192 }
193 if (!idAction.IsEmpty())
194 {
195 typeof(DramaOutcome).GetMethod(sequence.id + "_" + idAction).Invoke(sequence.manager.outcome, PARAMS);
196 if (DramaOutcome.idJump != null)
197 {
198 sequence.Play(DramaOutcome.idJump);
199 return;
200 }
201 }
202 if (item.onClick != null)
203 {
204 item.onClick();
205 }
206 sequence.tempEvents.Clear();
207 if (item.onJump != null)
208 {
209 item.onJump();
210 }
211 else if (idJump.IsEmpty())
212 {
213 sequence.PlayNext();
214 }
215 else
216 {
217 sequence.Play(idJump);
218 }
219 });
220 if ((bool)uIButton.subText)
221 {
222 uIButton.subText.SetText(choiceIdx + ".");
223 }
224 if (!item.sound)
225 {
226 uIButton.soundClick = null;
227 }
228 if (item.onTooltip != null)
229 {
230 uIButton.SetTooltip(item.onTooltip);
231 }
232 if (item.forceHighlight)
233 {
234 uIButton.DoHighlightTransition();
235 item.forceHighlight = false;
236 }
237 choiceIdx++;
238 }
239
240 public string ConvertAdv(string text)
241 {
242 StringBuilder stringBuilder = new StringBuilder(text);
243 Religion currentReligion = LayerDrama.currentReligion;
244 if (currentReligion != null)
245 {
246 stringBuilder.Replace("#god_name", currentReligion.Name);
247 stringBuilder.Replace("#god_desc", currentReligion.source.GetDetail());
248 stringBuilder.Replace("#god_benefit", currentReligion.GetTextBenefit());
249 stringBuilder.Replace("#godtalk_worship", currentReligion.GetGodTalk("worship"));
250 }
251 return stringBuilder.ToString();
252 }
253}
if(item3.idFile==idFirstFile &&item3.id==idFirstTopic)
Definition: UIBook.cs:627
string Name
Definition: Affinity.cs:34
static void GakiConvert(ref string text, string idLang="zako")
int GetInt(int id, int? defaultInt=null)
Definition: BaseCard.cs:25
List< Action > actionsNextFrame
Definition: BaseCore.cs:31
string id
Definition: Card.cs:31
bool HasElement(int ele, int req=1)
Definition: Card.cs:5214
Definition: Chara.cs:10
SourceCategory.Row GetFavCat()
Definition: Chara.cs:7274
int _affinity
Definition: Chara.cs:288
new TraitChara trait
Definition: Chara.cs:488
bool knowFav
Definition: Chara.cs:398
int interest
Definition: Chara.cs:302
SourceThing.Row GetFavFood()
Definition: Chara.cs:7254
Affinity affinity
Definition: Chara.cs:299
Definition: Check.cs:5
static Check Get(string id, float dcMod=1f)
Definition: Check.cs:32
bool logDice
Definition: CoreDebug.cs:246
Text textNoInterest
Definition: DialogDrama.cs:15
GameObject iconNext
Definition: DialogDrama.cs:37
Transform moldInterest
Definition: DialogDrama.cs:45
void ClearChoice()
Definition: DialogDrama.cs:82
virtual void SetText(string detail="", bool center=false)
Definition: DialogDrama.cs:88
GameObject goAffinity
Definition: DialogDrama.cs:39
Portrait portrait
Definition: DialogDrama.cs:41
LayoutGroup layoutInterest
Definition: DialogDrama.cs:43
GameObject transRank
Definition: DialogDrama.cs:27
GameObject transFav
Definition: DialogDrama.cs:25
Transform transChoices
Definition: DialogDrama.cs:33
virtual UIButton AddChoice(DramaChoice choice, string text, Action func=null, bool deactivateOnChoice=true)
Definition: DialogDrama.cs:58
Glitch glitch
Definition: DialogDrama.cs:49
void SetChoice(DramaChoice item, int index)
Definition: DramaActor.cs:140
Person owner
Definition: DramaActor.cs:11
string ConvertAdv(string text)
Definition: DramaActor.cs:240
int choiceIdx
Definition: DramaActor.cs:15
void Init(DramaSequence _sequence, string _id, Person _owner)
Definition: DramaActor.cs:19
DialogDrama dialog
Definition: DramaActor.cs:17
void Talk(string text, List< DramaChoice > choices, bool center, bool unknown)
Definition: DramaActor.cs:27
static bool useGlitch
Definition: DramaActor.cs:7
string id
Definition: DramaActor.cs:9
DramaSequence sequence
Definition: DramaActor.cs:13
static bool If(DramaChoice item, Chara c)
DialogDrama dialog
List< DramaEvent > tempEvents
Definition: EMono.cs:4
static Core core
Definition: EMono.cs:5
static Chara pc
Definition: EMono.cs:13
static CoreDebug debug
Definition: EMono.cs:45
static string ConvertDrama(string text, Chara c=null)
Definition: GameLang.cs:14
static Religion currentReligion
Definition: LayerDrama.cs:8
Definition: Person.cs:6
string GetDramaTitle()
Definition: Person.cs:106
bool HumanSpeak
Definition: Person.cs:41
Chara chara
Definition: Person.cs:36
void SetPerson(Person p)
Definition: Portrait.cs:120
string Name
Definition: Religion.cs:30
string GetTextBenefit()
Definition: Religion.cs:93
string GetGodTalk(string suffix)
Definition: Religion.cs:162
SourceReligion.Row source
Definition: Religion.cs:32
string GetAdvRankText()
Definition: TraitChara.cs:174
virtual bool ShowAdvRank
Definition: TraitChara.cs:95
UIText subText
Definition: UIButton.cs:104
static void TryHihlight()
Definition: UIButton.cs:768
void SetText(string s)
Definition: UIText.cs:159