Esempio n. 1
0
    public void FinishedEating(MassObject _mo)
    {
        ThingsBeingEaten.Remove(_mo);
        MyMassObject.SetMass(MyMassObject.Mass + _mo.Mass);

        if (ThingsBeingEaten.Count == 0)
        {
            MouthRenderer.transform.localScale = new Vector3(MouthMinSize, MouthMinSize, 1);
            MyBodyController.OpenMouth(false);
            MyMassObject.CurrentState = MassObject.StateEnum.Default;
        }
    }
Esempio n. 2
0
    IEnumerator _SpawnLoop()
    {
        float _spawnChance = 0;

        while (true)
        {
            if (PlanetsInPlay.Count >= MaxAmount)
            {
                yield return(null);

                continue;
            }

            if (PlanetsInPlay.Count == 0)
            {
                _spawnChance = 1;
            }
            else
            {
                _spawnChance = Mathf.Max(SpawnChanceMin, SpawnChanceMod / PlanetsInPlay.Count);
            }

            if (Random.value < _spawnChance)
            {
                Vector3 _spawnPos     = new Vector3(Mathf.Round(Random.value), Random.value, 0);
                float   _sideOfCamera = Mathf.Sign(_spawnPos.x - 1);

                GameObject _obj = Instantiate(PlanetPrefabs[Random.Range(1, PlanetPrefabs.Count)].gameObject, Camera.main.ViewportToWorldPoint(_spawnPos), Quaternion.identity) as GameObject;
                _obj.transform.position = new Vector3(_obj.transform.position.x, _obj.transform.position.y, 0);

                MassObject _mo = _obj.GetComponent <MassObject>();
                PlanetsInPlay.Add(_mo);
                _mo.MyRigidBody.velocity += new Vector2(-_sideOfCamera, 0);

                float _mass = 1;
                if (Random.value > 0.5f) // 50% of smaller
                {
                    _mass = Random.Range(PLANET_SIZE_MIN, MassObject.CharacterInstance.Mass);
                }
                else
                {
                    _mass = Random.Range(MassObject.CharacterInstance.Mass, Mathf.Min(PLANET_SIZE_MAX, MassObject.CharacterInstance.Mass * 1.25f));
                }
                _mo.SetMass(_mass);
                _obj.transform.position += new Vector3((_mo.Mass * 0.5f) * _sideOfCamera, 0, 0);
            }

            yield return(new WaitForSeconds(1));
        }
    }