Exemple #1
0
    // STATIC METHOD OTHER OBJECTS WILL CALL
    // caller can set:
    //  position
    //  radius
    //  damage
    //  collisions enabled
    //  dissipation time
    //  glow color
    //  emit light enabled

    // expand time
    // team
    // damageProjectiles
    // friendlyFire
    public static void createExplosionAt(Vector3 position, float setRadius, float setCoreDamage,
                                         bool doCollide, float dissipationTime, Color glowColor, bool doEmitLight, Color newSmokeColor,
                                         float newExpandTime, CombatFlow.Team newTeam, bool newDamageProjectiles, bool newFriendlyFire,
                                         float newExplosiveForce)
    {
        ExplodeManager expMan = ExplodeManager.getExplodeManager();

        expMan.createExplosionAt(position, setRadius, setCoreDamage, doCollide, dissipationTime, glowColor,
                                 doEmitLight, newSmokeColor, newExpandTime, newTeam, newDamageProjectiles, newFriendlyFire, newExplosiveForce);
    }
    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 List <LaneManager> getTeamLanes(CombatFlow.Team team)
 {
     if (team == CombatFlow.Team.TEAM1)
     {
         return(team1Lanes);
     }
     else
     {
         return(team2Lanes);
     }
 }
Exemple #4
0
 // Start is called before the first frame update
 void Start()
 {
     myFlow = transform.root.gameObject.GetComponent <CombatFlow>();
     if (myFlow != null)
     {
         team = myFlow.team;
     }
     else
     {
         //Debug.Log("Unable to find combatFlow for: " + gameObject.name);
     }
 }
    public void createExplosionAt(Vector3 position, float setRadius, float setCoreDamage,
                                  bool doCollide, float dissipationTime, Color glowColor, bool doEmitLight, Color newSmokeColor,
                                  float newExpandTime, CombatFlow.Team newTeam, bool newDamageProjectiles, bool newFriendlyFire,
                                  float newExplosiveForce)
    {
        // If the weapon that initiated the explosion is not local-owned, it will have
        //  to set the damage, doCollide, and explosive force to zero

        // create local-only explosion
        rpcCreateExplosionAt(position, setRadius, setCoreDamage,
                             doCollide, dissipationTime, glowColor, doEmitLight, newSmokeColor,
                             newExpandTime, CombatFlow.convertTeamToNum(newTeam), newDamageProjectiles, newFriendlyFire,
                             newExplosiveForce);
    }
    private TeamSpawner getSpawnerByTeam(CombatFlow.Team team)
    {
        TeamSpawner returnObj = null;

        for (int i = 0; i < teamSpawnerCollections.Length; i++)
        {
            TeamSpawner current = teamSpawnerCollections[i].GetComponent <TeamSpawner>();
            if (current.team == team)
            {
                returnObj = current;
            }
        }
        return(returnObj);
    }
    private bool checkSpawnContainer(List <AI_GroundAttack> listAI, CombatFlow.Team team)
    {
        bool didSpawn = false;

        for (int i = 0; i < listAI.Count && !didSpawn; i++)
        {
            if (listAI[i] == null)
            {
                didSpawn  = true;
                listAI[i] = doSpawn();
            }
        }

        return(didSpawn);
    }
    public void createNetExplosionAt(Vector3 position, float setRadius, float setCoreDamage,
                                     bool doCollide, float dissipationTime, Color glowColor, bool doEmitLight, Color newSmokeColor,
                                     float newExpandTime, CombatFlow.Team newTeam, bool newDamageProjectiles, bool newFriendlyFire,
                                     float newExplosiveForce)
    {
        // create local explosion, will deal damage
        rpcCreateExplosionAt(position, setRadius, setCoreDamage,
                             doCollide, dissipationTime, glowColor, doEmitLight, newSmokeColor,
                             newExpandTime, CombatFlow.convertTeamToNum(newTeam), newDamageProjectiles, newFriendlyFire,
                             newExplosiveForce);

        // create networked explosion, cosmetic only
        //  zero damage, will not collide, zero explosive force
        photonView.RPC("rpcCreateExplosionAt", RpcTarget.Others, position, setRadius, 0,
                       false, dissipationTime, glowColor, doEmitLight, newSmokeColor,
                       newExpandTime, CombatFlow.convertTeamToNum(newTeam), newDamageProjectiles, newFriendlyFire,
                       0);
    }
    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;
        }
    }
Exemple #10
0
 public void setShellTeam(CombatFlow.Team team)
 {
     //shellSettings
     shellSettings.GetComponent <ExplodeStats>().team = team;
 }
 public List <CombatFlow> getTeamAircraftList(CombatFlow.Team team)
 {
     return(getTeamAircraftList(CombatFlow.convertTeamToNum(team)));
 }