10 public override CursorInfo CursorIcon
14 return CursorSystem.Container;
21 return this.owner !=
null && !this.owner.isDead && !this.target.isDestroyed && (this.target.IsChildOf(this.owner) || this.owner.Dist(
this.target) <= 1);
25 public override IEnumerable<
AIAct.Status> Run()
27 this.owner.Say(
"lockpick_start", this.owner, this.target,
null,
null);
28 this.owner.PlaySound(
"lock_pick", 1f,
true);
29 while (this.target.Num > 0 &&
this.IsValid())
31 this.owner.PlaySound(
"lock_open_small", 1f,
true);
32 this.owner.LookAt(this.target);
33 this.target.renderer.PlayAnime(AnimeID.Shiver,
default(Vector3),
false);
34 yield
return base.KeepRunning();
35 EClass.player.stats.gambleChest++;
36 Rand.SetSeed(
EClass.game.seed +
EClass.player.stats.gambleChest);
37 bool flag = this.owner.Evalue(280) + 5 >=
EClass.rnd(this.target.c_lockLv + 10);
46 int num = 20 + this.target.c_lockLv / 3;
50 EClass.player.stats.gambleChestOpen++;
51 Rand.SetSeed(
EClass.game.seed +
EClass.player.stats.gambleChestOpen);
52 bool flag2 = 100 + this.owner.LUC >
EClass.rnd(10000);
59 this.owner.PlaySound(
"money", 1f,
true);
60 this.owner.PlayAnime(AnimeID.Jump,
false);
61 Thing thing =
ThingGen.Create(
"money", -1, -1).SetNum(
EClass.rndHalf(50 * (100 +
this.target.c_lockLv * 10)));
62 this.owner.Pick(thing,
false,
true);
63 this.owner.Say(
"gambleChest_win", thing,
null,
null);
67 this.owner.Say(
"gambleChest_loss",
null,
null);
73 this.owner.Say(
"gambleChest_broke", this.target.GetName(NameStyle.Full, 1),
null);
74 this.owner.PlaySound(
"rock_dead", 1f,
true);
76 this.target.ModNum(-1,
true);
77 this.owner.ModExp(280, num);
80 this.owner.stamina.Mod(-1);
87 public static Thing MakeReward()
95 return ThingGen.Create(text, -1, -1).SetNum(num);