Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
AI_OpenGambleChest.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2
4{
5 public Thing target;
6
8
9 public bool IsValid()
10 {
11 if (owner == null || owner.isDead || target.isDestroyed)
12 {
13 return false;
14 }
16 {
17 return owner.Dist(target) <= 1;
18 }
19 return true;
20 }
21
22 public override IEnumerable<Status> Run()
23 {
24 owner.Say("lockpick_start", owner, target);
25 owner.PlaySound("lock_pick");
26 while (target.Num > 0 && IsValid())
27 {
28 owner.PlaySound("lock_open_small");
31 yield return KeepRunning();
34 bool flag = owner.Evalue(280) + 5 >= EClass.rnd(target.c_lockLv + 10);
35 if (EClass.rnd(20) == 0)
36 {
37 flag = true;
38 }
39 if (EClass.rnd(20) == 0)
40 {
41 flag = false;
42 }
43 int num = 20 + target.c_lockLv / 3;
44 if (flag)
45 {
46 num *= 3;
49 bool flag2 = 100 + owner.LUC > EClass.rnd(10000);
50 if (EClass.debug.enable && EClass.rnd(2) == 0)
51 {
52 flag2 = true;
53 }
54 if (flag2)
55 {
56 owner.PlaySound("money");
58 Thing thing = ThingGen.Create("money").SetNum(EClass.rndHalf(50 * (100 + target.c_lockLv * 10)));
59 owner.Pick(thing, msg: false);
60 owner.Say("gambleChest_win", thing);
61 }
62 else
63 {
64 owner.Say("gambleChest_loss");
65 }
66 Rand.SetSeed();
67 }
68 else
69 {
70 owner.Say("gambleChest_broke", target.GetName(NameStyle.Full, 1));
71 owner.PlaySound("rock_dead");
72 }
73 target.ModNum(-1);
74 owner.ModExp(280, num);
75 if (EClass.rnd(2) == 0)
76 {
77 owner.stamina.Mod(-1);
78 }
79 }
80 }
81
82 public static Thing MakeReward()
83 {
84 int num = 1;
85 string str = "";
86 if (str.IsEmpty())
87 {
88 str = "money";
89 }
90 return ThingGen.Create(str).SetNum(num);
91 }
92}
AnimeID
Definition: AnimeID.cs:2
NameStyle
Definition: NameStyle.cs:2
Definition: AIAct.cs:6
new Chara owner
Definition: AIAct.cs:14
Status KeepRunning()
Definition: AIAct.cs:321
override IEnumerable< Status > Run()
override CursorInfo CursorIcon
static Thing MakeReward()
void PlayAnime(AnimeID id, bool force)
bool isDestroyed
Definition: Card.cs:71
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:5404
int c_lockLv
Definition: Card.cs:924
Thing SetNum(int a)
Definition: Card.cs:3242
bool IsChildOf(Card c)
Definition: Card.cs:2521
int Evalue(int ele)
Definition: Card.cs:2431
int Dist(Card c)
Definition: Card.cs:6777
void ModExp(string alias, int a)
Definition: Card.cs:2508
int Num
Definition: Card.cs:154
void PlayAnime(AnimeID id, bool force=false)
Definition: Card.cs:5423
void ModNum(int a, bool notify=true)
Definition: Card.cs:3262
CardRenderer renderer
Definition: Card.cs:57
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:6046
Stats stamina
Definition: Chara.cs:955
bool isDead
Definition: Chara.cs:374
override void LookAt(Card c)
Definition: Chara.cs:3219
Thing Pick(Thing t, bool msg=true, bool tryStack=true)
Definition: Chara.cs:3920
bool enable
Definition: CoreDebug.cs:285
static CursorInfo Container
Definition: CursorSystem.cs:82
Definition: EClass.cs:5
static Game game
Definition: EClass.cs:8
static int rnd(int a)
Definition: EClass.cs:50
static int rndHalf(int a)
Definition: EClass.cs:74
static Player player
Definition: EClass.cs:12
static CoreDebug debug
Definition: EClass.cs:48
int seed
Definition: Game.cs:197
int gambleChestOpen
Definition: Player.cs:96
int gambleChest
Definition: Player.cs:94
Stats stats
Definition: Player.cs:817
Definition: Rand.cs:4
static void SetSeed(int a=-1)
Definition: Rand.cs:37
virtual void Mod(int a)
Definition: Stats.cs:135
static Thing Create(string id, int idMat=-1, int lv=-1)
Definition: ThingGen.cs:53
Definition: Thing.cs:8
override string GetName(NameStyle style, int _num=-1)
Definition: Thing.cs:494