IEnumerator PushBack2Home(GameObject defeatedPawn) { cellMetaData.RemovePlayer(defeatedPawn); PlayerMetaData defeatedPMetaData = defeatedPawn.GetComponent <PlayerMetaData>(); GameObject homeCell = defeatedPMetaData.homeCell; GameObject currCell = defeatedPMetaData.currCell; while (currCell != homeCell) { Vector3 desiredPosition = CreateBoard.NewPiecePosition(currCell); defeatedPawn.transform.position = Vector3.Lerp(defeatedPawn.transform.position, desiredPosition, 1); currCell = currCell.GetComponent <CellMetaData>().GetPrevGameObj(defeatedPMetaData.myTeam); if (currCell == null) { currCell = homeCell; } // wasnt able to show smooth behvaviour using progress (t) & movementspeed in lerp // so used this. yield return(new WaitForSeconds(0.05f)); } // Now formally adding defeated pawn to home cell homeCell.GetComponent <CellMetaData>().AddPlayer(defeatedPawn); runningProcesses--; }
public override void OnCollision(Collision collision, PlayerMetaData sender) { if (projectile == null) { Debug.Log("<color=red>Error! Projectile was found to be null upon collision</color>"); } else { if (hideOnImpact) { foreach (Transform item in projectile.instantiatedObject.transform) { item.GetComponent <Renderer>().enabled = false; } } if (freezeOnImpact) { projectile.instantiatedObject.GetComponent <Rigidbody>().isKinematic = true; } if (disableColliders) { foreach (Collider item in projectile.instantiatedObject.GetComponents <Collider>()) { item.enabled = false; } } Destroy(projectile.instantiatedObject, destroyAfter); } }
public static void NewGame() { string dataPath = BuildPath(); PlayerMetaData player = new PlayerMetaData( 30, 30, 25000, "Scenes/GrassyZoneScenes/Hub", new[] { -460f, 56f, 0f }, new bool[SceneManager.sceneCountInBuildSettings], new bool[SceneManager.sceneCountInBuildSettings], new bool[10] { true, false, false, false, false, false, false, false, false, false }, new int[2] { 0, 0 }, 0, false, false, false, "", 0); BinaryFormatter binaryFormatter = new BinaryFormatter(); using (FileStream fileStream = File.Open(dataPath, FileMode.OpenOrCreate)) { binaryFormatter.Serialize(fileStream, player); } }
void MoveToBase() { Debug.Log("Adding player to home cell"); Debug.Log($"Team number is {myTeam}"); Debug.Log($"pawn number is {myPawn}"); if (myPawn == -1) { Debug.LogError("Pawn number for this instantiate is invalid: " + "must be a problem with team number"); } // Setting player color according to team number Helper.ChangeColor(gameObject, CustomizedVars.CV.playerColors[myTeam]); // Referencing this object in gameobects script; GameObjects.GO.players[myTeam, myPawn] = gameObject; GameObject homeCell = ClassObjects.Gameobj.homeCells[myTeam].objects[myPawn]; homeCell.GetComponent <CellMetaData>().players.Clear(); homeCell.GetComponent <CellMetaData>().AddPlayer(gameObject); PlayerMetaData playerMetaData = GetComponent <PlayerMetaData>(); playerMetaData.homeCell = homeCell; playerMetaData.currCell = homeCell; }
private void GatherChanges(MinecraftVersion minBlockVersionNumber, MinecraftVersion maxBlockVersionNumber, int suggestedMaxBlockRequests, MinecraftVersion minPlayerVersionNumber, MinecraftVersion maxPlayerVersionNumber, int suggestedMaxPlayerRequests, BlockMetaData[] blocks, PlayerMetaData[] players, ref BlockMetaData[] blocksResult, ref PlayerMetaData[] playerResult, out int nBlocks, out int nPlayers, out int nBlocksLeft, out int nPlayersLeft, out MinecraftVersion lastBlockUsedVersion, out MinecraftVersion lastPlayerUsedVersion) { nBlocks = 0; var blockRange = new BlockEnumerateRange(blocks); GetRangeInfo(blockRange, minBlockVersionNumber, maxBlockVersionNumber, suggestedMaxBlockRequests, out int firstIndex, out nBlocks, out nBlocksLeft, out lastBlockUsedVersion); if (nBlocks > 0) { blocksResult = new BlockMetaData[nBlocks]; Array.Copy(blocks, firstIndex, blocksResult, 0, nBlocks); } nPlayers = 0; var playerRange = new PlayersEnumerateRange(players); GetRangeInfo(playerRange, minPlayerVersionNumber, maxPlayerVersionNumber, suggestedMaxPlayerRequests, out firstIndex, out nPlayers, out nPlayersLeft, out lastPlayerUsedVersion); if (nPlayers > 0) { playerResult = new PlayerMetaData[nPlayers]; Array.Copy(players, firstIndex, playerResult, 0, nPlayers); } }
// Start is called before the first frame update void Start() { if (PlayerMetaData.GetLastWinner() == "Player1") { winnerText.text = "Player 1 Wins!"; } if (PlayerMetaData.GetLastWinner() == "Player2") { winnerText.text = "Player 2 Wins!"; } }
public static PlayerMetaData FromPlayer(Player player) { PlayerMetaData result = new PlayerMetaData(); result.id = player.Id; result.room = player.Room; result.floor = player.Floor; result.username = player.Username; result.utcoffset = player.UTCOffset; return result; }
// [MenuItem("Tools/PlacePiece")] private static void PlacePiecesStart() { playerPiecesParent = new GameObject("Players"); playerPiecesParent.transform.parent = board.transform; playerPieces = new GameObject[N, 4]; startHomeCells = new GameObject[N, 4]; GameObject startHomeCellParent = new GameObject("Start Home Cells"); startHomeCellParent.transform.parent = board.transform; for (int player = 0; player < N; player++) { for (int i = 0; i < 4; i++) { playerPieces[player, i] = InstObj(new Vector3(0, 0, 0), "PreFabs/PlayerPeice", playerPiecesParent); // Creating Home Cell startHomeCells[player, i] = InstObj(Vector3.zero, "Prefabs/StartHomeCell", startHomeCellParent); // Naming it for future use startHomeCells[player, i].name = $"StartHomeCell{player}{i}"; // Changing its Color ChangeColor(startHomeCells[player, i], PlayerColors[player]); // Positioning it Vector3 origPos = startHomeCells[player, i].transform.position; Vector3 newPos = startHomeCentroid[player]; float r = 1; startHomeCells[player, i].transform.position = new Vector3( newPos.x + r * Mathf.Cos(Mathf.PI / 2 * i), 0.01f, newPos.z + r * Mathf.Sin(Mathf.PI / 2 * i)); // adding meta data PlayerMetaData playerMetaData = playerPieces[player, i].GetComponent <PlayerMetaData>(); playerMetaData.currCell = startHomeCells[player, i]; playerMetaData.homeCell = startHomeCells[player, i]; playerMetaData.myTeam = player; playerMetaData.pawnNum = i; startHomeCells[player, i].GetComponent <CellMetaData>().AddPlayer(playerPieces[player, i]); // // placing player piece // playerPieces[player, i].transform.position = NewPiecePosition(startHomeCells[player, i]); // playerPieces[player, i].transform.localRotation = Quaternion.Euler(-90, 0, 0); // changing primary attributes playerPieces[player, i].name = $"Player{player}{i}"; ChangeColor(playerPieces[player, i], PlayerColors[player]); } } }
void OnTriggerEnter(Collider collider) { if (collider.gameObject.GetComponent <ShipControls>().GetGamePad().ToString() == "Player1") { PlayerMetaData.SetLastWinner("Player1"); } if (collider.gameObject.GetComponent <ShipControls>().GetGamePad().ToString() == "Player2") { PlayerMetaData.SetLastWinner("Player2"); } SceneManager.LoadScene(2); }
public static Player ToPlayer(PlayerMetaData player) { if (player == null) return null; Player result = new Player(); result.Id = player.id; result.Username = player.username; result.Floor = player.floor; result.Room = player.room; result.UTCOffset = player.utcoffset; return result; }
public async Task <PlayerMetaData[]> GetAsync() { var player = await this.StateManager.GetStateAsync <Dictionary <ActorId, PlayerMetaData> >(_playerTag); if (player.Count == 0) { return(null); } var resultplayer = new PlayerMetaData[player.Count]; player.Values.CopyTo(resultplayer, 0); return(resultplayer); }
public override void OnCollision(Collision collision, PlayerMetaData sender) { Vector3 position = AverageCollisionPosition(collision) + offset; GameObject aoeColliderObject = new GameObject("--AOE Collider--"); AOEHelper = aoeColliderObject.AddComponent <MonoHelper.AOEImpactable>() as MonoHelper.AOEImpactable; AOEHelper.SetSettings(this, sender); aoeColliderObject.transform.position = position; //Instantiate(aoeColliderObject, position , Quaternion.identity); }
public async Task <GenericResponse> Update(ActorId playerAgentID, PlayerMetaData playerData) { var player = await this.StateManager.GetStateAsync <Dictionary <ActorId, PlayerMetaData> >(_playerTag); playerData.version = MinecraftVersion.GetNext(); if (player.ContainsKey(playerAgentID)) { player[playerAgentID] = playerData; } else { player.Add(playerAgentID, playerData); } await this.StateManager.SetStateAsync(_playerTag, player); return(new GenericResponse()); }
public static void SetPlayer(PlayerMetaData data) { SceneManager.LoadScene(data.scene); loadedUpgradesFound = data.upgradesFound; scenesVisited = data.scenesVisited; gunsFound = data.gunsFound; selectedGuns = data.selectedGuns; currentGunIndex = data.currentGunIndex; playerPos = new Vector3(data.position[0], data.position[1], data.position[2]); SceneManager.sceneLoaded += OnSceneLoaded; PlayerHealth.maxHP = data.maxHP; PlayerHealth.currHP = data.currHP; PlayerCurrency.wealth = data.wealth; PlayerAbilities.magnet = data.magnet; PlayerAbilities.flower = data.flower; PlayerAbilities.speed = data.speed; AbilitySelection.currentAbility = data.currentAbility; PlayerHealth.numberOfHealthUpgrades = data.numberOfHealthUpgrades; }
public override void OnCollision(Collider other, PlayerMetaData sender) { Vector3 playPos = other.transform.position; Vector3 sendPos = sender.transform.position; foreach (AudioClip sound in toSender) { AudioSource.PlayClipAtPoint(sound, sendPos, toSenderVolume); } foreach (AudioClip sound in toImpact) { AudioSource.PlayClipAtPoint(sound, playPos, toImpactVolume); } foreach (AudioClip sound in toHitObject) { AudioSource.PlayClipAtPoint(sound, sender.transform.position, toHitObjectVolume); } }
public static void Save() { string dataPath = BuildPath(); bool[] newUpgradeIndexes = new bool[SceneManager.sceneCountInBuildSettings]; Array.Copy(PlayerInit.loadedUpgradesFound, newUpgradeIndexes, PlayerInit.loadedUpgradesFound.Length); //print(string.Join(", ", newUpgradeIndexes)); if (PlayerHealth.sceneIDForUpgrade != -1) { newUpgradeIndexes[PlayerHealth.sceneIDForUpgrade] = true; } PlayerMetaData player = new PlayerMetaData( PlayerHealth.maxHP, PlayerHealth.currHP, PlayerCurrency.wealth, SceneManager.GetActiveScene().name, FindCheckpointPos(), newUpgradeIndexes, PlayerInit.scenesVisited, PlayerInit.gunsFound, PlayerInit.selectedGuns, PlayerInit.currentGunIndex, PlayerAbilities.magnet, PlayerAbilities.flower, PlayerAbilities.speed, AbilitySelection.currentAbility, PlayerHealth.numberOfHealthUpgrades ); BinaryFormatter binaryFormatter = new BinaryFormatter(); using (FileStream fileStream = File.Open(dataPath, FileMode.OpenOrCreate)) { binaryFormatter.Serialize(fileStream, player); } }
void OnTriggerEnter2D(Collider2D col) { if (col.gameObject.name == "obj_player") { bool[] newUpgradeIndexes = new bool[SceneManager.sceneCountInBuildSettings]; Array.Copy(PlayerInit.loadedUpgradesFound, newUpgradeIndexes, PlayerInit.loadedUpgradesFound.Length); if (PlayerHealth.sceneIDForUpgrade != -1) { newUpgradeIndexes[PlayerHealth.sceneIDForUpgrade] = true; } // Build current player metadata PlayerMetaData player = new PlayerMetaData( PlayerHealth.maxHP, PlayerHealth.currHP, PlayerCurrency.wealth, warpScene, new[] { warpPosition.x, warpPosition.y, warpPosition.z }, newUpgradeIndexes, PlayerInit.scenesVisited, PlayerInit.gunsFound, PlayerInit.selectedGuns, PlayerInit.currentGunIndex, PlayerAbilities.magnet, PlayerAbilities.flower, PlayerAbilities.speed, AbilitySelection.currentAbility, PlayerHealth.numberOfHealthUpgrades ); // Warp player to next scene PlayerInit.SetPlayer(player); } }
public override void OnCollision(Collision collision, PlayerMetaData sender) { Spawn(collision); }
public override void OnCollision(Collider other, PlayerMetaData sender) { }
public override void OnCollision(Collider other, PlayerMetaData sender) { //throw new NotImplementedException(); }