Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
Person.cs
Go to the documentation of this file.
1using Newtonsoft.Json;
2using UnityEngine;
3using UnityEngine.UI;
4
5public class Person : EClass
6{
7 [JsonProperty]
8 public string name;
9
10 [JsonProperty]
11 public string idPortrait;
12
13 [JsonProperty]
14 public string id;
15
16 [JsonProperty]
17 public string tones;
18
19 [JsonProperty]
20 public int uidChara;
21
22 [JsonProperty]
23 public int gender;
24
25 [JsonProperty]
27
28 public RefChara refChara = new RefChara();
29
31
32 public string tempName;
33
34 public SourcePerson.Row source => EClass.sources.persons.map.TryGetValue(id.IsEmpty("narrator"));
35
37
38 public bool hasChara => chara != null;
39
40 public bool HumanSpeak
41 {
42 get
43 {
44 if (chara != null)
45 {
46 if (!chara.IsPC)
47 {
48 return chara.IsHumanSpeak;
49 }
50 return true;
51 }
52 return true;
53 }
54 }
55
56 public string Name => tempName.IsEmpty(name.IsEmpty(chara?.Name ?? source?.GetText("name", returnNull: true) ?? "null")).ToTitleCase();
57
58 public string NameBraced => tempName.IsEmpty(name.IsEmpty(chara?.NameBraced ?? source?.GetText("name", returnNull: true) ?? "null")).ToTitleCase();
59
60 public string Aka => chara?.Aka ?? source?.GetText("aka", returnNull: true) ?? "";
61
62 public Person()
63 {
64 }
65
66 public Person(string _id, Chara c = null)
67 {
68 id = _id;
69 SetChara(c);
70 }
71
72 public Person(Religion r)
73 {
74 id = r.id;
75 name = r.Name;
76 idPortrait = "UN_" + r.id;
77 if (!Portrait.modPortraits.dict.ContainsKey(idPortrait))
78 {
79 idPortrait = "UN_eyth";
80 }
81 }
82
83 public Person(Chara c)
84 {
85 SetChara(c);
86 }
87
88 public void SetChara(Chara c)
89 {
90 if (c != null)
91 {
92 _tempChara = c;
93 uidChara = c.uid;
94 name = chara.Name;
98 }
99 }
100
101 public string ApplyTone(string text)
102 {
103 return chara?.ApplyTone(text) ?? text;
104 }
105
106 public string GetDramaTitle()
107 {
108 if (!tempName.IsEmpty())
109 {
110 return tempName;
111 }
112 if (chara != null)
113 {
114 Biography bio = chara.bio;
115 string text = ((!EClass.debug.showTone || !Lang.setting.useTone || chara.c_idTalk.IsEmpty() || chara.c_idTone.IsEmpty()) ? "" : (" (" + chara.c_idTone.Split('|')[0].TrimEnd('-') + "な" + MOD.listTalk.GetTalk(chara.c_idTalk, "name") + ")"));
116 string dramaText = chara.trait.GetDramaText();
117 if (!dramaText.IsEmpty())
118 {
119 text = text + " " + dramaText;
120 }
121 return chara.Name.ToTitleCase() + " - " + chara.race.GetText().ToTitleCase() + " " + Lang.Parse("age", bio.TextAge(chara)) + " " + Lang._gender(bio.gender) + text;
122 }
123 if (Name.IsEmpty())
124 {
125 return Aka;
126 }
127 if (Aka.IsEmpty())
128 {
129 return "「" + Name + "」";
130 }
131 return Aka.ToTitleCase() + "「" + Name + "」";
132 }
133
134 public void SetImage(Image image)
135 {
136 Sprite sprite = chara?.GetSprite() ?? Resources.Load<Sprite>("Media/Drama/Actor/" + source.idActor) ?? SpriteSheet.Get(source.idActor);
137 if ((bool)sprite)
138 {
139 image.sprite = sprite;
140 image.SetNativeSize();
141 }
142 }
143}
int gender
Definition: Biography.cs:29
string TextAge(Chara c)
Definition: Biography.cs:280
Biography bio
Definition: Card.cs:40
string Name
Definition: Card.cs:2013
string c_idTone
Definition: Card.cs:1445
int uid
Definition: Card.cs:118
string c_idTalk
Definition: Card.cs:1469
string ApplyTone(string text, bool stripPun=false)
Definition: Card.cs:6092
Definition: Chara.cs:10
bool IsHumanSpeak
Definition: Chara.cs:838
new TraitChara trait
Definition: Chara.cs:488
override Sprite GetSprite(int dir=0)
Definition: Chara.cs:6046
override bool IsPC
Definition: Chara.cs:597
string NameBraced
Definition: Chara.cs:499
string Aka
Definition: Chara.cs:201
string GetIdPortrait()
Definition: Chara.cs:7334
SourceRace.Row race
Definition: Chara.cs:449
Definition: EClass.cs:5
static SourceManager sources
Definition: EClass.cs:42
Definition: Lang.cs:6
static string _gender(int id)
Definition: Lang.cs:177
static string Parse(string idLang, string val1, string val2=null, string val3=null, string val4=null, string val5=null)
Definition: Lang.cs:147
Definition: MOD.cs:7
static TalkDataList listTalk
Definition: MOD.cs:10
Dictionary< string, ModItem< T > > dict
Definition: ModItemList.cs:11
Definition: Person.cs:6
void SetImage(Image image)
Definition: Person.cs:134
string Name
Definition: Person.cs:56
SourcePerson.Row source
Definition: Person.cs:34
string idPortrait
Definition: Person.cs:11
string NameBraced
Definition: Person.cs:58
string id
Definition: Person.cs:14
bool hasChara
Definition: Person.cs:38
string Aka
Definition: Person.cs:60
Person(Chara c)
Definition: Person.cs:83
void SetChara(Chara c)
Definition: Person.cs:88
string GetDramaTitle()
Definition: Person.cs:106
int uidChara
Definition: Person.cs:20
string tones
Definition: Person.cs:17
Person(Religion r)
Definition: Person.cs:72
int gender
Definition: Person.cs:23
Person()
Definition: Person.cs:62
RefChara refChara
Definition: Person.cs:28
SerializableColor colorHair
Definition: Person.cs:26
Chara _tempChara
Definition: Person.cs:30
bool HumanSpeak
Definition: Person.cs:41
string ApplyTone(string text)
Definition: Person.cs:101
string name
Definition: Person.cs:8
string tempName
Definition: Person.cs:32
Person(string _id, Chara c=null)
Definition: Person.cs:66
Chara chara
Definition: Person.cs:36
static ModItemList< Sprite > modPortraits
Definition: Portrait.cs:12
Chara GetAndCache(int uid)
Definition: RefChara.cs:5
string Name
Definition: Religion.cs:30
virtual string id
Definition: Religion.cs:26
SourcePerson persons
static Sprite Get(string id)
Definition: SpriteSheet.cs:28
string GetTalk(string id, string idTopic, bool useDefault=false, bool human=true)
Definition: TalkDataList.cs:23
virtual string GetDramaText()
Definition: TraitChara.cs:146