/// <summary> /// Set material of this checkpoint. /// </summary> /// <param name="playerNumber">Player number of the new owner.</param> public void SetMaterial(PlayerEntity.Player playerNumber) { if (!m_sycaMaterial || !m_arcaMaterial) { return; } Renderer rend = GetComponent <Renderer>(); switch (playerNumber) { case PlayerEntity.Player.Player1: rend.material = m_sycaMaterial; break; case PlayerEntity.Player.Bot: case PlayerEntity.Player.Player2: rend.material = m_arcaMaterial; break; case PlayerEntity.Player.Neutre: if (!GetComponent <Barrack>()) { rend.material = m_neutralMaterial; } break; } if (!m_territory.GetIsAvailable()) { rend.material.color = new Color(0.3f, 0.3f, 0.3f); } }
public IEnumerator Start() { yield return(new WaitUntil(() => GameManager.Instance != null)); yield return(new WaitUntil(GameManager.Instance.GetAllPlayersReady)); if (NetworkServer.connections.Count == 1 && m_playerNumber == PlayerEntity.Player.Player2) { yield return(new WaitWhile(() => null == FindObjectOfType <AIControl>())); m_playerNumber = PlayerEntity.Player.Bot; m_player = FindObjectOfType <AIControl>(); yield return(new WaitUntil(() => NetworkServer.SpawnWithClientAuthority(m_player.gameObject, GameManager.Instance.GetPlayer(PlayerEntity.Player.Player1).GetComponent <NetworkIdentity>().connectionToClient))); } else { m_player = NetworkServer.connections[(int)m_playerNumber].playerControllers[0].gameObject.GetComponent <PlayerEntity>(); } m_player.TakeControl(GetComponent <NetworkIdentity>()); foreach (GameObject item in m_objectToControl) { m_player.TakeControl(item.GetComponent <NetworkIdentity>()); if (item.GetComponent <SpawnUnits>()) { SpawnUnits spawnUnits = item.GetComponent <SpawnUnits>(); spawnUnits.RpcInitPlayerNumber(m_playerNumber); spawnUnits.SetTarget(GetNearestNexus().gameObject); } } }
private void SetListOfObstaclesConstructed() { m_nbTtraps = 0; m_obstaclesConstructedIndList.Clear(); m_obstaclesConstructedByBotIndList.Clear(); for (int i = 0; i < m_listObstacles.Count; i++) { if (IsObstaclesBuilt(new List <int> () { i })) { m_obstaclesConstructedIndList.Add(i); ActiveObstacle activeObstacle = m_listObstacles[i].transform.GetComponentInChildren <ActiveObstacle> (); if (activeObstacle == null) { //Debug.Log("activeObstacle est null"); return; } PlayerEntity.Player playerNumber = activeObstacle.GetPlayerNumber(); if (playerNumber == PlayerEntity.Player.Bot) { if (null != m_listObstacles[i].transform.Find("Trap_A(Clone)")) { m_nbTtraps++; } m_obstaclesConstructedByBotIndList.Add(i); } } } }
public bool IsAvailable(PlayerEntity.Player playerNumber) { if (PlayerEntity.Player.Bot == playerNumber) { playerNumber = PlayerEntity.Player.Player2; } if (m_ownerNumber == playerNumber) { return(true); } if (playerNumber == PlayerEntity.Player.Player1 && m_unitsPlayer1 > 0) { return(true); } else if ((playerNumber == PlayerEntity.Player.Player2 || playerNumber == PlayerEntity.Player.Bot) && m_unitsPlayer2 > 0) { return(true); } if (null != m_barrack && m_barrack.GetPlayerOwner() == playerNumber) { return(true); } return(false); }
/// <summary> /// If a PlayerEntity is register under this playerNumber, remove it /// </summary> public void UnRegisterPlayer(PlayerEntity.Player _playerNumber) { if (m_players.ContainsKey(_playerNumber)) { m_players.Remove(_playerNumber); } }
public void CollectData(PlayerEntity.Player playerNumber, int goldReward) { m_time = Mathf.Round(Time.time); m_playerNumber = playerNumber; m_goldReward = goldReward; SaveData(); }
private IEnumerator Start() { m_collider = m_area.GetComponent <BoxCollider>(); if (PlayerEntity.Player.Player2 == m_ownerNumber && 1 == NetworkServer.connections.Count) { m_ownerNumber = PlayerEntity.Player.Bot; } CheckIfOk(); yield return(new WaitUntil(() => GameManager.Instance != null)); yield return(new WaitUntil(m_gameManager.GetAllPlayersReady)); m_materialDic = new Dictionary <int, Material> { { 1, m_centerMaterials[0] }, { 34, m_centerMaterials[1] }, { 35, m_centerMaterials[2] }, { 46, m_centerMaterials[3] }, { 12, m_centerMaterials[4] }, { 45, m_centerMaterials[5] } }; m_localPlayer = GameManager.Instance.GetLocalPlayer(); InitializeTerritory(); terterOKPlayer1 = IsAvailable(m_localPlayer); terterOKPlayer2 = IsAvailable(PlayerEntity.Player.Player2); terterOKPlayerBot = IsAvailable(PlayerEntity.Player.Bot); }
private bool IsEnoughBombToDestroy(List <int> listIndObstacles) { int nbPlayersObstacles = 0; for (int i = 0; i < listIndObstacles.Count; i++) { if (IsObstaclesBuilt(new List <int> () { listIndObstacles[i] })) { ActiveObstacle activeObstacle = m_listObstacles[listIndObstacles[i]].transform.GetComponentInChildren <ActiveObstacle> (); if (null == activeObstacle) { continue; } PlayerEntity.Player playerNumber = activeObstacle.GetPlayerNumber(); if (playerNumber != PlayerEntity.Player.Bot) { nbPlayersObstacles++; } } } return(nbPlayersObstacles <= GameManager.Instance.GetPlayer(PlayerEntity.Player.Bot).GetComponent <Bomb> ().GetBombStack()); }
public void BuildObstacle(ActiveObstacle.ObstacleType obstacleType, PlayerEntity.Player playerNumber) { if (m_currentState != EState.Buildable) { return; } NetworkConnection conn = GameManager.Instance.GetPlayer(playerNumber).connectionToClient; GameObject obstacleToSpawn = GetObstacleToSpawn(obstacleType, playerNumber); int cost = obstacleToSpawn.GetComponent <ActiveObstacle>().GetBuildingCost(); if (null != conn) { if (!m_territory.IsAvailable(playerNumber)) { TargetShowWarningTerritory(conn); } if (GameManager.Instance.GetPlayer(playerNumber).GetBuildGold() < cost) { TargetShowWarningObstacle(conn); } TargetSoundConstruction(GameManager.Instance.GetLocalPlayerEntity().connectionToClient); } if (GameManager.Instance.GetPlayer(playerNumber).GetBuildGold() < cost) { if (playerNumber != PlayerEntity.Player.Bot) { TargetShowWarningObstacle(GameManager.Instance.GetPlayer(playerNumber).connectionToClient); } return; } GameManager.Instance.GetPlayer(playerNumber).GainBuildGold(-cost); m_currentState = EState.Invulnerable; RpcSetCurrentState(EState.Invulnerable); RpcEnableObstacleConstructor(false); RpcDisableUI(); GameObject obstacleSpawnned = Instantiate(obstacleToSpawn); NetworkServer.Spawn(obstacleSpawnned); obstacleSpawnned.GetComponent <ActiveObstacle>().RpcInitOnConstruction(gameObject, playerNumber); int childCount = 0; foreach (Transform child in transform) { if (child.gameObject.GetComponent <ActiveObstacle>()) { if (childCount > 1) { Destroy(child); } childCount++; } } }
public virtual void TakeDamage(int damageTaken, PlayerEntity.Player enemyId) { m_currentHealth -= damageTaken; if (m_currentHealth <= 0) { SetCurrentState(State.Dead); } }
public void ColledData(GameObject go) { m_playerNumber = go.GetComponent <UnitController>().GetPlayerNumber(); m_time = Mathf.Round(Time.time); m_unitType = go.GetComponent <WarriorUnit>() != null ? "normalUnit" : go.GetComponent <RangeUnit>() != null ? "rangeUnit" : go.GetComponent <TankUnit>() != null ? "tankUnit" : "scoutUnit"; SaveData(); }
public override void SetPlayerOwner(PlayerEntity.Player player) { base.SetPlayerOwner(player); SpawnUnits spawnUnitsComponent = GetComponent <SpawnUnits>(); spawnUnitsComponent.SetPlayerNumber(m_playerOwner); spawnUnitsComponent.SetTarget(GetNearestEnemyNexus().gameObject); spawnUnitsComponent.GetUISelectSpawnUnit().SetIcons(); }
/// <summary> /// If a PlayerEntity is register under this playerNumber, return it /// </summary> public PlayerEntity GetPlayer(PlayerEntity.Player playerNumber) { if (!m_players.ContainsKey(playerNumber)) { Debug.Log("cant find " + playerNumber); return(null); } return(m_players[playerNumber]); }
/// <summary> /// Return SpawnUnit depending on the player and the tag /// </summary> /// <param name="playerNumber">The player who want his SpawnUnit</param> /// <param name="tag">The tag of the SpawnUnit</param> public SpawnUnits GetSpawnUnitForPlayer(PlayerEntity.Player playerNumber, string tag) { KeyValuePair <PlayerEntity.Player, string> key = new KeyValuePair <PlayerEntity.Player, string>(playerNumber, tag); if (m_spawnUnits.ContainsKey(key)) { return(m_spawnUnits[key]); } return(null); }
protected override IEnumerator Construct(PlayerEntity.Player playerNumber) { yield return(base.Construct(playerNumber)); bool isNavMeshBuilt = GameManager.Instance.GetNavMeshSurface().MyBuildNavMesh(); yield return(new WaitUntil(() => isNavMeshBuilt)); RecalculatePath(); GameManager.Instance.GetPlayer(playerNumber).TakeControl(GetComponent <NetworkIdentity>()); }
public GameObject GetPrefabGolemPlayer(PlayerEntity.Player playerNumber) { if (playerNumber == PlayerEntity.Player.Player1) { return(m_prefabGolemSyca); } else { return(m_prefabGolemArca); } }
public bool GetCheckpointOpen(PlayerEntity.Player player) { if (player == PlayerEntity.Player.Neutre) { return(false); } else { return(m_checkpointOpenPlayer[player]); } }
private void InitializeCenterMaterial(PlayerEntity.Player playerNumber) { if (playerNumber == PlayerEntity.Player.Player1) { m_centerIsletRenderer.material = m_centerMaterials[0]; } else if (playerNumber == PlayerEntity.Player.Player2) { m_centerIsletRenderer.material = m_centerMaterials[1]; } }
private void RpcRespawnGolemFX(PlayerEntity.Player killer) { if (killer == PlayerEntity.Player.Player1) { m_fxSpawnSyca.Play(); } else { m_fxSpawnArca.Play(); } }
public override void SetPlayerOwner(PlayerEntity.Player player) { base.SetPlayerOwner(player); if (player == PlayerEntity.Player.Player1) { m_lineRenderer.material = m_laserSyca; } else { m_lineRenderer.material = m_laserArca; } }
public void ColledData(GameObject go) { m_positionX = go.transform.position.x; m_positionZ = go.transform.position.z; m_playerNumber = go.GetComponent <UnitController>().GetPlayerNumber(); m_unitState = go.GetComponent <CombatUnit>().GetCurrentState(); m_time = Mathf.Round(Time.time); m_unitType = go.GetComponent <WarriorUnit>() != null ? "normalUnit" : go.GetComponent <RangeUnit>() != null ? "rangeUnit" : go.GetComponent <TankUnit>() != null ? "tankUnit" : "scoutUnit"; SaveData(); }
public override void TakeDamage(int damageTaken, PlayerEntity.Player enemyId) { m_currentHealth -= damageTaken; if (m_currentHealth <= 0) { m_camp.DecrementGolemsNumber(enemyId); StopAllCoroutines(); CleanEnemyListOnDeath(); CleanCamp(); NetworkServer.Destroy(gameObject); } }
public void InitializeTerritoryCost() { PlayerEntity.Player player = GetLocalPlayer(); if (player == PlayerEntity.Player.Player1) { m_territory_cost = 1; // cost for syca base } else if (player == PlayerEntity.Player.Player2) { m_territory_cost = 34; // cost for arca base } }
protected virtual IEnumerator Construct(PlayerEntity.Player playerNumber) { m_playerNumber = playerNumber; Vector3 destination = new Vector3(transform.localPosition.x, 0, transform.localPosition.z); while (transform.localPosition.y < destination.y) { transform.localPosition = Vector3.MoveTowards(transform.localPosition, destination, m_obstacleHeight * Time.deltaTime / m_obstacleConstructor.GetBuildingTime()); yield return(null); } transform.localPosition = destination; yield return(null); }
protected virtual void CaptureCheckpoint(UnitController unit) { PlayerEntity.Player unitOwner = unit.GetPlayerNumber(); SetCheckpointAuthority(unitOwner); RpcSetIsOnFight(false); RpcChangeIconOn2DView(); RpcCheckpointZoneTransition(unitOwner); RpcSetMaterial(GameManager.Instance.GetPlayer(m_playerOwner).GetPlayerNumber()); if (PlayerEntity.Player.Bot != m_playerOwner) { TargetPlaySoundCapture(GameManager.Instance.GetPlayer(m_playerOwner).connectionToClient); RpcAllPlaySoundCapture(); } CheckAndSetOwnership(unit); }
private void PlaySoundBaseInDanger(UnitController unit) { PlayerEntity.Player unitPlayer = unit.GetPlayerNumber(); // Si le territoire n'appartient pas au joueur if (m_ownerNumber != m_localPlayer || m_ownerNumber == unitPlayer) { return; } if (Time.time - m_stockTime >= 15) { m_alertManager.TimerVerificationBaseInDanger(); m_stockTime = Time.time; } }
public override void DecrementGolemsNumber(PlayerEntity.Player killer) { m_nbGolemsToSpawn++; if (m_nbGolemsToSpawn >= m_golemsList.Count) { RespawnUnderPlayerControl(killer); Invoke("SpawnGolems", m_timeBeforeRespawn); RpcActiveTimer(); if (!isBigGolem) { return; } m_bossSound.StopBossMusic(); } }
public override void DecrementGolemsNumber(PlayerEntity.Player killer) { m_nbGolemsToSpawn++; if (m_nbGolemsToSpawn >= m_golemsList.Count) { DeathEvents.Invoke(killer, m_goldReward); PlayerEntity playerKiller = GameManager.Instance.GetPlayer(killer); playerKiller.GainUnitGold(m_goldReward); Invoke("SpawnGolems", m_timeBeforeRespawn); RpcActiveTimer(); if (killer != PlayerEntity.Player.Bot) { TargetShowTextGold(playerKiller.connectionToClient); } } }
public override void SelectIconToDisplay() { PlayerEntity.Player currentPlayerOwner = GetComponentInParent <CheckpointBase>().GetPlayerOwner(); if (currentPlayerOwner == PlayerEntity.Player.Neutre) { m_spriteRenderer.sprite = m_checkpointStateIcons[0]; } else if (currentPlayerOwner == PlayerEntity.Player.Player1) { m_spriteRenderer.sprite = m_checkpointStateIcons[1]; } else if (currentPlayerOwner == PlayerEntity.Player.Player2 || currentPlayerOwner == PlayerEntity.Player.Bot) { m_spriteRenderer.sprite = m_checkpointStateIcons[2]; } }
public void RpcInitOnConstruction(GameObject parent, PlayerEntity.Player playerNumber) { m_obstacleConstructor = parent.GetComponent <ObstacleConstructor>(); transform.SetParent(parent.transform); transform.rotation = parent.transform.rotation; m_bombEffect = parent.transform.GetComponentInChildren <ParticleSystem>(); m_obstacleConstructor.SetCurrentState(ObstacleConstructor.EState.Invulnerable); GetComponentInChildren <ParticleSystem>().Play(); InitPosition(); m_initPosition = transform.position; if (isServer) { StartCoroutine(Construct(playerNumber)); } }