示例#1
0
        public void UpdateTemperature(GameTime gameTime)
        {
            _temperature = _defaultTemperature;

            _temperatureStep = 1.0f / (Pax4ActorEnemyAmmoLava._current.Count + Pax4ActorEnemyAmmoIce._current.Count);

            _temperature = _defaultTemperature + _temperatureStep * (float)(Pax4ActorEnemyAmmoLava._current.Count - Pax4ActorEnemyAmmoIce._current.Count);

            if (Pax4ActorEnemyMonsterLava._current != null)
            {
                if (_temperature <= 0.25f)
                {
                    //_monsterLava.DisableBoneAuraParticleEffect();
                    Pax4ActorEnemyMonsterLava._current.SetShieldDown();
                }
                else if (_temperature > 0.25f && Pax4ActorEnemyMonsterLava._current._shieldDown)
                {
                    //_monsterLava.EnableBoneAuraParticleEffect();
                    Pax4ActorEnemyMonsterLava._current.SetShieldDown(false);
                }

                Pax4UiLavaAndIceMissionHealth.SetLavaHealth(Pax4ActorEnemyMonsterLava._current._health);
            }
            else
            {
                Pax4UiLavaAndIceMissionHealth.SetLavaHealth(0.0f);
            }

            if (Pax4ActorEnemyMonsterIce._current != null)
            {
                if (_temperature >= 0.75f)
                {
                    //_monsterIce.DisableBoneAuraParticleEffect();
                    Pax4ActorEnemyMonsterIce._current.SetShieldDown();
                }
                else if (_temperature < 0.75f && Pax4ActorEnemyMonsterIce._current._shieldDown)
                {
                    //_monsterIce.EnableBoneAuraParticleEffect();
                    Pax4ActorEnemyMonsterIce._current.SetShieldDown(false);
                }

                Pax4UiLavaAndIceMissionHealth.SetIceHealth(Pax4ActorEnemyMonsterIce._current._health);
            }
            else
            {
                Pax4UiLavaAndIceMissionHealth.SetIceHealth(0.0f);
            }

            Pax4UiLavaAndIceMissionThermometer.SetTemperature(_temperature);

            if (_autoBalance)
            {
                Pax4Actor actor = null;
                int       nextAvailableWayPointPathIndex = GetNextAvailableWayPointPathIndex();

                if (_temperature < _midTemperatureThreshold)
                {
                    //add random power-ups to 20% of created enemy ammo
                    if (Pax4ActorEnemyMonsterLava._current != null && nextAvailableWayPointPathIndex >= 0)
                    {
                        actor = new Pax4ActorEnemyAmmoLava(_lavaIndex.ToString(), null, _lavaIndex);
                        actor.MoveTo(Vector3.Zero, Pax4ActorEnemyMonsterLava._current._body.Position);
                    }
                }
                else if (_temperature > _midTemperatureThreshold)
                {
                    //add random power-ups to 20% of created enemy ammo
                    if (Pax4ActorEnemyMonsterIce._current != null && nextAvailableWayPointPathIndex >= 0)
                    {
                        actor = new Pax4ActorEnemyAmmoIce(_iceIndex.ToString(), null, _iceIndex);
                        actor.MoveTo(Vector3.Zero, Pax4ActorEnemyMonsterIce._current._body.Position);
                    }
                }

                if (actor != null)
                {
                    new Pax4WayPointControllerActor(actor, 2.0f, _wayPointPath[nextAvailableWayPointPathIndex], _wayPointPath[nextAvailableWayPointPathIndex].GetRandomWayPointIndex());
                    actor.Enable();
                }

                if (_temperature >= 0.48f && _temperature <= 0.52f)
                {
                    _autoBalance = false;
                }
            }
        }