Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
CharaAbility Class Reference
Inheritance diagram for CharaAbility:
EClass

Public Member Functions

List< SourceElement.RowGetRandomAbilityList ()
 
 CharaAbility (Chara _owner)
 
void Refresh ()
 
void BuildRandomAbilityList ()
 
void Add (int id, int chance, bool pt)
 
void AddRandom ()
 
void Remove (int id)
 

Static Public Member Functions

static List< SourceElement.RowBuildRandomAbilityList (bool adv)
 
- Static Public Member Functions inherited from EClass
static int rnd (int a)
 
static int curve (int a, int start, int step, int rate=75)
 
static int rndHalf (int a)
 
static float rndf (float a)
 
static int rndSqrt (int a)
 
static void Wait (float a, Card c)
 
static void Wait (float a, Point p)
 
static int Bigger (int a, int b)
 
static int Smaller (int a, int b)
 

Public Attributes

Chara owner
 
ActList list = new ActList()
 

Static Public Attributes

static List< SourceElement.RowrandomAbilities = new List<SourceElement.Row>()
 
static List< SourceElement.RowrandomAbilitiesAdv = new List<SourceElement.Row>()
 
- Static Public Attributes inherited from EClass
static Core core
 

Additional Inherited Members

- Properties inherited from EClass
static Game game [get]
 
static bool AdvMode [get]
 
static Player player [get]
 
static Chara pc [get]
 
static UI ui [get]
 
static Map _map [get]
 
static Zone _zone [get]
 
static FactionBranch Branch [get]
 
static FactionBranch BranchOrHomeBranch [get]
 
static Faction Home [get]
 
static Faction Wilds [get]
 
static Scene scene [get]
 
static BaseGameScreen screen [get]
 
static GameSetting setting [get]
 
static GameData gamedata [get]
 
static ColorProfile Colors [get]
 
static World world [get]
 
static SourceManager sources [get]
 
static SourceManager editorSources [get]
 
static SoundManager Sound [get]
 
static CoreDebug debug [get]
 

Detailed Description

Definition at line 4 of file CharaAbility.cs.

Constructor & Destructor Documentation

◆ CharaAbility()

CharaAbility.CharaAbility ( Chara  _owner)
inline

Definition at line 68 of file CharaAbility.cs.

69 {
70 owner = _owner;
71 Refresh();
72 }
void Refresh()
Definition: CharaAbility.cs:74

References owner, and Refresh().

Member Function Documentation

◆ Add()

void CharaAbility.Add ( int  id,
int  chance,
bool  pt 
)
inline

Definition at line 163 of file CharaAbility.cs.

164 {
165 if (owner._listAbility == null)
166 {
167 owner._listAbility = new List<int>();
168 }
169 owner._listAbility.Add(id * ((!pt) ? 1 : (-1)));
170 Refresh();
171 }
List< int > _listAbility
Definition: Chara.cs:61

References Chara._listAbility, owner, and Refresh().

Referenced by DNA.Apply().

◆ AddRandom()

void CharaAbility.AddRandom ( )
inline

Definition at line 173 of file CharaAbility.cs.

174 {
175 if (owner._listAbility == null)
176 {
177 owner._listAbility = new List<int>();
178 }
179 owner._listAbility.Add(GetRandomAbilityList().RandomItemWeighted((SourceElement.Row e) => e.chance).id);
180 Refresh();
181 }
List< SourceElement.Row > GetRandomAbilityList()
Definition: CharaAbility.cs:51

References Chara._listAbility, GetRandomAbilityList(), owner, and Refresh().

Referenced by Zone.TryGenerateEvolved().

◆ BuildRandomAbilityList() [1/2]

void CharaAbility.BuildRandomAbilityList ( )
inline

Definition at line 128 of file CharaAbility.cs.

129 {
130 foreach (SourceElement.Row row in EClass.sources.elements.rows)
131 {
132 if (row.abilityType.Length == 0 || row.aliasRef == "mold")
133 {
134 continue;
135 }
136 switch (row.id)
137 {
138 case 5000:
139 case 5001:
140 case 5005:
141 case 5040:
142 case 5048:
143 case 6400:
144 case 6410:
145 case 8200:
146 continue;
147 }
148 if (row.idMold != 0 && !(owner.trait is TraitAdventurer))
149 {
150 switch (row.aliasRef)
151 {
152 case "eleEther":
153 case "eleAcid":
154 case "eleCut":
155 case "eleImpact":
156 continue;
157 }
158 }
159 randomAbilities.Add(row);
160 }
161 }
static List< SourceElement.Row > randomAbilities
Definition: CharaAbility.cs:6
new TraitChara trait
Definition: Chara.cs:488
Definition: EClass.cs:5
static SourceManager sources
Definition: EClass.cs:42
SourceElement elements

References SourceManager.elements, owner, randomAbilities, EClass.sources, and Chara.trait.

Referenced by GetRandomAbilityList().

◆ BuildRandomAbilityList() [2/2]

static List< SourceElement.Row > CharaAbility.BuildRandomAbilityList ( bool  adv)
inlinestatic

Definition at line 14 of file CharaAbility.cs.

