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; } } }