From 1f42e4a4db21f69d4d178ebbeb6b9c203ee3f10e Mon Sep 17 00:00:00 2001 From: Regalis Date: Mon, 1 Jun 2015 22:20:17 +0300 Subject: [PATCH] low pass filter to sounds playing at distance, "armored" limbs, moved playing damagesounds from attack to IDamageable --- Subsurface/Characters/Character.cs | 32 +------ Subsurface/Characters/Limb.cs | 67 +++++++++++++- Subsurface/Characters/LimbAttack.cs | 16 ++-- Subsurface/Characters/StatusEffect.cs | 11 ++- .../Content/Characters/Crawler/crawler.xml | 2 +- .../Content/Items/Diving/divinggear.xml | 4 +- .../Content/Items/OxygenGenerator/item.xml | 2 +- .../Content/Items/{ => Reactor}/fuelrod.png | Bin .../Items/{ => Reactor}/heatabsorber.png | Bin Subsurface/Content/Items/Reactor/reactor.ogg | Bin 0 -> 115502 bytes .../Content/Items/{ => Reactor}/reactor.png | Bin .../Content/Items/{ => Reactor}/reactor.xml | 6 +- Subsurface/Content/Items/Weapons/weapons.xml | 4 +- Subsurface/Content/Items/railgun.xml | 2 +- Subsurface/Items/Components/Container.cs | 2 +- Subsurface/Items/Components/ItemComponent.cs | 42 +++++---- Subsurface/Items/Components/Reactor.cs | 6 ++ .../Items/Components/Signal/Connection.cs | 40 ++++---- Subsurface/Items/Components/Throwable.cs | 3 +- Subsurface/Items/Item.cs | 5 +- Subsurface/Items/ItemPrefab.cs | 21 +++-- Subsurface/Map/Explosion.cs | 2 +- Subsurface/Map/Gap.cs | 37 +++----- Subsurface/Map/IDamageable.cs | 2 +- Subsurface/Map/Structure.cs | 7 +- Subsurface/Sounds/Sound.cs | 84 ++++++++++------- Subsurface/Sounds/SoundManager.cs | 87 ++++++++++++++++-- Subsurface/Subsurface.csproj | 11 ++- Subsurface/Subsurface.csproj.user | 2 +- Subsurface/ToolBox.cs | 6 +- Subsurface_Solution.sln | 3 - Subsurface_Solution.v12.suo | Bin 223744 -> 230400 bytes 32 files changed, 331 insertions(+), 175 deletions(-) rename Subsurface/Content/Items/{ => Reactor}/fuelrod.png (100%) rename Subsurface/Content/Items/{ => Reactor}/heatabsorber.png (100%) create mode 100644 Subsurface/Content/Items/Reactor/reactor.ogg rename Subsurface/Content/Items/{ => Reactor}/reactor.png (100%) rename Subsurface/Content/Items/{ => Reactor}/reactor.xml (84%) diff --git a/Subsurface/Characters/Character.cs b/Subsurface/Characters/Character.cs index f5dc11ff7..cbabf9a79 100644 --- a/Subsurface/Characters/Character.cs +++ b/Subsurface/Characters/Character.cs @@ -654,10 +654,8 @@ namespace Subsurface } } - public void AddDamage(Vector2 position, float amount, float bleedingAmount, float stun) + public void AddDamage(Vector2 position, DamageType damageType, float amount, float bleedingAmount, float stun, bool playSound = false) { - int bloodAmount = 0; - animController.StunTimer = Math.Max(animController.StunTimer, stun); Limb closestLimb = null; @@ -676,35 +674,9 @@ namespace Subsurface if (pull != Vector2.Zero) pull = Vector2.Normalize(pull); closestLimb.body.ApplyForce(pull*Math.Min(amount*100.0f, 100.0f)); - closestLimb.Bleeding += bleedingAmount; - closestLimb.Damage += amount; - bloodAmount = (int)Math.Min((int)(amount*2.0f),20); - //if (closestLimb.Damage>=100.0f) - //{ - // bloodAmount *= 2; - // foreach (var joint in animController.limbJoints) - // { - // if (!(joint.BodyA == closestLimb.body.FarseerBody) && !(joint.BodyB == closestLimb.body.FarseerBody)) continue; - - // joint.Enabled = false; - // break; - // } - //} - for (int i = 0; i < bloodAmount; i++) - { - Vector2 particleVel = closestLimb.SimPosition-position; - if (particleVel != Vector2.Zero) particleVel = Vector2.Normalize(particleVel); + closestLimb.AddDamage(position, damageType, amount, bleedingAmount, playSound); - Game1.particleManager.CreateParticle("blood", - closestLimb.SimPosition, - particleVel * ToolBox.RandomFloat(1.0f,3.0f)); - } - - for (int i = 0; i < bloodAmount / 2; i++) - { - Game1.particleManager.CreateParticle("waterblood",closestLimb.SimPosition,Vector2.Zero); - } } public void Stun() diff --git a/Subsurface/Characters/Limb.cs b/Subsurface/Characters/Limb.cs index 53cce8d37..92af66772 100644 --- a/Subsurface/Characters/Limb.cs +++ b/Subsurface/Characters/Limb.cs @@ -41,12 +41,15 @@ namespace Subsurface public readonly bool ignoreCollisions; - private float maxHealth; + private readonly float maxHealth; private float damage; private float bleeding; public readonly float impactTolerance; + private readonly Vector2 armorSector; + private readonly float armorValue; + Sound hitSound; //a timer for delaying when a hitsound/attacksound can be played again public float soundTimer; @@ -206,6 +209,12 @@ namespace Subsurface steerForce = ToolBox.GetAttributeFloat(element, "steerforce", 0.0f); maxHealth = Math.Max(ToolBox.GetAttributeFloat(element, "health", 100.0f),1.0f); + + armorSector = ToolBox.GetAttributeVector2(element, "armorsector", Vector2.Zero); + armorSector.X = MathHelper.ToRadians(armorSector.X); + armorSector.Y = MathHelper.ToRadians(armorSector.Y); + + armorValue = Math.Max(ToolBox.GetAttributeFloat(element, "armor", 1.0f), 1.0f); body.BodyType = BodyType.Dynamic; body.FarseerBody.AngularDamping = LimbAngularDamping; @@ -248,6 +257,62 @@ namespace Subsurface body.ApplyLinearImpulse((deltaPos - vel * 0.5f) * body.Mass, pullPos); } + public void AddDamage(Vector2 position, DamageType damageType, float amount, float bleedingAmount, bool playSound) + { + DamageSoundType damageSoundType = (damageType == DamageType.Blunt) ? DamageSoundType.LimbBlunt : DamageSoundType.LimbSlash; + + + if (armorSector != Vector2.Zero) + { + float rot = body.Rotation; + if (Dir == -1) rot -= MathHelper.Pi; + + Vector2 armorLimits = new Vector2(rot-armorSector.X*Dir, rot-armorSector.Y*Dir); + + float mid = (armorLimits.X + armorLimits.Y) / 2.0f; + + float angleDiff = ToolBox.GetShortestAngle(ToolBox.VectorToAngle(position - SimPosition), mid); + + if (Math.Abs(angleDiff) < (armorSector.Y-armorSector.X) / 2.0f) return; + } + + if (playSound) + { + AmbientSoundManager.PlayDamageSound(damageSoundType, amount, position); + } + + Bleeding += bleedingAmount; + Damage += amount; + + float bloodAmount = (int)Math.Min((int)(amount * 2.0f), 20); + //if (closestLimb.Damage>=100.0f) + //{ + // bloodAmount *= 2; + // foreach (var joint in animController.limbJoints) + // { + // if (!(joint.BodyA == closestLimb.body.FarseerBody) && !(joint.BodyB == closestLimb.body.FarseerBody)) continue; + + // joint.Enabled = false; + // break; + // } + //} + + for (int i = 0; i < bloodAmount; i++) + { + Vector2 particleVel = SimPosition - position; + if (particleVel != Vector2.Zero) particleVel = Vector2.Normalize(particleVel); + + Game1.particleManager.CreateParticle("blood", + SimPosition, + particleVel * ToolBox.RandomFloat(1.0f, 3.0f)); + } + + for (int i = 0; i < bloodAmount / 2; i++) + { + Game1.particleManager.CreateParticle("waterblood", SimPosition, Vector2.Zero); + } + } + public void Update(float deltaTime) { if (LinearVelocity.X>100.0f) diff --git a/Subsurface/Characters/LimbAttack.cs b/Subsurface/Characters/LimbAttack.cs index 96cf795b7..3aa4f2968 100644 --- a/Subsurface/Characters/LimbAttack.cs +++ b/Subsurface/Characters/LimbAttack.cs @@ -8,11 +8,11 @@ using System.Xml.Linq; namespace Subsurface { - + public enum DamageType { None, Blunt, Slash }; class Attack { - public enum DamageType { None, Blunt, Slash }; + public enum Type { @@ -70,26 +70,26 @@ namespace Subsurface public void DoDamage(IDamageable target, Vector2 position, float deltaTime, bool playSound=true) { float damageAmount = 0.0f; - DamageSoundType damageSoundType = DamageSoundType.None; + //DamageSoundType damageSoundType = DamageSoundType.None; if (target as Character == null) { damageAmount = structureDamage; - damageSoundType = (damageType == DamageType.Blunt) ? DamageSoundType.StructureBlunt: DamageSoundType.StructureSlash; + //damageSoundType = (damageType == DamageType.Blunt) ? DamageSoundType.StructureBlunt: DamageSoundType.StructureSlash; } else { damageAmount = damage; - damageSoundType = (damageType == DamageType.Blunt) ? DamageSoundType.LimbBlunt : DamageSoundType.LimbSlash; + //damageSoundType = (damageType == DamageType.Blunt) ? DamageSoundType.LimbBlunt : DamageSoundType.LimbSlash; } - - if (playSound) AmbientSoundManager.PlayDamageSound(damageSoundType, damageAmount, position); + //damageSoundType = (damageType == DamageType.Blunt) ? DamageSoundType.StructureBlunt : DamageSoundType.StructureSlash; + //if (playSound) AmbientSoundManager.PlayDamageSound(damageSoundType, damageAmount, position); if (duration > 0.0f) damageAmount *= deltaTime; float bleedingAmount = (duration == 0.0f) ? bleedingDamage : bleedingDamage * deltaTime; - if (damageAmount>0.0f) target.AddDamage(position, damageAmount, bleedingAmount, stun); + if (damageAmount>0.0f) target.AddDamage(position, damageType, damageAmount, bleedingAmount, stun, playSound); } } } diff --git a/Subsurface/Characters/StatusEffect.cs b/Subsurface/Characters/StatusEffect.cs index af84101e2..fbede10d3 100644 --- a/Subsurface/Characters/StatusEffect.cs +++ b/Subsurface/Characters/StatusEffect.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.ComponentModel; +using System.IO; using System.Linq; using System.Xml.Linq; @@ -9,6 +10,7 @@ namespace Subsurface class StatusEffect { + [Flags] public enum Target { @@ -20,6 +22,8 @@ namespace Subsurface public string[] propertyNames; private object[] propertyEffects; + + private bool disableDeltaTime; private string[] onContainingNames; @@ -60,7 +64,9 @@ namespace Subsurface { IEnumerable attributes = element.Attributes(); List propertyAttributes = new List(); - + + disableDeltaTime = ToolBox.GetAttributeBool(element, "disabledeltatime", false); + foreach (XAttribute attribute in attributes) { switch (attribute.Name.ToString()) @@ -179,13 +185,14 @@ namespace Subsurface protected void ApplyToProperty(ObjectProperty property, object value, float deltaTime) { + if (disableDeltaTime) deltaTime = 1.0f; Type type = value.GetType(); if (type == typeof(float)) { property.TrySetValue((float)property.GetValue() + (float)value * deltaTime); } - if (type == typeof(int)) + else if (type == typeof(int)) { property.TrySetValue((int)property.GetValue() + (int)value * deltaTime); } diff --git a/Subsurface/Content/Characters/Crawler/crawler.xml b/Subsurface/Content/Characters/Crawler/crawler.xml index e98a1bdd9..6123d043a 100644 --- a/Subsurface/Content/Characters/Crawler/crawler.xml +++ b/Subsurface/Content/Characters/Crawler/crawler.xml @@ -10,7 +10,7 @@ flip="true"> - + diff --git a/Subsurface/Content/Items/Diving/divinggear.xml b/Subsurface/Content/Items/Diving/divinggear.xml index b2e8911af..cdd318394 100644 --- a/Subsurface/Content/Items/Diving/divinggear.xml +++ b/Subsurface/Content/Items/Diving/divinggear.xml @@ -11,7 +11,7 @@ - + @@ -38,7 +38,7 @@ - + diff --git a/Subsurface/Content/Items/OxygenGenerator/item.xml b/Subsurface/Content/Items/OxygenGenerator/item.xml index 09e5d2639..50a16e7b0 100644 --- a/Subsurface/Content/Items/OxygenGenerator/item.xml +++ b/Subsurface/Content/Items/OxygenGenerator/item.xml @@ -6,7 +6,7 @@ - + diff --git a/Subsurface/Content/Items/fuelrod.png b/Subsurface/Content/Items/Reactor/fuelrod.png similarity index 100% rename from Subsurface/Content/Items/fuelrod.png rename to Subsurface/Content/Items/Reactor/fuelrod.png diff --git a/Subsurface/Content/Items/heatabsorber.png b/Subsurface/Content/Items/Reactor/heatabsorber.png similarity index 100% rename from Subsurface/Content/Items/heatabsorber.png rename to Subsurface/Content/Items/Reactor/heatabsorber.png diff --git a/Subsurface/Content/Items/Reactor/reactor.ogg b/Subsurface/Content/Items/Reactor/reactor.ogg new file mode 100644 index 0000000000000000000000000000000000000000..187933841927cf6b42345544dd770856ad0c8517 GIT binary patch literal 115502 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¸fX8%VLp{MJ~dCJStv{;cbm@iFLNq@Z4xFv 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 - + @@ -20,7 +20,9 @@ - + + + diff --git a/Subsurface/Content/Items/Weapons/weapons.xml b/Subsurface/Content/Items/Weapons/weapons.xml index a801f4b9b..457745cf5 100644 --- a/Subsurface/Content/Items/Weapons/weapons.xml +++ b/Subsurface/Content/Items/Weapons/weapons.xml @@ -28,8 +28,8 @@ - - + + diff --git a/Subsurface/Content/Items/railgun.xml b/Subsurface/Content/Items/railgun.xml index 146d49270..e2803a3d6 100644 --- a/Subsurface/Content/Items/railgun.xml +++ b/Subsurface/Content/Items/railgun.xml @@ -10,7 +10,7 @@ - + diff --git a/Subsurface/Items/Components/Container.cs b/Subsurface/Items/Components/Container.cs index f7472cd6d..8536adae7 100644 --- a/Subsurface/Items/Components/Container.cs +++ b/Subsurface/Items/Components/Container.cs @@ -110,7 +110,7 @@ namespace Subsurface.Items.Components if (contained.body!=null) contained.body.Enabled = false; - RelatedItem ri = containableItems.Find(x => x.MatchesItem(item)); + RelatedItem ri = containableItems.Find(x => x.MatchesItem(contained)); if (ri == null) continue; foreach (StatusEffect effect in ri.statusEffects) diff --git a/Subsurface/Items/Components/ItemComponent.cs b/Subsurface/Items/Components/ItemComponent.cs index 9e04d3bc2..365b1fe3c 100644 --- a/Subsurface/Items/Components/ItemComponent.cs +++ b/Subsurface/Items/Components/ItemComponent.cs @@ -9,19 +9,20 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Subsurface.Networking; using Subsurface.Items.Components; +using System.IO; namespace Subsurface { - struct ItemSound + class ItemSound { - public readonly byte index; + public readonly Sound sound; public readonly ActionType type; public readonly float range; - public ItemSound(int index, ActionType type, float range) + public ItemSound(Sound sound, ActionType type, float range) { - this.index = (byte)index; + this.sound = sound; this.type = type; this.range = range; } @@ -150,10 +151,12 @@ namespace Subsurface statusEffects.Add(StatusEffect.Load(subElement)); break; case "sound": - string filePath = ToolBox.GetAttributeString(subElement, "path", ""); + string filePath = ToolBox.GetAttributeString(subElement, "file", ""); if (filePath=="") continue; + if (!filePath.Contains("\\")) filePath = Path.GetDirectoryName(item.Prefab.ConfigFile)+"\\"+filePath; + + //int index = item.Prefab.sounds.FindIndex(x => x.FilePath == filePath); - int index = item.Prefab.sounds.FindIndex(x => x.FilePath == filePath); ActionType type; @@ -167,34 +170,41 @@ namespace Subsurface break; } + Sound sound = Sound.Load(filePath); + float range = ToolBox.GetAttributeFloat(subElement, "range", 800.0f); - sounds.Add(new ItemSound(index, type, range)); + sounds.Add(new ItemSound(sound, type, range)); break; } } } + private ItemSound loopingSound; private int loopingSoundIndex; public void PlaySound(ActionType type, float volume, Vector2 position, bool loop=false) { - if (loop && Sounds.SoundManager.IsPlaying(loopingSoundIndex)) return; + ItemSound itemSound = null; + if (!loop || !Sounds.SoundManager.IsPlaying(loopingSoundIndex)) + { + List matchingSounds = sounds.FindAll(x => x.type == type); + if (matchingSounds.Count == 0) return; + + int index = Game1.localRandom.Next(matchingSounds.Count); + itemSound = sounds[index]; + + if (loop) loopingSound = itemSound; + } - List matchingSounds = sounds.FindAll(x => x.type == type); - if (matchingSounds.Count == 0 || item.Prefab.sounds.Count == 0) return; - - int index = Game1.localRandom.Next(Math.Min(matchingSounds.Count, item.Prefab.sounds.Count)); - - Sound sound = item.Prefab.sounds[matchingSounds[index].index]; if (loop) { - loopingSoundIndex = sound.Loop(loopingSoundIndex, volume, position, matchingSounds[index].range); + loopingSoundIndex = loopingSound.sound.Loop(loopingSoundIndex, volume, position, loopingSound.range); } else { - sound.Play(volume, matchingSounds[index].range, position); + itemSound.sound.Play(volume, itemSound.range, position); } } diff --git a/Subsurface/Items/Components/Reactor.cs b/Subsurface/Items/Components/Reactor.cs index b6c9bbb1b..e2f4279b9 100644 --- a/Subsurface/Items/Components/Reactor.cs +++ b/Subsurface/Items/Components/Reactor.cs @@ -91,6 +91,8 @@ namespace Subsurface.Items.Components public float ExtraCooling { get; set; } + public float AvailableFuel { get; set; } + public Reactor(Item item, XElement element) : base(item, element) { @@ -109,6 +111,8 @@ namespace Subsurface.Items.Components { ApplyStatusEffects(ActionType.OnActive, deltaTime, null); + + fissionRate = Math.Min(fissionRate, AvailableFuel); float heat = 100 * fissionRate; float heatDissipation = 50 * coolingRate + ExtraCooling; @@ -157,6 +161,7 @@ namespace Subsurface.Items.Components //fission rate can't be lowered below a certain amount if the core is too hot FissionRate = Math.Max(fissionRate, heat / 200.0f); + //the power generated by the reactor is equal to the temperature currPowerConsumption = -temperature*powerPerTemp; @@ -169,6 +174,7 @@ namespace Subsurface.Items.Components UpdateGraph(deltaTime); ExtraCooling = 0.0f; + AvailableFuel = 0.0f; } public override void UpdateBroken(float deltaTime, Camera cam) diff --git a/Subsurface/Items/Components/Signal/Connection.cs b/Subsurface/Items/Components/Signal/Connection.cs index 613ac367c..355ac550e 100644 --- a/Subsurface/Items/Components/Signal/Connection.cs +++ b/Subsurface/Items/Components/Signal/Connection.cs @@ -334,16 +334,8 @@ namespace Subsurface.Items.Components if (!mouseIn) return; end = PlayerInput.MousePosition; } - else if (draggingConnected == null) - { - if (Vector2.Distance(end, PlayerInput.MousePosition)<20.0f) - { - item.IsHighlighted = true; - //start dragging the wire - if (PlayerInput.LeftButtonDown()) draggingConnected = wireItem; - } - } + bool mouseOn = false; int textX = (int)start.X; float connLength = 10.0f; @@ -358,9 +350,12 @@ namespace Subsurface.Items.Components } else { - wireVertical.DrawTiled(spriteBatch, - new Vector2(start.X, end.Y + wireCorner.size.Y) - wireVertical.size / 2, - new Vector2(wireVertical.size.X, (float)Math.Abs((end.Y + wireCorner.size.Y) - start.Y)), Color.White); + Vector2 pos = new Vector2(start.X, end.Y + wireCorner.size.Y) - wireVertical.size / 2; + Vector2 size = new Vector2(wireVertical.size.X, (float)Math.Abs((end.Y + wireCorner.size.Y) - start.Y)); + wireVertical.DrawTiled(spriteBatch, pos, size, Color.White); + + Rectangle rect = new Rectangle((int)pos.X, (int)pos.Y, (int)size.X, (int)size.Y); + if (rect.Contains(PlayerInput.MousePosition)) mouseOn = true; float dir = (end.X > start.X) ? -1.0f : 1.0f; @@ -371,16 +366,29 @@ namespace Subsurface.Items.Components float wireStartX = start.X - wireCorner.size.X / 2 * dir; float wireEndX = end.X + connLength * dir; - wireHorizontal.DrawTiled(spriteBatch, new Vector2(Math.Min(wireStartX,wireEndX), end.Y - wireVertical.size.Y / 2), - new Vector2(Math.Abs(wireStartX - wireEndX), wireHorizontal.size.Y), Color.White); - + pos = new Vector2(Math.Min(wireStartX,wireEndX), end.Y - wireVertical.size.Y / 2); + size = new Vector2(Math.Abs(wireStartX - wireEndX), wireHorizontal.size.Y); + + wireHorizontal.DrawTiled(spriteBatch, pos, size, Color.White); + rect = new Rectangle((int)pos.X, (int)pos.Y, (int)size.X, (int)size.Y); + if (rect.Contains(PlayerInput.MousePosition)) mouseOn = true; connector.Draw(spriteBatch, end, -MathHelper.PiOver2*dir); } + + if (draggingConnected == null) + { + if (mouseOn || Vector2.Distance(end, PlayerInput.MousePosition)<20.0f) + { + item.IsHighlighted = true; + //start dragging the wire + if (PlayerInput.LeftButtonDown()) draggingConnected = wireItem; + } + } spriteBatch.DrawString(GUI.font, item.Name, new Vector2(textX, start.Y-30), - Color.White, + mouseOn ? Color.Gold : Color.White, MathHelper.PiOver2, GUI.font.MeasureString(item.Name)*0.5f, 1.0f, SpriteEffects.None, 0.0f); diff --git a/Subsurface/Items/Components/Throwable.cs b/Subsurface/Items/Components/Throwable.cs index aa5694c36..0a3382ba2 100644 --- a/Subsurface/Items/Components/Throwable.cs +++ b/Subsurface/Items/Components/Throwable.cs @@ -17,8 +17,9 @@ namespace Subsurface.Items.Components bool throwing; [HasDefaultValue(1.0f, false)] - private float ThrowForce + public float ThrowForce { + get { return throwForce; } set { throwForce = value; } } diff --git a/Subsurface/Items/Item.cs b/Subsurface/Items/Item.cs index 8fbaf4dab..c87ccf2ec 100644 --- a/Subsurface/Items/Item.cs +++ b/Subsurface/Items/Item.cs @@ -370,7 +370,7 @@ namespace Subsurface } - public void AddDamage(Vector2 position, float amount, float bleedingAmount, float stun) + public void AddDamage(Vector2 position, DamageType damageType, float amount, float bleedingAmount, float stun, bool playSound = true) { Condition -= amount; } @@ -384,8 +384,7 @@ namespace Subsurface if (condition > 0.0f) { ic.Update(deltaTime, cam); - - + ic.PlaySound(ActionType.OnActive, 1.0f, Position, true); ic.ApplyStatusEffects(ActionType.OnActive, 1.0f, null); } diff --git a/Subsurface/Items/ItemPrefab.cs b/Subsurface/Items/ItemPrefab.cs index 6edd0cadc..8ef98db68 100644 --- a/Subsurface/Items/ItemPrefab.cs +++ b/Subsurface/Items/ItemPrefab.cs @@ -26,7 +26,7 @@ namespace Subsurface float pickDistance; - public List sounds; + //public List sounds; //an area next to the construction //the construction can be Activated() by a character inside the area @@ -201,16 +201,17 @@ namespace Subsurface } } - sounds = new List(); - var soundElements = element.Descendants("Sound"); - foreach (XElement soundElement in soundElements) - { - string soundPath = ToolBox.GetAttributeString(soundElement, "path", ""); - if (soundPath == "") continue; + //sounds = new List(); + //var soundElements = element.Descendants(); + //foreach (XElement soundElement in soundElements) + //{ + // if (soundElement.Name.ToString().ToLower() != "sound") continue; + // string soundPath = ToolBox.GetAttributeString(soundElement, "path", ""); + // if (soundPath == "") continue; - Sound sound = Sound.Load(soundPath); - if (sound != null) sounds.Add(sound); - } + // Sound sound = Sound.Load(soundPath); + // if (sound != null) sounds.Add(sound); + //} list.Add(this); } diff --git a/Subsurface/Map/Explosion.cs b/Subsurface/Map/Explosion.cs index 98fa14c33..268ca4911 100644 --- a/Subsurface/Map/Explosion.cs +++ b/Subsurface/Map/Explosion.cs @@ -97,7 +97,7 @@ namespace Subsurface { distFactor = 1.0f - Vector2.Distance(limb.SimPosition, position)/range; - c.AddDamage(limb.SimPosition, damage * distFactor, 0.0f, stun * distFactor); + c.AddDamage(limb.SimPosition, DamageType.None, damage * distFactor, 0.0f, stun * distFactor); if (force>0.0f) { diff --git a/Subsurface/Map/Gap.cs b/Subsurface/Map/Gap.cs index fe950b008..7ce9f5e6d 100644 --- a/Subsurface/Map/Gap.cs +++ b/Subsurface/Map/Gap.cs @@ -214,24 +214,13 @@ namespace Subsurface soundVolume = soundVolume + ((flowForce.Length() < 100.0f) ? -deltaTime * 0.5f : deltaTime * 0.5f); soundVolume = MathHelper.Clamp(soundVolume, 0.0f, 1.0f); - //if (soundVolume < 0.01f) - //{ - // if (soundIndex > -1) - // { - // Sound.Stop(soundIndex); - // soundIndex = -1; - // } + int index = (int)Math.Floor(flowForce.Length() / 100.0f); + index = Math.Min(index,2); - //} - //else - { - int index = (int)Math.Floor(flowForce.Length() / 100.0f); - index = Math.Min(index,2); - - soundIndex = AmbientSoundManager.flowSounds[index].Loop(soundIndex, soundVolume, Position, 2000.0f); - //soundVolume = Math.Max(0.0f, soundVolume-deltaTime); - //Sound.UpdatePosition(soundIndex, Position, 2000.0f); - } + soundIndex = AmbientSoundManager.flowSounds[index].Loop(soundIndex, soundVolume, Position, 2000.0f); + //soundVolume = Math.Max(0.0f, soundVolume-deltaTime); + //Sound.UpdatePosition(soundIndex, Position, 2000.0f); + flowForce = Vector2.Zero; @@ -386,7 +375,7 @@ namespace Subsurface { float delta = Math.Min(hull2.Volume - hull2.FullVolume + Hull.MaxCompress / 2.0f, deltaTime * 8000.0f * sizeModifier); - flowForce = new Vector2(0.0f, Math.Min(hull2.Pressure-hull1.Pressure,500.0f)); + flowForce = new Vector2(0.0f, Math.Min(hull2.Pressure - hull1.Pressure, 500.0f)); delta = Math.Max(delta, 0.0f); hull1.Volume += delta; @@ -444,6 +433,7 @@ namespace Subsurface //} } } + if (open > 0.0f) { if (hull1.Volume>hull1.FullVolume && hull2.Volume>hull2.FullVolume) @@ -458,9 +448,6 @@ namespace Subsurface hull2.LethalPressure = 0.0f; } } - - - } void UpdateRoomToOut(float deltaTime) @@ -526,7 +513,7 @@ namespace Subsurface } else { - flowForce = new Vector2(0.0f,delta); + flowForce = new Vector2(0.0f, delta); } } } @@ -539,9 +526,9 @@ namespace Subsurface float totalOxygen = hull1.Oxygen + hull2.Oxygen; float totalVolume = (hull1.FullVolume + hull2.FullVolume); - - hull1.Oxygen += Math.Sign(totalOxygen*hull1.FullVolume/(totalVolume) - hull1.Oxygen) * Hull.OxygenDistributionSpeed; - hull2.Oxygen += Math.Sign(totalOxygen*hull2.FullVolume/(totalVolume) - hull2.Oxygen) * Hull.OxygenDistributionSpeed; + + hull1.Oxygen += Math.Sign(totalOxygen * hull1.FullVolume / (totalVolume) - hull1.Oxygen) * Hull.OxygenDistributionSpeed; + hull2.Oxygen += Math.Sign(totalOxygen * hull2.FullVolume / (totalVolume) - hull2.Oxygen) * Hull.OxygenDistributionSpeed; } public override void Remove() diff --git a/Subsurface/Map/IDamageable.cs b/Subsurface/Map/IDamageable.cs index 3b98c3abc..b737175f5 100644 --- a/Subsurface/Map/IDamageable.cs +++ b/Subsurface/Map/IDamageable.cs @@ -14,6 +14,6 @@ namespace Subsurface get; } - void AddDamage(Vector2 position, float amount, float bleedingAmount, float stun); + void AddDamage(Vector2 position, DamageType damageType, float amount, float bleedingAmount, float stun, bool playSound=true); } } diff --git a/Subsurface/Map/Structure.cs b/Subsurface/Map/Structure.cs index e56375816..7547fa831 100644 --- a/Subsurface/Map/Structure.cs +++ b/Subsurface/Map/Structure.cs @@ -378,7 +378,7 @@ namespace Subsurface sections[sectionIndex].rect.Y - sections[sectionIndex].rect.Height / 2.0f); } - public void AddDamage(Vector2 position, float amount, float bleedingAmount, float stun) + public void AddDamage(Vector2 position, DamageType damageType, float amount, float bleedingAmount, float stun, bool playSound = false) { if (!prefab.HasBody || prefab.IsPlatform) return; @@ -387,6 +387,11 @@ namespace Subsurface Game1.particleManager.CreateParticle("dustcloud", ConvertUnits.ToSimUnits(SectionPosition(i)), 0.0f, 0.0f); + if (playSound) + { + DamageSoundType damageSoundType = (damageType == DamageType.Blunt) ? DamageSoundType.StructureBlunt : DamageSoundType.StructureSlash; + AmbientSoundManager.PlayDamageSound(damageSoundType, amount, position); + } AddDamage(i, amount); } diff --git a/Subsurface/Sounds/Sound.cs b/Subsurface/Sounds/Sound.cs index fe5571fc9..82706c7aa 100644 --- a/Subsurface/Sounds/Sound.cs +++ b/Subsurface/Sounds/Sound.cs @@ -72,58 +72,74 @@ namespace Subsurface return SoundManager.Play(this, volume); } - public int Play(float volume, float range, Vector2 position) + public int Play(float baseVolume, float range, Vector2 position) { //position = new Vector2(position.X - CameraPos.X, position.Y - CameraPos.Y); //volume = (range == 0.0f) ? 0.0f : MathHelper.Clamp(volume * (range - position.Length())/range, 0.0f, 1.0f); - int newIndex = SoundManager.Play(this, volume); + Vector2 relativePos = GetRelativePosition(position); + float volume = GetVolume(relativePos, range, baseVolume); - if (newIndex == -1) return -1; + return SoundManager.Play(this, relativePos, volume, volume); - return UpdatePosition(newIndex, position, range, volume); + //if (newIndex == -1) return -1; + + //return UpdatePosition(newIndex, position, range, volume); } public int Play(float volume, float range, Body body) { - Vector2 bodyPosition = ConvertUnits.ToDisplayUnits(body.Position); + //Vector2 bodyPosition = ConvertUnits.ToDisplayUnits(body.Position); //bodyPosition.Y = -bodyPosition.Y; - return Play(volume, range, bodyPosition); + + return Play(volume, range, ConvertUnits.ToDisplayUnits(body.Position)); } - public static int UpdatePosition(int sourceIndex, Vector2 position, float range, float baseVolume = 1.0f) + private float GetVolume(Vector2 relativePosition, float range, float baseVolume) { - position = new Vector2(position.X - CameraPos.X, position.Y - CameraPos.Y); - float volume = (range == 0.0f) ? 0.0f : MathHelper.Clamp(baseVolume * (range - position.Length())/range, 0.0f, 1.0f); + float volume = (range == 0.0f) ? 0.0f : MathHelper.Clamp(baseVolume * (range - relativePosition.Length()) / range, 0.0f, 1.0f); - if (volume <= 0.0f) - { - if (sourceIndex > 0) - { - SoundManager.Stop(sourceIndex); - sourceIndex = -1; - } - - return sourceIndex; - } - - SoundManager.UpdateSoundPosition(sourceIndex, position, volume); - - return sourceIndex; + return volume; } - public int UpdatePosition(int sourceIndex, Body body, float range, float baseVolume = 1.0f) + private Vector2 GetRelativePosition(Vector2 position) { - Vector2 bodyPosition = ConvertUnits.ToDisplayUnits(body.Position); - bodyPosition.Y = -bodyPosition.Y; - return UpdatePosition(sourceIndex, bodyPosition, range, baseVolume); + return new Vector2(position.X - CameraPos.X, position.Y - CameraPos.Y); } + //public static int UpdatePosition(int sourceIndex, Vector2 position, float range, float baseVolume = 1.0f) + //{ + // position = new Vector2(position.X - CameraPos.X, position.Y - CameraPos.Y); + // float volume = (range == 0.0f) ? 0.0f : MathHelper.Clamp(baseVolume * (range - position.Length())/range, 0.0f, 1.0f); + + // if (volume <= 0.0f) + // { + // if (sourceIndex > 0) + // { + // SoundManager.Stop(sourceIndex); + // sourceIndex = -1; + // } + + // return sourceIndex; + // } + + // SoundManager.UpdateSoundPosition(sourceIndex, position, volume, volume); + + // return sourceIndex; + //} + + //public int UpdatePosition(int sourceIndex, Body body, float range, float baseVolume = 1.0f) + //{ + // Vector2 bodyPosition = ConvertUnits.ToDisplayUnits(body.Position); + // bodyPosition.Y = -bodyPosition.Y; + // return UpdatePosition(sourceIndex, bodyPosition, range, baseVolume); + //} + public int Loop(int sourceIndex, float volume) { - if (volume == 0.0f) + if (volume <= 0.0f) { if (sourceIndex > 0) { @@ -139,8 +155,12 @@ namespace Subsurface return newIndex; } - public int Loop(int sourceIndex, float volume, Vector2 position, float range) + public int Loop(int sourceIndex, float baseVolume, Vector2 position, float range) { + + Vector2 relativePos = GetRelativePosition(position); + float volume = GetVolume(relativePos, range, baseVolume); + if (volume <= 0.0f) { if (sourceIndex > 0) @@ -152,9 +172,11 @@ namespace Subsurface return sourceIndex; } - int newIndex = SoundManager.Loop(this, sourceIndex, volume); - return UpdatePosition(newIndex, position, range, volume); + + return SoundManager.Loop(this, sourceIndex, position, volume, volume); + + //return UpdatePosition(newIndex, position, range, volume); } diff --git a/Subsurface/Sounds/SoundManager.cs b/Subsurface/Sounds/SoundManager.cs index e34535605..6ad81ccda 100644 --- a/Subsurface/Sounds/SoundManager.cs +++ b/Subsurface/Sounds/SoundManager.cs @@ -3,6 +3,7 @@ using System.Diagnostics; using Microsoft.Xna.Framework; using OpenTK.Audio; using OpenTK.Audio.OpenAL; +using System; namespace Subsurface.Sounds { @@ -13,8 +14,15 @@ namespace Subsurface.Sounds private static List alSources = new List(); private static int[] alBuffers = new int[DefaultSourceCount]; private static int lowpassFilterId; - - + + private static float overrideLowPassGain; + + public static float OverrideLowPassGain + { + get { return overrideLowPassGain; } + set { overrideLowPassGain = MathHelper.Clamp(overrideLowPassGain, 0.0f, 1.0f); } + } + static AudioContext AC; public static OggStreamer oggStreamer; @@ -34,7 +42,7 @@ namespace Subsurface.Sounds lowpassFilterId = ALHelper.Efx.GenFilter(); //alFilters.Add(alFilterId); ALHelper.Efx.Filter(lowpassFilterId, EfxFilteri.FilterType, (int)EfxFilterType.Lowpass); - + //LowPassHFGain = 1; } @@ -72,6 +80,7 @@ namespace Subsurface.Sounds public static int Play(Sound sound, float volume = 1.0f) { + return Play(sound, Vector2.Zero, volume, 0.0f); //for (int i = 2; i < DefaultSourceCount; i++) //{ // AL.SourceStop(alSources[i]); @@ -80,6 +89,43 @@ namespace Subsurface.Sounds // System.Diagnostics.Debug.WriteLine(AL.GetSourceType(alSources[i])); //} + //for (int i = 1; i < DefaultSourceCount; i++) + //{ + // //find a source that's free to use (not playing or paused) + // if (AL.GetSourceState(alSources[i]) == ALSourceState.Playing + // || AL.GetSourceState(alSources[i]) == ALSourceState.Paused) continue; + + // //if (position!=Vector2.Zero) + // // position /= 1000.0f; + + // alBuffers[i]=sound.AlBufferId; + // AL.Source(alSources[i], ALSourceb.Looping, false); + // AL.Source(alSources[i], ALSource3f.Position, 0.0f, 0.0f, 0.0f); + // AL.Source(alSources[i], ALSourcei.Buffer, sound.AlBufferId); + // AL.Source(alSources[i], ALSourcef.Gain, volume); + // //AL.Source(alSources[i], ALSource3f.Position, position.X, position.Y, 0.0f); + // AL.SourcePlay(alSources[i]); + + // //sound.sourceIndex = i; + + // return i; + //} + + //return -1; + } + + public static int Play(Sound sound, Vector2 position, float volume = 1.0f, float lowPassGain = 0.0f) + { + //for (int i = 2; i < DefaultSourceCount; i++) + //{ + // AL.SourceStop(alSources[i]); + // AL.Source(alSources[i], ALSourceb.Looping, false); + // System.Diagnostics.Debug.WriteLine(i + ": " + AL.GetSourceState(alSources[i])); + // System.Diagnostics.Debug.WriteLine(AL.GetSourceType(alSources[i])); + //} + + + for (int i = 1; i < DefaultSourceCount; i++) { //find a source that's free to use (not playing or paused) @@ -89,11 +135,21 @@ namespace Subsurface.Sounds //if (position!=Vector2.Zero) // position /= 1000.0f; - alBuffers[i]=sound.AlBufferId; + alBuffers[i] = sound.AlBufferId; AL.Source(alSources[i], ALSourceb.Looping, false); - AL.Source(alSources[i], ALSource3f.Position, 0.0f, 0.0f, 0.0f); - AL.Source(alSources[i], ALSourcei.Buffer, sound.AlBufferId); + + position /= 1000.0f; + + //System.Diagnostics.Debug.WriteLine("updatesoundpos: "+offset); AL.Source(alSources[i], ALSourcef.Gain, volume); + AL.Source(alSources[i], ALSource3f.Position, position.X, position.Y, 0.0f); + + AL.Source(alSources[i], ALSourcei.Buffer, sound.AlBufferId); + + ALHelper.Efx.Filter(lowpassFilterId, EfxFilterf.LowpassGainHF, lowPassHfGain = Math.Min(lowPassGain, overrideLowPassGain)); + ALHelper.Efx.BindFilterToSource(alSources[i], lowpassFilterId); + ALHelper.Check(); + //AL.Source(alSources[i], ALSource3f.Position, position.X, position.Y, 0.0f); AL.SourcePlay(alSources[i]); @@ -105,22 +161,28 @@ namespace Subsurface.Sounds return -1; } - public static int Loop(Sound sound, int sourceIndex, float volume) + public static int Loop(Sound sound, int sourceIndex, float volume = 1.0f) + { + return Loop(sound,sourceIndex, Vector2.Zero, volume, 0.0f); + } + public static int Loop(Sound sound, int sourceIndex, Vector2 position, float volume = 1.0f, float lowPassGain = 0.0f) { if (sourceIndex<1) { - sourceIndex = Play(sound, volume); + sourceIndex = Play(sound, position, volume, lowPassGain); if (sourceIndex>0) { AL.Source(alSources[sourceIndex], ALSourceb.Looping, true); AL.Source(alSources[sourceIndex], ALSourcef.Gain, volume); } + ALHelper.Check(); return sourceIndex; } else { AL.Source(alSources[sourceIndex], ALSourceb.Looping, true); AL.Source(alSources[sourceIndex], ALSourcef.Gain, volume); + ALHelper.Check(); return sourceIndex; } } @@ -195,6 +257,7 @@ namespace Subsurface.Sounds { if (ALHelper.Efx.IsInitialized) { + overrideLowPassGain = value; for (int i = 0; i < DefaultSourceCount; i++) { //find a source that's free to use (not playing or paused) @@ -221,17 +284,21 @@ namespace Subsurface.Sounds // } //} - public static void UpdateSoundPosition(int sourceIndex, Vector2 position, float baseVolume = 1.0f) + public static void UpdateSoundPosition(int sourceIndex, Vector2 position, float baseVolume = 1.0f, float lowPassGain = 0.0f) { if (sourceIndex < 1) return; //Resume(sourceIndex); position/= 1000.0f; - + //System.Diagnostics.Debug.WriteLine("updatesoundpos: "+offset); AL.Source(alSources[sourceIndex], ALSourcef.Gain, baseVolume); AL.Source(alSources[sourceIndex], ALSource3f.Position, position.X, position.Y, 0.0f); + + ALHelper.Efx.Filter(lowpassFilterId, EfxFilterf.LowpassGainHF, lowPassHfGain = Math.Min(lowPassGain, overrideLowPassGain)); + ALHelper.Efx.BindFilterToSource(alSources[sourceIndex], lowpassFilterId); + ALHelper.Check(); } public static OggStream StartStream(string file, float volume = 1.0f) diff --git a/Subsurface/Subsurface.csproj b/Subsurface/Subsurface.csproj index ae23e5186..c78456ab4 100644 --- a/Subsurface/Subsurface.csproj +++ b/Subsurface/Subsurface.csproj @@ -350,7 +350,7 @@ PreserveNewest Designer - + PreserveNewest @@ -368,7 +368,7 @@ PreserveNewest - + PreserveNewest @@ -426,10 +426,10 @@ PreserveNewest - + PreserveNewest - + PreserveNewest Designer @@ -549,6 +549,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest diff --git a/Subsurface/Subsurface.csproj.user b/Subsurface/Subsurface.csproj.user index 693505ea4..505c3a0bf 100644 --- a/Subsurface/Subsurface.csproj.user +++ b/Subsurface/Subsurface.csproj.user @@ -9,6 +9,6 @@ en-US false - ShowAllFiles + ProjectFiles \ No newline at end of file diff --git a/Subsurface/ToolBox.cs b/Subsurface/ToolBox.cs index 36a833b14..d92e39ab7 100644 --- a/Subsurface/ToolBox.cs +++ b/Subsurface/ToolBox.cs @@ -200,8 +200,12 @@ namespace Subsurface public static object GetAttributeObject(XAttribute attribute) { if (attribute == null) return null; - string value = attribute.Value.ToString(); + return ParseToObject(attribute.Value.ToString()); + } + + public static object ParseToObject(string value) + { float floatVal; int intVal; if (value.ToString().Contains(".") && float.TryParse(value, NumberStyles.Float, CultureInfo.InvariantCulture, out floatVal)) diff --git a/Subsurface_Solution.sln b/Subsurface_Solution.sln index 69dd83e63..a9464db71 100644 --- a/Subsurface_Solution.sln +++ b/Subsurface_Solution.sln @@ -166,7 +166,4 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(Performance) = preSolution - HasPerformanceSessions = true - EndGlobalSection EndGlobal diff --git a/Subsurface_Solution.v12.suo b/Subsurface_Solution.v12.suo index c11d8b0dc1ea93477498b5d8c3a1d64d079a0896..b988f097fea781c25723f787e1440bc7992a259e 100644 GIT binary patch delta 13961 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 delta 9178 zcmds-3tUyjzQ^}}*50sr2%CopsJ!HusSqH(%{H)6Pbx3b%1}YYw}P;Jn{KL8rli0! z{wLEU^kDf&bC=7kW81ftmDk3#X>PbI4=orTDlOTYp9_4k(Cuf)|{4MFQgZP2=E9f1{xR+YC#~l9jpQO zgWez(L<9N05#dNM8f*v8gHFI?FpxoY7(>pTWamh(|~tj-mPw^pa@_HS0FEPN|LTD)r~0E;=dj1HVwZyzpd367R)SUPKJOr})rd(YR;vL%?Px9jUZ^bIxN~zK zGG_|t6R6fL330N_FBy-_W?3QPlfYytt1JjocWlYJsg~g8(yc@F;VrQyDQHx;Z5dJJ zYZv2$I@foJ7%S9EzHgi5r^p%36i#i`dL_u?TeMN`tNs|!)frnGNhZTSWUE;NV$}p; zR_z-y)dM2YGy$c`oL7Qw^H8JeHh7V2;V-T0aW>S&lQX8n8K2+KsE@l*ypNuoO%!)H z5(?WyOy*g)+Vp@eW`$coIB;;nZ3a1~qw*FhsNIIm6CD0CL4Wf3R_vq1@12GnCylXv!tHL9@(Yt)0m32MVZ zUE8YtP^K4sg!exIEmK8pIAn1e2V7NlW^5&M^Q==}{Aq?WDz)CHI*4M`*oH_G9mQMC zGl=b}l&c;M?yfd8dy8w$}*oonZLEJ-6t45k|VAQ6GUIO9upzXjI5IZ&ZzKb zskuT^KBl7Cd1Zp9v1eLkxo%QRr_BwH>**7b$_gHb3%sd z`TeUaC)(752lAXzYwHzGjTS?+A!gc5)qxbF#so%t>61cEn4i^P57e7?HUxGjHL9kQ z7oA7`_pQsY{b71XE?m|AjIPo)7IaF^fB8&N%a-S=-meB*JmdfV(C&A4ZfN5bl5zCh zs1Ma=o@&Pxe)NR;*Ni+i)fpN3mPJp*gQbC=$Ito+>evy05n;FL6$Z80#FnwboR%IEtep zsFR7_M(Jjqvps?`y$r`8I@Y=pZh%~VCfg&ay!J(3)lnJijJ)(r8JevQuQ>E=Rj(`(+p|X)RBKpXXY` zGMBe#RV?gOjh#c+38AquGmbm$~S3VQg~-| zdwfIQY!R&XpV`;)MP~27;a8`xx@X9yH#HC6bXg=#zL2c{fjc%;rABE{StNur=IS%# z_QE%;DpLWBW2w5JvYRvZ+0#^=Pj(u{bMk2^4dsgnJa*s{g420n0WDFmH{`N*6wLmi zw3Eq?26AI4gep0FeVdiV2bhEav^?<1M zT75C94YgTD>Cc*%FLn{RMpx^iZFZxdWsu0HMBVqzU7FQ{TqJ!6#|BcQdr=2s)zf|y zkzTQ7;JG0X4&-%+-n&6;4}$mzM5kJdgWf_@a*@dgBQFDfG)?J?x#YNc(6jn0399wc zDeQVz^igZR&8I1hQ`uM^mq5EM5w|_zyWrfS(7Qg*+y6sS{J`hKDGS!QYT1N|=qg@r$Kqk3k$Z}q}=pj6lq%l}Y zYU0?WrK@05DnKQu1mjcJDp-K@280{IpFkbh z1fB)YfkfnQL73K5&+}vmF>Ht69tf;pC*n@~2|+Lb{;WVx{VV&0S$eER#OCoU}hVD-oRZ9D47)=V1V zf9A-cBVk?qMjpy|XjNBM)a)H?D~r9@l}T0)Iauzoj{8rIwfe#%K_mag(Y@v1mbVOU z^=h(v)MGe55xj6UykO0J!kN`8Po7uTEQCAv=g<`T zf+HWGNG-At#gLrYqxejb2<7d4DZ4sDxy6d87^)Q4O;?EWRJt^TEBcFI{~Ze=UVDDc zX1lTDxD%bOwpU-6mRVVBq8V!0np9rdUUcQSB4xA1Be&17aj$IZ5gC49{kq3q`4NUB zgh;!-f!-iv%ne$4aj~A?=MU=r8*HEL6f;qQ!F2uOWXk1U} z!YJ<)nr)27b4XlNcwsHwZIt`r<_vDAC5MMJ0L8w%a04wg$?g6q^~zU6brV*LRLfAZ zeF!;djC%3wr5<0Qy$pZ|d8^hFz3<<43VwgGG`X z^bW0G_I?WAI$geO(5}Bs=_HMvX*iPI)dlCe@y1tZi59b!&JfH_N+u0+4nO9ko6di? zJVok9zow;st5amv{@v~!%&YrTB-IX^R;USZB<$y1ZK%@hbXNN zyH?-kgMvIls^wckeWxKZ9n=GD$9Bq+8n@|#9Em|_QO3=4z~gJ=kDaUixPjg#Bd#u5 z6>ge9eQ7AM?IkL=$adv)k)bq{T;HFfs&`S07PFS>$k@5{>s||>lc|tEq5bKp;7y3h zW1oC^Gr}!0XX|e2W0nUxDdqD6XqoEpLdzh00_ zMRrv#pXM>#ZI**0rCQAZ%BSi*gk8y6dY1GB+0sv+mLWywpBY0dwB-kBu1R&Ai&g7} zhO2u=_tNaeR8H!YAN)9B3|-Z{-=t$++9^AA^{fhvX&Fiv)h#A-b(#q00T@dy;SoAc zJ2xJu_&H5OIS=7{umCIsi@;*=09XQ+0tXDwJ(TJmW(~vaCqfhNYdsR~__8-T{5&3Y z%gD&JV`#bT{4k5&H~$-Z;#F5gg7G8ExH zaXcnjDeoJLUG2p0=@`AI(T}v<$P;756t4e>x@)dRI;`-ngOr!bya&g9gnjsyxlX=)V%t3!nF$LkU zUF;=7RL8ebeEKIcYv)hVG}2CfKo&2}_6fae;tC&;tK}NSR^o)gB0`IpC_W+HnlAh_ zzY?+6q~**P^Mlx)B9b}k1B&52A3{@`%f%2(r&I{BSGTZV8OGz_O7W>DAAC$CYY8ky z3oiK+^6QsEz41&Qe7(Q$(59>rE4^jTXuj7bCTbh&M5s3hXNwuy)fa@rtbMXa{8gwa z$3ofl8Cf(BFYy8KgZ~gqw0?WVVH5A3Ack=LOmub9VbN9WdR@dTTD`Y8W6^9KL_a^q zcTM3Po}z;`x0@&td~lU0(T>K8|xc%Uz$hX6Y-o`tbNKM6p(rF6w=>hHSC2 z4VSzuf;C)Hd`;TJTXedk5A;%^96XAcV2UOpu}N&9ZP=w;HsK;5w{l;A)Q2oh?|+*pqI z3^OMFJ@Kx3JS$R7I1#Glo)C8{d@>6rq2_&@4z|80MmA?MGQa+>b!_}i9Xn~_uRapN zN`YZ25ByH#z};1TCo;J14h&P{N1~D*;mR{2l~ScV$!jt$;%6EP4T*fmMUkhJ8s@O$ zV==000&eDR{->{IDUNH&jMJ=_giFy}CdDdVvMMs#NtsW>lTmmPe#J;K48r2*jVsc0 zY=qgx!xDT z3x*hbS6uv67TocFc2bZ(<=~{y{+65B7m>M6Iy-C4cKP!dazx zvkL7qipGy$;7+@XY>-8!@vLCQN10eu#MyyLckULT_|Z+x8%+k=O>OvirRfdEPbiJy zv%X50#{_o=D&mwd-jk&G27BXc{D5r(+4?2m-=c&B&DB+L2tMJjjOHC-NVO&(G+IVlkPUHO)VmDjm4j6VEYeM5oj4a z^7q5t>Pan{k6PpOS_2@?yCKWnf`3a3@h-V-Ya?6u=gJET$SAZAlNueNYZ&b$={oo| zjmsenD`;t~yQ>uO7=VjigW${vC6RMyPy*-QN4^0A;F61BPi7egqDRmo7ko`Us*@F$ z=E}j{Z*{8TlD~rR(Fo--J))MqyNItRi9ju5kdj2~>Zv&R+xIDqvpy6d9Ccb)w8jrb zooH>xlsv-_X}yxAsoOv`x z`H!z(`r#j`?GsPR+b|wHiTY~W^OS62@B5S__6t#bIBA~po$SweUND(#ye*nW@Y4>( zo3D*hy6~|{RLFmxObN759zWIVIT`A=>*};<`Rcc=Zs)dc$>2-B5*g$W>c0DZ@ym%QS&`R_06|B>xV#oejKig>uqQ| zr@u0(&3T+sq`CSUVGI|f!%7Y0Z~H58ZGR7ERE!_5i|`wAA%0)J9i`gy1NSRwzfvLP zaP|yb`RyGfV%o@~jGUD+yxm>zVp(q(y9SByfL#27U4p8mIp_q2R=0!QT2PGJscpxC z*cDB8u%$%t;IDF(L)?Cpl94_SKBGi`sRX?##ZTcS*lo_j&*4$%Uvo}(q|&jOp8#1g z%1lKgv-A?O|H`lQUrd6xxtmC>9~8_bpJShDHNt)VulUeG@QS^37c2c@Z+J;KS>20D zADXUv&p70#;6DYVBDXh6C&F(g=-yPi^g(zdLHD8U6MFVdx7qqUuz19r@uhQ0CSAlC zNvc;EYNU55@+>KsJh5oT47c-mLiaCRwF?k>BH6tCD*@aa