15 {
16 List<SourceElement.Row> list = new List<SourceElement.Row>();
17 foreach (SourceElement.Row row in EClass.sources.elements.rows)
18 {
19 if (row.abilityType.Length == 0 || row.aliasRef == "mold")
20 {
21 continue;
22 }
23 switch (row.id)
24 {
25 case 5000:
26 case 5001:
27 case 5005:
28 case 5040:
29 case 5048:
30 case 6400:
31 case 6410:
32 case 8200:
33 continue;
34 }
35 if (row.idMold != 0 && !adv)
36 {
37 switch (row.aliasRef)
38 {
39 case "eleEther":
40 case "eleAcid":
41 case "eleCut":
42 case "eleImpact":
43 continue;
44 }
45 }
46 list.Add(row);
47 }
48 return list;
49 }
ActList list
Definition: CharaAbility.cs:12

References SourceManager.elements, list, and EClass.sources.

◆ GetRandomAbilityList()

List< SourceElement.Row > CharaAbility.GetRandomAbilityList ( )
inline

Definition at line 51 of file CharaAbility.cs.

52 {
53 if (randomAbilities.Count == 0)
54 {
56 }
57 if (randomAbilitiesAdv.Count == 0)
58 {
60 }
61 if (!(owner.trait is TraitAdventurer))
62 {
63 return randomAbilities;
64 }
65 return randomAbilitiesAdv;
66 }
static List< SourceElement.Row > randomAbilitiesAdv
Definition: CharaAbility.cs:8
void BuildRandomAbilityList()

References BuildRandomAbilityList(), owner, randomAbilities, randomAbilitiesAdv, and Chara.trait.

Referenced by AddRandom(), and Refresh().

◆ Refresh()

void CharaAbility.Refresh ( )
inline

Definition at line 74 of file CharaAbility.cs.

75 {
76 list.items.Clear();
77 string[] actCombat = owner.source.actCombat;
78 for (int i = 0; i < actCombat.Length; i++)
79 {
80 string[] array = actCombat[i].Split('/');
81 list.items.Add(new ActList.Item
82 {
83 act = ACT.dict[ConvertID(array[0])],
84 chance = ((array.Length > 1) ? array[1].ToInt() : 100),
85 pt = (array.Length > 2)
86 });
87 }
89 {
90 int num = owner.trait.MaxRandomAbility + EClass.rnd(2) - list.items.Count;
91 if (num > 1)
92 {
93 owner._listAbility = new List<int>();
94 for (int j = 0; j < num; j++)
95 {
96 owner._listAbility.Add(GetRandomAbilityList().RandomItemWeighted((SourceElement.Row e) => e.chance).id);
97 }
98 }
99 }
100 if (owner._listAbility == null)
101 {
102 return;
103 }
104 foreach (int item in owner._listAbility)
105 {
106 string alias = EClass.sources.elements.map[Mathf.Abs(item)].alias;
107 list.items.Add(new ActList.Item
108 {
109 act = ACT.dict[alias],
110 chance = 50,
111 pt = (item < 0)
112 });
113 }
114 string ConvertID(string s)
115 {
117 {
118 return s;
119 }
120 if (EClass.sources.elements.alias[s].aliasRef == "mold")
121 {
122 return s + owner.MainElement.source.alias.Replace("ele", "");
123 }
124 return s;
125 }
126 }
List< Item > items
Definition: ActList.cs:14
Element MainElement
Definition: Chara.cs:702
SourceChara.Row source
Definition: Chara.cs:143
static int rnd(int a)
Definition: EClass.cs:50
SourceElement.Row source
Definition: ELEMENT.cs:263
static Element Void
Definition: ELEMENT.cs:228
virtual int MaxRandomAbility
Definition: TraitChara.cs:97

References Chara._listAbility, SourceManager.elements, GetRandomAbilityList(), item, ActList.items, list, Chara.MainElement, TraitChara.MaxRandomAbility, owner, EClass.rnd(), Chara.source, Element.source, EClass.sources, Chara.trait, and Element.Void.

Referenced by Add(), AddRandom(), CharaAbility(), and Remove().

◆ Remove()

void CharaAbility.Remove ( int  id)
inline

Definition at line 183 of file CharaAbility.cs.

184 {
185 owner._listAbility.Remove(id);
186 if (owner._listAbility.Count == 0)
187 {
188 owner._listAbility = null;
189 }
190 Refresh();
191 }

References Chara._listAbility, owner, and Refresh().

Referenced by DNA.Apply().

Member Data Documentation

◆ list

◆ owner

Chara CharaAbility.owner

◆ randomAbilities

List<SourceElement.Row> CharaAbility.randomAbilities = new List<SourceElement.Row>()
static

Definition at line 6 of file CharaAbility.cs.

Referenced by BuildRandomAbilityList(), and GetRandomAbilityList().

◆ randomAbilitiesAdv

List<SourceElement.Row> CharaAbility.randomAbilitiesAdv = new List<SourceElement.Row>()
static

Definition at line 8 of file CharaAbility.cs.

Referenced by GetRandomAbilityList().


The documentation for this class was generated from the following file: