mirror of
				https://github.com/smyalygames/monopoly.git
				synced 2025-10-31 18:37:40 +01:00 
			
		
		
		
	Added the ability to add multiple players
This commit is contained in:
		
							parent
							
								
									60cb1c814a
								
							
						
					
					
						commit
						9cb342dd42
					
				
							
								
								
									
										1
									
								
								.idea/.idea.Monopoly/.idea/indexLayout.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1
									
								
								.idea/.idea.Monopoly/.idea/indexLayout.xml
									
									
									
										generated
									
									
									
								
							| @ -3,7 +3,6 @@ | ||||
|   <component name="ContentModelUserStore"> | ||||
|     <attachedFolders /> | ||||
|     <explicitIncludes> | ||||
|       <Path>Assets</Path> | ||||
|       <Path>Library/PackageCache/com.unity.collab-proxy@1.3.9</Path> | ||||
|       <Path>Library/PackageCache/com.unity.ext.nunit@1.0.0</Path> | ||||
|       <Path>Library/PackageCache/com.unity.ide.rider@1.2.1</Path> | ||||
|  | ||||
| @ -135,7 +135,7 @@ GameObject: | ||||
|   - component: {fileID: 239567296} | ||||
|   - component: {fileID: 239567295} | ||||
|   m_Layer: 5 | ||||
|   m_Name: Text (TMP) | ||||
|   m_Name: Players Text | ||||
|   m_TagString: Untagged | ||||
|   m_Icon: {fileID: 0} | ||||
|   m_NavMeshLayer: 0 | ||||
| @ -974,7 +974,7 @@ MonoBehaviour: | ||||
|   m_OnClick: | ||||
|     m_PersistentCalls: | ||||
|       m_Calls: | ||||
|       - m_Target: {fileID: 1824002928} | ||||
|       - m_Target: {fileID: 0} | ||||
|         m_TargetAssemblyTypeName:  | ||||
|         m_MethodName: LoadLevel | ||||
|         m_Mode: 5 | ||||
| @ -1569,6 +1569,7 @@ GameObject: | ||||
|   serializedVersion: 6 | ||||
|   m_Component: | ||||
|   - component: {fileID: 820348872} | ||||
|   - component: {fileID: 820348873} | ||||
|   m_Layer: 5 | ||||
|   m_Name: Play | ||||
|   m_TagString: Untagged | ||||
| @ -1598,6 +1599,22 @@ RectTransform: | ||||
|   m_AnchoredPosition: {x: 0, y: 0} | ||||
|   m_SizeDelta: {x: 0, y: 0} | ||||
|   m_Pivot: {x: 0.5, y: 0.5} | ||||
| --- !u!114 &820348873 | ||||
| MonoBehaviour: | ||||
|   m_ObjectHideFlags: 0 | ||||
|   m_CorrespondingSourceObject: {fileID: 0} | ||||
|   m_PrefabInstance: {fileID: 0} | ||||
|   m_PrefabAsset: {fileID: 0} | ||||
|   m_GameObject: {fileID: 820348871} | ||||
|   m_Enabled: 1 | ||||
|   m_EditorHideFlags: 0 | ||||
|   m_Script: {fileID: 11500000, guid: 89cbcb58c8de8f14baaea829e70e2cb7, type: 3} | ||||
|   m_Name:  | ||||
|   m_EditorClassIdentifier:  | ||||
|   playersInput: {fileID: 1814574228} | ||||
|   play: {fileID: 2129375864} | ||||
|   loadingScreen: {fileID: 821978300} | ||||
|   slider: {fileID: 952453483} | ||||
| --- !u!1 &821978300 | ||||
| GameObject: | ||||
|   m_ObjectHideFlags: 0 | ||||
| @ -3010,7 +3027,7 @@ GameObject: | ||||
|   - component: {fileID: 1814574229} | ||||
|   - component: {fileID: 1814574228} | ||||
|   m_Layer: 5 | ||||
|   m_Name: InputField (TMP) | ||||
|   m_Name: Players Input | ||||
|   m_TagString: Untagged | ||||
|   m_Icon: {fileID: 0} | ||||
|   m_NavMeshLayer: 0 | ||||
| @ -3180,7 +3197,6 @@ GameObject: | ||||
|   serializedVersion: 6 | ||||
|   m_Component: | ||||
|   - component: {fileID: 1824002929} | ||||
|   - component: {fileID: 1824002928} | ||||
|   m_Layer: 0 | ||||
|   m_Name: LoadLevel | ||||
|   m_TagString: Untagged | ||||
| @ -3188,21 +3204,6 @@ GameObject: | ||||
|   m_NavMeshLayer: 0 | ||||
|   m_StaticEditorFlags: 0 | ||||
|   m_IsActive: 1 | ||||
| --- !u!114 &1824002928 | ||||
| MonoBehaviour: | ||||
|   m_ObjectHideFlags: 0 | ||||
|   m_CorrespondingSourceObject: {fileID: 0} | ||||
|   m_PrefabInstance: {fileID: 0} | ||||
|   m_PrefabAsset: {fileID: 0} | ||||
|   m_GameObject: {fileID: 1824002927} | ||||
|   m_Enabled: 1 | ||||
|   m_EditorHideFlags: 0 | ||||
|   m_Script: {fileID: 11500000, guid: 89cbcb58c8de8f14baaea829e70e2cb7, type: 3} | ||||
|   m_Name:  | ||||
|   m_EditorClassIdentifier:  | ||||
|   playersInput: {fileID: 0} | ||||
|   loadingScreen: {fileID: 821978300} | ||||
|   slider: {fileID: 952453483} | ||||
| --- !u!4 &1824002929 | ||||
| Transform: | ||||
|   m_ObjectHideFlags: 0 | ||||
| @ -3806,7 +3807,6 @@ GameObject: | ||||
|   - component: {fileID: 2129375866} | ||||
|   - component: {fileID: 2129375865} | ||||
|   - component: {fileID: 2129375864} | ||||
|   - component: {fileID: 2129375867} | ||||
|   m_Layer: 5 | ||||
|   m_Name: PlayButton | ||||
|   m_TagString: Untagged | ||||
| @ -3915,21 +3915,6 @@ CanvasRenderer: | ||||
|   m_PrefabAsset: {fileID: 0} | ||||
|   m_GameObject: {fileID: 2129375862} | ||||
|   m_CullTransparentMesh: 0 | ||||
| --- !u!114 &2129375867 | ||||
| MonoBehaviour: | ||||
|   m_ObjectHideFlags: 0 | ||||
|   m_CorrespondingSourceObject: {fileID: 0} | ||||
|   m_PrefabInstance: {fileID: 0} | ||||
|   m_PrefabAsset: {fileID: 0} | ||||
|   m_GameObject: {fileID: 2129375862} | ||||
|   m_Enabled: 1 | ||||
|   m_EditorHideFlags: 0 | ||||
|   m_Script: {fileID: 11500000, guid: 89cbcb58c8de8f14baaea829e70e2cb7, type: 3} | ||||
|   m_Name:  | ||||
|   m_EditorClassIdentifier:  | ||||
|   playersInput: {fileID: 0} | ||||
|   loadingScreen: {fileID: 0} | ||||
|   slider: {fileID: 0} | ||||
| --- !u!1 &2143598660 | ||||
| GameObject: | ||||
|   m_ObjectHideFlags: 0 | ||||
|  | ||||
| @ -358,11 +358,9 @@ Transform: | ||||
|   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | ||||
|   m_LocalPosition: {x: 4.4997625, y: 10.148768, z: -4.430161} | ||||
|   m_LocalScale: {x: 1, y: 1, z: 1} | ||||
|   m_Children: | ||||
|   - {fileID: 1272828669} | ||||
|   - {fileID: 305116344} | ||||
|   m_Children: [] | ||||
|   m_Father: {fileID: 0} | ||||
|   m_RootOrder: 5 | ||||
|   m_RootOrder: 7 | ||||
|   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | ||||
| --- !u!1 &85078179 | ||||
| GameObject: | ||||
| @ -1041,7 +1039,7 @@ GameObject: | ||||
|   - component: {fileID: 305116342} | ||||
|   - component: {fileID: 305116341} | ||||
|   m_Layer: 0 | ||||
|   m_Name: Player2 | ||||
|   m_Name: PlayerTemplate | ||||
|   m_TagString: Untagged | ||||
|   m_Icon: {fileID: 0} | ||||
|   m_NavMeshLayer: 0 | ||||
| @ -1117,11 +1115,11 @@ Transform: | ||||
|   m_PrefabAsset: {fileID: 0} | ||||
|   m_GameObject: {fileID: 305116340} | ||||
|   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} | ||||
|   m_LocalPosition: {x: -0.15476274, y: 0.051231384, z: 0.043160915} | ||||
|   m_LocalPosition: {x: 4.345, y: 10.2, z: -4.387} | ||||
|   m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} | ||||
|   m_Children: [] | ||||
|   m_Father: {fileID: 61794250} | ||||
|   m_RootOrder: 1 | ||||
|   m_Father: {fileID: 0} | ||||
|   m_RootOrder: 5 | ||||
|   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | ||||
| --- !u!1 &310476693 | ||||
| GameObject: | ||||
| @ -1222,7 +1220,7 @@ RectTransform: | ||||
|   - {fileID: 929752267} | ||||
|   - {fileID: 653887086} | ||||
|   m_Father: {fileID: 0} | ||||
|   m_RootOrder: 6 | ||||
|   m_RootOrder: 8 | ||||
|   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | ||||
|   m_AnchorMin: {x: 0, y: 0} | ||||
|   m_AnchorMax: {x: 0, y: 0} | ||||
| @ -4160,7 +4158,7 @@ Transform: | ||||
|   m_LocalScale: {x: 1, y: 1, z: 1} | ||||
|   m_Children: [] | ||||
|   m_Father: {fileID: 0} | ||||
|   m_RootOrder: 8 | ||||
|   m_RootOrder: 10 | ||||
|   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | ||||
| --- !u!1 &810784022 | ||||
| GameObject: | ||||
| @ -5233,7 +5231,7 @@ Transform: | ||||
|   m_LocalScale: {x: 1, y: 1, z: 1} | ||||
|   m_Children: [] | ||||
|   m_Father: {fileID: 0} | ||||
|   m_RootOrder: 7 | ||||
|   m_RootOrder: 9 | ||||
|   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | ||||
| --- !u!114 &983314467 | ||||
| MonoBehaviour: | ||||
| @ -5247,6 +5245,9 @@ MonoBehaviour: | ||||
|   m_Script: {fileID: 11500000, guid: ede8e3ed967bcfe42886d342fcf3d755, type: 3} | ||||
|   m_Name:  | ||||
|   m_EditorClassIdentifier:  | ||||
|   playerParentGameObject: {fileID: 61794249} | ||||
|   playersGameObjects: [] | ||||
|   playerTemplate: {fileID: 305116340} | ||||
| --- !u!114 &983314468 | ||||
| MonoBehaviour: | ||||
|   m_ObjectHideFlags: 0 | ||||
| @ -5303,9 +5304,7 @@ MonoBehaviour: | ||||
|   - {fileID: 399889870} | ||||
|   - {fileID: 724284469} | ||||
|   - {fileID: 1679278720} | ||||
|   players: | ||||
|   - {fileID: 1272828665} | ||||
|   - {fileID: 305116340} | ||||
|   players: [] | ||||
|   currentPlayer: 0 | ||||
|   speed: 10 | ||||
| --- !u!1 &985089322 | ||||
| @ -7109,7 +7108,7 @@ GameObject: | ||||
|   m_Icon: {fileID: 0} | ||||
|   m_NavMeshLayer: 0 | ||||
|   m_StaticEditorFlags: 0 | ||||
|   m_IsActive: 1 | ||||
|   m_IsActive: 0 | ||||
| --- !u!65 &1272828666 | ||||
| BoxCollider: | ||||
|   m_ObjectHideFlags: 0 | ||||
| @ -7180,11 +7179,11 @@ Transform: | ||||
|   m_PrefabAsset: {fileID: 0} | ||||
|   m_GameObject: {fileID: 1272828665} | ||||
|   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} | ||||
|   m_LocalPosition: {x: -0.15476274, y: 0.051231384, z: 0.043160915} | ||||
|   m_LocalPosition: {x: 4.345, y: 10.2, z: -4.387} | ||||
|   m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} | ||||
|   m_Children: [] | ||||
|   m_Father: {fileID: 61794250} | ||||
|   m_RootOrder: 0 | ||||
|   m_Father: {fileID: 0} | ||||
|   m_RootOrder: 6 | ||||
|   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | ||||
| --- !u!1 &1316371467 | ||||
| GameObject: | ||||
|  | ||||
| @ -1,7 +1,4 @@ | ||||
| using System.Collections; | ||||
| using System.Collections.Generic; | ||||
| 
 | ||||
| public static class GameSettings | ||||
| public static class GameSettings | ||||
| { | ||||
|     public static int players; | ||||
|     public static int players = 2; | ||||
| } | ||||
|  | ||||
| @ -1,4 +1,5 @@ | ||||
| using System.Collections; | ||||
| using System; | ||||
| using System.Collections; | ||||
| using System.Collections.Generic; | ||||
| using UnityEngine; | ||||
| using UnityEngine.SceneManagement; | ||||
| @ -10,13 +11,21 @@ public class LevelLoader : MonoBehaviour | ||||
| { | ||||
| 	 | ||||
| 	public TMP_InputField playersInput; //This is for how many players the user has selected. | ||||
| 	public Button play; //This is for the play button. | ||||
|     public GameObject loadingScreen; //Gets the loading screen | ||||
|     public Slider slider; //Gets the slider | ||||
|      | ||||
|     public void LoadLevel (string sceneName) | ||||
| 
 | ||||
|     void Start() | ||||
|     { | ||||
| 	    play.onClick.AddListener(LoadLevel); | ||||
|     } | ||||
| 
 | ||||
|     public void LoadLevel() | ||||
| 	{ | ||||
| 		StartCoroutine(UpdateTable()); //Starts the LoadAsynchronously function | ||||
| 		StartCoroutine(LoadAsynchronously(sceneName)); //Starts the LoadAsynchronously function | ||||
| 		GameSettings.players = Convert.ToInt32(playersInput.text); //This sets the amount of players that has been set to play in the game. | ||||
| 		Debug.Log(GameSettings.players); | ||||
| 		StartCoroutine(LoadAsynchronously("monopoly")); //Starts the LoadAsynchronously function | ||||
| 	} | ||||
| 
 | ||||
|     IEnumerator UpdateTable() | ||||
|  | ||||
| @ -427,6 +427,7 @@ public class Board //Creating the class for the board mechanics. | ||||
| 		} | ||||
| 		 | ||||
| 		players[location.Item1].Pay(Convert.ToInt32(property.property_cost)); //This then makes the player pay for the house that they bought. | ||||
| 		textHandler.UpdateMoney(players[location.Item1].money); //Updates the money on the UI. | ||||
| 	} | ||||
| 
 | ||||
