Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
MiniGame.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using System.IO;
3using UnityEngine;
4
5public class MiniGame
6{
7 public class Balance
8 {
9 public int lastCoin;
10
11 public int changeCoin;
12 }
13
14 public enum Type
15 {
16 Slot,
18 Scratch,
19 Basket,
21 }
22
23 public static Dictionary<string, MiniGame> minigames = new Dictionary<string, MiniGame>();
24
25 public Balance balance = new Balance();
26
27 public GameObject go;
28
30
31 public string path;
32
33 public bool isActive;
34
35 public virtual string id => "";
36
37 public static void RegisterMiniGame(string id, MiniGame g, string _path)
38 {
39 g.path = new FileInfo(_path).DirectoryName;
40 minigames[id] = g;
41 Debug.Log("Registered:" + g?.ToString() + " at " + g.path);
42 }
43
44 public static void Activate(Type type)
45 {
46 if (!minigames.ContainsKey("Basket"))
47 {
48 minigames.Add("Basket", new MiniGame_Basket());
49 }
50 if (!minigames.ContainsKey("Blackjack"))
51 {
52 minigames.Add("Blackjack", new MiniGame_Blackjack());
53 }
54 Debug.Log("Activating:" + type);
55 MiniGame miniGame = minigames.TryGetValue(type.ToString());
56 if (miniGame == null)
57 {
58 Msg.Say("minigame_notSupported");
60 return;
61 }
62 LayerMiniGame layerMiniGame = EClass.ui.AddLayer<LayerMiniGame>();
63 Debug.Log(layerMiniGame);
64 Debug.Log(miniGame);
65 miniGame.balance = new Balance();
66 layerMiniGame.mini = miniGame;
67 layerMiniGame.type = type;
68 Debug.Log("aaa");
69 layerMiniGame.Run();
70 }
71
72 public virtual void OnActivate()
73 {
74 }
75
76 public virtual void OnDeactivate()
77 {
78 }
79
80 public virtual void SlidePosition(float w)
81 {
82 }
83
84 public void Deactivate()
85 {
89 if (balance.changeCoin != 0)
90 {
91 EClass.pc.ModCurrency(balance.changeCoin, "casino_coin");
92 }
93 LayerMiniGame layer = EClass.ui.GetLayer<LayerMiniGame>();
94 if (layer != null)
95 {
96 layer.mini = null;
97 layer.Close();
98 }
99 }
100
101 public void SetAudioMixer(GameObject go)
102 {
103 AudioSource[] componentsInChildren = go.GetComponentsInChildren<AudioSource>();
104 for (int i = 0; i < componentsInChildren.Length; i++)
105 {
106 componentsInChildren[i].outputAudioMixerGroup = SoundManager.current.mixer.FindMatchingGroups("SFX")[0];
107 }
108 }
109
110 public void Say(string lang)
111 {
112 Msg.Say(lang);
113 }
114
115 public virtual bool CanExit()
116 {
117 return true;
118 }
119
120 public void Exit()
121 {
122 EClass.ui.GetLayer<LayerMiniGame>()?.Close();
123 }
124
125 public bool OnPlay(int a)
126 {
127 LayerMiniGame layer = EClass.ui.GetLayer<LayerMiniGame>();
128 if ((bool)layer)
129 {
130 switch (layer.type)
131 {
132 case Type.Basket:
133 EClass.pc.ModExp(108, 15);
134 break;
135 case Type.Blackjack:
136 EClass.pc.ModExp(135, 10);
137 break;
138 case Type.Slot:
139 EClass.pc.ModExp(134, 10);
140 break;
141 }
142 }
143 EClass.pc.stamina.Mod(-a);
146 {
147 return false;
148 }
149 return true;
150 }
151
152 public void GetSlotReward(string id, int pay = 1, int bet = 1)
153 {
154 if (id == null)
155 {
156 id = new string[6] { "ehe", "wild", "cat", "larnneire", "lomias", "bread" }.RandomItem();
157 Debug.Log(id);
158 }
159 Thing c = ThingGen.Create("casino_coin").SetNum(pay * bet);
160 Msg.Say("slot_win", c);
161 }
162}
Thing SetNum(int a)
Definition: Card.cs:3242
void ModCurrency(int a, string id="money")
Definition: Card.cs:3638
void ModExp(string alias, int a)
Definition: Card.cs:2508
override bool IsDisabled
Definition: Chara.cs:570
Stats stamina
Definition: Chara.cs:955
bool isDead
Definition: Chara.cs:374
Definition: EClass.cs:5
static Scene scene
Definition: EClass.cs:30
static Player player
Definition: EClass.cs:12
static Chara pc
Definition: EClass.cs:14
static UI ui
Definition: EClass.cs:16
MiniGame.Type type
Definition: LayerMiniGame.cs:9
virtual void Close()
Definition: Layer.cs:463
GameObject go
Definition: MiniGame.cs:27
string path
Definition: MiniGame.cs:31
static void Activate(Type type)
Definition: MiniGame.cs:44
static void RegisterMiniGame(string id, MiniGame g, string _path)
Definition: MiniGame.cs:37
virtual string id
Definition: MiniGame.cs:35
void SetAudioMixer(GameObject go)
Definition: MiniGame.cs:101
AssetBundle asset
Definition: MiniGame.cs:29
static Dictionary< string, MiniGame > minigames
Definition: MiniGame.cs:23
virtual void OnActivate()
Definition: MiniGame.cs:72
void GetSlotReward(string id, int pay=1, int bet=1)
Definition: MiniGame.cs:152
void Exit()
Definition: MiniGame.cs:120
Balance balance
Definition: MiniGame.cs:25
virtual void OnDeactivate()
Definition: MiniGame.cs:76
void Deactivate()
Definition: MiniGame.cs:84
virtual bool CanExit()
Definition: MiniGame.cs:115
void Say(string lang)
Definition: MiniGame.cs:110
bool OnPlay(int a)
Definition: MiniGame.cs:125
bool isActive
Definition: MiniGame.cs:33
virtual void SlidePosition(float w)
Definition: MiniGame.cs:80
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
void EndTurn(bool consume=true)
Definition: Player.cs:1866
void TryWarnLinuxMod()
Definition: Scene.cs:161
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