Elin Decompiled Documentation EA 23.174 Nightly
Loading...
Searching...
No Matches
GameLang.cs
Go to the documentation of this file.
1using System;
2using System.Text;
3
4public class GameLang : EClass
5{
6 public static string refDrama1;
7
8 public static string refDrama2;
9
10 public static string refDrama3;
11
12 public static string refDrama4;
13
14 public static string ConvertDrama(string text, Chara c = null)
15 {
17 {
18 return text;
19 }
20 StringBuilder stringBuilder = new StringBuilder();
21 string newValue = "";
22 string newValue2 = "";
23 string name = EClass.game.religions.GetRandomReligion(onlyJoinable: false).Name;
24 string @ref = "-";
25 if (c != null)
26 {
27 newValue = c.NameBraced;
28 newValue2 = (c.IsMale ? "his" : "her").lang();
29 name = c.faith.Name;
30 @ref = CalcGold.Hire(c).ToString() ?? "";
31 }
32 bool flag = false;
33 string text2 = "";
34 for (int i = 0; i < text.Length; i++)
35 {
36 if (flag)
37 {
38 if (text[i] == ']')
39 {
40 flag = false;
41 if (text2 == "qFriend" && EClass._zone.IsPCFaction)
42 {
43 text2 = "qFriendHome";
44 }
45 string[] list = Lang.GetList(text2);
46 if (list != null)
47 {
48 stringBuilder.Append(list.RandomItem());
49 }
50 else
51 {
52 stringBuilder.Append(text2);
53 }
54 }
55 else
56 {
57 text2 += text[i];
58 }
59 }
60 else if (text[i] == '[')
61 {
62 text2 = "";
63 flag = true;
64 }
65 else
66 {
67 stringBuilder.Append(text[i]);
68 }
69 }
70 if (DramaManager.TG != null)
71 {
72 stringBuilder.Replace("#tg", DramaManager.TG.Name);
73 }
74 if (DramaChoice.lastChoice != null)
75 {
76 stringBuilder.Replace("#last_choice", DramaChoice.lastChoice.text);
77 }
78 stringBuilder.Replace("#newline", Environment.NewLine);
79 stringBuilder.Replace("#costHire", "costHire".lang(@ref));
80 stringBuilder.Replace("#self", newValue);
81 stringBuilder.Replace("#his", newValue2);
82 stringBuilder.Replace("#me", newValue);
83 stringBuilder.Replace("#1", refDrama1);
84 stringBuilder.Replace("#2", refDrama2);
85 stringBuilder.Replace("#3", refDrama3);
86 stringBuilder.Replace("#4", refDrama4);
87 stringBuilder.Replace("#god", name);
88 stringBuilder.Replace("#player", EClass.player.title);
89 stringBuilder.Replace("#title", EClass.player.title);
90 stringBuilder.Replace("#zone", EClass._zone.Name);
91 stringBuilder.Replace("#guild_title", Guild.Current.relation.TextTitle);
92 stringBuilder.Replace("#guild", Guild.Current.Name);
93 stringBuilder.Replace("#race", EClass.pc.race.GetName());
94 stringBuilder.Replace("#pc", EClass.pc.NameSimple);
95 stringBuilder.Replace("#aka", EClass.pc.Aka);
96 stringBuilder.Replace("#bigdaddy", "bigdaddy".lang());
97 stringBuilder.Replace("#festival", EClass._zone.IsFestival ? (EClass._zone.id + "_festival").lang() : "_festival".lang());
98 stringBuilder.Replace("#brother2", (EClass.pc.IsMale ? "brother" : "sister").lang());
99 stringBuilder.Replace("#brother", Lang.GetList(EClass.pc.IsMale ? "bro" : "sis").RandomItem());
100 stringBuilder.Replace("#onii2", Lang.GetList(EClass.pc.IsMale ? "onii2" : "onee2").RandomItem());
101 stringBuilder.Replace("#onii", Lang.GetList(EClass.pc.IsMale ? "onii" : "onee").RandomItem());
102 stringBuilder.Replace("#gender", Lang.GetList("gendersDrama")[EClass.pc.bio.gender]);
103 stringBuilder.Replace("#he", ((EClass.pc.bio.gender == 2) ? "he" : "she").lang());
104 stringBuilder.Replace("#He", ((EClass.pc.bio.gender == 2) ? "he" : "she").lang().ToTitleCase());
105 return Convert(stringBuilder);
106 }
107
108 public static string Convert(string text)
109 {
110 StringBuilder stringBuilder = new StringBuilder();
111 stringBuilder.Append(text);
112 return Convert(stringBuilder);
113 }
114
115 public static string Convert(StringBuilder sb)
116 {
117 sb.Replace("#player", EClass.player.title);
118 sb.Replace("#pc_him", EClass.pc.IsMale ? "him".lang() : "her".lang());
119 sb.Replace("#pc_his", EClass.pc.IsMale ? "his".lang() : "her".lang());
120 sb.Replace("#pc_race", EClass.pc.race.GetName());
121 sb.Replace("#pc", EClass.pc.NameSimple);
122 return sb.ToString();
123 }
124
125 public static string Parse(string text, bool thirdPerson, string val1, string val2 = null, string val3 = null, string val4 = null)
126 {
127 StringBuilder stringBuilder = new StringBuilder(text);
128 if (val1 != null)
129 {
130 if (Lang.articlesToRemove.Count > 0)
131 {
132 string text2 = val1;
133 foreach (char[] item in Lang.articlesToRemove)
134 {
135 text2 = text2.TrimStart(item);
136 }
137 stringBuilder.Replace("-#1", text2);
138 }
139 stringBuilder.Replace("#1", val1 ?? "");
140 }
141 if (val2 != null)
142 {
143 if (Lang.articlesToRemove.Count > 0)
144 {
145 string text3 = val2;
146 foreach (char[] item2 in Lang.articlesToRemove)
147 {
148 text3 = text3.TrimStart(item2);
149 }
150 stringBuilder.Replace("-#2", text3);
151 }
152 stringBuilder.Replace("#2", val2);
153 }
154 if (val3 != null)
155 {
156 stringBuilder.Replace("#3", val3);
157 }
158 if (val4 != null)
159 {
160 stringBuilder.Replace("#4", val4);
161 }
162 if (int.TryParse(val1, out var result))
163 {
164 stringBuilder.Replace("#(s)", (result <= 1) ? "" : "_s".lang());
165 }
167 {
168 stringBuilder.Replace("#your2", Msg.thirdPerson2.your);
169 stringBuilder.Replace("#himself2", Msg.thirdPerson2.himself);
170 stringBuilder.Replace("#him2", Msg.thirdPerson2.him);
171 stringBuilder.Replace("#his2", Msg.thirdPerson2.his);
172 stringBuilder.Replace("#he2", Msg.thirdPerson2.he);
173 stringBuilder.Replace("(s2)", Msg.thirdPerson2.thirdperson ? "s" : "");
174 }
176 {
177 stringBuilder.Replace("#your", Msg.thirdPerson1.your);
178 stringBuilder.Replace("#himself", Msg.thirdPerson1.himself);
179 stringBuilder.Replace("#him", Msg.thirdPerson1.him);
180 stringBuilder.Replace("#his", Msg.thirdPerson1.his);
181 stringBuilder.Replace("#he", Msg.thirdPerson1.he);
182 }
184 {
185 return ConvertThirdPerson(stringBuilder.ToString(), thirdPerson);
186 }
187 return Convert(stringBuilder);
188 }
189
190 public static string ConvertThirdPerson(string text, bool thirdPerson)
191 {
192 string[] array = text.Split(' ');
193 StringBuilder stringBuilder = new StringBuilder();
194 bool flag = true;
195 string[] array2 = array;
196 foreach (string text2 in array2)
197 {
198 if (flag)
199 {
200 flag = false;
201 }
202 else
203 {
204 stringBuilder.Append(' ');
205 }
206 if (text2.Contains('/') && !text2.Contains('<'))
207 {
208 string[] array3 = text2.Split('/');
209 stringBuilder.Append(thirdPerson ? array3[1] : array3[0]);
210 }
211 else
212 {
213 stringBuilder.Append(text2);
214 }
215 }
216 stringBuilder.Replace("(s)", thirdPerson ? "s" : "");
217 stringBuilder.Replace("(es)", thirdPerson ? "es" : "");
218 return Convert(stringBuilder);
219 }
220}
int gender
Definition: Biography.cs:29
static int Hire(Chara c)
Definition: CalcGold.cs:8
bool IsMale
Definition: Card.cs:2320
Biography bio
Definition: Card.cs:40
string Name
Definition: Card.cs:2073
string NameSimple
Definition: Card.cs:2075
Definition: Chara.cs:10
string Aka
Definition: Chara.cs:212
SourceRace.Row race
Definition: Chara.cs:460
bool IsGameStarted
Definition: Core.cs:84
static DramaChoice lastChoice
Definition: DramaChoice.cs:5
string text
Definition: DramaChoice.cs:9
static Chara TG
Definition: DramaManager.cs:11
Definition: EClass.cs:5
static Game game
Definition: EClass.cs:8
static Core core
Definition: EClass.cs:6
static Zone _zone
Definition: EClass.cs:20
static Player player
Definition: EClass.cs:12
static Chara pc
Definition: EClass.cs:14
string Name
Definition: FACTION.cs:150
FactionRelation relation
Definition: FACTION.cs:126
static string ConvertDrama(string text, Chara c=null)
Definition: GameLang.cs:14
static string refDrama1
Definition: GameLang.cs:6
static string refDrama2
Definition: GameLang.cs:8
static string Convert(string text)
Definition: GameLang.cs:108
static string refDrama4
Definition: GameLang.cs:12
static string Convert(StringBuilder sb)
Definition: GameLang.cs:115
static string ConvertThirdPerson(string text, bool thirdPerson)
Definition: GameLang.cs:190
static string Parse(string text, bool thirdPerson, string val1, string val2=null, string val3=null, string val4=null)
Definition: GameLang.cs:125
static string refDrama3
Definition: GameLang.cs:10
ReligionManager religions
Definition: Game.cs:158
Definition: Guild.cs:2
static Guild Current
Definition: Guild.cs:4
bool thirdperson
Definition: LangSetting.cs:42
Definition: Lang.cs:6
static LangSetting setting
Definition: Lang.cs:54
static List< char[]> articlesToRemove
Definition: Lang.cs:44
static string[] GetList(string id)
Definition: Lang.cs:114
Definition: Msg.cs:5
static ThirstPersonInfo thirdPerson2
Definition: Msg.cs:8
static ThirstPersonInfo thirdPerson1
Definition: Msg.cs:6
string title
Definition: Player.cs:924
Religion GetRandomReligion(bool onlyJoinable=true, bool includeMinor=false)
string Name
Definition: Religion.cs:30
virtual string Name
Definition: Spatial.cs:495
string id
Definition: Spatial.cs:13
virtual bool IsFestival
Definition: Zone.cs:206
bool IsPCFaction
Definition: Zone.cs:466