Browse Source

Make cards work again

new_protocol
KeyKoder 5 years ago
parent
commit
7478f27a35
  1. 60
      unity/Assets/Scenes/MainMenu.unity
  2. 22
      unity/Assets/Scripts/Card.cs
  3. 1
      unity/Assets/Scripts/Client.cs
  4. 20
      unity/Assets/Scripts/GameLoader.cs
  5. 2
      unity/Assets/Scripts/TcpConnection.cs

60
unity/Assets/Scenes/MainMenu.unity

@ -38,7 +38,7 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.44658822, g: 0.49642307, b: 0.5748253, a: 1}
m_IndirectSpecularColor: {r: 0.44657844, g: 0.49641222, b: 0.57481694, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
@ -1521,49 +1521,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 665096228}
m_CullTransparentMesh: 0
--- !u!1 &700798141
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 700798142}
- component: {fileID: 700798143}
m_Layer: 0
m_Name: GameObject
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &700798142
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 700798141}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 354.69717, y: 174.50136, z: -13.586394}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 8
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &700798143
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 700798141}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6ae74cd4f5b2c8a2d99e1df77584af4b, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &735549588
GameObject:
m_ObjectHideFlags: 0
@ -1944,13 +1901,14 @@ GameObject:
m_Component:
- component: {fileID: 924830820}
- component: {fileID: 924830819}
- component: {fileID: 924830821}
m_Layer: 0
m_Name: DiscordController
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!114 &924830819
MonoBehaviour:
m_ObjectHideFlags: 0
@ -1977,6 +1935,18 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 7
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &924830821
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 924830818}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6ae74cd4f5b2c8a2d99e1df77584af4b, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &950196291
GameObject:
m_ObjectHideFlags: 0

22
unity/Assets/Scripts/Card.cs

