Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
TraitScrollMapTreasure.cs
Go to the documentation of this file.
2{
3 public override string LangUse => "actRead";
4
5 public override bool CanStack => false;
6
7 public override void OnCreate(int lv)
8 {
9 owner.refVal = EClass.rnd(30000) + 1;
10 owner.LV = lv;
11 }
12
13 public override bool OnUse(Chara c)
14 {
15 if (owner.refVal == 0)
16 {
17 owner.refVal = EClass.rnd(30000) + 1;
18 }
19 if (GetDest() == null || EClass._map.IsIndoor)
20 {
21 Msg.Say("nothingHappens");
22 return false;
23 }
25 if (owner.blessedState <= BlessedState.Cursed && EClass.rnd(2) == 0)
26 {
27 Msg.Say("mapCrumble", owner);
28 owner.Destroy();
29 return false;
30 }
31 Rand.SetSeed();
33 return false;
34 }
35
36 public Point GetDest(bool fix = false)
37 {
38 Point point = new Point();
39 int num = owner.GetInt(104);
40 if (num == 0)
41 {
43 for (int i = 0; i < 10000; i++)
44 {
45 point.x = EClass.scene.elomap.minX + EClass.rnd(200);
46 point.z = EClass.scene.elomap.minY + EClass.rnd(200);
47 if (EClass.scene.elomap.CanBuildSite(point.x, point.z, 1, ElomapSiteType.Treasure))
48 {
49 Rand.SetSeed();
50 num = (point.x + 500) * 1000 + (point.z + 500);
51 owner.SetInt(104, num);
52 break;
53 }
54 }
55 Rand.SetSeed();
56 if (num == 0)
57 {
58 return null;
59 }
60 }
61 point = new Point(num / 1000 - 500, num % 1000 - 500);
62 if (fix)
63 {
64 point.x -= EClass.scene.elomap.minX;
65 point.z -= EClass.scene.elomap.minY;
66 }
67 return point;
68 }
69}
BlessedState
Definition: BlessedState.cs:2
ElomapSiteType
int GetInt(int id, int? defaultInt=null)
Definition: BaseCard.cs:25
void SetInt(int id, int value=0)
Definition: BaseCard.cs:39
int refVal
Definition: Card.cs:190
void Destroy()
Definition: Card.cs:4538
BlessedState blessedState
Definition: Card.cs:262
Definition: Chara.cs:10
Definition: EClass.cs:5
static Scene scene
Definition: EClass.cs:30
static int rnd(int a)
Definition: EClass.cs:50
static Map _map
Definition: EClass.cs:18
static UI ui
Definition: EClass.cs:16
int minX
Definition: EloMap.cs:112
int minY
Definition: EloMap.cs:114
bool CanBuildSite(int gx, int gy, int radius=0, ElomapSiteType type=ElomapSiteType.Nefia)
Definition: EloMap.cs:359
void ToggleLayer(string id)
Definition: Layer.cs:426
bool IsIndoor
Definition: Map.cs:131
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
Definition: Point.cs:9
int x
Definition: Point.cs:36
int z
Definition: Point.cs:39
Definition: Rand.cs:4
static void SetSeed(int a=-1)
Definition: Rand.cs:37
EloMap elomap
Definition: Scene.cs:143
Point GetDest(bool fix=false)
override bool OnUse(Chara c)
override void OnCreate(int lv)
Card owner
Definition: Trait.cs:26
Layer layerFloat
Definition: UI.cs:49