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