Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
ElementSelecter.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using UnityEngine;
3
4public class ElementSelecter : EClass
5{
6 public List<SourceElement.Row> listSource = new List<SourceElement.Row>();
7
8 public List<SourceElement.Row> list = new List<SourceElement.Row>();
9
10 public string type = "B";
11
12 public bool useDomain;
13
14 public int lvMod;
15
16 public int Select(int lv)
17 {
18 if (listSource.Count == 0 || Application.isEditor)
19 {
20 listSource.Clear();
21 foreach (SourceElement.Row row2 in EClass.sources.elements.rows)
22 {
23 if (row2.thing.Contains(type) && row2.chance != 0 && !(row2.aliasRef == "mold"))
24 {
25 listSource.Add(row2);
26 }
27 }
28 }
29 list.Clear();
30 foreach (SourceElement.Row item in listSource)
31 {
32 if (item.LV > lv + lvMod)
33 {
34 continue;
35 }
36 if (!item.aliasRef.IsEmpty() && item.tag.Contains("domain"))
37 {
38 if (!useDomain && EClass.rnd(4) != 0)
39 {
40 continue;
41 }
42 SourceElement.Row row = EClass.sources.elements.alias[item.aliasRef];
43 if ((useDomain && !EClass.player.domains.Contains(row.id) && EClass.rnd(10) > 1) || !row.tag.Contains(item.alias.Split('_')[0]))
44 {
45 continue;
46 }
47 }
48 list.Add(item);
49 }
50 if (list.Count == 0)
51 {
52 return listSource.RandomItemWeighted((SourceElement.Row r) => r.chance).id;
53 }
54 return list.RandomItemWeighted((SourceElement.Row r) => r.chance).id;
55 }
56}
Definition: EClass.cs:5
static int rnd(int a)
Definition: EClass.cs:50
static SourceManager sources
Definition: EClass.cs:42
static Player player
Definition: EClass.cs:12
List< SourceElement.Row > list
int Select(int lv)
List< SourceElement.Row > listSource
List< int > domains
Definition: Player.cs:880
SourceElement elements