| 	public void SellHouseOnProperty(string propertyName) //This function links the UI button and this class to sell properties. | ||||
| @ -449,6 +450,7 @@ public class Board //Creating the class for the board mechanics. | ||||
| 		} | ||||
| 		 | ||||
| 		players[location.Item1].Pay(Convert.ToInt32(property.property_cost)/-2); //This then gives back the money to the player for half the house/hotel's cost. | ||||
| 		textHandler.UpdateMoney(players[location.Item1].money); //Updates the money on the UI. | ||||
| 	} | ||||
| 
 | ||||
| 	private bool BuyHouse() //This function is used to buy houses locally. | ||||
| @ -789,6 +791,7 @@ public class Player | ||||
| 		if (ownedProperties[currentProperty].mortgageProperty()) //Mortgages the property and if done successfully.. | ||||
| 		{ | ||||
| 			Pay(ownedProperties[currentProperty].property_value / -2); //Gives the user 50% of what the property is worth. (/-2 makes it positive in the Pay function) | ||||
| 			textHandler.UpdateMoney(money); //Updates the money on the UI. | ||||
| 			return true; //Says that mortgaging has been done successfully. | ||||
| 		} | ||||
| 
 | ||||
| @ -805,6 +808,7 @@ public class Player | ||||
| 		if (ownedProperties[currentProperty].unmortgageProperty()) //Unmortgages the property and if done successfully.. | ||||
| 		{ | ||||
| 			Pay((ownedProperties[currentProperty].property_value / 2) * 1.1f); //Makes the user pay what they got in mortgage plus a 10% interest | ||||
| 			textHandler.UpdateMoney(money); //Updates the money on the UI. | ||||
| 			return true; //Says that mortgaging has been done successfully. | ||||
| 		} | ||||
| 
 | ||||
