Elin Decompiled Documentation EA 23.324 Nightly
Loading...
Searching...
No Matches
DramaActor Class Reference
Inheritance diagram for DramaActor:
EMono

Public Member Functions

void Init (DramaSequence _sequence, string _id, Person _owner)
 
void Talk (string text, List< DramaChoice > choices, bool center, bool unknown)
 
string ConvertAdv (string text)
 

Public Attributes

string id
 
Person owner
 
DramaSequence sequence
 

Static Public Attributes

static bool useGlitch
 
- Static Public Attributes inherited from EMono
static Core core
 

Properties

DialogDrama dialog [get]
 
- Properties inherited from EMono
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 Scene scene [get]
 
static BaseGameScreen screen [get]
 
static GameSetting setting [get]
 
static GameData gamedata [get]
 
static ColorProfile Colors [get]
 
static World world [get]
 
static SoundManager Sound [get]
 
static SourceManager sources [get]
 
static SourceManager editorSources [get]
 
static CoreDebug debug [get]
 

Private Member Functions

void SetChoice (DramaChoice item, int index)
 

Private Attributes

int choiceIdx
 

Additional Inherited Members

- Static Public Member Functions inherited from EMono
static int rnd (int a)
 

Detailed Description

Definition at line 6 of file DramaActor.cs.

Member Function Documentation

◆ ConvertAdv()

string DramaActor.ConvertAdv ( string  text)
inline

Definition at line 245 of file DramaActor.cs.

246 {
247 StringBuilder stringBuilder = new StringBuilder(text);
248 Religion currentReligion = LayerDrama.currentReligion;
249 if (currentReligion != null)
250 {
251 stringBuilder.Replace("#god_name", currentReligion.Name);
252 stringBuilder.Replace("#god_desc", "<i>" + currentReligion.source.GetDetail() + "</i>");
253 stringBuilder.Replace("#god_benefit", currentReligion.GetTextBenefit());
254 stringBuilder.Replace("#godtalk_worship", currentReligion.GetGodTalk("worship"));
255 }
256 return stringBuilder.ToString();
257 }
static Religion currentReligion
Definition: LayerDrama.cs:8
SourceReligion.Row source
Definition: Religion.cs:33
virtual string GetGodTalk(string idTalk)
Definition: Religion.cs:174
virtual string GetTextBenefit()
Definition: Religion.cs:107
virtual string Name
Definition: Religion.cs:30

References LayerDrama.currentReligion, Religion.GetGodTalk(), Religion.GetTextBenefit(), Religion.Name, and Religion.source.

Referenced by SetChoice(), and Talk().

◆ Init()

void DramaActor.Init ( DramaSequence  _sequence,
string  _id,
Person  _owner 
)
inline

Definition at line 20 of file DramaActor.cs.

21 {
22 sequence = _sequence;
23 id = _id;
24 owner = _owner;
25 base.gameObject.SetActive(value: false);
26 }
Person owner
Definition: DramaActor.cs:12
DramaSequence sequence
Definition: DramaActor.cs:14

References owner, and sequence.

◆ SetChoice()

void DramaActor.SetChoice ( DramaChoice  item,
int  index 
)
inlineprivate

Definition at line 141 of file DramaActor.cs.

