Exemple #1
0
    public void FireRightCannon(string equippedProjectile)
    {
        GameObject newProjectile = pooler.SpawnFromPool(equippedProjectile, rCannon.transform.position, rCannon.transform.rotation);/*Instantiate(projectile, rCannon.transform.position, rCannon.transform.rotation) as GameObject;*/

        newProjectile.transform.parent = projectileParent.transform;
        MakeSound();
    }
Exemple #2
0
    public void FireProjectile()
    {
        Vector2 dir        = target.position - transform.position;
        float   shootAngle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;

        pooler.SpawnFromPool(projectile, shooter.position, Quaternion.Euler(0, 0, shootAngle + 270));
    }
Exemple #3
0
    private IEnumerator DelaySpawn(string id_type_objtospawn, string id_objtospawn, Vector3 spawnPos, int amountToSpawn)
    {
        float theDelay = Random.Range(minDelay, maxDelay);

        yield return(new WaitForSeconds(theDelay));

        pooler.SpawnFromPool(id_type_objtospawn, id_objtospawn, spawnPos, amountToSpawn);
        currentSpawnablesNum++;
        isSpawning = false;
        yield break;
    }
    private IEnumerator SpawnShip()
    {
        CreateNPCParent();
        int portalIndex = GetPortalIndex();
        int NPCIndex    = GetNPCIndex();
        //Debug = NPCIndex;
        var newNPC = pooler.SpawnFromPool(NPCs[NPCIndex], townPortals[portalIndex].transform.position, Quaternion.identity);/*Instantiate(NPCs[NPCIndex], townPortals[portalIndex].transform.position, Quaternion.identity);*/

        StartCoroutine(newNPC.GetComponent <OverWorldNPC>().Spawn());
        newNPC.transform.parent = overworldNPCParent.transform;
        yield return(new WaitForSeconds(spawnDelay));
    }
Exemple #5
0
 private void SpawnClouds()
 {
     for (int i = activeClouds; i < numClouds; i++)
     {
         if (spawningClouds && parent.GetPlayerInArea())
         {
             RollCloudPosition();
             GameObject newCloud = pooler.SpawnFromPool(cloudTag, cloudPosition, Quaternion.Euler(new Vector3(0, 0, windDir)));
             newCloud.transform.parent = this.transform;
             newCloud.GetComponent <Cloud>().SetUpParent();
             clouds.Add(newCloud);
             activeClouds++;
         }
     }
 }
Exemple #6
0
    private void SetConditions()
    {
        tansitioningFromFog   = false;
        currentConditionsName = GetConditionTag();
        GameObject newCondition = pooler.SpawnFromPool(currentConditionsName, transform.position, Quaternion.identity);

        newCondition.transform.parent = this.transform;
        newCondition.GetComponent <StormArea>().SetUpParent();
        currentWindSpeed = newCondition.GetComponent <StormArea>().GetWindSpeed();
        if (currentWindSpeed > 0)
        {
            isWindy = true;
        }
        StartCoroutine(Transition(newCondition));
        StartCoroutine(EndCondition(newCondition));
    }