| @ -856,12 +860,27 @@ public class Main : MonoBehaviour | ||||
| 	//Player variables | ||||
| 	public List<Player> players = new List<Player>(); //Creates a list for all the players playing in the game. | ||||
| 
 | ||||
| 	public GameObject playerParentGameObject; //This is where the parent for the player GameObjects goes. | ||||
| 	public List<GameObject> playersGameObjects; //This is the list of player GameObjects | ||||
| 	public GameObject playerTemplate; //This is the template for each new player created. | ||||
| 
 | ||||
| 	private void Awake() | ||||
| 	{ | ||||
| 		//Adds the players to the game | ||||
| 		players.Add(new Player("smyalygames", 0, GameObject.Find("/Players/Player1"))); | ||||
| 		players.Add(new Player("coomer", 1, GameObject.Find("/Players/Player2"))); | ||||
| 		Debug.Log(players[0].name); //This is just checking if the player has been assigned. | ||||
| 
 | ||||
| 		for (int i = 0; i < GameSettings.players; i++) | ||||
| 		{ | ||||
| 			//Duplicates the player template | ||||
| 			//Moves the new player into a parent for players | ||||
| 			//Names the game object player and a unique number | ||||
| 			Instantiate(playerTemplate, playerTemplate.transform.position, Quaternion.identity, playerParentGameObject.transform).name = $"Player{i}"; | ||||
| 			playersGameObjects.Add(GameObject.Find($"/Players/Player{i}")); //Adds to a list of GameObjects by searching for the GameObject. | ||||
| 			players.Add(new Player($"Player {i}", i, playersGameObjects[i])); //Creates a unique player class for that specific GameObject | ||||
| 		} | ||||
| 		 | ||||
| 		Destroy(playerTemplate); //Deletes the player template GameObject. | ||||
| 
 | ||||
| 		Debug.Log(players[1].name); //This is just checking if the player has been assigned. | ||||
| 		existingProperties = JsonConvert.DeserializeObject<List<Property>>(FileHandler.LoadProperties()); //This loads via JSON all the properties from a file which was originally downloaded from a server. | ||||
| 		existingCards = JsonConvert.DeserializeObject<List<Cards>>(FileHandler.LoadCards()); //This loads via JSON all the cards from a file which was originally downloaded from a server. | ||||
| 		board = new Board(players, existingProperties, existingCards); //Creates the board class. | ||||
|  | ||||
| @ -1,4 +1,5 @@ | ||||
| using UnityEngine; | ||||
| using System.Collections.Generic; | ||||
| using UnityEngine; | ||||
| 
 | ||||
| public class Movement : MonoBehaviour | ||||
| { | ||||
| @ -6,7 +7,7 @@ public class Movement : MonoBehaviour | ||||
| 	public bool movement = false; | ||||
| 	private int position = 0; | ||||
| 	public GameObject[] waypoints; | ||||
| 	public GameObject[] players; | ||||
| 	public List<GameObject> players; | ||||
| 	public int currentPlayer; | ||||
| 	float rotSpeed; | ||||
| 	public float speed; | ||||
| @ -36,6 +37,7 @@ public class Movement : MonoBehaviour | ||||
| 	void Awake() | ||||
| 	{ | ||||
| 		main = FindObjectOfType<Main>(); | ||||
| 		players = main.playersGameObjects; | ||||
| 	} | ||||
| 
 | ||||
| 	void Update() | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Anthony Berg
						Anthony Berg