Elin Modding Docs Doc
Loading...
Searching...
No Matches
TraitScrollMapTreasure.cs
1using System;
2
3// Token: 0x02000359 RID: 857
5{
6 // Token: 0x170007C6 RID: 1990
7 // (get) Token: 0x06001A97 RID: 6807 RVA: 0x000A563C File Offset: 0x000A383C
8 public override string LangUse
9 {
10 get
11 {
12 return "actRead";
13 }
14 }
15
16 // Token: 0x170007C7 RID: 1991
17 // (get) Token: 0x06001A98 RID: 6808 RVA: 0x000A5643 File Offset: 0x000A3843
18 public override bool CanStack
19 {
20 get
21 {
22 return false;
23 }
24 }
25
26 // Token: 0x06001A99 RID: 6809 RVA: 0x000A5646 File Offset: 0x000A3846
27 public override void OnCreate(int lv)
28 {
29 this.owner.refVal = EClass.rnd(30000) + 1;
30 this.owner.LV = lv;
31 }
32
33 // Token: 0x06001A9A RID: 6810 RVA: 0x000A566C File Offset: 0x000A386C
34 public override bool OnUse(Chara c)
35 {
36 if (this.owner.refVal == 0)
37 {
38 this.owner.refVal = EClass.rnd(30000) + 1;
39 }
40 if (this.GetDest(false) == null || EClass._map.IsIndoor)
41 {
42 Msg.Say("nothingHappens");
43 return false;
44 }
45 Rand.SetSeed(this.owner.refVal);
46 if (this.owner.blessedState <= BlessedState.Cursed && EClass.rnd(2) == 0)
47 {
48 Msg.Say("mapCrumble", this.owner, null, null, null);
49 this.owner.Destroy();
50 return false;
51 }
52 Rand.SetSeed(-1);
53 LayerTreasureMap layerTreasureMap = EClass.ui.layerFloat.ToggleLayer<LayerTreasureMap>(null);
54 if (layerTreasureMap != null)
55 {
56 layerTreasureMap.SetMap(this);
57 }
58 return false;
59 }
60
61 // Token: 0x06001A9B RID: 6811 RVA: 0x000A572C File Offset: 0x000A392C
62 public Point GetDest(bool fix = false)
63 {
64 Point point = new Point();
65 int num = this.owner.GetInt(104, null);
66 if (num == 0)
67 {
68 Rand.SetSeed(this.owner.refVal);
69 for (int i = 0; i < 10000; i++)
70 {
71 point.x = EClass.scene.elomap.minX + EClass.rnd(200);
72 point.z = EClass.scene.elomap.minY + EClass.rnd(200);
73 if (EClass.scene.elomap.CanBuildSite(point.x, point.z, 1, ElomapSiteType.Treasure))
74 {
75 Rand.SetSeed(-1);
76 num = (point.x + 500) * 1000 + (point.z + 500);
77 this.owner.SetInt(104, num);
78 break;
79 }
80 }
81 Rand.SetSeed(-1);
82 if (num == 0)
83 {
84 return null;
85 }
86 }
87 point = new Point(num / 1000 - 500, num % 1000 - 500);
88 if (fix)
89 {
90 point.x -= EClass.scene.elomap.minX;
91 point.z -= EClass.scene.elomap.minY;
92 }
93 return point;
94 }
95}
Definition Chara.cs:12
Definition Msg.cs:7
Definition Point.cs:11