8 public override string LangUse
18 public override bool CanStack
27 public override void OnCreate(
int lv)
29 this.owner.refVal =
EClass.rnd(30000) + 1;
34 public override bool OnUse(
Chara c)
36 if (this.owner.refVal == 0)
38 this.owner.refVal =
EClass.rnd(30000) + 1;
40 if (this.GetDest(
false) ==
null ||
EClass._map.IsIndoor)
42 Msg.Say(
"nothingHappens");
45 Rand.SetSeed(this.owner.refVal);
46 if (this.owner.blessedState <= BlessedState.Cursed &&
EClass.rnd(2) == 0)
48 Msg.Say(
"mapCrumble", this.owner,
null,
null,
null);
54 if (layerTreasureMap !=
null)
56 layerTreasureMap.SetMap(
this);
62 public Point GetDest(
bool fix =
false)
65 int num = this.owner.GetInt(104,
null);
68 Rand.SetSeed(this.owner.refVal);
69 for (
int i = 0; i < 10000; i++)
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))
76 num = (point.x + 500) * 1000 + (point.z + 500);
77 this.owner.SetInt(104, num);
87 point =
new Point(num / 1000 - 500, num % 1000 - 500);
90 point.x -=
EClass.scene.elomap.minX;
91 point.z -=
EClass.scene.elomap.minY;