void Start()
 {
     tinker = GameObject.Find("tinker").GetComponent<tinker>();
     phoneMessaging = GameObject.Find("messages").GetComponent<phoneMessages>();
     scoring = GameObject.Find("setup").GetComponent<scoring>();
     sound = GameObject.Find("planets").GetComponent<planetSound>();
     anim = GetComponent<planetAnimation>();
     planetInit = GetComponent<planetInit>();
     allPlanets = GameObject.FindGameObjectsWithTag("Planet");
 }
示例#2
0
    // Update is called once per frame
    void Update()
    {
        // bleed all planets
        for (int i = 0; i < planets.Length; i++)
        {
            planet = planets[i];
            settings = planet.GetComponent<planetSettings>();
            init = planet.GetComponent<planetInit>();

            // choose the bigger evil of hold/gravity
            float bleed = 1.0f;
            if (init.gravityBleedMultilier > bleed) bleed = init.gravityBleedMultilier;
            else if (init.bleedMultilier > bleed) bleed = init.bleedMultilier;

            if (init.do_kill_people && settings.population > 0.0f)
            {
                diffMagnitude = Mathf.Abs(init.initVelocity.magnitude - planet.GetComponent<Rigidbody2D>().velocity.magnitude);
                settings.population -= diffMagnitude * (settings.maxPopulation * settings.bleedPercentage * bleed) * Time.deltaTime;

                // planet dead
                if (settings.population < 0.0f)
                {
                    settings.population = 0.0f;
                }
            }

            PlayDamageSounds(settings, planet);
            UpdateDeceaseCount();
        }
    }