-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLayoutManager.cs
128 lines (109 loc) · 2.74 KB
/
LayoutManager.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
using UdonSharp;
using UnityEngine;
using VRC.SDKBase;
using VRC.Udon;
[AddComponentMenu("")]
public class LayoutManager : UdonSharpBehaviour
{
public Manager manager;
[UdonSynced]
public string layout;
private bool[] hits;
public void Start()
{
this.reset();
}
public void Setup()
{
Debug.Log("Layout manager setup");
this.reset();
string[] layoutArray = layout.Split(',');
for (int i = 0; i < layoutArray.Length; i++)
{
int rnd = Random.Range(0, layoutArray.Length);
string a = layoutArray[i];
string b = layoutArray[rnd];
layoutArray[i] = b;
layoutArray[rnd] = a;
}
layout = layoutArray[0];
for (int i = 1; i < layoutArray.Length; i++)
{
string word = layoutArray[i];
if (word == "")
{
continue;
}
layout = layout + "," + word;
}
}
public void Teardown()
{
this.reset();
}
public bool IsCardSelected(int cardID)
{
if (this.hits[cardID] == true)
{
return false;
}
return true;
}
public void SelectCard(int cardID)
{
this.hits[cardID] = true;
string[] layoutArray = layout.Split(',');
Debug.Log("Layout: Card selected");
int cardType = int.Parse(layoutArray[cardID]);
if (cardType == 0)
{
this.manager.BlueHit(cardID);
}
else if (cardType == 1)
{
this.manager.RedHit(cardID);
}
else if (cardType == 2)
{
this.manager.CivilianHit(cardID);
}
else
{
this.manager.AssassinHit(cardID);
}
}
public int CardType(int cardID)
{
string[] layoutArray = layout.Split(',');
return int.Parse(layoutArray[cardID]);
}
private void reset()
{
int[] layoutArray = new int[25];
hits = new bool[25];
for (int i = 0; i < layoutArray.Length; i++)
{
if (i < 9)
{
layoutArray[i] = 0;
}
else if (i < 17)
{
layoutArray[i] = 1;
}
else if (i < 24)
{
layoutArray[i] = 2;
}
else
{
layoutArray[i] = 3;
}
}
layout = layoutArray[0].ToString();
for (int i = 1; i < layoutArray.Length; i++)
{
layout = layout + "," + layoutArray[i];
}
}
}