Elin Decompiled Documentation EA 23.153 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("#onii", Lang.GetList(EClass.pc.IsMale ? "onii" : "onee").RandomItem());
101 stringBuilder.Replace("#gender", Lang.GetList("gendersDrama")[EClass.pc.bio.gender]);
102 stringBuilder.Replace("#he", ((EClass.pc.bio.gender == 2) ? "he" : "she").lang());
103 stringBuilder.Replace("#He", ((EClass.pc.bio.gender == 2) ? "he" : "she").lang().ToTitleCase());
104 return Convert(stringBuilder);
105 }
106
107 public static string Convert(string text)
108 {
109 StringBuilder stringBuilder = new StringBuilder();
110 stringBuilder.Append(text);
111 return Convert(stringBuilder);
112 }
113
114 public static string Convert(StringBuilder sb)
115 {
116 sb.Replace("#player", EClass.player.title);
117 sb.Replace("#pc_him", EClass.pc.IsMale ? "him".lang() : "her".lang());
118 sb.Replace("#pc_his", EClass.pc.IsMale ? "his".lang() : "her".lang());
119 sb.Replace("#pc_race", EClass.pc.race.GetName());
120 sb.Replace("#pc", EClass.pc.NameSimple);
121 return sb.ToString();
122 }
123
124 public static string Parse(string text, bool thirdPerson, string val1, string val2 = null, string val3 = null, string val4 = null)
125 {
126 StringBuilder stringBuilder = new StringBuilder(text);
127 if (val1 != null)
128 {
129 if (Lang.articlesToRemove.Count > 0)
130 {
131 string text2 = val1;
132 foreach (char[] item in Lang.articlesToRemove)
133 {
134 text2 = text2.TrimStart(item);
135 }
136 stringBuilder.Replace("-#1", text2);
137 }
138 stringBuilder.Replace("#1", val1 ?? "");
139 }
140 if (val2 != null)
141 {
142 if (Lang.articlesToRemove.Count > 0)
143 {
144 string text3 = val2;
145 foreach (char[] item2 in Lang.articlesToRemove)
146 {
147 text3 = text3.TrimStart(item2);
148 }
149 stringBuilder.Replace("-#2", text3);
150 }
151 stringBuilder.Replace("#2", val2);
152 }
153 if (val3 != null)
154 {
155 stringBuilder.Replace("#3", val3);
156 }
157 if (val4 != null)
158 {
159 stringBuilder.Replace("#4", val4);
160 }
161 if (int.TryParse(val1, out var result))
162 {
163 stringBuilder.Replace("#(s)", (result <= 1) ? "" : "_s".lang());
164 }
166 {
167 stringBuilder.Replace("#your2", Msg.thirdPerson2.your);
168 stringBuilder.Replace("#himself2", Msg.thirdPerson2.himself);
169 stringBuilder.Replace("#him2", Msg.thirdPerson2.him);
170 stringBuilder.Replace("#his2", Msg.thirdPerson2.his);
171 stringBuilder.Replace("#he2", Msg.thirdPerson2.he);
172 stringBuilder.Replace("(s2)", Msg.thirdPerson2.thirdperson ? "s" : "");
173 }
175 {
176 stringBuilder.Replace("#your", Msg.thirdPerson1.your);
177 stringBuilder.Replace("#himself", Msg.thirdPerson1.himself);
178 stringBuilder.Replace("#him", Msg.thirdPerson1.him);
179 stringBuilder.Replace("#his", Msg.thirdPerson1.his);
180 stringBuilder.Replace("#he", Msg.thirdPerson1.he);
181 }
183 {
184 return ConvertThirdPerson(stringBuilder.ToString(), thirdPerson);
185 }
186 return Convert(stringBuilder);
187 }
188
189 public static string ConvertThirdPerson(string text, bool thirdPerson)
190 {
191 string[] array = text.Split(' ');
192 StringBuilder stringBuilder = new StringBuilder();
193 bool flag = true;
194 string[] array2 = array;
195 foreach (string text2 in array2)
196 {
197 if (flag)
198 {
199 flag = false;
200 }
201 else
202 {
203 stringBuilder.Append(' ');
204 }
205 if (text2.Contains('/') && !text2.Contains('<'))
206 {
207 string[] array3 = text2.Split('/');
208 stringBuilder.Append(thirdPerson ? array3[1] : array3[0]);
209 }
210 else
211 {
212 stringBuilder.Append(text2);
213 }
214 }
215 stringBuilder.Replace("(s)", thirdPerson ? "s" : "");
216 stringBuilder.Replace("(es)", thirdPerson ? "es" : "");
217 return Convert(stringBuilder);
218 }
219}
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:107
static string refDrama4
Definition: GameLang.cs:12
static string Convert(StringBuilder sb)
Definition: GameLang.cs:114
static string ConvertThirdPerson(string text, bool thirdPerson)
Definition: GameLang.cs:189
static string Parse(string text, bool thirdPerson, string val1, string val2=null, string val3=null, string val4=null)
Definition: GameLang.cs:124
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:820
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