Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
Hobby.cs
Go to the documentation of this file.
1using System;
2
3public class Hobby : EClass
4{
5 public int id;
6
8
9 public string Name => source.GetName();
10
11 public AIWork GetAI(Chara c)
12 {
13 AIWork aIWork = null;
14 string text = "AIWork_" + source.ai.IsEmpty(source.alias);
15 aIWork = ((!(Type.GetType(text + ", Elin") != null)) ? new AIWork() : ClassCache.Create<AIWork>(text, "Elin"));
16 aIWork.owner = c;
17 aIWork.sourceWork = source;
18 return aIWork;
19 }
20
21 public int GetLv(Chara c)
22 {
23 if (!source.skill.IsEmpty())
24 {
25 return c.Evalue(source.skill);
26 }
27 return c.LV;
28 }
29
30 public int GetEfficiency(Chara c)
31 {
32 int num = 50;
33 FactionBranch factionBranch = ((c.currentZone != null) ? c.homeBranch : EClass._zone?.branch);
34 if (factionBranch == null || (c.currentZone != null && c.currentZone != factionBranch.owner))
35 {
36 return 0;
37 }
38 if (source.alias == "Breeding")
39 {
40 return c.race.breeder;
41 }
42 if (c.currentZone == null || c.currentZone == EClass._zone)
43 {
44 if ((!source.destTrait.IsEmpty() || !source.workTag.IsEmpty()) && !GetAI(c).SetDestination())
45 {
46 return 0;
47 }
48 if (c.noMove && c.pos != null && c.pos.FindThing<TraitGeneratorWheel>() != null)
49 {
50 return 0;
51 }
52 if (c.memberType != FactionMemberType.Livestock)
53 {
54 TraitBed traitBed = c.FindBed();
55 if (traitBed != null)
56 {
57 num += 30 + traitBed.owner.GetTotalQuality() + traitBed.owner.Evalue(750);
58 }
59 }
60 }
61 num += GetLv(c);
62 if (c.affinity.value < 0)
63 {
64 num += c.affinity.value;
65 }
66 num = num * (100 + factionBranch.Evalue(3708) * 10) / 100;
67 if (num >= 0)
68 {
69 return num;
70 }
71 return 0;
72 }
73}
FactionMemberType
Definition: AIWork.cs:5
bool SetDestination()
Definition: AIWork.cs:55
int value
Definition: Affinity.cs:26
Point pos
Definition: Card.cs:55
bool noMove
Definition: Card.cs:742
int Evalue(int ele)
Definition: Card.cs:2431
int GetTotalQuality(bool applyBonus=true)
Definition: Card.cs:3539
int LV
Definition: Card.cs:370
Definition: Chara.cs:10
TraitBed FindBed()
Definition: Chara.cs:6629
Zone currentZone
Definition: Chara.cs:240
FactionMemberType memberType
Definition: Chara.cs:46
Affinity affinity
Definition: Chara.cs:299
FactionBranch homeBranch
Definition: Chara.cs:889
SourceRace.Row race
Definition: Chara.cs:449
Definition: EClass.cs:5
static Zone _zone
Definition: EClass.cs:20
static SourceManager sources
Definition: EClass.cs:42
int Evalue(int ele)
Definition: Hobby.cs:4
SourceHobby.Row source
Definition: Hobby.cs:7
int GetEfficiency(Chara c)
Definition: Hobby.cs:30
AIWork GetAI(Chara c)
Definition: Hobby.cs:11
int GetLv(Chara c)
Definition: Hobby.cs:21
string Name
Definition: Hobby.cs:9
int id
Definition: Hobby.cs:5
Thing FindThing(Func< Thing, bool > func)
Definition: Point.cs:1104
SourceHobby hobbies
Card owner
Definition: Trait.cs:26
FactionBranch branch
Definition: Zone.cs:34