public CombatFlow spawnPlayer(int teamNum, bool isAI = false) { CombatFlow newSpawn = null; if (!isAI) { localTeam = CombatFlow.convertNumToTeam((short)teamNum); spawnUIPanel.SetActive(false); } Debug.Log("Spawning player on team: " + teamNum + ", isAI: " + isAI); // call almost all of this at runtime after player selects team if (playerPrefab == null) { Debug.LogError("<Color=Red><a>Missing</a></Color> playerPrefab Reference. Please set it up in GameObject 'Game Manager'", this); } else { Debug.LogFormat("We are Instantiating LocalPlayer from {0}", Application.loadedLevelName); // we're in a room. spawn a character for the local player. it gets synced by using PhotonNetwork.Instantiate Debug.Log("LocalPlayerInstance: " + TeamSpawner.localPlayerInstance); if (TeamSpawner.localPlayerInstance == null || isAI) { //PhotonNetwork.Instantiate(this.playerPrefab.name, spawnPoint.position, Quaternion.identity, 0); TeamSpawner spawner = getSpawnerByNum(teamNum); GameObject playerObj; if (isAI) { playerObj = spawner.spawnPlayer(playerPrefab, "Jeff", false); Debug.Log("Spawning AI"); spawner.setPlayerAsAI(playerObj); //playerObj.name = "Jeff"; } else { playerObj = spawner.spawnPlayer(playerPrefab, PhotonNetwork.NickName); spawner.setPlayerAsControllable(playerObj); localPlayer = playerObj; playerObj.name = PhotonNetwork.NickName; playerSpawnEvent.Invoke(); } newSpawn = playerObj.GetComponent <CombatFlow>(); //spawner.setPlayerAsControllable(playerObj); //localPlayer = playerObj; } } return(newSpawn); }
public void rpcCreateExplosionAt(Vector3 position, float setRadius, float setCoreDamage, bool doCollide, float dissipationTime, Color glowColor, bool doEmitLight, Color newSmokeColor, float newExpandTime, short newTeamNum, bool newDamageProjectiles, bool newFriendlyFire, float newExplosiveForce) { GameObject newExplosion = GameObject.Instantiate(explodePrefab); newExplosion.transform.position = position; Explosion newExplosionScript = newExplosion.GetComponent <Explosion>(); //newExplosionScript.localOwned = localOwned; CombatFlow.Team newTeam = CombatFlow.convertNumToTeam(newTeamNum); // smoke settings newExplosionScript.emissionColor = glowColor; newExplosionScript.smokeColor = newSmokeColor; //mat.SetColor("_EmissionColor", Color.yellow); newExplosionScript.radius = setRadius; newExplosionScript.coreDamage = setCoreDamage; newExplosionScript.doExplode = true; newExplosionScript.fadeOutTime = dissipationTime; newExplosionScript.GetComponent <Collider>().enabled = doCollide; newExplosionScript.expandTime = newExpandTime; newExplosionScript.team = newTeam; newExplosionScript.damageProjectiles = newDamageProjectiles; newExplosionScript.friendlyFire = newFriendlyFire; newExplosionScript.explosiveForce = newExplosiveForce; // light settings Light light = newExplosionScript.GetComponent <Light>(); light.enabled = doEmitLight; if (doEmitLight) { light.color = glowColor; light.range = newExplosionScript.radius * newExplosionScript.lightRangeScaleFactor; } }
public void rpcInit(int parentLaneID, Vector3 offset, float range, int teamNum) { //Debug.LogError(" CREEP INIT RPC CALLED"); parentLane = PhotonNetwork.GetPhotonView(parentLaneID).GetComponent <LaneManager>(); this.myOffset = offset; effectiveRange = range; myFlow.team = CombatFlow.convertNumToTeam((short)teamNum); //parentLane.waypoints.CopyTo(waypoints); parentLane.myLaneUnits.Add(myFlow); if (turret != null) { turret.setShellTeam(myFlow.team); } // copy list from parent waypoints = new List <Vector3>(parentLane.waypoints); lookAtWaypoint(); //transform.rotation = Quaternion.LookRotation(waypoints[0].position - transform.position, Vector3.up); }
private TeamSpawner getSpawnerByNum(int teamNum) { return(getSpawnerByTeam(CombatFlow.convertNumToTeam((short)teamNum))); }
public List <LaneManager> getTeamLanes(int teamNum) { return(getTeamLanes(CombatFlow.convertNumToTeam((short)teamNum))); }