142 {
143 item.index = index;
144 if ((!item.IF.IsEmpty() && !DramaOutcome.If(item, owner.chara)) || (item.activeCondition != null && !item.activeCondition()))
145 {
146 return;
147 }
148 DramaOutcome.idJump = null;
149 string text = item.text.TrimEnd(Environment.NewLine.ToCharArray());
150 text = ConvertAdv(text);
151 text = GameLang.ConvertDrama(text, owner.chara);
152 if (item.check != null && EMono.debug.logDice)
153 {
154 text = text + " (" + item.check.GetText(EMono.pc, owner.chara, inDialog: true) + ")";
155 }
156 Check check = null;
157 string idJump = item.idJump;
158 string idAction = item.idAction;
159 object[] PARAMS = null;
160 int? affinity = null;
161 if (!item.CHECK.IsEmpty())
162 {
163 string[] array = item.CHECK.Split('/');
164 string text2 = array[0];
165 if (!(text2 == "check"))
166 {
167 if (text2 == "affinity")
168 {
169 }
170 }
171 else
172 {
173 check = Check.Get(array[1]);
174 }
175 }
176 UIButton uIButton = dialog.AddChoice(item, text, delegate
177 {
178 base.gameObject.SetActive(value: false);
179 DramaChoice.lastChoice = item;
180 _ = check;
181 if (affinity.HasValue)
182 {
183 bool flag = true;
184 if (flag)
185 {
186 idJump = idJump.Split('/')[0];
187 }
188 else
189 {
190 idJump = idJump.Split('/')[1];
191 }
192 PARAMS = new object[1] { flag };
193 }
194 if (!idAction.IsEmpty())
195 {
196 MethodInfo method = typeof(DramaOutcome).GetMethod(sequence.id + "_" + idAction);
197 if (method != null)
198 {
199 method.Invoke(sequence.manager.outcome, PARAMS);
200 if (DramaOutcome.idJump != null)
201 {
202 sequence.Play(DramaOutcome.idJump);
203 return;
204 }
205 }
206 }
207 if (item.onClick != null)
208 {
209 item.onClick();
210 }
211 sequence.tempEvents.Clear();
212 if (item.onJump != null)
213 {
214 item.onJump();
215 }
216 else if (idJump.IsEmpty())
217 {
218 sequence.PlayNext();
219 }
220 else
221 {
222 sequence.Play(idJump);
223 }
224 });
225 if ((bool)uIButton.subText)
226 {
227 uIButton.subText.SetText(choiceIdx + ".");
228 }
229 if (!item.sound)
230 {
231 uIButton.soundClick = null;
232 }
233 if (item.onTooltip != null)
234 {
235 uIButton.SetTooltip(item.onTooltip);
236 }
237 if (item.forceHighlight)
238 {
239 uIButton.DoHighlightTransition();
240 item.forceHighlight = false;
241 }
242 choiceIdx++;
243 }
if(!match.Success)
Definition: Check.cs:5
static Check Get(string id, float dcMod=1f)
Definition: Check.cs:32
bool logDice
Definition: CoreDebug.cs:262
virtual UIButton AddChoice(DramaChoice choice, string text, Action func=null, bool deactivateOnChoice=true)
Definition: DialogDrama.cs:60
string ConvertAdv(string text)
Definition: DramaActor.cs:245
int choiceIdx
Definition: DramaActor.cs:16
DialogDrama dialog
Definition: DramaActor.cs:18
static bool If(DramaChoice item, Chara c)
List< DramaEvent > tempEvents
Definition: EMono.cs:4
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:21
Chara chara
Definition: Person.cs:36
UIText subText
Definition: UIButton.cs:104
void DoHighlightTransition(bool instant=false)
Definition: UIButton.cs:526
void SetTooltip(Action< UITooltip > onShowTooltip=null, bool enable=true)
Definition: UIButton.cs:361
void SetText(string s)
Definition: UIText.cs:163

References DialogDrama.AddChoice(), Person.chara, ConvertAdv(), GameLang.ConvertDrama(), EMono.debug, dialog, Check.Get(), DramaOutcome.If(), item, CoreDebug.logDice, owner, and EMono.pc.

Referenced by Talk().

◆ Talk()

void DramaActor.Talk ( string  text,
List< DramaChoice choices,
bool  center,
bool  unknown 
)
inline

Definition at line 28 of file DramaActor.cs.

