From 5771bc7e02622315df39d6e05de80ab0101126ab Mon Sep 17 00:00:00 2001 From: Regalis Date: Tue, 11 Aug 2015 20:23:48 +0300 Subject: [PATCH] Progress on tutorial --- .../Content/Characters/Crawler/attack.ogg | Bin 17447 -> 0 bytes .../Content/Characters/Crawler/attack1.ogg | Bin 0 -> 23445 bytes .../Content/Characters/Crawler/attack2.ogg | Bin 0 -> 34437 bytes .../Content/Characters/Crawler/crawler.xml | 5 +- .../Content/Characters/Crawler/idle1.ogg | Bin 0 -> 28449 bytes .../Content/Characters/Crawler/idle2.ogg | Bin 0 -> 24074 bytes .../Source/Characters/AI/AIController.cs | 2 + .../Source/Characters/AI/EnemyAIController.cs | 33 +- Subsurface/Source/Characters/Character.cs | 10 + Subsurface/Source/CoroutineManager.cs | 65 +++- Subsurface/Source/GUI/GUI.cs | 8 +- Subsurface/Source/GUI/GUIComponent.cs | 9 +- Subsurface/Source/GUI/GUIListBox.cs | 2 + Subsurface/Source/GUI/GUIMessageBox.cs | 6 +- Subsurface/Source/Game1.cs | 6 +- .../Source/GameSession/GameModes/GameMode.cs | 19 - .../GameSession/GameModes/GameModePreset.cs | 19 + .../GameSession/GameModes/TutorialMode.cs | 339 +++++++++++++++++- .../Source/Items/Components/Machines/Radar.cs | 41 +-- .../Items/Components/Machines/Reactor.cs | 10 + .../Items/Components/Machines/Steering.cs | 5 + .../Items/Components/Power/PowerTransfer.cs | 2 +- .../Items/Components/Signal/Connection.cs | 17 +- Subsurface/Source/Items/Item.cs | 5 + Subsurface/Source/Map/Explosion.cs | 2 +- Subsurface/Source/Map/IDamageable.cs | 5 + Subsurface/Source/Map/Lights/LightManager.cs | 12 - Subsurface/Source/Map/Structure.cs | 4 + Subsurface/Source/Networking/GameClient.cs | 2 +- Subsurface/Source/Screens/GameScreen.cs | 3 +- Subsurface/Source/Screens/MainMenu.cs | 76 +--- .../Source/Sounds/AmbientSoundManager.cs | 2 +- Subsurface/Subsurface.csproj | 11 +- Subsurface_Solution.v12.suo | Bin 586240 -> 604160 bytes 34 files changed, 528 insertions(+), 192 deletions(-) delete mode 100644 Subsurface/Content/Characters/Crawler/attack.ogg create mode 100644 Subsurface/Content/Characters/Crawler/attack1.ogg create mode 100644 Subsurface/Content/Characters/Crawler/attack2.ogg create mode 100644 Subsurface/Content/Characters/Crawler/idle1.ogg create mode 100644 Subsurface/Content/Characters/Crawler/idle2.ogg diff --git a/Subsurface/Content/Characters/Crawler/attack.ogg b/Subsurface/Content/Characters/Crawler/attack.ogg deleted file mode 100644 index a4f41d094971d631f36c4b8d16879c9c67251834..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17447 zcmcJ$WmsHIvo5@F2?2t;YjDrtP8i(XEx5ac;O_1aT!UL6BuH>~Cn31IbA~+cv(Nta zxvq15eN9hOtG%l3s+L)!U}2#GKm-2?4u1a-9`I^%P$W=p_D;r@&M#R|;+6lDe5r!^ zOSC{KytMqU@Y3?7g#S%-C_3Ns|0n!``KKcWNV%q^!v|&sCkrwgOJnuF-IGa^v9q$V zv$C^tkkKjF+F3d{nK_%;xzNA#4F&g4Q+iP`btnK4lEWrT*6TkWrv?D%0ANT(kD6#M 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 CPN66O diff --git a/Subsurface/Content/Characters/Crawler/attack1.ogg b/Subsurface/Content/Characters/Crawler/attack1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..8e8c6a59c140ed530b9d78279e900ba2d6ed6e62 GIT binary patch literal 23445 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�Un?po|o7EU7 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 z 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 literal 0 HcmV?d00001 diff --git a/Subsurface/Content/Characters/Crawler/crawler.xml b/Subsurface/Content/Characters/Crawler/crawler.xml index aa2176b27..4c07bf290 100644 --- a/Subsurface/Content/Characters/Crawler/crawler.xml +++ b/Subsurface/Content/Characters/Crawler/crawler.xml @@ -1,7 +1,10 @@  + + - + + ETr=6FbyEpgc*buyb9_5x-FoFO`utrb=-HjWK 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 n&%GYGi~*2)r~Dy7c}UzR0yrd^b{ literal 0 HcmV?d00001 diff --git a/Subsurface/Source/Characters/AI/AIController.cs b/Subsurface/Source/Characters/AI/AIController.cs index 96922c9f3..f399f170f 100644 --- a/Subsurface/Source/Characters/AI/AIController.cs +++ b/Subsurface/Source/Characters/AI/AIController.cs @@ -43,6 +43,8 @@ namespace Subsurface steeringManager = new SteeringManager(this); } + public virtual void SelectTarget(IDamageable target) { } + public virtual void Update(float deltaTime) { } //protected Structure lastStructurePicked; diff --git a/Subsurface/Source/Characters/AI/EnemyAIController.cs b/Subsurface/Source/Characters/AI/EnemyAIController.cs index b372d7e55..80131efd7 100644 --- a/Subsurface/Source/Characters/AI/EnemyAIController.cs +++ b/Subsurface/Source/Characters/AI/EnemyAIController.cs @@ -48,7 +48,7 @@ namespace Subsurface //the limb selected for the current attack private Limb attackingLimb; - private AITarget selectedTarget; + private AITarget selectedAiTarget; private AITargetMemory selectedTargetMemory; private float targetValue; @@ -81,6 +81,15 @@ namespace Subsurface state = AiState.None; } + + public override void SelectTarget(IDamageable target) + { + targetEntity = target; + selectedAiTarget = target.AiTarget; + selectedTargetMemory = FindTargetMemory(target.AiTarget); + + targetValue = 100.0f; + } public override void Update(float deltaTime) { @@ -98,7 +107,7 @@ namespace Subsurface UpdateTargets(Character); updateTargetsTimer = UpdateTargetsInterval; - if (selectedTarget == null) + if (selectedAiTarget == null) { state = AiState.None; } @@ -146,7 +155,7 @@ namespace Subsurface private void UpdateAttack(float deltaTime) { - if (selectedTarget == null) + if (selectedAiTarget == null) { state = AiState.None; return; @@ -154,7 +163,7 @@ namespace Subsurface selectedTargetMemory.Priority -= deltaTime; - Vector2 attackPosition = selectedTarget.Position; + Vector2 attackPosition = selectedAiTarget.Position; if (wallAttackPos != Vector2.Zero) attackPosition = wallAttackPos; if (coolDownTimer>0.0f) @@ -201,7 +210,7 @@ namespace Subsurface //System.Diagnostics.Debug.WriteLine("cooldown"); - if (selectedTarget.Entity is Hull || + if (selectedAiTarget.Entity is Hull || Vector2.Distance(attackPosition, Character.AnimController.limbs[0].SimPosition) < ConvertUnits.ToSimUnits(500.0f)) { steeringManager.SteeringSeek(attackPosition, -0.8f); @@ -219,7 +228,7 @@ namespace Subsurface targetEntity = null; //check if there's a wall between the target and the character Vector2 rayStart = Character.AnimController.limbs[0].SimPosition; - Vector2 rayEnd = selectedTarget.Position; + Vector2 rayEnd = selectedAiTarget.Position; Body closestBody = Submarine.CheckVisibility(rayStart, rayEnd); if (Submarine.LastPickedFraction == 1.0f || closestBody == null) @@ -272,7 +281,7 @@ namespace Subsurface } else { - damageTarget = selectedTarget.Entity as IDamageable; + damageTarget = selectedAiTarget.Entity as IDamageable; } attackTimer += deltaTime*0.05f; @@ -323,14 +332,14 @@ namespace Subsurface { if (distanceAccumulator<5.0f && Rand.Range(1,3, false)==1) { - selectedTarget = null; + selectedAiTarget = null; character.AnimController.TargetMovement = -character.AnimController.TargetMovement; state = AiState.None; return; } distanceAccumulator = 0.0f; - selectedTarget = null; + selectedAiTarget = null; selectedTargetMemory = null; targetValue = 0.0f; @@ -409,13 +418,13 @@ namespace Subsurface //float newTargetValue = valueModifier/dist; - if (selectedTarget == null || Math.Abs(valueModifier) > Math.Abs(targetValue)) + if (selectedAiTarget == null || Math.Abs(valueModifier) > Math.Abs(targetValue)) { - selectedTarget = target; + selectedAiTarget = target; selectedTargetMemory = targetMemory; targetValue = valueModifier; - Debug.WriteLine(selectedTarget.Entity+": "+targetValue); + Debug.WriteLine(selectedAiTarget.Entity+": "+targetValue); } } } diff --git a/Subsurface/Source/Characters/Character.cs b/Subsurface/Source/Characters/Character.cs index 8ac3aa90c..3d9009f48 100644 --- a/Subsurface/Source/Characters/Character.cs +++ b/Subsurface/Source/Characters/Character.cs @@ -123,6 +123,11 @@ namespace Subsurface get { return cursorPosition; } } + public AITarget AiTarget + { + get { return aiTarget; } + } + public float SoundRange { get { return aiTarget.SoundRange; } @@ -264,6 +269,11 @@ namespace Subsurface get { return secondaryKeyDown; } } + public AIController AIController + { + get { return aiController; } + } + public bool IsDead { get { return isDead; } diff --git a/Subsurface/Source/CoroutineManager.cs b/Subsurface/Source/CoroutineManager.cs index d34f5d6e4..ec47072c0 100644 --- a/Subsurface/Source/CoroutineManager.cs +++ b/Subsurface/Source/CoroutineManager.cs @@ -1,4 +1,5 @@ using System; +using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; @@ -13,33 +14,71 @@ namespace Subsurface // Keeps track of all running coroutines, and runs them till the end. static class CoroutineManager { - static List> Coroutines = new List>(); + static List> Coroutines = new List>(); // Starting a coroutine just means adding an enumerator to the list. // You might also want to be able to stop coroutines or delete them, // which might mean putting them into a dictionary - public static void StartCoroutine(IEnumerable func) + public static void StartCoroutine(IEnumerable func) { Coroutines.Add(func.GetEnumerator()); } // Updating just means stepping through all the coroutines - public static void Update() + public static void Update(float deltaTime) { for (int i = Coroutines.Count-1; i>=0; i--) { + if (Coroutines[i].Current != null) + { + if (Coroutines[i].Current is WaitForSeconds) + { + WaitForSeconds wfs = (WaitForSeconds)Coroutines[i].Current; + if (!wfs.CheckFinished(deltaTime)) continue; + + } + else + { + switch ((Status)Coroutines[i].Current) + { + case Status.Success: + Coroutines.RemoveAt(i); + continue; + case Status.Failure: + DebugConsole.ThrowError("Coroutine ''" + Coroutines[i]+ "'' has failed"); + break; + } + } + + } + + Coroutines[i].MoveNext(); - switch (Coroutines[i].Current) - { - case Status.Success: - Coroutines.RemoveAt(i); - break; - case Status.Failure: - DebugConsole.ThrowError("Coroutine ''" + Coroutines[i]+ "'' has failed"); - break; - } + } } - } + } + + class WaitForSeconds + { + float timer; + + + public WaitForSeconds(float time) + { + timer = time; + } + + public bool CheckFinished(float deltaTime) + { + timer -= deltaTime; + return timer<=0.0f; + + } + + + } + + } diff --git a/Subsurface/Source/GUI/GUI.cs b/Subsurface/Source/GUI/GUI.cs index d2c70d207..51f20f963 100644 --- a/Subsurface/Source/GUI/GUI.cs +++ b/Subsurface/Source/GUI/GUI.cs @@ -311,9 +311,9 @@ namespace Subsurface DrawMessages(spriteBatch, (float)deltaTime); - if (GUIMessageBox.messageBoxes.Count>0) + if (GUIMessageBox.MessageBoxes.Count>0) { - var messageBox = GUIMessageBox.messageBoxes.Peek(); + var messageBox = GUIMessageBox.MessageBoxes.Peek(); if (messageBox != null) messageBox.Draw(spriteBatch); } @@ -331,9 +331,9 @@ namespace Subsurface public static void Update(float deltaTime) { - if (GUIMessageBox.messageBoxes.Count > 0) + if (GUIMessageBox.MessageBoxes.Count > 0) { - var messageBox = GUIMessageBox.messageBoxes.Peek(); + var messageBox = GUIMessageBox.MessageBoxes.Peek(); if (messageBox != null) { GUIComponent.MouseOn = messageBox; diff --git a/Subsurface/Source/GUI/GUIComponent.cs b/Subsurface/Source/GUI/GUIComponent.cs index 82f2b0fbf..9eb4f70fb 100644 --- a/Subsurface/Source/GUI/GUIComponent.cs +++ b/Subsurface/Source/GUI/GUIComponent.cs @@ -38,6 +38,7 @@ namespace Subsurface protected ComponentState state; + protected Color flashColor; protected float flashTimer; public virtual SpriteFont Font @@ -204,9 +205,10 @@ namespace Subsurface return false; } - public void Flash() + public void Flash(Color? color = null) { flashTimer = FlashDuration; + flashColor = (color == null) ? Color.Red * 0.8f : (Color)color; foreach (GUIComponent child in children) { @@ -222,10 +224,9 @@ namespace Subsurface if (flashTimer>0.0f) { - Color flashColor = Color.Red * (flashTimer / FlashDuration)*0.8f; - GUI.DrawRectangle(spriteBatch, - new Rectangle(rect.X-5,rect.Y-5,rect.Width+10,rect.Height+10), flashColor, true); + new Rectangle(rect.X-5,rect.Y-5,rect.Width+10,rect.Height+10), + flashColor * (flashTimer / FlashDuration), true); } GUI.DrawRectangle(spriteBatch, rect, currColor * (currColor.A / 255.0f), true); diff --git a/Subsurface/Source/GUI/GUIListBox.cs b/Subsurface/Source/GUI/GUIListBox.cs index 39af7f1a2..b8074a1c9 100644 --- a/Subsurface/Source/GUI/GUIListBox.cs +++ b/Subsurface/Source/GUI/GUIListBox.cs @@ -121,6 +121,8 @@ namespace Subsurface UpdateScrollBarSize(); + children.Clear(); + enabled = true; scrollBarEnabled = true; diff --git a/Subsurface/Source/GUI/GUIMessageBox.cs b/Subsurface/Source/GUI/GUIMessageBox.cs index 418f04973..f5cfccb00 100644 --- a/Subsurface/Source/GUI/GUIMessageBox.cs +++ b/Subsurface/Source/GUI/GUIMessageBox.cs @@ -5,7 +5,7 @@ namespace Subsurface { class GUIMessageBox : GUIFrame { - public static Queue messageBoxes = new Queue(); + public static Queue MessageBoxes = new Queue(); const int DefaultWidth=400, DefaultHeight=200; @@ -51,14 +51,14 @@ namespace Subsurface x += this.Buttons[i].Rect.Width + 20; } - messageBoxes.Enqueue(this); + MessageBoxes.Enqueue(this); } public bool Close(GUIButton button, object obj) { if (parent != null) parent.RemoveChild(this); - messageBoxes.Dequeue(); + MessageBoxes.Dequeue(); return true; } } diff --git a/Subsurface/Source/Game1.cs b/Subsurface/Source/Game1.cs index 5c009c59b..91d528f0d 100644 --- a/Subsurface/Source/Game1.cs +++ b/Subsurface/Source/Game1.cs @@ -161,7 +161,7 @@ namespace Subsurface } private float loadState = 0.0f; - private IEnumerable Load() + private IEnumerable Load() { GUI.Font = ToolBox.TryLoadFont("SpriteFont1", Content); GUI.SmallFont = ToolBox.TryLoadFont("SmallFont", Content); @@ -199,7 +199,7 @@ namespace Subsurface loadState = 70.0f; yield return Status.Running; - GameMode.Init(); + GameModePreset.Init(); Submarine.Preload("Content/SavedMaps"); loadState = 80.0f; @@ -277,7 +277,7 @@ namespace Subsurface } } - CoroutineManager.Update(); + CoroutineManager.Update((float)deltaTime); } diff --git a/Subsurface/Source/GameSession/GameModes/GameMode.cs b/Subsurface/Source/GameSession/GameModes/GameMode.cs index af887f5b8..75c5df73a 100644 --- a/Subsurface/Source/GameSession/GameModes/GameMode.cs +++ b/Subsurface/Source/GameSession/GameModes/GameMode.cs @@ -111,25 +111,6 @@ namespace Subsurface Game1.GameSession.EndShift(endMessage); } - public static void Init() - { - new GameModePreset("Single Player", typeof(SinglePlayerMode), true); - - var mode = new GameModePreset("SandBox", typeof(GameMode), false); - mode.Description = "A game mode with no specific objectives."; - - mode = new GameModePreset("Traitor", typeof(TraitorMode), false); - mode.Description = "One of the players is selected as a traitor and given a secret objective. " - + "The rest of the crew will win if they reach the end of the level or kill the traitor " - + "before the objective is completed."; - - mode = new GameModePreset("Quest", typeof(QuestMode), false); - mode.Description = "The crew must work together to complete a specific task, such as retrieving " - + "an alien artifact or killing a creature that's terrorizing nearby outposts. The game ends " - + "when the task is completed or everyone in the crew has died."; - - - } } } diff --git a/Subsurface/Source/GameSession/GameModes/GameModePreset.cs b/Subsurface/Source/GameSession/GameModes/GameModePreset.cs index fbd6964a2..a00a22270 100644 --- a/Subsurface/Source/GameSession/GameModes/GameModePreset.cs +++ b/Subsurface/Source/GameSession/GameModes/GameModePreset.cs @@ -34,5 +34,24 @@ namespace Subsurface object[] lobject = new object[] { this }; return (GameMode)Constructor.Invoke(lobject); } + + public static void Init() + { + new GameModePreset("Single Player", typeof(SinglePlayerMode), true); + new GameModePreset("Tutorial", typeof(TutorialMode), true); + + var mode = new GameModePreset("SandBox", typeof(GameMode), false); + mode.Description = "A game mode with no specific objectives."; + + mode = new GameModePreset("Traitor", typeof(TraitorMode), false); + mode.Description = "One of the players is selected as a traitor and given a secret objective. " + + "The rest of the crew will win if they reach the end of the level or kill the traitor " + + "before the objective is completed."; + + mode = new GameModePreset("Quest", typeof(QuestMode), false); + mode.Description = "The crew must work together to complete a specific task, such as retrieving " + + "an alien artifact or killing a creature that's terrorizing nearby outposts. The game ends " + + "when the task is completed or everyone in the crew has died."; + } } } diff --git a/Subsurface/Source/GameSession/GameModes/TutorialMode.cs b/Subsurface/Source/GameSession/GameModes/TutorialMode.cs index 5a14bd865..7a83faa6f 100644 --- a/Subsurface/Source/GameSession/GameModes/TutorialMode.cs +++ b/Subsurface/Source/GameSession/GameModes/TutorialMode.cs @@ -1,11 +1,342 @@ -using System; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using Subsurface.Items.Components; +using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Subsurface { - //class TutorialMode : GameMode - //{ - //} + class TutorialMode : GameMode + { + public readonly CrewManager CrewManager; + + private GUIComponent infoBox; + + public static void Start() + { + Submarine.Load("Content/Map/TutorialSub.gz"); + + Game1.GameSession = new GameSession(Submarine.Loaded, "", GameModePreset.list.Find(gm => gm.Name.ToLower()=="tutorial")); + + Game1.GameSession.StartShift(TimeSpan.Zero, "tutorial"); + + Game1.GameScreen.Select(); + } + + public TutorialMode(GameModePreset preset) + : base(preset) + { + CrewManager = new CrewManager(); + } + + public override void Start(TimeSpan duration) + { + base.Start(duration); + + WayPoint wayPoint = WayPoint.GetRandom(SpawnType.Cargo, null); + if (wayPoint==null) + { + DebugConsole.ThrowError("A waypoint with the spawntype ''cargo'' is required for the tutorial event"); + return; + } + + CharacterInfo charInfo = new CharacterInfo(Character.HumanConfigFile, "", Gender.None, JobPrefab.List.Find(jp => jp.Name=="Engineer")); + + Character character = new Character(charInfo, wayPoint.SimPosition); + Character.Controlled = character; + character.GiveJobItems(null); + + foreach (Item item in character.Inventory.items) + { + if (item == null || item.Name != "ID Card") continue; + + item.AddTag("com"); + item.AddTag("eng"); + + break; + } + + CrewManager.AddCharacter(character); + + CoroutineManager.StartCoroutine(UpdateState()); + } + + public override void Update(float deltaTime) + { + base.Update(deltaTime); + + CrewManager.Update(deltaTime); + if (infoBox!=null) infoBox.Update(deltaTime); + } + + private IEnumerable UpdateState() + { + + yield return new WaitForSeconds(4.0f); + + infoBox = CreateInfoFrame("Use WASD to move and mouse to look around"); + + yield return new WaitForSeconds(5.0f); + + //----------------------------------- + + infoBox = CreateInfoFrame("Open the door at your right side by highlighting the button next to it with your cursor and pressing E"); + + Door tutorialDoor = Item.itemList.Find(i => i.HasTag("tutorialdoor")).GetComponent(); + + while (!tutorialDoor.IsOpen) + { + yield return Status.Running; + } + + yield return new WaitForSeconds(2.0f); + + //----------------------------------- + + infoBox = CreateInfoFrame("Now it's time to power up the submarine. Go to the upper left corner of the submarine, where you'll find a nuclear reactor."); + + Reactor reactor = Item.itemList.Find(i => i.HasTag("tutorialreactor")).GetComponent(); + + while (Vector2.Distance(Character.Controlled.Position, reactor.Item.Position)>200.0f) + { + yield return Status.Running; + } + + infoBox = CreateInfoFrame("Select the reactor by walking next to it and pressing E."); + + while (Character.Controlled.SelectedConstruction != reactor.Item) + { + yield return Status.Running; + } + yield return new WaitForSeconds(0.5f); + + infoBox = CreateInfoFrame("This is the control panel of the reactor. Try turning it on by increasing the fission rate."); + + while (reactor.FissionRate <= 0.0f) + { + yield return Status.Running; + } + yield return new WaitForSeconds(0.5f); + + infoBox = CreateInfoFrame("The reactor core has started generating heat, which in turn generates power for the submarine. It won't generate much power at the moment, " + +" because the shutdown temperature is set to 500. When the temperature of the reactor raises higher than the shutdown temperature, the reactor will automatically start to cool itself down." + + " You should increase it to somewhere around 5000."); + + while (Math.Abs(reactor.ShutDownTemp-5000.0f) > 400.0f) + { + yield return Status.Running; + } + yield return new WaitForSeconds(0.5f); + + infoBox = CreateInfoFrame("The amount of power generated by the reactor should be kept close to the amount of power consumed by the devices in the submarine. " + +"If there's not enough power, devices won't function properly, and if there's too much power, some devices may be damaged. Turn on ''Automatic temperature control'' to " + +"make the reactor automatically adjust the temperature to a suitable level."); + + while (!reactor.AutoTemp) + { + yield return Status.Running; + } + yield return new WaitForSeconds(0.5f); + + infoBox = CreateInfoFrame("That's the basics you need to know to power up the reactor! Now that there's power available for the engines, let's try steering the sub. " + +"Deselect the reactor by pressing E and head to the command room at the left edge of the vessel."); + + Steering steering = Item.itemList.Find(i => i.HasTag("tutorialsteering")).GetComponent(); + Radar radar = steering.Item.GetComponent(); + + while (Vector2.Distance(Character.Controlled.Position, steering.Item.Position) > 150.0f) + { + yield return Status.Running; + } + + infoBox = CreateInfoFrame("Select the navigation terminal by walking next to it and pressing E."); + + while (Character.Controlled.SelectedConstruction != steering.Item) + { + yield return Status.Running; + } + yield return new WaitForSeconds(0.5f); + + infoBox = CreateInfoFrame("There seems to be something wrong with the navigation terminal."+ + " There's nothing on the monitor, so it's probably out of power. The reactor must still be" + +" running or the lights would've gone out, so it's most likely a problem with the wiring." + +" Deselect the terminal by pressing E to start checking the wiring."); + + while (Character.Controlled.SelectedConstruction == steering.Item) + { + yield return Status.Running; + } + yield return new WaitForSeconds(1.0f); + + infoBox = CreateInfoFrame("You need a screwdriver to check the wiring of the terminal." + + " Equip a screwdriver by pulling it to either of the slots with a hand symbol, and then select the terminal again by pressing E."); + + while (Character.Controlled.SelectedConstruction != steering.Item || + Character.Controlled.SelectedItems.FirstOrDefault(i => i != null && i.Name == "Screwdriver") == null) + { + yield return Status.Running; + } + + + infoBox = CreateInfoFrame("Here you can see all the wires connected to the terminal. Apparently there's no wire" + + " going into the to the power connection - that's why the monitor isn't working." + + " You should find a piece of wire to connect it. Try searching some of the cabinets scattered around the sub."); + + while (Character.Controlled.Inventory.items.FirstOrDefault(i => i!=null && i.GetComponent()!=null)==null) + { + yield return Status.Running; + } + + infoBox = CreateInfoFrame("Head back to the navigation terminal to fix the wiring."); + + PowerTransfer junctionBox = Item.itemList.Find(i => i!=null && i.HasTag("tutorialjunctionbox")).GetComponent(); + + while ((Character.Controlled.SelectedConstruction != junctionBox.Item && + Character.Controlled.SelectedConstruction != steering.Item) || + Character.Controlled.SelectedItems.FirstOrDefault(i => i != null && i.Name == "Screwdriver") == null) + { + yield return Status.Running; + } + + if (Character.Controlled.SelectedItems.FirstOrDefault(i => i != null && i.GetComponent()!=null) == null) + { + infoBox = CreateInfoFrame("Equip the wire by dragging it to one of the slots with a hand symbol."); + + while (Character.Controlled.SelectedItems.FirstOrDefault(i => i != null && i.GetComponent() != null) == null) + { + yield return Status.Running; + } + } + + infoBox = CreateInfoFrame("You can see the equipped wire at the middle of the connection panel. Drag it to the power connector."); + + var steeringConnection = steering.Item.Connections.Find(c => c.Name.Contains("power")); + var junctionConnection = junctionBox.Item.Connections.Find(c => c.Name.Contains("power")); + + while (steeringConnection.Wires.FirstOrDefault(w => w != null) == null) + { + yield return Status.Running; + + } + + infoBox = CreateInfoFrame("Now you have to connect the other end of the wire to a power source. " + + "The junction box in the room just below the command room should do."); + + while (Character.Controlled.SelectedConstruction!=null) + { + yield return Status.Running; + } + + yield return new WaitForSeconds(2.0f); + + infoBox = CreateInfoFrame("You can now move the other end of the wire around, and attach it on the wall by left clicking or " + + "remove the previous attachment by right clicking. Or you can just run the wire straight to the junction box and attach it " + + " the same way you did to the navigation terminal."); + + while (radar.Voltage<0.1f) + { + yield return Status.Running; + } + + infoBox = CreateInfoFrame("Great! Now we should be able to get moving."); + + + while (Character.Controlled.SelectedConstruction != steering.Item) + { + yield return Status.Running; + } + + infoBox = CreateInfoFrame("You can take a look at the area around the sub by pressing ''Activate Radar''."); + + while (!radar.IsActive) + { + yield return Status.Running; + } + yield return new WaitForSeconds(0.5f); + + infoBox = CreateInfoFrame("The white box in the middle is the submarine, and the white lines outside it are the walls of an underwater cavern. " + + "Try moving the submarine by clicking somewhere inside the rectangle and draggind the pointer to the direction you want to go to."); + + while (steering.CurrTargetVelocity == Vector2.Zero && steering.CurrTargetVelocity.Length() < 40.0f) + { + yield return Status.Running; + } + yield return new WaitForSeconds(4.0f); + + infoBox = CreateInfoFrame("The submarine moves up and down by pumping water in and out of the two ballast tanks at the bottom of the submarine. " + +"The engine at the back of the sub moves it forwards and backwards."); + + yield return new WaitForSeconds(8.0f); + + infoBox = CreateInfoFrame("Steer the submarine downwards, heading further into the cavern."); + + while (Submarine.Loaded.Position.Y > 31000.0f) + { + yield return Status.Running; + } + + var moloch = new Character("Content/Characters/Moloch/moloch.xml", steering.Item.SimPosition + Vector2.UnitX * 15.0f); + moloch.PlaySound(AIController.AiState.Attack); + + //moloch.AIController. + + infoBox = CreateInfoFrame("Uh-oh... Something enormous just appeared on the radar."); + + Structure window = null; + foreach (Structure s in Structure.wallList) + { + if (s.CastShadow) continue; + + if (window == null || s.Rect.Right > window.Rect.Right) window = s; + } + + bool broken = false; + do + { + moloch.AIController.SelectTarget(steering.Item); + for (int i = 0; i < window.SectionCount; i++) + { + if (!window.SectionHasHole(i)) continue; + broken = true; + break; + } + + yield return new WaitForSeconds(1.0f); + } while (!broken); + + yield return Status.Success; + } + + public override void Draw(SpriteBatch spriteBatch) + { + base.Draw(spriteBatch); + + CrewManager.Draw(spriteBatch); + if (infoBox != null) infoBox.Draw(spriteBatch); + } + + private GUIComponent CreateInfoFrame(string text) + { + int width = 300; + int height = 80; + + string wrappedText = ToolBox.WrapText(text, width, GUI.Font); + + height += wrappedText.Split('\n').Length*25; + + var infoBlock = new GUIFrame(new Rectangle(-20, 20, width, height), null, Alignment.TopRight, GUI.style); + //infoBlock.Color = infoBlock.Color * 0.8f; + infoBlock.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f); + infoBlock.Flash(Color.Green); + + new GUITextBlock(new Rectangle(10, 10, width - 40, height), text, GUI.style, infoBlock, true); + + + GUI.PlayMessageSound(); + + return infoBlock; + } + } } diff --git a/Subsurface/Source/Items/Components/Machines/Radar.cs b/Subsurface/Source/Items/Components/Machines/Radar.cs index 89a995781..3b31c1d74 100644 --- a/Subsurface/Source/Items/Components/Machines/Radar.cs +++ b/Subsurface/Source/Items/Components/Machines/Radar.cs @@ -148,43 +148,16 @@ namespace Subsurface.Items.Components screenOverlay.Draw(spriteBatch, center, 0.0f, rect.Width/screenOverlay.size.X); } - //if (Level.Loaded != null) - //{ + if (Game1.GameSession == null) return; - // for (int i = 0; i < 2; i++) - // { - // Vector2 targetPos = (i == 0) ? Level.Loaded.StartPosition : Level.Loaded.EndPosition; - // targetPos += Level.Loaded.Position; - // float dist = targetPos.Length(); + DrawMarker(spriteBatch, + (Game1.GameSession.Map == null) ? "Start" : Game1.GameSession.Map.CurrentLocation.Name, + (Level.Loaded.StartPosition + Level.Loaded.Position), displayScale, center, (rect.Width * 0.55f)); - // targetPos.Y = -targetPos.Y; - // Vector2 markerPos = Vector2.Normalize(targetPos) * (rect.Width * 0.55f); - // markerPos += center; - - // GUI.DrawRectangle(spriteBatch, new Rectangle((int)markerPos.X, (int)markerPos.Y, 5, 5), Color.LightGreen); - - // string label; - // if (Game1.GameSession.Map!=null) - // { - // label = (i == 0) ? Game1.GameSession.Map.CurrentLocation.Name : Game1.GameSession.Map.SelectedLocation.Name; - // } - // else - // { - // label = (i == 0) ? "Start" : "End"; - // } - - // spriteBatch.DrawString(GUI.SmallFont, label, new Vector2(markerPos.X + 10, markerPos.Y), Color.LightGreen); - // spriteBatch.DrawString(GUI.SmallFont, (int)(dist / 80.0f) + " m", new Vector2(markerPos.X + 10, markerPos.Y + 15), Color.LightGreen); - // } - - DrawMarker(spriteBatch, - (Game1.GameSession.Map == null) ? "Start" : Game1.GameSession.Map.CurrentLocation.Name, - (Level.Loaded.StartPosition + Level.Loaded.Position), displayScale, center, (rect.Width * 0.55f)); - - DrawMarker(spriteBatch, - (Game1.GameSession.Map == null) ? "End" : Game1.GameSession.Map.SelectedLocation.Name, - (Level.Loaded.EndPosition + Level.Loaded.Position), displayScale, center, (rect.Width * 0.55f)); + DrawMarker(spriteBatch, + (Game1.GameSession.Map == null) ? "End" : Game1.GameSession.Map.SelectedLocation.Name, + (Level.Loaded.EndPosition + Level.Loaded.Position), displayScale, center, (rect.Width * 0.55f)); if (Game1.GameSession.Quest != null) { diff --git a/Subsurface/Source/Items/Components/Machines/Reactor.cs b/Subsurface/Source/Items/Components/Machines/Reactor.cs index 316512dbc..afe8c36d5 100644 --- a/Subsurface/Source/Items/Components/Machines/Reactor.cs +++ b/Subsurface/Source/Items/Components/Machines/Reactor.cs @@ -88,10 +88,20 @@ namespace Subsurface.Items.Components return (temperature > 0.0f); } + public bool AutoTemp + { + get { return autoTemp; } + } + public float ExtraCooling { get; set; } public float AvailableFuel { get; set; } + public float ShutDownTemp + { + get { return shutDownTemp; } + } + public Reactor(Item item, XElement element) : base(item, element) { diff --git a/Subsurface/Source/Items/Components/Machines/Steering.cs b/Subsurface/Source/Items/Components/Machines/Steering.cs index 5b3054390..0caf77329 100644 --- a/Subsurface/Source/Items/Components/Machines/Steering.cs +++ b/Subsurface/Source/Items/Components/Machines/Steering.cs @@ -57,6 +57,11 @@ namespace Subsurface.Items.Components } } + public Vector2 CurrTargetVelocity + { + get { return targetVelocity; } + } + public Steering(Item item, XElement element) : base(item, element) { diff --git a/Subsurface/Source/Items/Components/Power/PowerTransfer.cs b/Subsurface/Source/Items/Components/Power/PowerTransfer.cs index 647258840..6bb00eefa 100644 --- a/Subsurface/Source/Items/Components/Power/PowerTransfer.cs +++ b/Subsurface/Source/Items/Components/Power/PowerTransfer.cs @@ -135,7 +135,7 @@ namespace Subsurface.Items.Components { base.ReceiveSignal(signal, connection, sender, power); - if (connection.Name == "signal") + if (connection.Name.Length>5 && connection.Name.Substring(0, 6).ToLower() == "signal") { connection.SendSignal(signal, sender, 0.0f); } diff --git a/Subsurface/Source/Items/Components/Signal/Connection.cs b/Subsurface/Source/Items/Components/Signal/Connection.cs index c790acd00..86ddc2556 100644 --- a/Subsurface/Source/Items/Components/Signal/Connection.cs +++ b/Subsurface/Source/Items/Components/Signal/Connection.cs @@ -132,21 +132,6 @@ namespace Subsurface.Items.Components Wires[index] = wire; } - //public bool AddLink(Item connectedItem, Connection otherConnection) - //{ - // if (linked.Contains(connectedItem)) return false; - - // for (int i = 0; i DimLight() + private IEnumerable DimLight() { float currBrightness= 1.0f; float startRange = light.Range; diff --git a/Subsurface/Source/Map/IDamageable.cs b/Subsurface/Source/Map/IDamageable.cs index 29af336d4..bfd5ae1b0 100644 --- a/Subsurface/Source/Map/IDamageable.cs +++ b/Subsurface/Source/Map/IDamageable.cs @@ -14,6 +14,11 @@ namespace Subsurface get; } + AITarget AiTarget + { + get; + } + AttackResult AddDamage(Vector2 position, DamageType damageType, float amount, float bleedingAmount, float stun, bool playSound=true); } } diff --git a/Subsurface/Source/Map/Lights/LightManager.cs b/Subsurface/Source/Map/Lights/LightManager.cs index c55d3c120..0787febbf 100644 --- a/Subsurface/Source/Map/Lights/LightManager.cs +++ b/Subsurface/Source/Map/Lights/LightManager.cs @@ -57,9 +57,6 @@ namespace Subsurface.Lights public void DrawLOS(GraphicsDevice graphics, Camera cam, Vector2 pos) { - Stopwatch sw = new Stopwatch(); - sw.Start(); - Rectangle camView = new Rectangle(cam.WorldView.X, cam.WorldView.Y - cam.WorldView.Height, cam.WorldView.Width, cam.WorldView.Height); if (!LosEnabled) return; @@ -70,15 +67,10 @@ namespace Subsurface.Lights convexHull.DrawShadows(graphics, cam, pos); } - long elapsed = sw.ElapsedTicks; - Debug.WriteLine("los: "+elapsed); } public void DrawLightmap(GraphicsDevice graphics, SpriteBatch spriteBatch, Camera cam) { - Stopwatch sw = new Stopwatch(); - sw.Start(); - graphics.SetRenderTarget(lightMap); Rectangle viewRect = cam.WorldView; @@ -116,10 +108,6 @@ namespace Subsurface.Lights //clear alpha, to avoid messing stuff up later ClearAlphaToOne(graphics, spriteBatch); graphics.SetRenderTarget(null); - - - long elapsed = sw.ElapsedTicks; - Debug.WriteLine("lights: " + elapsed); } private void ClearAlphaToOne(GraphicsDevice graphics, SpriteBatch spriteBatch) diff --git a/Subsurface/Source/Map/Structure.cs b/Subsurface/Source/Map/Structure.cs index 4b5f48f63..2b4defea3 100644 --- a/Subsurface/Source/Map/Structure.cs +++ b/Subsurface/Source/Map/Structure.cs @@ -98,6 +98,10 @@ namespace Subsurface get { return prefab.MaxHealth; } } + public AITarget AiTarget + { + get { return null;} + } public override void Move(Vector2 amount) { diff --git a/Subsurface/Source/Networking/GameClient.cs b/Subsurface/Source/Networking/GameClient.cs index 638399375..42d4cf342 100644 --- a/Subsurface/Source/Networking/GameClient.cs +++ b/Subsurface/Source/Networking/GameClient.cs @@ -136,7 +136,7 @@ namespace Subsurface.Networking } // Before main looping starts, we loop here and wait for approval message - private IEnumerable WaitForStartingInfo() + private IEnumerable WaitForStartingInfo() { // When this is set to true, we are approved and ready to go bool CanStart = false; diff --git a/Subsurface/Source/Screens/GameScreen.cs b/Subsurface/Source/Screens/GameScreen.cs index 5aa1faa04..366965bb4 100644 --- a/Subsurface/Source/Screens/GameScreen.cs +++ b/Subsurface/Source/Screens/GameScreen.cs @@ -112,7 +112,6 @@ namespace Subsurface DrawMap(graphics, spriteBatch); spriteBatch.Begin(); - if (Game1.GameSession != null) Game1.GameSession.Draw(spriteBatch); if (Character.Controlled != null && Character.Controlled.SelectedConstruction != null) { @@ -126,6 +125,8 @@ namespace Subsurface } } + if (Game1.GameSession != null) Game1.GameSession.Draw(spriteBatch); + GUI.Draw((float)deltaTime, spriteBatch, cam); if (PlayerInput.GetMouseState.LeftButton != ButtonState.Pressed) Inventory.draggingItem = null; diff --git a/Subsurface/Source/Screens/MainMenu.cs b/Subsurface/Source/Screens/MainMenu.cs index 5c5531ff4..c9f9ae9d5 100644 --- a/Subsurface/Source/Screens/MainMenu.cs +++ b/Subsurface/Source/Screens/MainMenu.cs @@ -38,26 +38,29 @@ namespace Subsurface menuTabs[(int)Tabs.Main] = new GUIFrame(panelRect, GUI.style); //menuTabs[(int)Tabs.Main].Padding = GUI.style.smallPadding; - GUIButton button = new GUIButton(new Rectangle(0, 0, 0, 30), "New Game", Alignment.CenterX, GUI.style, menuTabs[(int)Tabs.Main]); + GUIButton button = new GUIButton(new Rectangle(0, 0, 0, 30), "Tutorial", Alignment.CenterX, GUI.style, menuTabs[(int)Tabs.Main]); + button.OnClicked = TutorialButtonClicked; + + button = new GUIButton(new Rectangle(0, 70, 0, 30), "New Game", Alignment.CenterX, GUI.style, menuTabs[(int)Tabs.Main]); button.UserData = (int)Tabs.NewGame; button.OnClicked = SelectTab; //button.Enabled = false; - button = new GUIButton(new Rectangle(0, 60, 0, 30), "Load Game", Alignment.CenterX, GUI.style, menuTabs[(int)Tabs.Main]); + button = new GUIButton(new Rectangle(0, 130, 0, 30), "Load Game", Alignment.CenterX, GUI.style, menuTabs[(int)Tabs.Main]); button.UserData = (int)Tabs.LoadGame; button.OnClicked = SelectTab; //button.Enabled = false; - button = new GUIButton(new Rectangle(0, 120, 0, 30), "Join Server", Alignment.CenterX, GUI.style, menuTabs[(int)Tabs.Main]); + button = new GUIButton(new Rectangle(0, 200, 0, 30), "Join Server", Alignment.CenterX, GUI.style, menuTabs[(int)Tabs.Main]); //button.UserData = (int)Tabs.JoinServer; button.OnClicked = JoinServerClicked; - button = new GUIButton(new Rectangle(0, 180, 0, 30), "Host Server", Alignment.CenterX, GUI.style, menuTabs[(int)Tabs.Main]); + button = new GUIButton(new Rectangle(0, 260, 0, 30), "Host Server", Alignment.CenterX, GUI.style, menuTabs[(int)Tabs.Main]); button.UserData = (int)Tabs.HostServer; button.OnClicked = SelectTab; //button.Enabled = false; - button = new GUIButton(new Rectangle(0, 240, 0, 30), "Quit", Alignment.CenterX, GUI.style, menuTabs[(int)Tabs.Main]); + button = new GUIButton(new Rectangle(0, 330, 0, 30), "Quit", Alignment.CenterX, GUI.style, menuTabs[(int)Tabs.Main]); button.OnClicked = QuitClicked; //---------------------------------------------------------------------- @@ -105,62 +108,6 @@ namespace Subsurface menuTabs[(int)Tabs.LoadGame] = new GUIFrame(panelRect, GUI.style); //menuTabs[(int)Tabs.LoadGame].Padding = GUI.style.smallPadding; - //new GUITextBlock(new Rectangle(0, 0, 0, 30), "Load Game", GUI.style, Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.LoadGame]); - - ////if (!Directory.Exists(SaveUtil.SaveFolder)) - ////{ - //// DebugConsole.ThrowError("Save folder ''"+SaveUtil.SaveFolder+" not found! Attempting to create a new folder"); - //// try - //// { - //// Directory.CreateDirectory(SaveUtil.SaveFolder); - //// } - //// catch (Exception e) - //// { - //// DebugConsole.ThrowError("Failed to create the folder ''"+SaveUtil.SaveFolder+"''!", e); - //// } - ////} - - //string[] saveFiles = SaveUtil.GetSaveFiles();//Directory.GetFiles(SaveUtil.SaveFolder, "*.save"); - - ////new GUITextBlock(new Rectangle(0, 30, 0, 30), "Selected map:", Color.Transparent, Color.Black, Alignment.Left, menuTabs[(int)Tabs.NewGame]); - //saveList = new GUIListBox(new Rectangle(0, 60, 200, 360), Color.White, GUI.style, menuTabs[(int)Tabs.LoadGame]); - - //foreach (string saveFile in saveFiles) - //{ - // GUITextBlock textBlock = new GUITextBlock( - // new Rectangle(0, 0, 0, 25), - // saveFile, - // GUI.style, - // Alignment.Left, - // Alignment.Left, - // saveList); - // textBlock.Padding = new Vector4(10.0f, 0.0f, 0.0f, 0.0f); - // textBlock.UserData = saveFile; - //} - - //button = new GUIButton(new Rectangle(0, 0, 100, 30), "Start",Alignment.Right | Alignment.Bottom, GUI.style, menuTabs[(int)Tabs.LoadGame]); - //button.OnClicked = LoadGame; - - //---------------------------------------------------------------------- - - //menuTabs[(int)Tabs.JoinServer] = new GUIFrame(panelRect, GUI.style); - ////menuTabs[(int)Tabs.JoinServer].Padding = GUI.style.smallPadding; - - //new GUITextBlock(new Rectangle(0, 0, 0, 30), "Join Server", GUI.style, Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.JoinServer]); - - //new GUITextBlock(new Rectangle(0, 30, 0, 30), "Your Name:", GUI.style, Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.JoinServer]); - //clientNameBox = new GUITextBox(new Rectangle(0, 60, 200, 30), Color.White, Color.Black, Alignment.CenterX, Alignment.CenterX, null, menuTabs[(int)Tabs.JoinServer]); - - //new GUITextBlock(new Rectangle(0, 100, 0, 30), "Server IP:", GUI.style, Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.JoinServer]); - //ipBox = new GUITextBox(new Rectangle(0, 130, 200, 30), Color.White, Color.Black, Alignment.CenterX, Alignment.CenterX, null, menuTabs[(int)Tabs.JoinServer]); - - //GUIButton joinButton = new GUIButton(new Rectangle(0, 200, 200, 30), "Join", Alignment.CenterX, GUI.style, menuTabs[(int)Tabs.JoinServer]); - //joinButton.OnClicked = JoinServer; - - //GUIButton serverListButton = new GUIButton(new Rectangle(0, 0, 230, 30), "Server List", Alignment.BottomCenter, GUI.style, menuTabs[(int)Tabs.JoinServer]); - //serverListButton.OnClicked = ServerListClicked; - - //---------------------------------------------------------------------- menuTabs[(int)Tabs.HostServer] = new GUIFrame(panelRect, GUI.style); //menuTabs[(int)Tabs.JoinServer].Padding = GUI.style.smallPadding; @@ -199,6 +146,13 @@ namespace Subsurface return true; } + private bool TutorialButtonClicked(GUIButton button, object obj) + { + TutorialMode.Start(); + + return true; + } + private bool JoinServerClicked(GUIButton button, object obj) { Game1.ServerListScreen.Select(); diff --git a/Subsurface/Source/Sounds/AmbientSoundManager.cs b/Subsurface/Source/Sounds/AmbientSoundManager.cs index 0482514c5..a984733c5 100644 --- a/Subsurface/Source/Sounds/AmbientSoundManager.cs +++ b/Subsurface/Source/Sounds/AmbientSoundManager.cs @@ -67,7 +67,7 @@ namespace Subsurface private static Sound startDrone; - public static IEnumerable Init() + public static IEnumerable Init() { diff --git a/Subsurface/Subsurface.csproj b/Subsurface/Subsurface.csproj index 406950bd3..58023277f 100644 --- a/Subsurface/Subsurface.csproj +++ b/Subsurface/Subsurface.csproj @@ -725,7 +725,16 @@ - + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + PreserveNewest diff --git a/Subsurface_Solution.v12.suo b/Subsurface_Solution.v12.suo index 8cb8cfcd64de4ea60da4a31d7ae0f44a4b1d9c87..2c60509ceb4630c4cb1ac8f2d589d783efbb2740 100644 GIT binary patch delta 14451 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 Oll60*@>ms9*M9@w-Y-)C delta 13777 zcmdU04OmrG*1r4vZhnLdA|jz&E`+2=7equt1VtnB2hG$k%|yi1&=4|r6(fGQhOa?7E7STV)^09l`9|?BrVav3^0#@egb+FI0k$OYym#lI_n?I zuk!Gp?6n8$Sud2bBpAg~F-zJ0H_3;wM-8U5FE8Ua7UE7AkOZLqD_uZuLInk&CNLB@ zY-A|m9b%C?5V#XL%K_1yPmLlaQu!X7u|jdOy+(lghi+?8=spyf4Ezy%KhXX_A`k?m z0xI&4Sd3aV&gw?;Ad(fp9`F@XzF)zUPh7j>6`c2Z6a__-qT7OYL0Sw0>=iMLy+~ir zFvRm>7>b7pQWyPXB=eMiHWI(9BN5N?DTiE@I2r) zboL8iH!uaA_BI0Qy80~zX9q4IH<%fN>eB3Ukko-G$Z~-01g!;L2F?MKnBlHV3HS%t zk$`Bw0<@QLwk~pk=)z}6?F0Ja;mx4WfrbEQz<&kw2LA!*+W^LCnSk_4P#177_!mL< z1NQ^Z051VUfOWv_fLMlV(8qxTKqp{2o?BwE7{-B!;3Dv6k@pg`-;qCzK86b5q8uj+l zs}^HU%0tpC7UR2=I*$6U2r+EEuT95r;{uK1v>2o6yRhwPA+?=cW2FH!pa)B!qOsC2 z;|(d^JU>>7W!r6ujcWCBxr&vSjjy;*p-zuWzT2&-O#z*LzLJ?}BOLhN=u{VetrZm= z`CqK)>zEX=q6xtDuPDdU|LTg04qn%acJmP{DIUj4Qv4TcA9`w&61;s__O?FPwM0J6 zON23?zMN_`a=U#=Lx$^J$woHL*3uh`s z9Tv(Mr}c9!R&CoS)YslbmEKG-qmD_Hj8DL`)7n0-cE#LnG#(gm(^~swU(@c*eqcuB zvx*V@MduJo$exMHgLeTd?p8)L) z>;S(JbQ!P-mWw08+qzD_bnjgMSKqDChu- zWr1ZFm<`An3AzPz45+C5FW|QV>yX|Iyb6d7xCVI%;GY0BK^K6&0eS^=IcN#+Ctw$# z0ILO$dtxI$0)8hT>fhs`3j}-R$}26If?tG!f{Lp<@{c3!0-X=~5Ks?(2Ov5VjI^Lv zuUA{rSMvnzg)J=ZAICFS%Y6a<1aPT*)|imXEjJjJ_G$q^tF6rLx843k12anRjxwWc z><8JfZy!m{3({~eHWtP20a}-r&Ldyw19D!Jme9F-^m&x7E5YROQ-aN^XjanMsQf|M z9`(a9#%9u2(>>D<4iGcX6! zEHf>+bl?Fw-m9fkmYMWUJGnO{Y~(>IdTcpEpC4i2WZSB8NIhzNf%o+hwgrnVE@SJl zUV762FTpPxfs%D7Nt@g}kV-#grEIE^v40d5G_W9Z+Hyv+dy6DhuVhR!nTw5*XiJdf zy=;r-ZBBDD@~LQqd~B3$j2jq2H0o>}0y$rjm$)*S&8WFGSCM|0d4_OfxbW*&<_x0GeG+T1At6mATS6R31k7c z0fT|tfg!+9U>GnQ$Oc9LqMkbxi=Sl_5_bZlfob$#ugSef)@@ILVQ zzzkp}a6eE0%mSRiyC{RASLT8jR9xcOs`6Rk?i$8nMx%_V4L05nGd8%bFqqCdX$h-X zZ8z=jvW5VP?;z(>{zp<3)!xgZjO@O?l>V_a#Jbq6_1IT`cHQp2Qxuq}Y`^Y6#`O$b*ElA_Tq7 z6=D(kKsbucS6q#7lZ%1OWh^trfxr0WlC0~@!v8fFJR-o2#K--eB)P2;cg=z2c$oIgVGoiuUe~Od3*NeW*_d=Yf zx|l0x)wVP_XGo)z8{1}S(^0|KlJL7t`&|;0z`_f9 zSO0G=JsYb9^qsi%wGE4IyEN076&q|087=Q%?wOJ=D<*cQ+@CfrQ+%muoEB@X-#4x( z`r!WfQSMhKhTqfkY1%qKx)E-F0PRVZ4_l{sIh@_jOl_C{Mm`XkzeVqB_I+A?fsHNV&9Zl@vv9S4gim zZ}|g;ltAZB=|ObcjkwXrSALrX5o;%3aqo}<-BnCt6KIcvrO=jnQj~emK54ZqEQ05f z!6<+VXn?TV91w=m8}I>qfp&l&;15_8a%|+mUP3)bARS`d?HeilI*T2tNFWNh5r_u5 z0zHA7fNnr{AQtEW!~r)04xp_{6oyUsVM)MM!zPT#uNgKNz;w%14f=D-b}K3omQ8f` zH!K@1c!%9ZO<$^EVtrp~avzcuD&-8uJ(I0sUY1)Sq*-kR)#o4t^$(tzx6sxT`V2Gwi1f7V zIw1vxz7Gv@C-4}M4uk{!fkK7iPDsH?kAr^{kA4aGf{z4Bz@G<_z?T9G!Dj={f?p40 zF)BVGC8!I)KY|9O$S%{s1^_Ptr%_axs1-n0pp4PE6H=UX&_ebvrRdIMQDz&E35dAJ z8eli@AE1iF7XT6fhr%0-i^{(2WJ)i-AI51K>Xe%>)>Z>R z&fZXcF>SNjiAhI>=PHI5nn0Boln~mItoqW?&03T>|FX1RCi~ZtokybCZa?kL*HX6e zrsSaWVCcR_JTEBP}zUaSV1fg$qOdUc}ABwDjfi#2=L zU8A8p|4(;~5a-{yYeW^lwQHWij<|#w_}}cBmtOm#@y|E}>fPjvdbLe&4R;!?h?c-Y>-}@cK*FZFFzA|F~0+i@RvLI<{{AQ#Bu9>9JtJy z-ArR%a~7A6y-;=Wghy`!;LQ{e9&` zI#;B2qsAqA42^8!-+7K>0c&|LoFVtbuzpl?mZ!T@WXZivl2{3``SK*n|6UC>A54=U zkzFxzdhpLXTR0^rH?JFQox($D(^kogO7pnx@7Xdx{?N_DOLS*p&NS!!g_KjyZ}#^a z)tnl7|Kz;5+}RZHIVxDXitBWslKbi{cj>E2-q|KLYV+0fdT%fRfUs%UZk~(SLG=d8 zUZHV%Y9J4zt+#7E%pRHY2Xc$ah+@Ye?S`IirVo~DWSaG$+ROU&D?26)vp;fX=j~mW zM*FSZKnv%~ooIrem;Dz`nrVHW7ch6Wta*;uH8E_sIee_VRdw%Ul4~QjS=SCJ@!N|Y zfB!FG5ocDlQ~pA;o@Y_+mn7zTNcJgT67ZjJz`X6>cEB`7cqid>s8ISs#_6>IQYSNU zvb^8RH9>yEi*?1KMFOq5*E~N#_GPYQ2?n762BF#|pJzS;Af8ih#|}ivD?{ZXN`IXz zG;f%EnUzt|aCtcIhFijbwN~W26e)P@o{QLA)`_;frAM3n=E!gA#;E^pPmLF3#SG1o zPqH?LH;P{;*~uCX(YdDo{(rMqC(2GqlY~8LPsNkuOKc1k<;n|G@!DoIUCfc^Yaaiq zgNeJ3F)Cdw!~0n*LzMr6q84}l+k^_bS{URiNW>A^n#yjdei%wt8-p3_W~bsu>ci=A0_s`8VflwU-{hSM7x5x6e$ zmxeW;5U&vzGad-L$*2l}5r0}vlGq3;a>)x|qW|V<5!0W@yE+_w3_|odl2(vB);Av= zIyTrN=@wTOOAZoZEXFDz-X;i2LpHz}Fe&0WxxIO2gB-+MgBdo=v)C}LvT>OiwhM@D zt(040TV`pgT#DBq1$g;lVji%$UX}N;4&pF!9vkd$fUpC92lC2iMOLqnV;H+#v~okp zNHl#1Fsh{sqg$vsezRO9xmUnY?3ShK9kL>kvQ2JMML+*RY^xkjA=~90iN9z8W4wr# zE&-zKWzg>h4_pDnE3N8knKLf#W+I2IrrbowpVV<$tC1U6^-g&s^SouEEw9Mg?!8#q z<6T*o@-lCVsg<3|3z$o@vK9kn{b^y1+>bGO5JVq)z#9!%NZ%v(aqW>~XzCt$ETs$X z)E+qmQK;Y+?NBG5RNedKZgkv72{XeE%O@BmG|8`0`VqyOvOZI6=7|e(7^8?rh9l)i z@@eM2EOV0nEN7aTN90}1tUWBJMYv`vwUnSK(Ps2f`6x0k$Z5<>>#mGuA!Ejg&iwRB zjxF{_H-gNXSS6iRACqy;t%_GNX@3v&W0FHz=|#0ZN~)RKAiv3|c9R-Jm7genv@aDu zj#OofW}LHka=c@nOjVLpbIx()2}W_zDh6>Pd=oD%I-m`RQ;GXOd@-{ zGQ=E`r0ign-b+zv@^{K%iaoCMcNHKtucNw{#=b3EO>49|SaK($meN$ke$5etG8%bG zNidhhsC6gAx*I}n)Il)!}RN+4w30xnzDl$&dMR?{&Xb~b8<$BHJ@lw4l{Ru z)P3kO>MlK}WSTVz>a&aNjJiN}tzL z%(PufEn9!QR1I?P#%OG}Dj{Y_t#XQ)$DdY(a12M#BV;c!s4@p$TIjpVNtAb~ihIAJ ztUvy&s5nwdCdX$G5Zm7s2W8t)IVQtRwu4F|DWfpKLC>jm%za2au@X;2HDaik-Y_%n zBjpgWET2awWkAe!g=(1rIb~9>x5sf>>VI3Rq))jNYU~P?RG|kXVZIpJ2 zkGQN2l`2nw zjec0exUFZ^G_t;im^ZvqXo`e-$R)PHVMh7SX-`wlJ1Sb+AX+=I9fK~tg4uEG#2YF^ zNxIOyZCW8!39f#Xo^7H?m_&|xRWX&F+IiW164H>pNspq&XV8C}qQeAO4E($y)o^8t0V#&5Z52FLs z%t~Y3x|0&u>-(uDO;3PVj-c0|E&3MsX|%iT9(5{N-+)3c-Kx*QZcM-|)Lc@y*(Fw8 zqtWyWO0k*NN2^6WEjzu58HIbExB6j!8u^v-m{1HUl28Td*qyJaDW*f_dm*H6@*rxsfVEBg zR+;*1N+C_fIx2tDv92dD_^~Qqsk$>&g=%e*-3;;JFiwwY&=*~fD`l+MWKU>UAbRul zV5+Otf~e^}EMMG8?GUEyu)fGFZpTZQ(SLU^`Avr~gjH%Mbb9zQ>Mt!&yO~p8(D1U$ z{#SiBEjo?mhzaC%)PJd(KnJc!F?82Pt&t`jg|I`dgi_ie%-y0*T8T`RHIR$4xoVV| zRjuu06yt&zH5uA4PY9Kk?9xWlQj>+bPV1T((w>*fls!hZQ%pymy8iesO)@Ixq?(l- z`J1wNe7DvG5$aksm27#~Lt+z~qcr^~i6-B`S5WCKI&4c9o&_zz^)7kjxLbo71o@F&jL<1KUk zm1iS<`m9LJw9G+s^Uze0CEt=y^}V?5`g$^%7B( zo1q6|MS^*MDti|jV$*6U;8>TC`=%@<1#Z+3T5wt&NM$~{FDzbnGj(O!;CL=a6-r}MWNxbv#8RHFCtD1~X<)d>&n8qBe)p*OA-(7jvU$1<& zWiA>NF_!U`K@>5aN71V3JeG!eY0+l4jrvD2ef^+5&z!eIU(Bd%I^GC8RHBENu{-r6 zZ2isz985Q+W?9>cyX`%X&{7H$Yd6!2iPE{UIJB-KEj2}NsG?b640 zqQT$m-lq2veUd_J`*H_aXYdeLAAXn(qlHdBj1KqV%c%Yvo@iDc(8 zQBPLZmlSeoef|lZ^X3BtT-?l$crpd8;pvpV2CA+8BOYs(uHoE^7T$|^`ltCkk`>a3 zB0iE1IJuP#rq%s;e{}|Cx_}z{@l1x7RekvonwZaH5Y!cS8D3HqYwc-N5x<9x^<+_5 zG7nzAy@*THD}yJnEi^R)1@pzT=@d7YhtR6IXg|F_zmv2Fp?4C-Ktx9?ILAhh<|XZ@ zd@1kZGrv9FdteWHTeed~8GpPx!a;Z~o0F8=J25dQxrZY!F{el3l-wk|mQBj(;YdnM zNbc$Am6+5!@j*IU!CxU;8FzL3mGboR5?)MYPjM?Py_f4+n-~=PlW1?D@9b$a@6FFE z$j^Bo&l8;bqbQE8RL(cC7pT0P&+*Q^f99OLc~gt>F}QnqcUC2yywAVLIW2$o_!&9Q zsUFUAkES2z>#5)*_hZfDx%pohkGCcB+AaFG8{p|e7P^4?k}1BD+vuwk+^22d&Q|hH z!BB}USM!TLd7T>3`SaXksvS#ig(G#+GPc21-YWzEHpyzp-A6m+^=noAbNci|oR@*?CS9 zBNXAk)=PY~6)ED22dQQX4-kE{QpB^|W<*Lslt6rjn5F*I?K#{G{G5041R1SEa|*@} znRf3~=j>)e;itGQK)l~+zN|HOgGn)0JjWRe7H?RZFQrC&$|*i8$@~o&@beuCnYdF( z2WC9Mvsk|n7SCcWZmAbv+tghB<}&kFDzK ze{7BTWUD=GTFDEpy&tSUi^*oT*4**xwh`f2F|p=}RXiH*P_$~biVy348jT&J4sVu& zaf_u;O5d$(`b>P{hL=i|GesLpO)n^%tR1+onevT}ulZUP*Ph8dPAr$VYYiVotg=;a zC9LJiB4i;h>b{PLQ*;&L#o`+ys$I)tMeKmiuH}81%U~}*PB(wX{AlcIzQMH-{cKMM zP2QbOyumZY!79}}w2{YktgaKzU)>>Yr>vvURS~zq&DYNAm#8s>mzX714o}q4k>ju$ z#+w-V-N41$M_%nqTMzK#Wc`STnVakRTt@AV@Eq#$5Aj_3%O|`qb^d^7lia{> zrx_pcb@X)|_or_@FWbrqYd40mhu0bCy-H( z24)`N^BE0mKsxg?@r9G^Qir!XhinO8V_{M4cuIWwDoO-JuT5opF*Rau7?Snc#sd2Dd{sl)?9a(-}0kj43%he9c=T_BfPV)mUh~33=a)E z#I44Q_&f}TFUBnRga^x_B7B~SH2rXlZzh<`^!26B<5&{7S)Xi9ev_|Y=EYCp98g?e jDUce4$?yINs(tD+Ug+M-6;~ttj*)ZJ3FeYb+{yk2hwW&_