Elin Decompiled Documentation EA 23.102 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 5 of file DramaActor.cs.

Member Function Documentation

◆ ConvertAdv()

string DramaActor.ConvertAdv ( string  text)
inline

Definition at line 240 of file DramaActor.cs.

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 }
static Religion currentReligion
Definition: LayerDrama.cs:8
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

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 19 of file DramaActor.cs.

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

References owner, and sequence.

Referenced by DramaSequence.AddActor().

◆ SetChoice()

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

Definition at line 140 of file DramaActor.cs.

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 }
if(item3.idFile==idFirstFile &&item3.id==idFirstTopic)
Definition: UIBook.cs:627
Definition: Check.cs:5
static Check Get(string id, float dcMod=1f)
Definition: Check.cs:32
bool logDice
Definition: CoreDebug.cs:246
virtual UIButton AddChoice(DramaChoice choice, string text, Action func=null, bool deactivateOnChoice=true)
Definition: DialogDrama.cs:58
string ConvertAdv(string text)
Definition: DramaActor.cs:240
int choiceIdx
Definition: DramaActor.cs:15
DialogDrama dialog
Definition: DramaActor.cs:17
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:14
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:159

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 27 of file DramaActor.cs.

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 }
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
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
Glitch glitch
Definition: DialogDrama.cs:49
void SetChoice(DramaChoice item, int index)
Definition: DramaActor.cs:140
static bool useGlitch
Definition: DramaActor.cs:7
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
string GetAdvRankText()
Definition: TraitChara.cs:174
virtual bool ShowAdvRank
Definition: TraitChara.cs:95
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, Person.chara, choiceIdx, DialogDrama.ClearChoice(), ConvertAdv(), GameLang.ConvertDrama(), EMono.core, dialog, DramaSequence.fullPortrait, BackerContent.GakiConvert(), TraitChara.GetAdvRankText(), Person.GetDramaTitle(), Chara.GetFavCat(), Chara.GetFavFood(), BaseCard.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 15 of file DramaActor.cs.

Referenced by Talk().

◆ id

string DramaActor.id

Definition at line 9 of file DramaActor.cs.

◆ owner

Person DramaActor.owner

Definition at line 11 of file DramaActor.cs.

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

◆ sequence

DramaSequence DramaActor.sequence

Definition at line 13 of file DramaActor.cs.

Referenced by Init(), and Talk().

◆ useGlitch

bool DramaActor.useGlitch
static

Definition at line 7 of file DramaActor.cs.

Referenced by Talk().

Property Documentation

◆ dialog

DialogDrama DramaActor.dialog
get

Definition at line 17 of file DramaActor.cs.

Referenced by SetChoice(), and Talk().


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