29 {
30 Chara chara = owner.chara;
31 dialog.gameObject.SetActive(value: true);
32 dialog.textName.text = (unknown ? "???" : owner.GetDramaTitle());
33 if ((bool)dialog.portrait)
34 {
35 dialog.portrait.enableFull = sequence.fullPortrait;
37 }
38 if (!owner.HumanSpeak)
39 {
40 if (!text.StartsWith("("))
41 {
42 text = "(" + text + ")";
43 }
44 text = text.Replace("。)", ")");
45 }
46 text = ConvertAdv(text);
47 text = GameLang.ConvertDrama(text, owner.chara);
48 if (chara != null)
49 {
50 if (chara.HasElement(1232))
51 {
52 BackerContent.GakiConvert(ref text, "babu");
53 }
54 else
55 {
56 string text2 = chara.id;
57 if (!(text2 == "adv_gaki"))
58 {
59 if (text2 == "corgon")
60 {
61 BackerContent.GakiConvert(ref text, "mokyu");
62 }
63 }
64 else
65 {
66 BackerContent.GakiConvert(ref text);
67 }
68 }
69 }
70 text = text.Replace("((", "(").Replace("))", ")").Replace("((", "(")
71 .Replace("))", ")");
72 if ((bool)dialog.goAffinity)
73 {
74 dialog.layoutInterest.SetActive(chara != null);
75 dialog.textNoInterest.SetActive(chara == null);
76 bool flag = chara?.trait.ShowAdvRank ?? false;
77 if ((bool)dialog.transFav)
78 {
79 dialog.transFav.SetActive(chara?.knowFav ?? false);
80 }
81 if ((bool)dialog.transRank)
82 {
83 dialog.transRank.SetActive(flag);
84 if (flag)
85 {
86 dialog.textRank.text = "factionRank2".lang() + " " + chara.trait.GetAdvRankText() + " " + ((chara.GetInt(111) > 0) ? "advDefeated".lang(chara.GetInt(111).ToString() ?? "") : "");
87 }
88 }
89 if (chara != null)
90 {
91 dialog.textAffinity.text = ((chara.c_bossType != 0 || !chara.trait.CanChangeAffinity) ? " - " : (chara.affinity.Name + " (" + chara._affinity + ")"));
92 dialog.layoutInterest.DestroyChildren();
93 int num = chara.interest / 10 + 1;
94 if (chara.interest <= 0)
95 {
96 num = 0;
97 }
98 if (num > 10)
99 {
100 num = 10;
101 }
102 for (int i = 0; i < num; i++)
103 {
105 }
106 dialog.layoutInterest.RebuildLayout();
107 dialog.textNoInterest.SetActive(num <= 0);
108 if ((bool)dialog.textFav && chara.knowFav)
109 {
110 dialog.textFav.text = chara.GetFavCat().GetName().ToTitleCase() + Environment.NewLine + chara.GetFavFood().GetName().ToTitleCase();
111 }
112 }
113 else
114 {
115 dialog.textAffinity.text = "???";
116 dialog.textNoInterest.text = "???";
117 }
118 }
119 if ((bool)dialog.glitch)
120 {
121 dialog.glitch.enabled = useGlitch;
122 useGlitch = false;
123 }
124 dialog.SetText(text.ToTitleCase(), center);
126 choiceIdx = 1;
127 for (int j = 0; j < choices.Count; j++)
128 {
129 SetChoice(choices[j], j);
130 }
131 dialog.transChoices.RebuildLayout(recursive: true);
132 dialog.iconNext.SetActive(choiceIdx == 1);
135 EMono.core.actionsNextFrame.Add(delegate
136 {
138 });
139 }
string Name
Definition: Affinity.cs:34
static void GakiConvert(ref string text, string idLang="zako")
List< Action > actionsNextFrame
Definition: BaseCore.cs:31
string id
Definition: Card.cs:36
int GetInt(string id, int? defaultInt=null)
Definition: Card.cs:2567
bool HasElement(int ele, bool includeNagative=false)
Definition: Card.cs:6336
Definition: Chara.cs:10
SourceCategory.Row GetFavCat()
Definition: Chara.cs:8463
int _affinity
Definition: Chara.cs:307
new TraitChara trait
Definition: Chara.cs:509
bool knowFav
Definition: Chara.cs:417
int interest
Definition: Chara.cs:321
SourceThing.Row GetFavFood()
Definition: Chara.cs:8435
Affinity affinity
Definition: Chara.cs:318
Text textNoInterest
Definition: DialogDrama.cs:15
GameObject iconNext
Definition: DialogDrama.cs:37
Transform moldInterest
Definition: DialogDrama.cs:45
void ClearChoice()
Definition: DialogDrama.cs:84
virtual void SetText(string detail="", bool center=false)
Definition: DialogDrama.cs:90
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
Glitch glitch
Definition: DialogDrama.cs:49
void SetChoice(DramaChoice item, int index)
Definition: DramaActor.cs:141
static bool useGlitch
Definition: DramaActor.cs:8
static Core core
Definition: EMono.cs:5
string GetDramaTitle()
Definition: Person.cs:106
bool HumanSpeak
Definition: Person.cs:41
void SetPerson(Person p)
Definition: Portrait.cs:120
virtual string GetAdvRankText()
Definition: TraitChara.cs:176
virtual bool ShowAdvRank
Definition: TraitChara.cs:96
virtual bool CanChangeAffinity
Definition: Trait.cs:581
static void TryHihlight()
Definition: UIButton.cs:768
Definition: Util.cs:10
static Transform Instantiate(string path, Component parent=null)
Definition: Util.cs:67

References Chara._affinity, BaseCore.actionsNextFrame, Chara.affinity, Trait.CanChangeAffinity, Person.chara, choiceIdx, DialogDrama.ClearChoice(), ConvertAdv(), GameLang.ConvertDrama(), EMono.core, dialog, DramaSequence.fullPortrait, BackerContent.GakiConvert(), TraitChara.GetAdvRankText(), Person.GetDramaTitle(), Chara.GetFavCat(), Chara.GetFavFood(), Card.GetInt(), DialogDrama.glitch, DialogDrama.goAffinity, Card.HasElement(), Person.HumanSpeak, DialogDrama.iconNext, Card.id, Chara.interest, Chara.knowFav, DialogDrama.layoutInterest, DialogDrama.moldInterest, Affinity.Name, owner, DialogDrama.portrait, sequence, SetChoice(), Portrait.SetPerson(), DialogDrama.SetText(), TraitChara.ShowAdvRank, DialogDrama.textNoInterest, Chara.trait, DialogDrama.transChoices, DialogDrama.transFav, DialogDrama.transRank, UIButton.TryHihlight(), useGlitch, and Util.

Member Data Documentation

◆ choiceIdx

int DramaActor.choiceIdx
private

Definition at line 16 of file DramaActor.cs.

Referenced by Talk().

◆ id

string DramaActor.id

Definition at line 10 of file DramaActor.cs.

◆ owner

Person DramaActor.owner

Definition at line 12 of file DramaActor.cs.

Referenced by Init(), SetChoice(), and Talk().

◆ sequence

DramaSequence DramaActor.sequence

Definition at line 14 of file DramaActor.cs.

Referenced by Init(), and Talk().

◆ useGlitch

bool DramaActor.useGlitch
static

Definition at line 8 of file DramaActor.cs.

Referenced by Talk().

Property Documentation

◆ dialog

DialogDrama DramaActor.dialog
get

Definition at line 18 of file DramaActor.cs.

Referenced by SetChoice(), and Talk().


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