Exemple #7
0
    void Casting(Vector3 direct, Transform playerpos, Hit dmg, InputAction act)
    {
        bool isattackheld = (act.activeControl != null) ? true : false;

        if (isattackheld)
        {
            chargeCounter += Time.deltaTime;
            //play anim, tho player combat already does that.
            Debug.Log("BMag: Casting...");
        }
        else
        {
            if (chargeCounter > 0f)
            {
                string loadspell = null;
                for (int i = 0; i < ChargeList.Count; i++) //(MagicChargePair choggy in ChargeList) //could simplify so it's just one, but these should be short anyways.
                {
                    if (chargeCounter >= ChargeList[i].ChargeLvl)
                    {
                        loadspell = ChargeList[i].prefabType;
                    }
                }

                if (loadspell != null)
                {
                    //Cast Item!
                    //Add additional rotation
                    Quaternion rotato = Quaternion.Euler(rotater);                                        //Quaternion.LookRotation(playerpos.rotation.eulerAngles, Vector3.up);
                    rotato = Quaternion.AngleAxis(playerpos.rotation.eulerAngles.y, Vector3.up) * rotato; //NOTE: Attach rotater to actual ammo


                    GameObject bullet = pooler.SpawnFromPool(loadspell, playerpos.position, rotato);  //NOTE: could pass in a specific fire position at another point.
                    //Rigidbody bulletrigid = bullet.GetComponent<Rigidbody>();
                    //BaseBullet bulletScr = bullet.GetComponent<BaseBullet>();
                    direct.y = 0;

                    //Setup Magic Script, with directions and stuff.


                    Debug.Log("BMag: Casted!");
                }
            }

            chargeCounter = 0f;
        }
    }
    public void Shoot(Vector3 direct, Transform playerpos, Hit dmgStat)
    {
        //Add additional rotation
        Quaternion rotato = Quaternion.Euler(rotater);                                        //Quaternion.LookRotation(playerpos.rotation.eulerAngles, Vector3.up);

        rotato = Quaternion.AngleAxis(playerpos.rotation.eulerAngles.y, Vector3.up) * rotato; //NOTE: Attach rotater to actual ammo


        GameObject bullet      = AmmoPool.SpawnFromPool(bulletType, playerpos.position, rotato); //NOTE: could pass in a specific fire position at another point.
        Rigidbody  bulletrigid = bullet.GetComponent <Rigidbody>();
        BaseBullet bulletScr   = bullet.GetComponent <BaseBullet>();

        direct.y = 0;

        bulletrigid.AddForce(direct * bulletSpeed, ForceMode.VelocityChange); //try to switch to player's model rotation.= as direction
        bulletScr.SetBullet(enemies, dmgStat, playerpos.gameObject);          //Possibly find a better player reference?
    }
Exemple #9
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        var player = collision.GetComponent <PlayerShipController>();

        if (player != null && !hasWeather)
        {
            weatherArea = pooler.SpawnFromPool("Weather Area", transform.position, Quaternion.identity);
            //weatherArea.gameObject.SetActive(true);
            weatherArea.GetComponent <WeatherArea>().StartWeather();
            weatherArea.transform.parent = /*this.*/ transform.parent;
            hasWeather = true;

            /*if(!weather.hasStarted)
             * {
             *  StartCoroutine(weather.StartWeather());
             * }*/
        }
    }
Exemple #10
0
    IEnumerator StartSpawnGarbo(string garby, int count)
    {
        Debug.Log("Spawn running");
        if (!SpawnPools.loaded)
        {
            yield return(new WaitForSeconds(4));
        }



        for (int i = 0; i < count; i++)
        {
            float   randx   = Random.Range(minx, maxx);
            float   randz   = Random.Range(minz, maxz);
            Vector3 randPos = new Vector3(randx, centY, randz);
            SpawnPools.SpawnFromPool(garby, randPos, Quaternion.identity);
        }

        yield break;
    }
 private void UseItemOrAbility()
 {
     if (isUsingItemOrAbility)
     {
         Vector2 playerVelocity = new Vector2(0, 0);
         myRigidBody.velocity = playerVelocity;
         StopMovement();
     }
     if (equippedItem != null && equippedItem.melee)
     {
         myAnimator.SetBool("isSwingingSword", isUsingItemOrAbility);
     }
     else if (equippedItem != null && equippedItem.rangedType == "Thrown")
     {
         if (Input.GetButton("Action") && !inCooldown)
         {
             pooler.SpawnFromPool(equippedItem.itemName, transform.position, Quaternion.identity);
             ResetCooldown(equippedItem.cooldown);
         }
     }
     //myAnimator.SetBool("isAttacking", isUsingItemOrAbility);
 }
 public static GameObject Spawn(PooledObjects pooledObject)
 {
     return(_instance.SpawnFromPool(pooledObject, Vector3.zero, Quaternion.identity));
 }
Exemple #13
0
 // Update is called once per frame
 void FixedUpdate()
 {
     pooler.SpawnFromPool("Enemy", transform.position, Quaternion.identity);
 }
Exemple #14
0
 public void Shoot(Equipment item)
 {
     print(transform.localRotation);
     pooler.SpawnFromPool(item.itemName, transform.position, /*this*/ transform.localRotation);
 }