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

60
unity/Assets/Scenes/MainMenu.unity

@ -38,7 +38,7 @@ RenderSettings:
m_ReflectionIntensity: 1 m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0} m_CustomReflection: {fileID: 0}
m_Sun: {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 m_UseRadianceAmbientProbe: 0
--- !u!157 &3 --- !u!157 &3
LightmapSettings: LightmapSettings:
@ -1521,49 +1521,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 665096228} m_GameObject: {fileID: 665096228}
m_CullTransparentMesh: 0 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 --- !u!1 &735549588
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1944,13 +1901,14 @@ GameObject:
m_Component: m_Component:
- component: {fileID: 924830820} - component: {fileID: 924830820}
- component: {fileID: 924830819} - component: {fileID: 924830819}
- component: {fileID: 924830821}
m_Layer: 0 m_Layer: 0
m_Name: DiscordController m_Name: DiscordController
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 0
--- !u!114 &924830819 --- !u!114 &924830819
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1977,6 +1935,18 @@ Transform:
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 7 m_RootOrder: 7
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 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 --- !u!1 &950196291
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

22
unity/Assets/Scripts/Card.cs

@ -64,7 +64,6 @@ public class Card : MonoBehaviour {//, IPointerEnterHandler, IPointerExitHandler
var conn = Client.GetConnection(); var conn = Client.GetConnection();
if (conn != null) { if (conn != null) {
conn.OnClickCard(inPileName, isInCommonPile, idx, mmc.currentUsername); 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() { private void HidePreview() {
cardPreview.GetComponentsInChildren<RawImage>()[0].enabled = false; cardPreview.GetComponentsInChildren<RawImage>()[0].enabled = false;
} }
public void ThrowCard(GameObject pos = null) {
public void ThrowCard() { if (pos == null) pos = thrownCards;
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) {
var canvas = Instantiate(cardCanvas, pos.transform.position+new Vector3(0, yOffsetTable + pos.transform.childCount * 0.01f, 0), transform.rotation); 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; canvas.GetComponent<Canvas>().worldCamera = Camera.main;
var newCard = Instantiate(gameObject, Vector3.zero, Quaternion.identity, canvas.transform); var newCard = Instantiate(gameObject, Vector3.zero, Quaternion.identity, canvas.transform);
@ -129,7 +113,7 @@ public class Card : MonoBehaviour {//, IPointerEnterHandler, IPointerExitHandler
if (preparedCard) { if (preparedCard) {
var conn = Client.GetConnection(); var conn = Client.GetConnection();
if (conn != null) { 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; break;
case Protocol.ServerClientPacket.DataOneofCase.ReturnCardImage: { case Protocol.ServerClientPacket.DataOneofCase.ReturnCardImage: {
Debug.Log("got: "+p);
var v = new Action<Game.Image>[this.returnCardImageHandlers.Count]; var v = new Action<Game.Image>[this.returnCardImageHandlers.Count];
this.returnCardImageHandlers.Values.CopyTo(v, 0); this.returnCardImageHandlers.Values.CopyTo(v, 0);
foreach (var n in v) { foreach (var n in v) {

20
unity/Assets/Scripts/GameLoader.cs

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

Loading…
Cancel
Save