@ -64,7 +64,6 @@ public class Card : MonoBehaviour {//, IPointerEnterHandler, IPointerExitHandler
var conn = Client.GetConnection();
if (conn != null) {
conn.OnClickCard(inPileName, isInCommonPile, idx, mmc.currentUsername);
// conn.OnClickCard(inPileName, isInCommonPile, idx, mmc.currentUsername);
}
}
}
@ -92,23 +91,8 @@ public class Card : MonoBehaviour {//, IPointerEnterHandler, IPointerExitHandler
private void HidePreview() {
cardPreview.GetComponentsInChildren<RawImage>()[0].enabled = false;
}
public void ThrowCard() {
var canvas = Instantiate(cardCanvas, thrownCards.transform.position + new Vector3(0, yOffsetTable + thrownCards.transform.childCount*0.01f, -2.79f), transform.rotation);
canvas.GetComponent<Canvas>().worldCamera = Camera.main;
var newCard = Instantiate(gameObject, Vector3.zero, Quaternion.identity, canvas.transform);
newCard.transform.localScale = Vector3.one;
newCard.GetComponent<Card>().thrown = true;
newCard.GetComponent<Card>().inPileName = "placed";
newCard.GetComponent<Card>().idx = thrownCards.transform.childCount;
newCard.GetComponent<Card>().isInCommonPile = true;
canvas.transform.SetParent(thrownCards.transform);
canvas.transform.localScale = new Vector3(0.01f, 0.01f);
canvas.transform.Rotate(new Vector3(90f, 0f, 0f));
canvas.transform.Rotate(new Vector3(0f, 0f, Random.Range(-20, 20)));
Destroy(gameObject);
}
public void ThrowCard(GameObject pos) {
public void ThrowCard(GameObject pos = null) {
if (pos == null) pos = thrownCards;
var canvas = Instantiate(cardCanvas, pos.transform.position+new Vector3(0, yOffsetTable + pos.transform.childCount * 0.01f, 0), transform.rotation);
canvas.GetComponent<Canvas>().worldCamera = Camera.main;
var newCard = Instantiate(gameObject, Vector3.zero, Quaternion.identity, canvas.transform);
@ -129,7 +113,7 @@ public class Card : MonoBehaviour {//, IPointerEnterHandler, IPointerExitHandler
if (preparedCard) {
var conn = Client.GetConnection();
if (conn != null) {
// GameLoader.ReloadPiles(conn.OnClickCard(inPileName, isInCommonPile, idx, mmc.currentUsername));
conn.OnClickCard(inPileName, isInCommonPile, idx, mmc.currentUsername);
}
}
}

1
unity/Assets/Scripts/Client.cs

@ -114,7 +114,6 @@ public class Client : MonoBehaviour {
}
break;
case Protocol.ServerClientPacket.DataOneofCase.ReturnCardImage: {
Debug.Log("got: "+p);
var v = new Action<Game.Image>[this.returnCardImageHandlers.Count];
this.returnCardImageHandlers.Values.CopyTo(v, 0);
foreach (var n in v) {

20
unity/Assets/Scripts/GameLoader.cs

@ -17,6 +17,7 @@ public class GameLoader : MonoBehaviour {
public GameObject thrownCards;
public static MainMenuController mmc;
public static GameLoader myself;
public Dictionary<string, Texture2D[]> cardImages = new Dictionary<string, Texture2D[]>();
void Awake() {
myself = this;
@ -43,11 +44,18 @@ public class GameLoader : MonoBehaviour {
void SpawnCard(Client.ConnectionImpl conn, string cardKind, GameObject parent, System.Action<GameObject> callback) {
string uuid = Guid.NewGuid().ToString();
conn.eventManager.AddHandler("game_card_image_"+uuid, (Game.Image image) => {
if (cardKind != image.Kind) return;
var card = Instantiate(cardPrefab, Vector3.zero, Quaternion.identity, parent.transform);
var front = new Texture2D(1, 1);
front.LoadImage(image.Face.Span.ToArray());
var back = new Texture2D(1, 1);
if (cardImages.ContainsKey(cardKind)) {
front = cardImages[cardKind][0];
back = cardImages[cardKind][1];
} else {
front.LoadImage(image.Face.Span.ToArray());
back.LoadImage(image.Back.Span.ToArray());
cardImages.Add(cardKind, new Texture2D[] { front, back });
}
card.transform.Find("Images").GetComponentsInChildren<RawImage>()[0].texture = front;
card.transform.Find("Images").GetComponentsInChildren<RawImage>()[1].texture = back;
card.transform.localScale = new Vector3(0.15f, 0.15f, 1f);
@ -66,8 +74,10 @@ public class GameLoader : MonoBehaviour {
var pile = clientPiles[key];
int idx = 0;
foreach (Game.GameStatus.Types.Card card in pile.Cards) {
string key2 = key;
int idx2 = idx;
SpawnCard(conn, card.Kind.Kind, handUI, (GameObject card) => {
card.GetComponent<Card>().InitData(key, false, idx);
card.GetComponent<Card>().InitData(key2, false, idx2);
});
idx++;
}
@ -83,9 +93,11 @@ public class GameLoader : MonoBehaviour {
var pile = clientPiles[key];
int idx = 0;
foreach (Game.GameStatus.Types.Card card in pile.Cards) {
string key2 = key;
int idx2 = idx;
SpawnCard(conn, card.Kind.Kind, key == "placed" ? thrownCards : deck, (GameObject card) => {
card.GetComponent<Card>().ThrowCard(key == "placed" ? thrownCards : deck);
card.GetComponent<Card>().InitData(key, true, idx);
card.GetComponent<Card>().InitData(key2, true, idx2);
card.GetComponent<Card>().ThrowCard(key2 == "placed" ? thrownCards : deck);
});
idx++;
}

2
unity/Assets/Scripts/TcpConnection.cs

@ -37,7 +37,7 @@ public class TcpConnection {
private void ReceiverThread() {
Debug.Log("Started receiver thread");
while(true) {
while (true) {
Protocol.ServerClientPacket packet = Receive();
if (packet == null) {
break;

Loading…
Cancel
Save