From 838022fcd5faf3ddbbfc6da5224ba0844a32ff5f Mon Sep 17 00:00:00 2001 From: Regalis Date: Fri, 16 Oct 2015 18:11:58 +0300 Subject: [PATCH] Switch to Barotrauma & too many misc changes to remember --- CrashReporter/CrashReporter.csproj | 4 +- CrashReporter/ReporterMain.cs | 2 +- .../Collision/Shapes/PolygonShape.cs | 5 - Launcher/Form1.cs | 4 +- Launcher/Launcher.csproj | 4 +- Launcher/PackageManager.cs | 2 +- Launcher2/Launcher2.csproj | 4 +- Launcher2/LauncherMain.cs | 4 +- .../{Subsurface.csproj => Barotrauma.csproj} | 14 ++- ...ace.csproj.user => Barotrauma.csproj.user} | 34 ++--- Subsurface/Content/Items/Clothes/clothes.xml | 4 +- .../Content/Items/Electricity/poweritems.xml | 9 +- Subsurface/Content/Items/Medical/bandage.ogg | Bin 0 -> 26933 bytes Subsurface/Content/Items/Medical/medical.xml | 4 +- Subsurface/Content/Items/Medical/syringe.ogg | Bin 0 -> 31361 bytes Subsurface/Content/Items/Pump/pump.xml | 2 +- .../Content/Items/Weapons/stunbaton.ogg | Bin 0 -> 23882 bytes .../Content/Items/Weapons/stunbaton.png | Bin 0 -> 2409 bytes Subsurface/Content/Items/Weapons/weapons.xml | 28 ++++- Subsurface/Content/Jobs.xml | 22 ++-- Subsurface/Content/Map/TutorialSub.sub | Bin 0 -> 8429 bytes .../Data/ContentPackages/Vanilla 0.1.3.xml | 4 +- .../{Aegir Mark II.gz => Aegir Mark II.sub} | Bin Subsurface/Data/SavedSubs/TutorialSub.gz | Bin 9006 -> 0 bytes Subsurface/Data/SavedSubs/TutorialSub.sub | Bin 0 -> 8482 bytes Subsurface/Data/SavedSubs/Vellamo.gz | Bin 7252 -> 0 bytes Subsurface/Data/SavedSubs/Vellamo.sub | Bin 0 -> 8155 bytes Subsurface/Source/Camera.cs | 2 +- .../Source/Characters/AI/AIController.cs | 2 +- Subsurface/Source/Characters/AI/AITarget.cs | 2 +- .../Source/Characters/AI/EnemyAIController.cs | 2 +- Subsurface/Source/Characters/AI/ISteerable.cs | 2 +- Subsurface/Source/Characters/AI/PathFinder.cs | 2 +- .../Source/Characters/AI/SteeringManager.cs | 2 +- .../Source/Characters/AI/SteeringPath.cs | 2 +- Subsurface/Source/Characters/AICharacter.cs | 14 ++- .../Source/Characters/AnimController.cs | 2 +- Subsurface/Source/Characters/Attack.cs | 4 +- .../BackgroundSprite/BackgroundSprite.cs | 2 +- .../BackgroundSpriteManager.cs | 2 +- .../BackgroundSpritePrefab.cs | 2 +- Subsurface/Source/Characters/Character.cs | 38 ++++-- Subsurface/Source/Characters/CharacterHUD.cs | 2 +- Subsurface/Source/Characters/CharacterInfo.cs | 2 +- Subsurface/Source/Characters/DelayedEffect.cs | 2 +- .../Source/Characters/FishAnimController.cs | 2 +- .../Characters/HumanoidAnimController.cs | 40 +++--- Subsurface/Source/Characters/Jobs/Job.cs | 2 +- .../Source/Characters/Jobs/JobPrefab.cs | 13 +- Subsurface/Source/Characters/Jobs/Skill.cs | 2 +- .../Source/Characters/Jobs/SkillPrefab.cs | 2 +- Subsurface/Source/Characters/Limb.cs | 4 +- Subsurface/Source/Characters/Ragdoll.cs | 13 +- Subsurface/Source/Characters/StatusEffect.cs | 5 +- Subsurface/Source/ContentPackage.cs | 2 +- Subsurface/Source/CoroutineManager.cs | 2 +- Subsurface/Source/DebugConsole.cs | 6 +- Subsurface/Source/Events/MonsterEvent.cs | 2 +- Subsurface/Source/Events/PropertyTask.cs | 2 +- .../Source/Events/Quests/MonsterQuest.cs | 6 +- Subsurface/Source/Events/Quests/Quest.cs | 4 +- .../Source/Events/Quests/SalvageQuest.cs | 2 +- Subsurface/Source/Events/RepairTask.cs | 2 +- Subsurface/Source/Events/ScriptedEvent.cs | 4 +- Subsurface/Source/Events/ScriptedTask.cs | 2 +- Subsurface/Source/Events/Task.cs | 2 +- Subsurface/Source/Events/TaskManager.cs | 2 +- Subsurface/Source/FrameCounter.cs | 2 +- Subsurface/Source/GUI/ComponentStyle.cs | 2 +- Subsurface/Source/GUI/GUI.cs | 2 +- Subsurface/Source/GUI/GUIButton.cs | 2 +- Subsurface/Source/GUI/GUIComponent.cs | 2 +- Subsurface/Source/GUI/GUIDropDown.cs | 2 +- Subsurface/Source/GUI/GUIFrame.cs | 2 +- Subsurface/Source/GUI/GUIImage.cs | 2 +- Subsurface/Source/GUI/GUIListBox.cs | 2 +- Subsurface/Source/GUI/GUIMessage.cs | 2 +- Subsurface/Source/GUI/GUIMessageBox.cs | 2 +- Subsurface/Source/GUI/GUIProgressBar.cs | 2 +- Subsurface/Source/GUI/GUIScrollBar.cs | 2 +- Subsurface/Source/GUI/GUIStyle.cs | 2 +- Subsurface/Source/GUI/GUITextBlock.cs | 2 +- Subsurface/Source/GUI/GUITextBox.cs | 2 +- Subsurface/Source/GUI/GUITickBox.cs | 2 +- Subsurface/Source/GUI/TitleScreen.cs | 2 +- Subsurface/Source/GameMain.cs | 6 +- Subsurface/Source/GameSession/CargoManager.cs | 2 +- Subsurface/Source/GameSession/CrewManager.cs | 2 +- .../Source/GameSession/GameModes/GameMode.cs | 2 +- .../GameSession/GameModes/GameModePreset.cs | 2 +- .../Source/GameSession/GameModes/QuestMode.cs | 2 +- .../GameSession/GameModes/SinglePlayerMode.cs | 2 +- .../GameSession/GameModes/TraitorMode.cs | 4 +- .../GameSession/GameModes/TutorialMode.cs | 119 +++++++++++++----- Subsurface/Source/GameSession/GameSession.cs | 2 +- Subsurface/Source/GameSession/HireManager.cs | 2 +- Subsurface/Source/GameSettings.cs | 2 +- Subsurface/Source/IPropertyObject.cs | 2 +- Subsurface/Source/Items/CharacterInventory.cs | 4 +- Subsurface/Source/Items/Components/Door.cs | 4 +- .../Items/Components/Holdable/Holdable.cs | 2 +- .../Items/Components/Holdable/MeleeWeapon.cs | 6 +- .../Items/Components/Holdable/Pickable.cs | 2 +- .../Items/Components/Holdable/RangedWeapon.cs | 2 +- .../Items/Components/Holdable/RepairTool.cs | 4 +- .../Items/Components/Holdable/Throwable.cs | 2 +- .../Source/Items/Components/ItemComponent.cs | 6 +- .../Source/Items/Components/ItemContainer.cs | 2 +- .../Source/Items/Components/ItemLabel.cs | 2 +- Subsurface/Source/Items/Components/Ladder.cs | 2 +- .../Items/Components/Machines/Controller.cs | 11 +- .../Items/Components/Machines/Engine.cs | 2 +- .../Items/Components/Machines/Fabricator.cs | 2 +- .../Items/Components/Machines/MiniMap.cs | 2 +- .../Components/Machines/OxygenGenerator.cs | 4 +- .../Source/Items/Components/Machines/Pump.cs | 4 +- .../Source/Items/Components/Machines/Radar.cs | 2 +- .../Items/Components/Machines/Reactor.cs | 9 +- .../Items/Components/Machines/Steering.cs | 2 +- .../Source/Items/Components/Machines/Vent.cs | 2 +- .../Items/Components/Power/PowerContainer.cs | 24 +--- .../Items/Components/Power/PowerTransfer.cs | 2 +- .../Source/Items/Components/Power/Powered.cs | 2 +- .../Source/Items/Components/Projectile.cs | 2 +- Subsurface/Source/Items/Components/Rope.cs | 2 +- .../Items/Components/Signal/AndComponent.cs | 2 +- .../Items/Components/Signal/Connection.cs | 2 +- .../Components/Signal/ConnectionPanel.cs | 2 +- .../Items/Components/Signal/LightComponent.cs | 4 +- .../Items/Components/Signal/NotComponent.cs | 2 +- .../Items/Components/Signal/OrComponent.cs | 2 +- .../Items/Components/Signal/OxygenDetector.cs | 2 +- .../Components/Signal/RegExFindComponent.cs | 2 +- .../Components/Signal/SignalCheckComponent.cs | 2 +- .../Items/Components/Signal/WifiComponent.cs | 2 +- .../Source/Items/Components/Signal/Wire.cs | 2 +- Subsurface/Source/Items/Components/Turret.cs | 2 +- .../Source/Items/Components/Wearable.cs | 2 +- Subsurface/Source/Items/FixRequirement.cs | 2 +- Subsurface/Source/Items/Inventory.cs | 4 +- Subsurface/Source/Items/Item.cs | 56 +++++---- Subsurface/Source/Items/ItemInventory.cs | 4 +- Subsurface/Source/Items/ItemPrefab.cs | 2 +- Subsurface/Source/Items/RelatedItem.cs | 2 +- Subsurface/Source/Map/Entity.cs | 4 +- Subsurface/Source/Map/Explosion.cs | 17 +-- Subsurface/Source/Map/Gap.cs | 2 +- Subsurface/Source/Map/Hull.cs | 2 +- Subsurface/Source/Map/IDamageable.cs | 2 +- Subsurface/Source/Map/Levels/Level.cs | 2 +- .../Source/Map/Levels/VoronoiElements.cs | 2 +- Subsurface/Source/Map/Lights/ConvexHull.cs | 2 +- Subsurface/Source/Map/Lights/LightManager.cs | 20 +-- Subsurface/Source/Map/Lights/LightSource.cs | 2 +- Subsurface/Source/Map/Location.cs | 2 +- Subsurface/Source/Map/LocationType.cs | 2 +- Subsurface/Source/Map/Map.cs | 2 +- Subsurface/Source/Map/MapEntity.cs | 2 +- Subsurface/Source/Map/MapEntityPrefab.cs | 2 +- Subsurface/Source/Map/Md5Hash.cs | 2 +- Subsurface/Source/Map/Structure.cs | 6 +- Subsurface/Source/Map/StructurePrefab.cs | 2 +- Subsurface/Source/Map/Submarine.cs | 19 +-- Subsurface/Source/Map/SubmarineHull.cs | 2 +- Subsurface/Source/Map/WaterRenderer.cs | 2 +- Subsurface/Source/Map/WayPoint.cs | 2 +- Subsurface/Source/Networking/GameClient.cs | 2 +- Subsurface/Source/Networking/GameServer.cs | 13 +- Subsurface/Source/Networking/NetConfig.cs | 2 +- Subsurface/Source/Networking/NetworkEvent.cs | 2 +- Subsurface/Source/Networking/NetworkMember.cs | 2 +- Subsurface/Source/Particles/Particle.cs | 2 +- .../Source/Particles/ParticleEmitter.cs | 2 +- .../Source/Particles/ParticleManager.cs | 2 +- Subsurface/Source/Particles/ParticlePrefab.cs | 2 +- Subsurface/Source/Physics/Physics.cs | 2 +- Subsurface/Source/Physics/PhysicsBody.cs | 4 +- Subsurface/Source/PlayerInput.cs | 2 +- Subsurface/Source/Program.cs | 2 +- Subsurface/Source/Properties.cs | 2 +- .../Source/Screens/EditCharacterScreen.cs | 2 +- Subsurface/Source/Screens/EditMapScreen.cs | 2 +- Subsurface/Source/Screens/GameScreen.cs | 6 +- Subsurface/Source/Screens/LobbyScreen.cs | 2 +- Subsurface/Source/Screens/MainMenuScreen.cs | 4 +- Subsurface/Source/Screens/NetLobbyScreen.cs | 4 +- Subsurface/Source/Screens/Screen.cs | 2 +- Subsurface/Source/Screens/ServerListScreen.cs | 4 +- Subsurface/Source/Screens/SettingsScreen.cs | 2 +- .../Source/Sounds/AmbientSoundManager.cs | 4 +- Subsurface/Source/Sounds/OggSound.cs | 2 +- Subsurface/Source/Sounds/OggStream.cs | 2 +- Subsurface/Source/Sounds/Sound.cs | 4 +- Subsurface/Source/Sounds/SoundManager.cs | 2 +- Subsurface/Source/Sprite.cs | 2 +- Subsurface/Source/Utils/MathUtils.cs | 2 +- Subsurface/Source/Utils/Rand.cs | 2 +- Subsurface/Source/Utils/SaveUtil.cs | 8 +- Subsurface/Source/Utils/TextureLoader.cs | 2 +- Subsurface/Source/Utils/ToolBox.cs | 2 +- Subsurface/Source/Utils/UpdaterUtil.cs | 2 +- Subsurface_Solution.sln | 6 +- Subsurface_Solution.v12.suo | Bin 767488 -> 666624 bytes 203 files changed, 540 insertions(+), 419 deletions(-) rename Subsurface/{Subsurface.csproj => Barotrauma.csproj} (98%) rename Subsurface/{Subsurface.csproj.user => Barotrauma.csproj.user} (89%) create mode 100644 Subsurface/Content/Items/Medical/bandage.ogg create mode 100644 Subsurface/Content/Items/Medical/syringe.ogg create mode 100644 Subsurface/Content/Items/Weapons/stunbaton.ogg create mode 100644 Subsurface/Content/Items/Weapons/stunbaton.png create mode 100644 Subsurface/Content/Map/TutorialSub.sub rename Subsurface/Data/SavedSubs/{Aegir Mark II.gz => Aegir Mark II.sub} (100%) delete mode 100644 Subsurface/Data/SavedSubs/TutorialSub.gz create mode 100644 Subsurface/Data/SavedSubs/TutorialSub.sub delete mode 100644 Subsurface/Data/SavedSubs/Vellamo.gz create mode 100644 Subsurface/Data/SavedSubs/Vellamo.sub diff --git a/CrashReporter/CrashReporter.csproj b/CrashReporter/CrashReporter.csproj index 525989800..eb2db32ee 100644 --- a/CrashReporter/CrashReporter.csproj +++ b/CrashReporter/CrashReporter.csproj @@ -56,9 +56,9 @@ - + {008c0f83-e914-4966-9135-ea885059edd8} - Subsurface + Barotrauma diff --git a/CrashReporter/ReporterMain.cs b/CrashReporter/ReporterMain.cs index a28497c0f..6a019b775 100644 --- a/CrashReporter/ReporterMain.cs +++ b/CrashReporter/ReporterMain.cs @@ -1,7 +1,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; -using Subsurface; +using Barotrauma; using System.IO; namespace CrashReporter diff --git a/Farseer Physics Engine 3.5/Collision/Shapes/PolygonShape.cs b/Farseer Physics Engine 3.5/Collision/Shapes/PolygonShape.cs index 5d0a4b37d..2480555a2 100644 --- a/Farseer Physics Engine 3.5/Collision/Shapes/PolygonShape.cs +++ b/Farseer Physics Engine 3.5/Collision/Shapes/PolygonShape.cs @@ -196,11 +196,6 @@ namespace FarseerPhysics.Collision.Shapes I += (0.25f * k_inv3 * D) * (intx2 + inty2); } - if (area <= Settings.Epsilon) - { - int alsmfkldsmfdkasf = 1; - } - //The area is too small for the engine to handle. Debug.Assert(area > Settings.Epsilon); diff --git a/Launcher/Form1.cs b/Launcher/Form1.cs index dcd6df2a7..dc6e37492 100644 --- a/Launcher/Form1.cs +++ b/Launcher/Form1.cs @@ -1,5 +1,5 @@ using RestSharp; -using Subsurface; +using Barotrauma; using System; using System.Collections.Generic; using System.ComponentModel; @@ -23,7 +23,7 @@ namespace Launcher string version = AssemblyName.GetAssemblyName("Barotrauma.exe").Version.ToString(); private const string configPath = "config.xml"; - private Subsurface.GameSettings settings; + private Barotrauma.GameSettings settings; private string latestVersionFileList, latestVersionFolder; diff --git a/Launcher/Launcher.csproj b/Launcher/Launcher.csproj index a19de67a6..cef546adf 100644 --- a/Launcher/Launcher.csproj +++ b/Launcher/Launcher.csproj @@ -100,9 +100,9 @@ - + {008c0f83-e914-4966-9135-ea885059edd8} - Subsurface + Barotrauma diff --git a/Launcher/PackageManager.cs b/Launcher/PackageManager.cs index 420b1fdd6..42e077d8b 100644 --- a/Launcher/PackageManager.cs +++ b/Launcher/PackageManager.cs @@ -1,4 +1,4 @@ -using Subsurface; +using Barotrauma; using System; using System.Collections.Generic; using System.ComponentModel; diff --git a/Launcher2/Launcher2.csproj b/Launcher2/Launcher2.csproj index 67af45212..6624dcfad 100644 --- a/Launcher2/Launcher2.csproj +++ b/Launcher2/Launcher2.csproj @@ -62,9 +62,9 @@ - + {008c0f83-e914-4966-9135-ea885059edd8} - Subsurface + Barotrauma diff --git a/Launcher2/LauncherMain.cs b/Launcher2/LauncherMain.cs index e8002e933..cc822c818 100644 --- a/Launcher2/LauncherMain.cs +++ b/Launcher2/LauncherMain.cs @@ -1,7 +1,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; -using Subsurface; +using Barotrauma; using System.Collections.Generic; using System.Reflection; using System.Runtime.InteropServices; @@ -25,7 +25,7 @@ namespace Launcher2 string version = AssemblyName.GetAssemblyName("Barotrauma.exe").Version.ToString(); private const string configPath = "config.xml"; - private Subsurface.GameSettings settings; + private Barotrauma.GameSettings settings; private string latestVersionFileList, latestVersionFolder; diff --git a/Subsurface/Subsurface.csproj b/Subsurface/Barotrauma.csproj similarity index 98% rename from Subsurface/Subsurface.csproj rename to Subsurface/Barotrauma.csproj index 0373a9e8e..477c5b791 100644 --- a/Subsurface/Subsurface.csproj +++ b/Subsurface/Barotrauma.csproj @@ -8,7 +8,7 @@ {008C0F83-E914-4966-9135-EA885059EDD8} WinExe Properties - Subsurface + Barotrauma Barotrauma 512 false @@ -383,6 +383,9 @@ PreserveNewest Designer + + PreserveNewest + PreserveNewest Designer @@ -845,6 +848,12 @@ PreserveNewest + + PreserveNewest + + + PreserveNewest + PreserveNewest @@ -875,6 +884,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest diff --git a/Subsurface/Subsurface.csproj.user b/Subsurface/Barotrauma.csproj.user similarity index 89% rename from Subsurface/Subsurface.csproj.user rename to Subsurface/Barotrauma.csproj.user index d8060d791..1782abafa 100644 --- a/Subsurface/Subsurface.csproj.user +++ b/Subsurface/Barotrauma.csproj.user @@ -1,18 +1,18 @@ - - - - publish\ - - - - - - en-US - false - ProjectFiles - - - - - + + + + publish\ + + + + + + en-US + false + ShowAllFiles + + + + + \ No newline at end of file diff --git a/Subsurface/Content/Items/Clothes/clothes.xml b/Subsurface/Content/Items/Clothes/clothes.xml index e52fef947..a0d4c251e 100644 --- a/Subsurface/Content/Items/Clothes/clothes.xml +++ b/Subsurface/Content/Items/Clothes/clothes.xml @@ -62,7 +62,7 @@ - + @@ -78,7 +78,7 @@ - + diff --git a/Subsurface/Content/Items/Electricity/poweritems.xml b/Subsurface/Content/Items/Electricity/poweritems.xml index 7e4394ebb..7f58f6b74 100644 --- a/Subsurface/Content/Items/Electricity/poweritems.xml +++ b/Subsurface/Content/Items/Electricity/poweritems.xml @@ -41,7 +41,8 @@ - + + @@ -50,7 +51,11 @@ - + + + + + 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 Q^KaPB0#pIOeC^~80MmUZWB>pF literal 0 HcmV?d00001 diff --git a/Subsurface/Content/Items/Medical/medical.xml b/Subsurface/Content/Items/Medical/medical.xml index 852c38190..47dcea540 100644 --- a/Subsurface/Content/Items/Medical/medical.xml +++ b/Subsurface/Content/Items/Medical/medical.xml @@ -11,7 +11,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/Subsurface/Content/Items/Medical/syringe.ogg b/Subsurface/Content/Items/Medical/syringe.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d0a0cf54760009a4a79440fbd095ac4691207e4e GIT binary patch literal 31361 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 - + diff --git a/Subsurface/Content/Items/Weapons/stunbaton.ogg b/Subsurface/Content/Items/Weapons/stunbaton.ogg new file mode 100644 index 0000000000000000000000000000000000000000..0efb8d0d691940ce1c24fec4ef1aa23daabc887c GIT binary patch literal 23882 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 E0etDA>;M1& literal 0 HcmV?d00001 diff --git a/Subsurface/Content/Items/Weapons/stunbaton.png b/Subsurface/Content/Items/Weapons/stunbaton.png new file mode 100644 index 0000000000000000000000000000000000000000..2ea6994139cf09b979e9d2965fa2cb5f8100d26a GIT binary patch literal 2409 zcmV-v36}PWP)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ^?@2^KRCwC#noEovM;*q0Rn^bw>6zKt_paC8M`Am%9Y-ON0ELJM0a8FHAdcJs z3B*erIYJ~Zh!c-PB*X={p~wLO5()uA9wc@W2ggbFk@b4ln|;jg&dy_J`cYLJc5QJ$ zNfhHGGV@8TR+n0(?w>w=|Ej-A0QCDzpFUN2_~h|p<fo;^3q#rZWBHxgP5pufGcYnmTpl2fd=}=Ha8L{mRe&6l4A&-9yo@0) zCp3G+u0f{>UXSP7I{SMUUR`8#c$Bmw@g1M(iE)mc_z;a|lS1DB9tjB>=uQWd8~iw= zBPH66aD{}Z!%nT%bM`xcEzh4nADlee;V(}Z;uvDT1MLOePKSE!HHxZDZRJg(-8Olq z$(t>f>uuJX9YRl$)moH0O_CnZw}t)X?Rx7QNz(dAJ4KwnZ334yl17tetxls}!w+LF z)wUU2-o_fkl}wWukS1kgJ7Z9{`13N@9?!Rwu(pTjy)2MD^1)ZpOo;MV3E zuIr&3x0l&BQdyd^*WLvwFvj$peM1YRl!S!{B_&ezoPEPp?H@rY7e~n+>>K(4QX<6F zdk^*vm9-WjBvJ})_SV4%0yfzFF4j%nrg{GhBp`%Dh?~C~{=PdqDwd)Q8%p5(gTCF{`wZ5iutJT=}5oL7lxSlt@*V;Y2v^X~*4>DIOg_IJkMH_SNE(923 zux9_+7>&i^`%zUYi7^Ht1ZkRVS1ZwMrBdFr#*A64z~TxieIYt3X~hl?9dQwYIrLxxv360QcO4SE zv?`H8aALx8{*pl{$*D2JOUnS3lZO<~&o*hbchBWn@~L+X`|#xP=llAqcSnUHVWCJ6 z6z~HdM>$9-$+HyYI4C7ak_6Xr7(aBFG)>vsT*LDNf-po$#oFpJt#*UKp>dQ_*IKCB z7<8T^ghXpio~Ixrj^kpqMo5VTnvFWHlhRiyW3^!1T;5 z?6q2a?qr8w{R4mxbobcW+CWN)9|YuSN}lCxZLNcl zgh7$zxhNFgbftAs&@wU)?@2*U!N=TeFzeBVb1fnP2Y_?t)} zh@%Q&xPwxPXkdUa+`)4_%3+Zp2=)tkus=@_1fAr^TgN^ylC2q{;pblNR~Frw9LuzF>QB+a1DrO|A%ySq&g z#%$I$$+8s3@mXJA#c^D6ty#Xj!1T;f{2*d(eh%OF5bQ?}LV`7TjzTHP@aPz=)*f-W zfH4N6HJLSNZ9rH|nxT!sT1zH0#%PRIA1qiu>d8UVd_Fs?LNZmvaP zCJ)}dj%Jy&?^yBJ=EmCd{rv;?2n3t8b>zX;dH-hxQtWT5wbnSUkK?#()z)b=n$$Kf zlV*9>0!C{Qmn#0`)G?aPCP}V2GIIjQamlib(ZfekQj%pU!-rW~`|I$l2U6rgBt=og)XZ&6&D>6@6e9$bs{wJGpoE|}Fh;4AfQ7!kVdD4_ zzUL7Sj#4hKA%vjPKSH^@Lz*VUl@Utu4pK@={X>-EOqNbDaPJzy}#W#>rAWGwuN((6EU<-#R#S2(0rf-}|rC|H3 z<%`z^yHqM+jQ+#wmCG-P7KBW7nWg0(#POw8gNuLFW-{#j&x?jk}6o_nFd z+}x{x;i;#tj>FSW2Q19Lh7^J)&sKP2{xvL?=gyXRbM>-qH+SECj#z6M9zM+Q$Ru%T z;7f7bw+G?}08>+w``IZ4p66c6@b}_+xBv1%z8rws)+QjZR{zTA - + @@ -62,16 +62,34 @@ pickdistance="150" price="100"> - + - - - + + + + + + + + + + + + + + + + + + diff --git a/Subsurface/Content/Jobs.xml b/Subsurface/Content/Jobs.xml index a9dc5be55..7e5e6b6d0 100644 --- a/Subsurface/Content/Jobs.xml +++ b/Subsurface/Content/Jobs.xml @@ -8,8 +8,8 @@ - - + + @@ -24,7 +24,7 @@ - + @@ -35,18 +35,18 @@ - + - - - + + + - - - + + + - + diff --git a/Subsurface/Content/Map/TutorialSub.sub b/Subsurface/Content/Map/TutorialSub.sub new file mode 100644 index 0000000000000000000000000000000000000000..e251a3bcb7d79806397a29f4c3f3656154cf100c GIT binary patch literal 8429 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 Ps(<@`K@6+5yF~#2#Oq{G literal 0 HcmV?d00001 diff --git a/Subsurface/Data/ContentPackages/Vanilla 0.1.3.xml b/Subsurface/Data/ContentPackages/Vanilla 0.1.3.xml index f16534828..0f5a07d60 100644 --- a/Subsurface/Data/ContentPackages/Vanilla 0.1.3.xml +++ b/Subsurface/Data/ContentPackages/Vanilla 0.1.3.xml @@ -1,5 +1,5 @@  - + @@ -32,5 +32,5 @@ - + \ No newline at end of file diff --git a/Subsurface/Data/SavedSubs/Aegir Mark II.gz b/Subsurface/Data/SavedSubs/Aegir Mark II.sub similarity index 100% rename from Subsurface/Data/SavedSubs/Aegir Mark II.gz rename to Subsurface/Data/SavedSubs/Aegir Mark II.sub diff --git a/Subsurface/Data/SavedSubs/TutorialSub.gz b/Subsurface/Data/SavedSubs/TutorialSub.gz deleted file mode 100644 index 96f8aa1b3cf0bedfce2ca67eb83ba49b93f5e074..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9006 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 QRQ=2U1Izc4i@QYu0C60GHvj+t literal 0 HcmV?d00001 diff --git a/Subsurface/Data/SavedSubs/Vellamo.gz b/Subsurface/Data/SavedSubs/Vellamo.gz deleted file mode 100644 index c7013624d5a680c5c0e644af356c1cc983a5240e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7252 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 diff --git a/Subsurface/Data/SavedSubs/Vellamo.sub b/Subsurface/Data/SavedSubs/Vellamo.sub new file mode 100644 index 0000000000000000000000000000000000000000..d9345ee2438ee909ff280179cd5d025914502896 GIT binary patch literal 8155 zcmV<1A0*%(iwFP!000040PQ_%Z`(+c-w(L|Aozg$L{Iw7CY&sg*X+(AGZVzw3vdrC z7@1>hBTHV2ijzCsf4{Egqnjd|Z`raU%y`VP#A30kx?Wvf_55=C`8JFft7x_gZ=)Ay zU!&zRyj`EoZm;-FxVd?8_ENrm^Xk=G^71VY_$!IHPkw%bFtz=0)S9=`UH6dN%bGXoFL}QC|rHMz7Lnn6iPq}Aeg9|eJVUbm`9i!k7XEN zM>p$u@jvTT5-vZ7^DikdAuM1_YG9Nryo4L0WPN9_VcY_sC;|W^2CBG`iT+3o09o8m z5%bRVtw0s$?G>&BC9Y7~&XyDe;E_VW1xYdTNf*ZI$D5bHEC)aoPrAIt*CS-u5L!y_mSOV8I=;=I zU;{-;4MDv}lXTVrAtfNV6-GtG2rJ20mzSyI3@OM;lx*nrKZL=Qnl%@2;xRc8j(ICg z$q0PR3dCG8uN_Jalc-T^QYj*)79nPhTq^4!^De&9Bl>o~Sq)WjU`88q(nV0}VE82% z!z7l;5)gQs79b^J;Nm?n#YE!(nxKIgyQ`O*B@=*2=%4_~YMmGSzzmF&`f1UKf#`zZ|Jm$Z6^HRASyg6eu12+BwG zf;$Knt{1~WuxPD*Yy*|6djkj?_X4zn6hJ3X_}u}K98y7c@KK~h8WQV)QVz+u2?Rt6 z{I9-9<&X-+N5Il|g;Ym!Y`g}Bl%Fm&rMl{H-#CLfNM#b3*3Y2HprppNG2-o9uYVg_ zS|q77b`YUjU=&y1PIiwvFx}ON+R8K#N13>-Sy(T6}pk4-L;f7$1 z274ETUjmVawk;rF#oNJ?vC`*&g0CVUAgpx1$1Vh8oH16U7y`k>qrOr+Lm-qr>md*d zl>tuu5CDZpbSI;+OGf2Ubt~k1813U)7c#9w;NG_vvgnH}U8R0^zum|oh@XBu>vMmx zwy|Vs?ycD<@7!(@04RGrX%5UPi=Y4i@6B;v<}+flLtw%?LNI}qmBRoZ8DR9F0Hdht zMIhcC0F{0fsfzsxj)#-R@>G%K=!eb%^ zhRVQF^7@UyO0Ook13*{W_{{M-odJ}?OPqO`4YyZp9+5jSs(uRs`G*FhR{_K9JR8lt z)NILiw0q1-u|Z%0i@i10ErT#BL%X<;ql5gI4d9m~y3Ou=tDU=y3>GhiqQE(ZJon}< zUL?_cyupH&64kTfUx?~-CcBbHoM(izc@31 z6@Bs!>R$Hw zGoXKk6TfXipyJtwND*!wXN%nuOb&txzG5RsvfF33(K1m=e5D?62eAvP@}!aUKX0Su z?8Evhr~7Nr9E#UD;q~YFeY0dei?^#;audy>Ori>gKg&>h00CHUlU)f=f2tP&gvyLd z?{&ZeDn@Y#i_Qs=g0I&Eu_RSDTg@H^qz3V<7phE_axTTQdCo5d4ntm|__t64^>X-0 z8-K;qH|tyqiQLiApi2N*4PE*zA_;&VeElcu>+7Xs&6Zcc{fTT?%{6*qlY~j+mO%Zn zmKSR^^iTlFiYDF%rB4q7p=va$40 zi4$$H&B1ZPmrfNO96Be0l5W}I1b%9q;DK{Z-~;D`wO>Ih$_YI+M!+_KV@ddj&IoJ= zRXd!3eb^_)30F*o{X;hsf|Zoh4ky|YE{Den0`VmV#k{0i&|K~iPy_z6gRHyU*61KhjEd;e!rN1Dc1B~ ze|!1YkAM07!!Q5w_RZ|&>(_5DFLzW}`3Vn}vED4MSK-o~vfjHkl0w3^?vzQOZnIrJt?Z%Y8R_u60^R@Wn)WT2xA&|M4i6lDM-|LQUgL9g9unzGQv(;pr<7u#~=b$i8&P~5$GubO}oucL`0X2l{yeM_>oAX|kuaz)1x9iNF!;6BA?= zhEaCfCF~~ym1?u6DFfC4Z^lpCggs>dA3?DILDm6Od6I$Ndf*5W1H{S==|(vCR5R2= z1a=!9JVgf1|_Y>tl{3-AItUqT@=rw zl@g06YyEJ$SbbeD(?6h}6kOddV!mE&)Ga^-XueU?$7H^ZW5-t?`UpaEixb)X*mj3w zv?&o9zp}ZD0Oy8pB+!N^Sw>%@r32@wnyDC>p}u7|L}R^iNocyt$D=WQz`>MC@o>xW zlgXJr?4Xd%OydaZzOCI9z`^sfmRYQOFOtVtz+-ud%?t$SDR#=-vh5DH;rB+M^SMj>nO!<0T{A z56wRvUVaD{%j<2izf&Z3VOT)`{aErd-^dx*D{kK;W3Q5_ROru%rwr1*4x@#83Ar{}z5-Tx)AR`xwQ_Z4dJf@74qY z)>IRmKlL(6$JMya`G@c-j9siaDEeaAK;Ioe$}?Zj7s>a=^;dl9TSModrlJ8S!0!#J zvj6D>hm`!=cBQ{Kd$s3T^8z~J`S~X)Zq~ly3k2ts+mvip;gi6;v zw9$V#5^=!ROb(bEbWF;DxH1K9xH#MOD45SMjfsAU?;ama}*$;naq8ZK#Q@HLoA zw&?DD2i*Bh3XMWgR{}LQ#WAY)*4RPqI=RBwGYEiBZr%gQ67S*nZbQp)Q-um zb&FcybYzIzk#TRQ9f+tk9oIYvQNtxsJ0=_F)KELM6!s_5nUX12X_YMIo~&Oj8otxP zlg_n(-Kx6Jn7qdjPcz+^ASRDW6H2FeHfTbp5KaDiv!_Um7mAP&XXjh4V!*kQbZr z+dLp1_dBToQ^;`}eoIkIix>}NPO_uY$gLB4&!_E0;$jB}rnVh3iQP$C+*H6ln#6>O z(m}fRs^}+6;s#yD8tSDdAhD^h^8Mo`vD=U|l_d6Z9w)2 zqAq|eroRdk_2KtSXW7%-2u!x=P@V2%I6iQOS9Xra%_r|z$yg@1Z#4?U^5_XZ=|K3d zrK8c+EUf`dn{!$NuLEewRh?0Y)ISZU?~AkK1!V#JY_-0MHhSR%>?eLfnNa`LT)m*` z2PQ>j7ruW%O}@Dk+RQ>5bAmip(>P)n-aW9;D<;PR1%Y>7GxT&U^{65d5KWPelZ*2} zs4K)pekB6+Uz2(7h&Q#XY4|?y#=O8ANjVBzX7!2TDnjQqLw@(qYi6A|=R!Uf7CU{D z7=08hOf?qN)St_#7GEwt0x6MEQTfF=XDk&Stt<3J;P)3Iy+NL%OsLXx)l&rHPzJP= zc1!W=tIu?8PmUh;y}Ieiq9_+A?_2f#GJ_s;gbu&v$d68C{pvFFR6>A z#Sr!+t$J(|IWk3Qw)T zxgV<1+L7Q2RXH*5u`f`DsSqr~bR^2wb}~l_<%w4l_eF{^=zvKOwvL|!!lN~D<|u>- zl2jX9f^lka3Ck=moP52YW(&3>!hsd2A&>e~D}*2*7aRlwA~Pn@$Pi8MX69SCf+&|} z>h+fC)eB6N9ngeD%1ERaDe-$DOo-)MD|23#+}pcrP3#&~g@d5govHD9Ups0|%!yFU6f0TK9lz9?OjGYqr%-aK%uf06*{IcJ^kb}HEy|+~?E9nV5 zaeP%p`#kqjhb=Ud^uUmptJ|R-=>yPQZv7y00Hu^;lGI3paFFIn;#*?E zMU0t0eex*CJVm93r|=Ys2^1B;PLfaOp!0&ZCLYq(%D(?mlFw(#_ePb=8U zKLn9RN;WcK?l04?mfNTl_!@%^i8>zaI_3)JpG0#*;1+r_g&|}ZF_;p8+B}LK4E0I% z!cRmBk%|*E8bu|*I=6A5Gu{{Qn@Cjr2J-41$qU_&q#yPsafby17j9Q+49C6~B6fxj z#)I-o2=-8jSQO!iJt893cC+5-cr--p-8IxW=y zRK9@Z3)}Ts#$)I!)2}gvl-vLetpR&};OR}%i7^Bj9D||Rfs?xRTO|QI0TC%Uf3Ot; zLCraC%@$OUH1mpKmrzWOq72fd67V4_#kZ<8u=Yi#Un-KxaWwR;DQ~_CUD5QS2#ZCz zKB*`Uz|dHHA;B}ATxsjYG6q8{w3A8@`Sdi@dFkOQ(YL}lL2G*Oj>d3&&cA}QS=~%{ z+5?@~5~55;4qV<=BYY8f0#6@UfL!Y83XseG&V)600SqCp1n<+V?GYH7=!{YBNwypG zj_0utJN`n~v#AjM0@6=9N16SG0*h`r$_nb-pzeEedgHT4)GciQBOK)PPG;SvrDUV@ zfi$TdBw!fj$7(MAPd-IlWGTNVtSveuo=Nd`*iVpVHz0A>?;OLdz&wU?cxgV z>9(X3i$k&d*R2|$f}t##uRXW`y$cp9C|VT@d@s&ub+=8M*z}^)=Fl$AroXeUu@HNu zYVHkWiQX*n+ZW?vJrNdQk5-ycPq3WIm15P3#-i}1D8=D<%|Iaf)C^Q!PTI;s`Qp>3 zC(f0xNx`A_xRJm1*JQg`fD4cE=oc?x2~o-b>1MmWXCe zU!?6k1{6i&Jy1K{B2ZBQNPd61nrRCHDX)DGD7MnIcg~vF_3D05S6ns$VP#?S{6QjH z+7<}Fr0j0lPJpCRPooU8ePY26AoQKyfwvXHFeEJ(CqN3BN~!%6NT#R(lCb}+b(P+_ zO0R~jF6vub$#_5MY6-PYpl0QeR4cV|GfI}A(0mVjSKy>GUBO?R_R-r`=@n%Z&I9qD z&N?+o8wC~WVkS?0jsOsy1CoU6dt}yzvC=#!%4$g@4-WxBuwm+lzmQB+iWEzwz?ay^kgglaoE~pp3B3r z)wmb|l$|&`J)Bl+JzFbHRu6-%qQutoif?mbYs+!(X{R?%#a2^q4ga#vt+}qC%uJkn9!T!#6BheG*|e>KdSzX!5#&W@0h~Z<-L$XZPEATpSsULIa!P+)JGgTk z_I(kuO1KCNC9jl0JS;*wNY3LHNDEdD!%r!iX|p<#t|r~)A-#YDO#PRY-WJI-)k=%u zx-MpWQVCEjn_i%SxZClf(!gk+bWf|;72QDtYr3Zw(1xqODki4w!#StaV|9%UC!@RW zBn5QW{Xu~4=>-~wJ4M#+hEfQ1-I^xDod?qD(gPjO^abEPKo#r!bDqJ6jnqA%UR|oW z*fUtM1B9JgN(NC+(3*xU)7n44T$??RalzZ_tZPuV;|k1`i?lC6Df;FHBolJzlb2q| zfkMt~r*5@V0nH0<5eqpiG-ij_Q!T|xfTPiE$nk8bf&)4P56 zgNrzjWkIB5)d*B~Z)yr6SsFw_b!;^Pg@xK2MgDuVO7b%vru0Kfl#W`;b1t}2@4cH> z0YJ^vwI5XoF-jZa@98{aMw=~4PcrhL@P)zz#>QRhcrEa~%eiRh=P6j+n^E{s{BzrrL5 z=Qr>UIv?7YsQeU1tNBf9j`I1l9Qw#?=%D;~HV<&Iatvv18f)YNMI4~ISNcIhJsm_; zx}|QCq57NSaZLk;d!^@VM2&K5pot`EDNQbFkFs52i9_pGi2E!3*f(s`q?Rkvwsgp2 z&cWO#t~?-Dtk&Q#_pfg3&WS7gBQTwO0#5k!x*K!S9GRJSs2fbwfJzX?~1xeH3VRjT8&1}HB#o5dyxSBVQuwrLv3 z^qsO@6dTUsY97W{=^A()-oa*e0nE@j$Tm<#_FDElPJP{R9485~I9MkmcL#f7)Mp;& zo5k0~>Uws$T_kzW9(#5jR~~Zfgvd`(7?*YIFYfLAmOM@cAN$llh7KE#iw?1lX{Dv9 z`^U%3Va)}|CzUy@L`R&R`F@#1(Q@`W{Hz{ayqcBQ2)ewP^F0U&Oc@8o+@mnX&iuhw ze~{{jsvqJ}0&QWCr=wW}zv2JY-*M2wo|?CyCUva`_>FiA>T{0~;gxGrtoLA$+_T>l zj?F_POC?P1P`~{FFJQ)`s315i=^6F{F2plzDf|%o4~q5{=Z4^JZ}2Ks?hX0Ie+M9r zt*}6XY&!GB?P9|N=qCvi&vL>F_(7epr<4yt-^$;?Xz~&06KGGs;7514^_XHKq0kQk zQZzhAlOyO50ZAL^^QayO>lJ=zS2koNZ6Cwcm+URpaSwtDB9qMDW`@4?2~_=y9@ zPaYC}KW~*f`mnyrRgo1mQs_2bv)$cqFQ~Jm?P6lLi}A%{Vq%#^4vvA`ZCtZAOx`a; z1#I?u3uEAOba+|M_SZR8Y<3F5I~9Q!H-Cuk!bSXXy>1T9OFAr#%X5*<1M}=FDxCW= z%OTjgfy$Fc2>z#Nc?ByIpyiY`c`PYdO=GPCrELBxT5g-@n}6{S_~Jtm*upBMvdOIb zLQX*Cp3f&}thX@o`NmuEmH$O54dD0vd{Xut_Vxbn!mF#I!T^_^=|d_2d#o~sVb{-1 zVKhb6d0GaOENP{4URhWzfVQ2Z>R;8Onup8T<@Z?8Ew6edR{eAB9G;2DRsVET@|Qk+ zUyJ2cxVj3>Q?Yp}Ll5>;tA!n$hN-D{o@QZWsp#~fcFRY)t@-F-wbyl_Hq$}Lz3e5ehVk;`{M=SMRk#}k_%mT zR<31@jmjJxZ;eLhqx!|?Gpi?n-_WO{*Bbs1UBCS{`*~4Q4rLYLN$%t5JZoAft)9VFp#dJ&vhc*=v1^#_ zcMV&G|5(T=S^T4^>3a4xchs6-5$A^nDGV_DmQ969OYWecDX-bIw+4`zxn%B63u`e$ z>3Kya`rI58kM4hSRzMq&0T0f~W(%x+)aPcBl_<&~H`DUX{m^D*w9l<7=JuP@!=bu= zS?_yAb}AK%0XO^QSMDWWL0-6>zjK$n?Fb}XEU&k#+2u{NT;`32%wRabDY4^D*}RX} ze}~02O?62fj%NRnC=v0T`z?=(BQiLmrlS*&iKMA|Bye8bnTmf@9Ig40H1KLV^c(<= zX6hdcU_;zx@E;XPvubG5Ue%-GSgaZy1(|-D+;%K^daN+Tq26qR5 zqdCT|;-E*OW9g_5Bbha3LFRPfY{;ZO?DL!Q#;d1s1kU|5#Hy!pNXZO0pX(8s?*zq) zmGd2b`>~$#yU?s@BAil5-zD8R)35S6jIY<}jnAK5Za?3Kv7*wS{vQy$t}Nw00RZ)K Bxt{<4 literal 0 HcmV?d00001 diff --git a/Subsurface/Source/Camera.cs b/Subsurface/Source/Camera.cs index 71c5a45a4..a037506bf 100644 --- a/Subsurface/Source/Camera.cs +++ b/Subsurface/Source/Camera.cs @@ -2,7 +2,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Input; -namespace Subsurface +namespace Barotrauma { public class Camera { diff --git a/Subsurface/Source/Characters/AI/AIController.cs b/Subsurface/Source/Characters/AI/AIController.cs index 6694614d4..e3fc2e544 100644 --- a/Subsurface/Source/Characters/AI/AIController.cs +++ b/Subsurface/Source/Characters/AI/AIController.cs @@ -2,7 +2,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -namespace Subsurface +namespace Barotrauma { class AIController : ISteerable { diff --git a/Subsurface/Source/Characters/AI/AITarget.cs b/Subsurface/Source/Characters/AI/AITarget.cs index 3a0670f2a..46e006afa 100644 --- a/Subsurface/Source/Characters/AI/AITarget.cs +++ b/Subsurface/Source/Characters/AI/AITarget.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using Microsoft.Xna.Framework; -namespace Subsurface +namespace Barotrauma { class AITarget { diff --git a/Subsurface/Source/Characters/AI/EnemyAIController.cs b/Subsurface/Source/Characters/AI/EnemyAIController.cs index ce17b51d2..cdf6666bc 100644 --- a/Subsurface/Source/Characters/AI/EnemyAIController.cs +++ b/Subsurface/Source/Characters/AI/EnemyAIController.cs @@ -8,7 +8,7 @@ using Microsoft.Xna.Framework; using FarseerPhysics.Dynamics; using Microsoft.Xna.Framework.Graphics; -namespace Subsurface +namespace Barotrauma { class EnemyAIController : AIController diff --git a/Subsurface/Source/Characters/AI/ISteerable.cs b/Subsurface/Source/Characters/AI/ISteerable.cs index 3a4ec5379..efafca9d9 100644 --- a/Subsurface/Source/Characters/AI/ISteerable.cs +++ b/Subsurface/Source/Characters/AI/ISteerable.cs @@ -1,6 +1,6 @@ using Microsoft.Xna.Framework; -namespace Subsurface +namespace Barotrauma { interface ISteerable { diff --git a/Subsurface/Source/Characters/AI/PathFinder.cs b/Subsurface/Source/Characters/AI/PathFinder.cs index 0e4c8dfd4..3172407ab 100644 --- a/Subsurface/Source/Characters/AI/PathFinder.cs +++ b/Subsurface/Source/Characters/AI/PathFinder.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; -namespace Subsurface +namespace Barotrauma { class PathNode { diff --git a/Subsurface/Source/Characters/AI/SteeringManager.cs b/Subsurface/Source/Characters/AI/SteeringManager.cs index 7ac461f44..9352195fa 100644 --- a/Subsurface/Source/Characters/AI/SteeringManager.cs +++ b/Subsurface/Source/Characters/AI/SteeringManager.cs @@ -2,7 +2,7 @@ using Microsoft.Xna.Framework; using FarseerPhysics.Dynamics; -namespace Subsurface +namespace Barotrauma { class SteeringManager { diff --git a/Subsurface/Source/Characters/AI/SteeringPath.cs b/Subsurface/Source/Characters/AI/SteeringPath.cs index 125fff3e9..bfe4b0b35 100644 --- a/Subsurface/Source/Characters/AI/SteeringPath.cs +++ b/Subsurface/Source/Characters/AI/SteeringPath.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using Microsoft.Xna.Framework; -namespace Subsurface +namespace Barotrauma { class SteeringPath { diff --git a/Subsurface/Source/Characters/AICharacter.cs b/Subsurface/Source/Characters/AICharacter.cs index 874120463..10b5fd345 100644 --- a/Subsurface/Source/Characters/AICharacter.cs +++ b/Subsurface/Source/Characters/AICharacter.cs @@ -1,12 +1,12 @@ using Lidgren.Network; using Microsoft.Xna.Framework; -using Subsurface.Networking; +using Barotrauma.Networking; using System; using System.Collections.Generic; using System.Linq; using System.Text; -namespace Subsurface +namespace Barotrauma { class AICharacter : Character { @@ -14,6 +14,11 @@ namespace Subsurface private AIController aiController; + public override AIController AIController + { + get { return aiController; } + } + public AICharacter(string file) : this(file, Vector2.Zero, null) { } @@ -37,7 +42,10 @@ namespace Subsurface public AICharacter(string file, Vector2 position, CharacterInfo characterInfo = null, bool isNetworkPlayer = false) : base(file, position, characterInfo, isNetworkPlayer) { - aiController = new EnemyAIController(this, file); + aiController = new EnemyAIController(this, file); + + + if (GameMain.Client != null && GameMain.Server == null) Enabled = false; } public override void Update(Camera cam, float deltaTime) diff --git a/Subsurface/Source/Characters/AnimController.cs b/Subsurface/Source/Characters/AnimController.cs index ef64d4aab..326321440 100644 --- a/Subsurface/Source/Characters/AnimController.cs +++ b/Subsurface/Source/Characters/AnimController.cs @@ -2,7 +2,7 @@ using FarseerPhysics; using Microsoft.Xna.Framework; -namespace Subsurface +namespace Barotrauma { class AnimController : Ragdoll { diff --git a/Subsurface/Source/Characters/Attack.cs b/Subsurface/Source/Characters/Attack.cs index bdc49ba78..68e217394 100644 --- a/Subsurface/Source/Characters/Attack.cs +++ b/Subsurface/Source/Characters/Attack.cs @@ -1,10 +1,10 @@ using Microsoft.Xna.Framework; -using Subsurface.Particles; +using Barotrauma.Particles; using System; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { public enum DamageType { None, Blunt, Slash } diff --git a/Subsurface/Source/Characters/BackgroundSprite/BackgroundSprite.cs b/Subsurface/Source/Characters/BackgroundSprite/BackgroundSprite.cs index 9a80cc56e..00859d6a7 100644 --- a/Subsurface/Source/Characters/BackgroundSprite/BackgroundSprite.cs +++ b/Subsurface/Source/Characters/BackgroundSprite/BackgroundSprite.cs @@ -6,7 +6,7 @@ using System.Linq; using System.Text; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { class BackgroundSprite : ISteerable diff --git a/Subsurface/Source/Characters/BackgroundSprite/BackgroundSpriteManager.cs b/Subsurface/Source/Characters/BackgroundSprite/BackgroundSpriteManager.cs index ea9e77c32..0f6dbe27b 100644 --- a/Subsurface/Source/Characters/BackgroundSprite/BackgroundSpriteManager.cs +++ b/Subsurface/Source/Characters/BackgroundSprite/BackgroundSpriteManager.cs @@ -6,7 +6,7 @@ using System.Linq; using System.Text; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { class BackgroundSpriteManager { diff --git a/Subsurface/Source/Characters/BackgroundSprite/BackgroundSpritePrefab.cs b/Subsurface/Source/Characters/BackgroundSprite/BackgroundSpritePrefab.cs index 1326ce05c..de4b56c92 100644 --- a/Subsurface/Source/Characters/BackgroundSprite/BackgroundSpritePrefab.cs +++ b/Subsurface/Source/Characters/BackgroundSprite/BackgroundSpritePrefab.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { class BackgroundSpritePrefab { diff --git a/Subsurface/Source/Characters/Character.cs b/Subsurface/Source/Characters/Character.cs index 2d868a6f8..1115ae2ad 100644 --- a/Subsurface/Source/Characters/Character.cs +++ b/Subsurface/Source/Characters/Character.cs @@ -5,15 +5,15 @@ using Lidgren.Network; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; -using Subsurface.Networking; -using Subsurface.Particles; +using Barotrauma.Networking; +using Barotrauma.Particles; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { class Character : Entity, IDamageable, IPropertyObject @@ -33,6 +33,12 @@ namespace Subsurface set { controlled = value; } } + public bool Enabled + { + get; + set; + } + public readonly bool IsNetworkPlayer; private CharacterInventory inventory; @@ -411,6 +417,8 @@ namespace Subsurface AnimController.FindHull(); CharacterList.Add(this); + + Enabled = true; } private static string humanConfigFile; @@ -498,7 +506,7 @@ namespace Subsurface public void Control(float deltaTime, Camera cam) { - if (isDead) return; + if (isDead || AnimController.StunTimer>0.0f) return; Vector2 targetMovement = Vector2.Zero; if (GetInputState(InputType.Left)) targetMovement.X -= 1.0f; @@ -741,17 +749,17 @@ namespace Subsurface { foreach (Character c in CharacterList) { - if (c.isDead) continue; + if (c.isDead || !c.Enabled) continue; c.AnimController.UpdateAnim(deltaTime); } } public static void UpdateAll(Camera cam, float deltaTime) { - if (NewCharacterQueue.Count>0) - { - new Character(NewCharacterQueue.Dequeue(), Vector2.Zero); - } + //if (NewCharacterQueue.Count>0) + //{ + // new Character(NewCharacterQueue.Dequeue(), Vector2.Zero); + //} foreach (Character c in CharacterList) { @@ -761,6 +769,8 @@ namespace Subsurface public virtual void Update(Camera cam, float deltaTime) { + if (!Enabled) return; + AnimController.SimplePhysicsEnabled = (Character.controlled!=this && Vector2.Distance(cam.WorldViewCenter, Position)>5000.0f); if (isDead) return; @@ -828,6 +838,8 @@ namespace Subsurface public void Draw(SpriteBatch spriteBatch) { + if (!Enabled) return; + AnimController.Draw(spriteBatch); //GUI.DrawLine(spriteBatch, ConvertUnits.ToDisplayUnits(animController.limbs[0].SimPosition.X, animController.limbs[0].SimPosition.Y), @@ -842,6 +854,8 @@ namespace Subsurface public virtual void DrawFront(SpriteBatch spriteBatch) { + if (!Enabled) return; + Vector2 pos = ConvertUnits.ToDisplayUnits(AnimController.Limbs[0].SimPosition); pos.Y = -pos.Y; @@ -869,9 +883,6 @@ namespace Subsurface GUI.DrawRectangle(spriteBatch, new Rectangle((int)healthBarPos.X, (int)healthBarPos.Y, (int)(100.0f * (health / maxHealth)), 15), Color.Red, true); } - - - public void PlaySound(AIController.AiState state) { if (sounds == null || !sounds.Any()) return; @@ -931,6 +942,7 @@ namespace Subsurface { if (stunTimer <= 0.0f) return; + AnimController.ResetPullJoints(); AnimController.StunTimer = Math.Max(AnimController.StunTimer, stunTimer); selectedConstruction = null; @@ -1138,6 +1150,8 @@ namespace Subsurface public override void ReadNetworkData(NetworkEventType type, NetIncomingMessage message) { + Enabled = true; + if (type == NetworkEventType.PickItem) { System.Diagnostics.Debug.WriteLine("**************** PickItem networkevent received"); diff --git a/Subsurface/Source/Characters/CharacterHUD.cs b/Subsurface/Source/Characters/CharacterHUD.cs index 576641154..b718da8cb 100644 --- a/Subsurface/Source/Characters/CharacterHUD.cs +++ b/Subsurface/Source/Characters/CharacterHUD.cs @@ -5,7 +5,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; -namespace Subsurface +namespace Barotrauma { class CharacterHUD { diff --git a/Subsurface/Source/Characters/CharacterInfo.cs b/Subsurface/Source/Characters/CharacterInfo.cs index f0ecaafad..e44b25d2a 100644 --- a/Subsurface/Source/Characters/CharacterInfo.cs +++ b/Subsurface/Source/Characters/CharacterInfo.cs @@ -3,7 +3,7 @@ using System; using System.Collections.Generic; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { public enum Gender { None, Male, Female }; diff --git a/Subsurface/Source/Characters/DelayedEffect.cs b/Subsurface/Source/Characters/DelayedEffect.cs index cec94dc09..b0935fd78 100644 --- a/Subsurface/Source/Characters/DelayedEffect.cs +++ b/Subsurface/Source/Characters/DelayedEffect.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { class DelayedEffect : StatusEffect { diff --git a/Subsurface/Source/Characters/FishAnimController.cs b/Subsurface/Source/Characters/FishAnimController.cs index a0bfc27b8..e67fb4c0b 100644 --- a/Subsurface/Source/Characters/FishAnimController.cs +++ b/Subsurface/Source/Characters/FishAnimController.cs @@ -6,7 +6,7 @@ using FarseerPhysics.Dynamics.Joints; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Input; -namespace Subsurface +namespace Barotrauma { class FishAnimController : AnimController { diff --git a/Subsurface/Source/Characters/HumanoidAnimController.cs b/Subsurface/Source/Characters/HumanoidAnimController.cs index 0b633fe01..23b3e9c09 100644 --- a/Subsurface/Source/Characters/HumanoidAnimController.cs +++ b/Subsurface/Source/Characters/HumanoidAnimController.cs @@ -3,9 +3,9 @@ using System.Linq; using System.Xml.Linq; using FarseerPhysics; using Microsoft.Xna.Framework; -using Subsurface.Items.Components; +using Barotrauma.Items.Components; -namespace Subsurface +namespace Barotrauma { class HumanoidAnimController : AnimController { @@ -120,23 +120,24 @@ namespace Subsurface { onFloorTimer -= deltaTime; } - - - IgnorePlatforms = (TargetMovement.Y < 0.0f); - + //stun (= disable the animations) if the ragdoll receives a large enough impact if (strongestImpact > 0.0f) { character.StartStun(MathHelper.Min(strongestImpact * 0.5f, 5.0f)); } strongestImpact = 0.0f; - + if (stunTimer > 0) { stunTimer -= deltaTime; return; } + IgnorePlatforms = (TargetMovement.Y < 0.0f); + + + if (Anim != Animation.UsingConstruction) ResetPullJoints(); if (TargetDir != dir) Flip(); @@ -228,30 +229,35 @@ namespace Subsurface this.stepSize.Y * walkPosY * runningModifier * runningModifier); float footMid = waist.SimPosition.X;// (leftFoot.SimPosition.X + rightFoot.SimPosition.X) / 2.0f; - - int limbsInWater = 0; - foreach (Limb limb in Limbs) + + if (Math.Abs(TargetMovement.X)>1.0f) { - if (limb.inWater) limbsInWater++; - } + int limbsInWater = 0; + foreach (Limb limb in Limbs) + { + if (limb.inWater) limbsInWater++; + } - TargetMovement *= (1.0f - 0.5f * ((float)limbsInWater / (float)Limbs.Count())); + float slowdownFactor = (float)limbsInWater / (float)Limbs.Count(); + + TargetMovement = Vector2.Normalize(TargetMovement) * Math.Max(TargetMovement.Length() - slowdownFactor, 1.0f); + } movement = MathUtils.SmoothStep(movement, TargetMovement, movementLerp); movement.Y = 0.0f; + bool legsUp = false; for (int i = 0; i < 2; i++) { Limb leg = GetLimb((i == 0) ? LimbType.LeftThigh : LimbType.RightThigh);// : leftLeg; if (leg.SimPosition.Y < torso.SimPosition.Y) continue; - leg.body.ApplyTorque(-Dir * leg.Mass * 10.0f); + leg.body.ApplyTorque(Dir * leg.Mass * 10.0f); + legsUp = true; } - //place the anchors of the head and the torso to make the ragdoll stand - - if (LowestLimb == null) return; + if (legsUp || LowestLimb == null) return; if (!onGround || (LowestLimb.SimPosition.Y - floorY > 0.5f && stairs == null)) return; diff --git a/Subsurface/Source/Characters/Jobs/Job.cs b/Subsurface/Source/Characters/Jobs/Job.cs index 616db3808..14b238896 100644 --- a/Subsurface/Source/Characters/Jobs/Job.cs +++ b/Subsurface/Source/Characters/Jobs/Job.cs @@ -5,7 +5,7 @@ using System.Linq; using System.Text; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { class Job { diff --git a/Subsurface/Source/Characters/Jobs/JobPrefab.cs b/Subsurface/Source/Characters/Jobs/JobPrefab.cs index 004bdb8d3..01a4c8600 100644 --- a/Subsurface/Source/Characters/Jobs/JobPrefab.cs +++ b/Subsurface/Source/Characters/Jobs/JobPrefab.cs @@ -4,7 +4,7 @@ using System.Globalization; using System.Xml.Linq; using System.Linq; -namespace Subsurface +namespace Barotrauma { class JobPrefab { @@ -20,13 +20,15 @@ namespace Subsurface //(i.e. if one captain is required, one captain is chosen even if all the players have set captain to lowest preference) private int minNumber; + private float commonness; + //if set to true, a client that has chosen this as their preferred job will get it no matter what public bool AllowAlways { get; private set; } - + //names of the items the character spawns with public List ItemNames; public List EquipItem; @@ -53,6 +55,11 @@ namespace Subsurface get { return minNumber; } } + public float Commonness + { + get { return commonness; } + } + public JobPrefab(XElement element) { name = ToolBox.GetAttributeString(element, "name", "name not found"); @@ -62,6 +69,8 @@ namespace Subsurface minNumber = ToolBox.GetAttributeInt(element, "minnumber", 0); maxNumber = ToolBox.GetAttributeInt(element, "maxnumber", 10); + commonness = ToolBox.GetAttributeInt(element, "commonness", 10); + AllowAlways = ToolBox.GetAttributeBool(element, "allowalways", false); ItemNames = new List(); diff --git a/Subsurface/Source/Characters/Jobs/Skill.cs b/Subsurface/Source/Characters/Jobs/Skill.cs index 5ae509916..c0dd3b117 100644 --- a/Subsurface/Source/Characters/Jobs/Skill.cs +++ b/Subsurface/Source/Characters/Jobs/Skill.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; -namespace Subsurface +namespace Barotrauma { class Skill { diff --git a/Subsurface/Source/Characters/Jobs/SkillPrefab.cs b/Subsurface/Source/Characters/Jobs/SkillPrefab.cs index 82737a87f..b89ba9583 100644 --- a/Subsurface/Source/Characters/Jobs/SkillPrefab.cs +++ b/Subsurface/Source/Characters/Jobs/SkillPrefab.cs @@ -5,7 +5,7 @@ using System.Linq; using System.Text; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { class SkillPrefab { diff --git a/Subsurface/Source/Characters/Limb.cs b/Subsurface/Source/Characters/Limb.cs index be0580bb6..4ba5871d4 100644 --- a/Subsurface/Source/Characters/Limb.cs +++ b/Subsurface/Source/Characters/Limb.cs @@ -5,9 +5,9 @@ using FarseerPhysics.Dynamics; using FarseerPhysics.Dynamics.Joints; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using Subsurface.Items.Components; +using Barotrauma.Items.Components; -namespace Subsurface +namespace Barotrauma { public enum LimbType { diff --git a/Subsurface/Source/Characters/Ragdoll.cs b/Subsurface/Source/Characters/Ragdoll.cs index b2ee4c5ed..4379206bd 100644 --- a/Subsurface/Source/Characters/Ragdoll.cs +++ b/Subsurface/Source/Characters/Ragdoll.cs @@ -8,9 +8,9 @@ using FarseerPhysics.Dynamics.Contacts; using FarseerPhysics.Dynamics.Joints; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using Subsurface.Networking; +using Barotrauma.Networking; -namespace Subsurface +namespace Barotrauma { class Ragdoll { @@ -491,8 +491,7 @@ namespace Subsurface { for (int i = 0; i < Limbs.Count(); i++) { - if (Limbs[i] == null) continue; - if (Limbs[i].pullJoint == null) continue; + if (Limbs[i] == null || Limbs[i].pullJoint == null) continue; Limbs[i].pullJoint.Enabled = false; } } @@ -526,7 +525,7 @@ namespace Subsurface Category collisionCategory = (ignorePlatforms) ? wall | Physics.CollisionProjectile | Physics.CollisionStairs - : wall | Physics.CollisionPlatform | Physics.CollisionStairs; + : wall | Physics.CollisionProjectile | Physics.CollisionPlatform | Physics.CollisionStairs; foreach (Limb limb in Limbs) { @@ -538,6 +537,8 @@ namespace Subsurface public void Update(Camera cam, float deltaTime) { + if (!character.Enabled) return; + UpdateNetplayerPosition(); Vector2 flowForce = Vector2.Zero; @@ -605,7 +606,7 @@ namespace Subsurface { //create a splash particle - Subsurface.Particles.Particle splash = GameMain.ParticleManager.CreateParticle("watersplash", + Barotrauma.Particles.Particle splash = GameMain.ParticleManager.CreateParticle("watersplash", new Vector2(limb.Position.X, limbHull.Surface), new Vector2(0.0f, Math.Abs(-limb.LinearVelocity.Y * 10.0f)), 0.0f); diff --git a/Subsurface/Source/Characters/StatusEffect.cs b/Subsurface/Source/Characters/StatusEffect.cs index 60fd2f13d..5efa952b9 100644 --- a/Subsurface/Source/Characters/StatusEffect.cs +++ b/Subsurface/Source/Characters/StatusEffect.cs @@ -5,7 +5,7 @@ using System.Collections.Generic; using System.Linq; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { class StatusEffect { @@ -182,7 +182,8 @@ namespace Subsurface ObjectProperty property; foreach (IPropertyObject target in targets) { - if (targetNames!=null && !targetNames.Contains(target.Name)) continue; + //if (targetNames!=null && !targetNames.Contains(target.Name)) continue; + if (!target.ObjectProperties.TryGetValue(propertyNames[i], out property)) continue; ApplyToProperty(property, propertyEffects[i], deltaTime); diff --git a/Subsurface/Source/ContentPackage.cs b/Subsurface/Source/ContentPackage.cs index aaf32d591..61283bedd 100644 --- a/Subsurface/Source/ContentPackage.cs +++ b/Subsurface/Source/ContentPackage.cs @@ -6,7 +6,7 @@ using System.Security.Cryptography; using System.Text; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { public enum ContentType { diff --git a/Subsurface/Source/CoroutineManager.cs b/Subsurface/Source/CoroutineManager.cs index d1ffb1f09..95b7a933b 100644 --- a/Subsurface/Source/CoroutineManager.cs +++ b/Subsurface/Source/CoroutineManager.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; -namespace Subsurface +namespace Barotrauma { enum CoroutineStatus { diff --git a/Subsurface/Source/DebugConsole.cs b/Subsurface/Source/DebugConsole.cs index 5677314ff..134c4d8d9 100644 --- a/Subsurface/Source/DebugConsole.cs +++ b/Subsurface/Source/DebugConsole.cs @@ -4,9 +4,9 @@ using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; -using Subsurface.Networking; +using Barotrauma.Networking; -namespace Subsurface +namespace Barotrauma { struct ColoredText { @@ -289,7 +289,7 @@ namespace Subsurface DebugConsole.ThrowError("Illegal symbols in filename (../)"); return; } - Submarine.SaveCurrent(fileName +".gz"); + Submarine.SaveCurrent(fileName +".sub"); NewMessage("map saved", Color.Green); break; case "loadmap": diff --git a/Subsurface/Source/Events/MonsterEvent.cs b/Subsurface/Source/Events/MonsterEvent.cs index feb097ed9..609bdc736 100644 --- a/Subsurface/Source/Events/MonsterEvent.cs +++ b/Subsurface/Source/Events/MonsterEvent.cs @@ -2,7 +2,7 @@ using Microsoft.Xna.Framework; using System; -namespace Subsurface +namespace Barotrauma { class MonsterEvent : ScriptedEvent { diff --git a/Subsurface/Source/Events/PropertyTask.cs b/Subsurface/Source/Events/PropertyTask.cs index 33220132c..0f30ced22 100644 --- a/Subsurface/Source/Events/PropertyTask.cs +++ b/Subsurface/Source/Events/PropertyTask.cs @@ -1,4 +1,4 @@ -namespace Subsurface +namespace Barotrauma { class PropertyTask : Task { diff --git a/Subsurface/Source/Events/Quests/MonsterQuest.cs b/Subsurface/Source/Events/Quests/MonsterQuest.cs index 686ae94ac..7a62dd2d4 100644 --- a/Subsurface/Source/Events/Quests/MonsterQuest.cs +++ b/Subsurface/Source/Events/Quests/MonsterQuest.cs @@ -6,12 +6,10 @@ using System.Linq; using System.Text; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { class MonsterQuest : Quest { - //string monsterName; - string monsterFile; Character monster; @@ -33,7 +31,7 @@ namespace Subsurface monster = new AICharacter(monsterFile, ConvertUnits.ToSimUnits(position+level.Position)); } - + public override void End() { if (!monster.IsDead) diff --git a/Subsurface/Source/Events/Quests/Quest.cs b/Subsurface/Source/Events/Quests/Quest.cs index 2f321fe1e..ad261e06b 100644 --- a/Subsurface/Source/Events/Quests/Quest.cs +++ b/Subsurface/Source/Events/Quests/Quest.cs @@ -6,7 +6,7 @@ using System.Reflection; using System.Text; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { class Quest { @@ -104,7 +104,7 @@ namespace Subsurface try { - t = Type.GetType("Subsurface." + type, true, true); + t = Type.GetType("Barotrauma." + type, true, true); if (t == null) { DebugConsole.ThrowError("Error in " + configFile + "! Could not find a quest class of the type ''" + type + "''."); diff --git a/Subsurface/Source/Events/Quests/SalvageQuest.cs b/Subsurface/Source/Events/Quests/SalvageQuest.cs index 7dfa65f52..440fcc643 100644 --- a/Subsurface/Source/Events/Quests/SalvageQuest.cs +++ b/Subsurface/Source/Events/Quests/SalvageQuest.cs @@ -6,7 +6,7 @@ using System.Linq; using System.Text; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { class SalvageQuest : Quest { diff --git a/Subsurface/Source/Events/RepairTask.cs b/Subsurface/Source/Events/RepairTask.cs index 9e132bfae..ef8472de6 100644 --- a/Subsurface/Source/Events/RepairTask.cs +++ b/Subsurface/Source/Events/RepairTask.cs @@ -1,4 +1,4 @@ -namespace Subsurface +namespace Barotrauma { class RepairTask : Task { diff --git a/Subsurface/Source/Events/ScriptedEvent.cs b/Subsurface/Source/Events/ScriptedEvent.cs index a216ce276..73a6e75d5 100644 --- a/Subsurface/Source/Events/ScriptedEvent.cs +++ b/Subsurface/Source/Events/ScriptedEvent.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Reflection; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { class ScriptedEvent { @@ -137,7 +137,7 @@ namespace Subsurface try { - t = Type.GetType("Subsurface." + type, true, true); + t = Type.GetType("Barotrauma." + type, true, true); if (t == null) { DebugConsole.ThrowError("Error in " + configFile + "! Could not find an event class of the type ''" + type + "''."); diff --git a/Subsurface/Source/Events/ScriptedTask.cs b/Subsurface/Source/Events/ScriptedTask.cs index 2fb257261..1f98d53c5 100644 --- a/Subsurface/Source/Events/ScriptedTask.cs +++ b/Subsurface/Source/Events/ScriptedTask.cs @@ -1,4 +1,4 @@ -namespace Subsurface +namespace Barotrauma { class ScriptedTask : Task { diff --git a/Subsurface/Source/Events/Task.cs b/Subsurface/Source/Events/Task.cs index 283eff24c..acea30f10 100644 --- a/Subsurface/Source/Events/Task.cs +++ b/Subsurface/Source/Events/Task.cs @@ -1,5 +1,5 @@  -namespace Subsurface +namespace Barotrauma { class Task { diff --git a/Subsurface/Source/Events/TaskManager.cs b/Subsurface/Source/Events/TaskManager.cs index 6600683d1..2f37db9fe 100644 --- a/Subsurface/Source/Events/TaskManager.cs +++ b/Subsurface/Source/Events/TaskManager.cs @@ -3,7 +3,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using System; -namespace Subsurface +namespace Barotrauma { class TaskManager { diff --git a/Subsurface/Source/FrameCounter.cs b/Subsurface/Source/FrameCounter.cs index 56440e095..11b400a5b 100644 --- a/Subsurface/Source/FrameCounter.cs +++ b/Subsurface/Source/FrameCounter.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.Linq; -namespace Subsurface +namespace Barotrauma { public class FrameCounter { diff --git a/Subsurface/Source/GUI/ComponentStyle.cs b/Subsurface/Source/GUI/ComponentStyle.cs index 443e79558..ed3c94f29 100644 --- a/Subsurface/Source/GUI/ComponentStyle.cs +++ b/Subsurface/Source/GUI/ComponentStyle.cs @@ -5,7 +5,7 @@ using System.Linq; using System.Text; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { public class GUIComponentStyle { diff --git a/Subsurface/Source/GUI/GUI.cs b/Subsurface/Source/GUI/GUI.cs index 0ef39592d..6f0154088 100644 --- a/Subsurface/Source/GUI/GUI.cs +++ b/Subsurface/Source/GUI/GUI.cs @@ -5,7 +5,7 @@ using Microsoft.Xna.Framework.Input; using System; using System.Collections.Generic; -namespace Subsurface +namespace Barotrauma { [Flags] public enum Alignment diff --git a/Subsurface/Source/GUI/GUIButton.cs b/Subsurface/Source/GUI/GUIButton.cs index 7cff05c70..bb22f51fe 100644 --- a/Subsurface/Source/GUI/GUIButton.cs +++ b/Subsurface/Source/GUI/GUIButton.cs @@ -2,7 +2,7 @@ using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; -namespace Subsurface +namespace Barotrauma { public class GUIButton : GUIComponent { diff --git a/Subsurface/Source/GUI/GUIComponent.cs b/Subsurface/Source/GUI/GUIComponent.cs index eb6e5d1bb..0e749962f 100644 --- a/Subsurface/Source/GUI/GUIComponent.cs +++ b/Subsurface/Source/GUI/GUIComponent.cs @@ -5,7 +5,7 @@ using EventInput; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -namespace Subsurface +namespace Barotrauma { public abstract class GUIComponent { diff --git a/Subsurface/Source/GUI/GUIDropDown.cs b/Subsurface/Source/GUI/GUIDropDown.cs index 89aa7091d..73c1bcd02 100644 --- a/Subsurface/Source/GUI/GUIDropDown.cs +++ b/Subsurface/Source/GUI/GUIDropDown.cs @@ -5,7 +5,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; -namespace Subsurface +namespace Barotrauma { public class GUIDropDown : GUIComponent { diff --git a/Subsurface/Source/GUI/GUIFrame.cs b/Subsurface/Source/GUI/GUIFrame.cs index e7b4b575d..73fbb72dd 100644 --- a/Subsurface/Source/GUI/GUIFrame.cs +++ b/Subsurface/Source/GUI/GUIFrame.cs @@ -1,7 +1,7 @@ using Microsoft.Xna.Framework; using System; -namespace Subsurface +namespace Barotrauma { public class GUIFrame : GUIComponent { diff --git a/Subsurface/Source/GUI/GUIImage.cs b/Subsurface/Source/GUI/GUIImage.cs index 379595291..abddcb103 100644 --- a/Subsurface/Source/GUI/GUIImage.cs +++ b/Subsurface/Source/GUI/GUIImage.cs @@ -2,7 +2,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -namespace Subsurface +namespace Barotrauma { public class GUIImage : GUIComponent { diff --git a/Subsurface/Source/GUI/GUIListBox.cs b/Subsurface/Source/GUI/GUIListBox.cs index 3182c8f86..ea5cb8e11 100644 --- a/Subsurface/Source/GUI/GUIListBox.cs +++ b/Subsurface/Source/GUI/GUIListBox.cs @@ -3,7 +3,7 @@ using System.Diagnostics; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -namespace Subsurface +namespace Barotrauma { public class GUIListBox : GUIComponent { diff --git a/Subsurface/Source/GUI/GUIMessage.cs b/Subsurface/Source/GUI/GUIMessage.cs index 6d3274988..a07fa6cb2 100644 --- a/Subsurface/Source/GUI/GUIMessage.cs +++ b/Subsurface/Source/GUI/GUIMessage.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; -namespace Subsurface +namespace Barotrauma { class GUIMessage { diff --git a/Subsurface/Source/GUI/GUIMessageBox.cs b/Subsurface/Source/GUI/GUIMessageBox.cs index c7143dff7..6768ca6be 100644 --- a/Subsurface/Source/GUI/GUIMessageBox.cs +++ b/Subsurface/Source/GUI/GUIMessageBox.cs @@ -1,7 +1,7 @@ using Microsoft.Xna.Framework; using System.Collections.Generic; -namespace Subsurface +namespace Barotrauma { public class GUIMessageBox : GUIFrame { diff --git a/Subsurface/Source/GUI/GUIProgressBar.cs b/Subsurface/Source/GUI/GUIProgressBar.cs index 13b866a7b..53e33d6e4 100644 --- a/Subsurface/Source/GUI/GUIProgressBar.cs +++ b/Subsurface/Source/GUI/GUIProgressBar.cs @@ -1,7 +1,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -namespace Subsurface +namespace Barotrauma { public class GUIProgressBar : GUIComponent { diff --git a/Subsurface/Source/GUI/GUIScrollBar.cs b/Subsurface/Source/GUI/GUIScrollBar.cs index ae857dee6..ec750e54c 100644 --- a/Subsurface/Source/GUI/GUIScrollBar.cs +++ b/Subsurface/Source/GUI/GUIScrollBar.cs @@ -2,7 +2,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -namespace Subsurface +namespace Barotrauma { public class GUIScrollBar : GUIComponent { diff --git a/Subsurface/Source/GUI/GUIStyle.cs b/Subsurface/Source/GUI/GUIStyle.cs index 75e3f2008..f66c9c22b 100644 --- a/Subsurface/Source/GUI/GUIStyle.cs +++ b/Subsurface/Source/GUI/GUIStyle.cs @@ -3,7 +3,7 @@ using Microsoft.Xna.Framework; using System; using System.Collections.Generic; -namespace Subsurface +namespace Barotrauma { public class GUIStyle { diff --git a/Subsurface/Source/GUI/GUITextBlock.cs b/Subsurface/Source/GUI/GUITextBlock.cs index 7ea96e934..3bb302dcc 100644 --- a/Subsurface/Source/GUI/GUITextBlock.cs +++ b/Subsurface/Source/GUI/GUITextBlock.cs @@ -1,7 +1,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -namespace Subsurface +namespace Barotrauma { public class GUITextBlock : GUIComponent { diff --git a/Subsurface/Source/GUI/GUITextBox.cs b/Subsurface/Source/GUI/GUITextBox.cs index d1c1f2b25..9187a8f37 100644 --- a/Subsurface/Source/GUI/GUITextBox.cs +++ b/Subsurface/Source/GUI/GUITextBox.cs @@ -4,7 +4,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; -namespace Subsurface +namespace Barotrauma { delegate void TextBoxEvent(GUITextBox sender); diff --git a/Subsurface/Source/GUI/GUITickBox.cs b/Subsurface/Source/GUI/GUITickBox.cs index 6caa9a870..f63ffcf10 100644 --- a/Subsurface/Source/GUI/GUITickBox.cs +++ b/Subsurface/Source/GUI/GUITickBox.cs @@ -2,7 +2,7 @@ using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; -namespace Subsurface +namespace Barotrauma { public class GUITickBox : GUIComponent { diff --git a/Subsurface/Source/GUI/TitleScreen.cs b/Subsurface/Source/GUI/TitleScreen.cs index 1086fc4b3..a79b05e78 100644 --- a/Subsurface/Source/GUI/TitleScreen.cs +++ b/Subsurface/Source/GUI/TitleScreen.cs @@ -7,7 +7,7 @@ using System.Diagnostics; using System.Linq; using System.Text; -namespace Subsurface +namespace Barotrauma { class LoadingScreen { diff --git a/Subsurface/Source/GameMain.cs b/Subsurface/Source/GameMain.cs index b2cad1462..f54ffe3a8 100644 --- a/Subsurface/Source/GameMain.cs +++ b/Subsurface/Source/GameMain.cs @@ -5,14 +5,14 @@ using FarseerPhysics; using FarseerPhysics.Dynamics; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using Subsurface.Networking; -using Subsurface.Particles; +using Barotrauma.Networking; +using Barotrauma.Particles; using System.Collections; using System.Collections.Generic; using Microsoft.Xna.Framework.Input; using System.Xml; -namespace Subsurface +namespace Barotrauma { class GameMain : Game { diff --git a/Subsurface/Source/GameSession/CargoManager.cs b/Subsurface/Source/GameSession/CargoManager.cs index ddb928db7..9167814ed 100644 --- a/Subsurface/Source/GameSession/CargoManager.cs +++ b/Subsurface/Source/GameSession/CargoManager.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; -namespace Subsurface +namespace Barotrauma { class CargoManager { diff --git a/Subsurface/Source/GameSession/CrewManager.cs b/Subsurface/Source/GameSession/CrewManager.cs index 254535a93..67cd1b81f 100644 --- a/Subsurface/Source/GameSession/CrewManager.cs +++ b/Subsurface/Source/GameSession/CrewManager.cs @@ -5,7 +5,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { class CrewManager { diff --git a/Subsurface/Source/GameSession/GameModes/GameMode.cs b/Subsurface/Source/GameSession/GameModes/GameMode.cs index dba60f5c0..d9165b4a9 100644 --- a/Subsurface/Source/GameSession/GameModes/GameMode.cs +++ b/Subsurface/Source/GameSession/GameModes/GameMode.cs @@ -4,7 +4,7 @@ using System; using System.Collections.Generic; using System.Reflection; -namespace Subsurface +namespace Barotrauma { class GameMode { diff --git a/Subsurface/Source/GameSession/GameModes/GameModePreset.cs b/Subsurface/Source/GameSession/GameModes/GameModePreset.cs index a00a22270..a0efba237 100644 --- a/Subsurface/Source/GameSession/GameModes/GameModePreset.cs +++ b/Subsurface/Source/GameSession/GameModes/GameModePreset.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Reflection; using System.Text; -namespace Subsurface +namespace Barotrauma { class GameModePreset { diff --git a/Subsurface/Source/GameSession/GameModes/QuestMode.cs b/Subsurface/Source/GameSession/GameModes/QuestMode.cs index 18c768387..0c0f3304d 100644 --- a/Subsurface/Source/GameSession/GameModes/QuestMode.cs +++ b/Subsurface/Source/GameSession/GameModes/QuestMode.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; -namespace Subsurface +namespace Barotrauma { class QuestMode : GameMode { diff --git a/Subsurface/Source/GameSession/GameModes/SinglePlayerMode.cs b/Subsurface/Source/GameSession/GameModes/SinglePlayerMode.cs index 028481886..1e925e4c6 100644 --- a/Subsurface/Source/GameSession/GameModes/SinglePlayerMode.cs +++ b/Subsurface/Source/GameSession/GameModes/SinglePlayerMode.cs @@ -6,7 +6,7 @@ using System.Linq; using System.Text; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { class SinglePlayerMode : GameMode { diff --git a/Subsurface/Source/GameSession/GameModes/TraitorMode.cs b/Subsurface/Source/GameSession/GameModes/TraitorMode.cs index 32c83220c..b9264e960 100644 --- a/Subsurface/Source/GameSession/GameModes/TraitorMode.cs +++ b/Subsurface/Source/GameSession/GameModes/TraitorMode.cs @@ -1,8 +1,8 @@ using System; using System.Linq; -using Subsurface.Networking; +using Barotrauma.Networking; -namespace Subsurface +namespace Barotrauma { class TraitorMode : GameMode { diff --git a/Subsurface/Source/GameSession/GameModes/TutorialMode.cs b/Subsurface/Source/GameSession/GameModes/TutorialMode.cs index 228f2b02f..2b46b1c66 100644 --- a/Subsurface/Source/GameSession/GameModes/TutorialMode.cs +++ b/Subsurface/Source/GameSession/GameModes/TutorialMode.cs @@ -1,13 +1,13 @@ using FarseerPhysics; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using Subsurface.Items.Components; +using Barotrauma.Items.Components; using System; using System.Collections.Generic; using System.Linq; using System.Text; -namespace Subsurface +namespace Barotrauma { class TutorialMode : GameMode { @@ -17,7 +17,7 @@ namespace Subsurface public static void Start() { - Submarine.Load("Content/Map/TutorialSub.gz", ""); + Submarine.Load("Content/Map/TutorialSub.sub", ""); GameMain.GameSession = new GameSession(Submarine.Loaded, "", GameModePreset.list.Find(gm => gm.Name.ToLower()=="tutorial")); @@ -86,12 +86,15 @@ namespace Subsurface private IEnumerable UpdateState() { + Submarine.Loaded.SetPosition(new Vector2(Submarine.Loaded.Position.X, 38500.0f)); - GameMain.GameScreen.BackgroundSpriteManager.SpawnSprites(1, Submarine.Loaded.Position + Character.Controlled.Position); + //spawn some fish next to the player + GameMain.GameScreen.BackgroundSpriteManager.SpawnSprites(2, + Submarine.Loaded.Position + Character.Controlled.Position); yield return new WaitForSeconds(4.0f); - infoBox = CreateInfoFrame("Use WASD to move and mouse to look around"); + infoBox = CreateInfoFrame("Use WASD to move and the mouse to look around"); yield return new WaitForSeconds(5.0f); @@ -110,9 +113,19 @@ namespace Subsurface //----------------------------------- - 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."); + infoBox = CreateInfoFrame("Hold W or S to walk up or down stairs. Use shift to run.", true); + + while (infoBox!=null) + { + yield return CoroutineStatus.Running; + } + + //----------------------------------- + + infoBox = CreateInfoFrame("At the moment the submarine has no power, which means that crucial systems such as the oxygen generator or the engine aren't running. Let's fix this: 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(); + reactor.MeltDownTemp = 20000.0f; while (Vector2.Distance(Character.Controlled.Position, reactor.Item.Position)>200.0f) { @@ -135,28 +148,39 @@ namespace Subsurface } 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."); + infoBox = CreateInfoFrame("The reactor core has started generating heat, which in turn generates power for the submarine. The power generation is very low at the moment," + +" because the reactor is set to shut itself down when the temperature rises above 500 degrees Celsius. You can adjust the temperature limit by changing the ''Shutdown Temperature'' in the control panel.", true); - while (Math.Abs(reactor.ShutDownTemp-5000.0f) > 400.0f) + while (infoBox!=null) { + reactor.ShutDownTemp = Math.Min(reactor.ShutDownTemp, 5000.0f); yield return CoroutineStatus.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."); + +"If there isn't enough power, devices won't function properly (or at all), and if there's too much power, some devices may be damaged." + +" Try to raise the temperature of the reactor close to 3000 degrees by adjusting the fission and cooling rates."); + + while (Math.Abs(reactor.Temperature-3000.0f) > 100.0f) + { + reactor.ShutDownTemp = Math.Min(reactor.ShutDownTemp, 5000.0f); + yield return CoroutineStatus.Running; + } + yield return new WaitForSeconds(0.5f); + infoBox = CreateInfoFrame("Looks like we're up and running! Now you should turn on the ''Automatic temperature control'', which will make the reactor " + +"automatically adjust the temperature to a suitable level. Even though it's an easy way to keep the reactor up and running most of the time, " + +"you should keep in mind that it changes the temperature very slowly and carefully, which may cause issues if there are sudden changes in grid load."); + while (!reactor.AutoTemp) { yield return CoroutineStatus.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."); + infoBox = CreateInfoFrame("That's the basics of operating the reactor! Now that there's power available for the engines, it's time to get the submarine moving. " + +"Deselect the reactor by pressing E and head to the command room at the right edge of the vessel."); Steering steering = Item.itemList.Find(i => i.HasTag("tutorialsteering")).GetComponent(); Radar radar = steering.Item.GetComponent(); @@ -165,6 +189,8 @@ namespace Subsurface { yield return CoroutineStatus.Running; } + + CoroutineManager.StartCoroutine(KeepReactorRunning(reactor)); infoBox = CreateInfoFrame("Select the navigation terminal by walking next to it and pressing E."); @@ -183,7 +209,7 @@ namespace Subsurface { yield return CoroutineStatus.Running; } - yield return new WaitForSeconds(1.0f); + yield return new WaitForSeconds(5.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."); @@ -272,14 +298,21 @@ namespace Subsurface 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."); + + "Try moving the submarine by clicking somewhere on the monitor and dragging the pointer to the direction you want to go to."); while (steering.CurrTargetVelocity == Vector2.Zero && steering.CurrTargetVelocity.Length() < 50.0f) { yield return CoroutineStatus.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.", true); + + while (infoBox!=null) + { + yield return CoroutineStatus.Running; + } infoBox = CreateInfoFrame("Steer the submarine downwards, heading further into the cavern."); @@ -287,10 +320,7 @@ namespace Subsurface { yield return CoroutineStatus.Running; } - yield return new WaitForSeconds(8.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(1.0f); var moloch = new AICharacter("Content/Characters/Moloch/moloch.xml", steering.Item.SimPosition + Vector2.UnitX * 25.0f); moloch.PlaySound(AIController.AiState.Attack); @@ -318,7 +348,7 @@ namespace Subsurface foreach (Limb limb in moloch.AnimController.Limbs) { - limb.body.LinearVelocity = new Vector2(limb.LinearVelocity.X, limb.LinearVelocity.Y + steeringDir.Y*10.0f); + limb.body.LinearVelocity = new Vector2(limb.LinearVelocity.X*2.0f, limb.LinearVelocity.Y + steeringDir.Y*10.0f); } moloch.AIController.Steering = steeringDir; @@ -338,17 +368,15 @@ namespace Subsurface yield return new WaitForSeconds(1.0f); } while (!broken); - yield return new WaitForSeconds(1.0f); + yield return new WaitForSeconds(0.5f); var capacitor1 = Item.itemList.Find(i => i.HasTag("capacitor1")).GetComponent(); var capacitor2 = Item.itemList.Find(i => i.HasTag("capacitor1")).GetComponent(); CoroutineManager.StartCoroutine(KeepEnemyAway(moloch, new PowerContainer[] { capacitor1, capacitor2 })); - - + infoBox = CreateInfoFrame("The hull has been breached! Close all the doors to the command room to stop the water from flooding the entire sub!"); - - + Door commandDoor1 = Item.itemList.Find(i => i.HasTag("commanddoor1")).GetComponent(); Door commandDoor2 = Item.itemList.Find(i => i.HasTag("commanddoor2")).GetComponent(); Door commandDoor3 = Item.itemList.Find(i => i.HasTag("commanddoor3")).GetComponent(); @@ -358,7 +386,7 @@ namespace Subsurface yield return CoroutineStatus.Running; } - infoBox = CreateInfoFrame("You should find yourself an diving mask or a diving suit, in case the creature causes more damage. "+ + infoBox = CreateInfoFrame("You should quickly find yourself a diving mask or a diving suit. "+ "There are some in the room next to the airlock."); while (!HasItem("Diving Mask") && !HasItem("Diving Suit")) @@ -386,7 +414,7 @@ namespace Subsurface yield return new WaitForSeconds(5.0f); - infoBox = CreateInfoFrame("Now it's time to stop the creature attacking the submarine. Head to the railgun room at the upper right corner of the sub."); + infoBox = CreateInfoFrame("Now you should stop the creature attacking the submarine before it does any more damage. Head to the railgun room at the upper right corner of the sub."); var railGun = Item.itemList.Find(i => i.GetComponent()!=null); @@ -515,6 +543,7 @@ namespace Subsurface Character.Controlled = null; GameMain.GameScreen.Cam.TargetPos = Vector2.Zero; + GameMain.LightManager.LosEnabled = false; do { @@ -590,6 +619,19 @@ namespace Subsurface yield return CoroutineStatus.Success; } + private IEnumerable KeepReactorRunning(Reactor reactor) + { + do + { + reactor.AutoTemp = true; + reactor.ShutDownTemp = 5000.0f; + + yield return CoroutineStatus.Running; + } while (Item.itemList.Contains(reactor.Item)); + + yield return CoroutineStatus.Success; + } + public override void Draw(SpriteBatch spriteBatch) { base.Draw(spriteBatch); @@ -598,10 +640,17 @@ namespace Subsurface if (infoBox != null) infoBox.Draw(spriteBatch); } - private GUIComponent CreateInfoFrame(string text) + private bool CloseInfoFrame(GUIButton button, object userData) + { + infoBox = null; + + return true; + } + + private GUIComponent CreateInfoFrame(string text, bool hasButton = false) { int width = 300; - int height = 80; + int height = hasButton ? 110 : 80; string wrappedText = ToolBox.WrapText(text, width, GUI.Font); @@ -612,7 +661,13 @@ namespace Subsurface 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); + var textBlock = new GUITextBlock(new Rectangle(10, 10, width - 40, height), text, GUI.Style, infoBlock, true); + + if (hasButton) + { + var okButton = new GUIButton(new Rectangle(0,-40,80,25), "OK", Alignment.BottomCenter, GUI.Style, textBlock); + okButton.OnClicked = CloseInfoFrame; + } GUI.PlayMessageSound(); diff --git a/Subsurface/Source/GameSession/GameSession.cs b/Subsurface/Source/GameSession/GameSession.cs index 7e9df144b..86fde58ea 100644 --- a/Subsurface/Source/GameSession/GameSession.cs +++ b/Subsurface/Source/GameSession/GameSession.cs @@ -8,7 +8,7 @@ using System.Text; using System.Collections.Generic; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { class GameSession { diff --git a/Subsurface/Source/GameSession/HireManager.cs b/Subsurface/Source/GameSession/HireManager.cs index 1e5b52f36..ce3aa1608 100644 --- a/Subsurface/Source/GameSession/HireManager.cs +++ b/Subsurface/Source/GameSession/HireManager.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; -namespace Subsurface +namespace Barotrauma { class HireManager { diff --git a/Subsurface/Source/GameSettings.cs b/Subsurface/Source/GameSettings.cs index cdf8df2ba..97290cad9 100644 --- a/Subsurface/Source/GameSettings.cs +++ b/Subsurface/Source/GameSettings.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { public class GameSettings { diff --git a/Subsurface/Source/IPropertyObject.cs b/Subsurface/Source/IPropertyObject.cs index be8de376d..287b28f66 100644 --- a/Subsurface/Source/IPropertyObject.cs +++ b/Subsurface/Source/IPropertyObject.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; -namespace Subsurface +namespace Barotrauma { interface IPropertyObject { diff --git a/Subsurface/Source/Items/CharacterInventory.cs b/Subsurface/Source/Items/CharacterInventory.cs index 93e2cc9f4..56fab4692 100644 --- a/Subsurface/Source/Items/CharacterInventory.cs +++ b/Subsurface/Source/Items/CharacterInventory.cs @@ -3,7 +3,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; -namespace Subsurface +namespace Barotrauma { [Flags] public enum LimbSlot @@ -279,7 +279,7 @@ namespace Subsurface { DropItem(draggingItem); - new Networking.NetworkEvent(Subsurface.Networking.NetworkEventType.DropItem, draggingItem.ID, true); + new Networking.NetworkEvent(Barotrauma.Networking.NetworkEventType.DropItem, draggingItem.ID, true); //draggingItem = null; } } diff --git a/Subsurface/Source/Items/Components/Door.cs b/Subsurface/Source/Items/Components/Door.cs index 10f5ec551..6a681bc28 100644 --- a/Subsurface/Source/Items/Components/Door.cs +++ b/Subsurface/Source/Items/Components/Door.cs @@ -6,9 +6,9 @@ using FarseerPhysics.Dynamics; using FarseerPhysics.Factories; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using Subsurface.Lights; +using Barotrauma.Lights; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class Door : ItemComponent { diff --git a/Subsurface/Source/Items/Components/Holdable/Holdable.cs b/Subsurface/Source/Items/Components/Holdable/Holdable.cs index 0f834c0b5..fe6cf0672 100644 --- a/Subsurface/Source/Items/Components/Holdable/Holdable.cs +++ b/Subsurface/Source/Items/Components/Holdable/Holdable.cs @@ -3,7 +3,7 @@ using FarseerPhysics; using Microsoft.Xna.Framework; using System.Collections.Generic; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class Holdable : Pickable { diff --git a/Subsurface/Source/Items/Components/Holdable/MeleeWeapon.cs b/Subsurface/Source/Items/Components/Holdable/MeleeWeapon.cs index dd10991e0..5dc68a12f 100644 --- a/Subsurface/Source/Items/Components/Holdable/MeleeWeapon.cs +++ b/Subsurface/Source/Items/Components/Holdable/MeleeWeapon.cs @@ -4,7 +4,7 @@ using FarseerPhysics.Dynamics.Contacts; using Microsoft.Xna.Framework; using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class MeleeWeapon : Holdable { @@ -74,7 +74,7 @@ namespace Subsurface.Items.Components hitting = true; IsActive = true; - return true; + return false; } public override void Drop(Character dropper) @@ -187,6 +187,8 @@ namespace Subsurface.Items.Components RestoreCollision(); hitting = false; + ApplyStatusEffects(ActionType.OnUse, 1.0f, picker); + return true; } } diff --git a/Subsurface/Source/Items/Components/Holdable/Pickable.cs b/Subsurface/Source/Items/Components/Holdable/Pickable.cs index 634d8f07a..972b687a1 100644 --- a/Subsurface/Source/Items/Components/Holdable/Pickable.cs +++ b/Subsurface/Source/Items/Components/Holdable/Pickable.cs @@ -1,7 +1,7 @@ using System; using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class Pickable : ItemComponent { diff --git a/Subsurface/Source/Items/Components/Holdable/RangedWeapon.cs b/Subsurface/Source/Items/Components/Holdable/RangedWeapon.cs index d05a882f3..587b9ba94 100644 --- a/Subsurface/Source/Items/Components/Holdable/RangedWeapon.cs +++ b/Subsurface/Source/Items/Components/Holdable/RangedWeapon.cs @@ -6,7 +6,7 @@ using FarseerPhysics; using FarseerPhysics.Dynamics; using Microsoft.Xna.Framework; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class RangedWeapon : ItemComponent { diff --git a/Subsurface/Source/Items/Components/Holdable/RepairTool.cs b/Subsurface/Source/Items/Components/Holdable/RepairTool.cs index b6b55e8db..3568932b6 100644 --- a/Subsurface/Source/Items/Components/Holdable/RepairTool.cs +++ b/Subsurface/Source/Items/Components/Holdable/RepairTool.cs @@ -5,9 +5,9 @@ using FarseerPhysics; using FarseerPhysics.Dynamics; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using Subsurface.Particles; +using Barotrauma.Particles; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class RepairTool : ItemComponent { diff --git a/Subsurface/Source/Items/Components/Holdable/Throwable.cs b/Subsurface/Source/Items/Components/Holdable/Throwable.cs index 8293a205e..3f5e17178 100644 --- a/Subsurface/Source/Items/Components/Holdable/Throwable.cs +++ b/Subsurface/Source/Items/Components/Holdable/Throwable.cs @@ -2,7 +2,7 @@ using Microsoft.Xna.Framework; using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class Throwable : Holdable { diff --git a/Subsurface/Source/Items/Components/ItemComponent.cs b/Subsurface/Source/Items/Components/ItemComponent.cs index 94d299c96..6fab1cba3 100644 --- a/Subsurface/Source/Items/Components/ItemComponent.cs +++ b/Subsurface/Source/Items/Components/ItemComponent.cs @@ -6,11 +6,11 @@ using System.Xml.Linq; using Lidgren.Network; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using Subsurface.Networking; +using Barotrauma.Networking; using System.IO; using System.Globalization; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class ItemSound { @@ -644,7 +644,7 @@ namespace Subsurface.Items.Components try { // Get the type of a specified class. - t = Type.GetType("Subsurface.Items.Components." + type + "", false, true); + t = Type.GetType("Barotrauma.Items.Components." + type + "", false, true); if (t == null) { if (errorMessages) DebugConsole.ThrowError("Could not find the component ''" + type + "'' (" + file + ")"); diff --git a/Subsurface/Source/Items/Components/ItemContainer.cs b/Subsurface/Source/Items/Components/ItemContainer.cs index d795cca74..4abc5e8b5 100644 --- a/Subsurface/Source/Items/Components/ItemContainer.cs +++ b/Subsurface/Source/Items/Components/ItemContainer.cs @@ -5,7 +5,7 @@ using FarseerPhysics; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class ItemContainer : ItemComponent { diff --git a/Subsurface/Source/Items/Components/ItemLabel.cs b/Subsurface/Source/Items/Components/ItemLabel.cs index 0b9ff1323..e8887d474 100644 --- a/Subsurface/Source/Items/Components/ItemLabel.cs +++ b/Subsurface/Source/Items/Components/ItemLabel.cs @@ -1,7 +1,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class ItemLabel : ItemComponent { diff --git a/Subsurface/Source/Items/Components/Ladder.cs b/Subsurface/Source/Items/Components/Ladder.cs index 9323bf328..3cbf1a47b 100644 --- a/Subsurface/Source/Items/Components/Ladder.cs +++ b/Subsurface/Source/Items/Components/Ladder.cs @@ -1,6 +1,6 @@ using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class Ladder : ItemComponent { diff --git a/Subsurface/Source/Items/Components/Machines/Controller.cs b/Subsurface/Source/Items/Components/Machines/Controller.cs index 8817ce664..45305b3cd 100644 --- a/Subsurface/Source/Items/Components/Machines/Controller.cs +++ b/Subsurface/Source/Items/Components/Machines/Controller.cs @@ -5,7 +5,7 @@ using FarseerPhysics; using FarseerPhysics.Dynamics.Joints; using Microsoft.Xna.Framework; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { struct LimbPos { @@ -163,15 +163,6 @@ namespace Subsurface.Items.Components break; } } - - //foreach (MapEntity e in item.linkedTo) - //{ - // Item linkedItem = e as Item; - // if (linkedItem == null) continue; - // linkedItem.SecondaryUse(deltaTime, character); - //} - - } public override bool Pick(Character picker) diff --git a/Subsurface/Source/Items/Components/Machines/Engine.cs b/Subsurface/Source/Items/Components/Machines/Engine.cs index 6713f43ef..f26735544 100644 --- a/Subsurface/Source/Items/Components/Machines/Engine.cs +++ b/Subsurface/Source/Items/Components/Machines/Engine.cs @@ -7,7 +7,7 @@ using System.Linq; using System.Text; using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class Engine : Powered { diff --git a/Subsurface/Source/Items/Components/Machines/Fabricator.cs b/Subsurface/Source/Items/Components/Machines/Fabricator.cs index 63f4dc89d..5918a41a9 100644 --- a/Subsurface/Source/Items/Components/Machines/Fabricator.cs +++ b/Subsurface/Source/Items/Components/Machines/Fabricator.cs @@ -6,7 +6,7 @@ using System.Linq; using System.Text; using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class FabricableItem { diff --git a/Subsurface/Source/Items/Components/Machines/MiniMap.cs b/Subsurface/Source/Items/Components/Machines/MiniMap.cs index f0813d3ef..7f03e33f3 100644 --- a/Subsurface/Source/Items/Components/Machines/MiniMap.cs +++ b/Subsurface/Source/Items/Components/Machines/MiniMap.cs @@ -3,7 +3,7 @@ using System.Xml.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class MiniMap : Powered { diff --git a/Subsurface/Source/Items/Components/Machines/OxygenGenerator.cs b/Subsurface/Source/Items/Components/Machines/OxygenGenerator.cs index c50e2b1d6..f69703b60 100644 --- a/Subsurface/Source/Items/Components/Machines/OxygenGenerator.cs +++ b/Subsurface/Source/Items/Components/Machines/OxygenGenerator.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class OxygenGenerator : Powered { @@ -60,6 +60,8 @@ namespace Subsurface.Items.Components powerDownTimer = 0.0f; } + ApplyStatusEffects(ActionType.OnActive, deltaTime, null); + running = true; CurrFlow = Math.Min(voltage, 1.0f) * 50000.0f; diff --git a/Subsurface/Source/Items/Components/Machines/Pump.cs b/Subsurface/Source/Items/Components/Machines/Pump.cs index 8b9e5c31c..16b6b2e14 100644 --- a/Subsurface/Source/Items/Components/Machines/Pump.cs +++ b/Subsurface/Source/Items/Components/Machines/Pump.cs @@ -5,7 +5,7 @@ using System.Collections.Specialized; using System.Globalization; using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class Pump : Powered { @@ -78,6 +78,8 @@ namespace Subsurface.Items.Components if (voltage < minVoltage) return; + ApplyStatusEffects(ActionType.OnActive, deltaTime, null); + if (hull2 == null && hull1 == null) return; float powerFactor = (currPowerConsumption==0.0f) ? 1.0f : voltage; diff --git a/Subsurface/Source/Items/Components/Machines/Radar.cs b/Subsurface/Source/Items/Components/Machines/Radar.cs index 4c40a4ce7..5f1ceb455 100644 --- a/Subsurface/Source/Items/Components/Machines/Radar.cs +++ b/Subsurface/Source/Items/Components/Machines/Radar.cs @@ -7,7 +7,7 @@ using System.Linq; using System.Text; using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class Radar : Powered { diff --git a/Subsurface/Source/Items/Components/Machines/Reactor.cs b/Subsurface/Source/Items/Components/Machines/Reactor.cs index 45b2c3a14..d6d03a6bb 100644 --- a/Subsurface/Source/Items/Components/Machines/Reactor.cs +++ b/Subsurface/Source/Items/Components/Machines/Reactor.cs @@ -4,9 +4,9 @@ using System.Xml.Linq; using Lidgren.Network; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using Subsurface.Networking; +using Barotrauma.Networking; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class Reactor : Powered { @@ -106,6 +106,7 @@ namespace Subsurface.Items.Components public bool AutoTemp { get { return autoTemp; } + set { autoTemp = value; } } public float ExtraCooling { get; set; } @@ -115,7 +116,7 @@ namespace Subsurface.Items.Components public float ShutDownTemp { get { return shutDownTemp; } - private set { shutDownTemp = MathHelper.Clamp(value, 0.0f, 10000.0f); } + set { shutDownTemp = MathHelper.Clamp(value, 0.0f, 10000.0f); } } public Reactor(Item item, XElement element) @@ -137,7 +138,7 @@ namespace Subsurface.Items.Components public override void Update(float deltaTime, Camera cam) { - //ApplyStatusEffects(ActionType.OnActive, deltaTime, null); + ApplyStatusEffects(ActionType.OnActive, deltaTime, null); fissionRate = Math.Min(fissionRate, AvailableFuel); diff --git a/Subsurface/Source/Items/Components/Machines/Steering.cs b/Subsurface/Source/Items/Components/Machines/Steering.cs index 80b870d68..4fc27995a 100644 --- a/Subsurface/Source/Items/Components/Machines/Steering.cs +++ b/Subsurface/Source/Items/Components/Machines/Steering.cs @@ -8,7 +8,7 @@ using System.Linq; using System.Text; using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class Steering : Powered { diff --git a/Subsurface/Source/Items/Components/Machines/Vent.cs b/Subsurface/Source/Items/Components/Machines/Vent.cs index 07191494d..5e8a5e10c 100644 --- a/Subsurface/Source/Items/Components/Machines/Vent.cs +++ b/Subsurface/Source/Items/Components/Machines/Vent.cs @@ -1,7 +1,7 @@ using System; using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class Vent : ItemComponent { diff --git a/Subsurface/Source/Items/Components/Power/PowerContainer.cs b/Subsurface/Source/Items/Components/Power/PowerContainer.cs index 1e1fb6d4e..170ca3e8c 100644 --- a/Subsurface/Source/Items/Components/Power/PowerContainer.cs +++ b/Subsurface/Source/Items/Components/Power/PowerContainer.cs @@ -3,7 +3,7 @@ using System.Xml.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class PowerContainer : Powered { @@ -92,9 +92,6 @@ namespace Subsurface.Items.Components //if (item.linkedTo.Count == 0) return; - ApplyStatusEffects(ActionType.OnActive, deltaTime, null); - - foreach (Connection c in item.Connections) { foreach (Connection c2 in c.Recipients) @@ -106,23 +103,14 @@ namespace Subsurface.Items.Components } } - //foreach (MapEntity e in item.linkedTo) - //{ - // Item it = e as Item; - // if (it == null) continue; - - // PowerTransfer pt = it.GetComponent(); - // if (pt==null) continue; - // //gridPower -= pt.PowerConsumption; - // gridLoad += pt.PowerLoad; - - // //gridPower = -jb.PowerConsumption; - // //gridLoad = jb.load; - // break; - //} float gridRate = voltage; + if (gridRate>minVoltage) + { + ApplyStatusEffects(ActionType.OnActive, deltaTime, null); + } + //recharge if (gridRate >= chargeRate) { diff --git a/Subsurface/Source/Items/Components/Power/PowerTransfer.cs b/Subsurface/Source/Items/Components/Power/PowerTransfer.cs index ccb6c0afa..9c3ac914b 100644 --- a/Subsurface/Source/Items/Components/Power/PowerTransfer.cs +++ b/Subsurface/Source/Items/Components/Power/PowerTransfer.cs @@ -5,7 +5,7 @@ using Microsoft.Xna.Framework.Graphics; using System; using System.Globalization; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class PowerTransfer : Powered { diff --git a/Subsurface/Source/Items/Components/Power/Powered.cs b/Subsurface/Source/Items/Components/Power/Powered.cs index 999480755..f571f7c6b 100644 --- a/Subsurface/Source/Items/Components/Power/Powered.cs +++ b/Subsurface/Source/Items/Components/Power/Powered.cs @@ -3,7 +3,7 @@ using System.Globalization; using System.IO; using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class Powered : ItemComponent { diff --git a/Subsurface/Source/Items/Components/Projectile.cs b/Subsurface/Source/Items/Components/Projectile.cs index f1e2b5f17..fc258b19e 100644 --- a/Subsurface/Source/Items/Components/Projectile.cs +++ b/Subsurface/Source/Items/Components/Projectile.cs @@ -8,7 +8,7 @@ using FarseerPhysics.Dynamics.Contacts; using FarseerPhysics.Dynamics.Joints; using Microsoft.Xna.Framework; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class Projectile : ItemComponent { diff --git a/Subsurface/Source/Items/Components/Rope.cs b/Subsurface/Source/Items/Components/Rope.cs index 391042ced..8ea0a5328 100644 --- a/Subsurface/Source/Items/Components/Rope.cs +++ b/Subsurface/Source/Items/Components/Rope.cs @@ -11,7 +11,7 @@ using FarseerPhysics.Factories; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class Rope : ItemComponent { diff --git a/Subsurface/Source/Items/Components/Signal/AndComponent.cs b/Subsurface/Source/Items/Components/Signal/AndComponent.cs index 7d4e0ca01..eba73b42b 100644 --- a/Subsurface/Source/Items/Components/Signal/AndComponent.cs +++ b/Subsurface/Source/Items/Components/Signal/AndComponent.cs @@ -1,7 +1,7 @@ using System; using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class AndComponent : ItemComponent { diff --git a/Subsurface/Source/Items/Components/Signal/Connection.cs b/Subsurface/Source/Items/Components/Signal/Connection.cs index c0b47827c..191defac1 100644 --- a/Subsurface/Source/Items/Components/Signal/Connection.cs +++ b/Subsurface/Source/Items/Components/Signal/Connection.cs @@ -5,7 +5,7 @@ using System.Collections.Generic; using System.Linq; using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class Connection diff --git a/Subsurface/Source/Items/Components/Signal/ConnectionPanel.cs b/Subsurface/Source/Items/Components/Signal/ConnectionPanel.cs index e67e320b6..26174d8fe 100644 --- a/Subsurface/Source/Items/Components/Signal/ConnectionPanel.cs +++ b/Subsurface/Source/Items/Components/Signal/ConnectionPanel.cs @@ -4,7 +4,7 @@ using System; using System.Collections.Generic; using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class ConnectionPanel : ItemComponent { diff --git a/Subsurface/Source/Items/Components/Signal/LightComponent.cs b/Subsurface/Source/Items/Components/Signal/LightComponent.cs index 46ac7e32d..8f84865f7 100644 --- a/Subsurface/Source/Items/Components/Signal/LightComponent.cs +++ b/Subsurface/Source/Items/Components/Signal/LightComponent.cs @@ -1,12 +1,12 @@ using FarseerPhysics; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using Subsurface.Lights; +using Barotrauma.Lights; using System; using System.IO; using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class LightComponent : Powered { diff --git a/Subsurface/Source/Items/Components/Signal/NotComponent.cs b/Subsurface/Source/Items/Components/Signal/NotComponent.cs index 7515f78e9..076a496c9 100644 --- a/Subsurface/Source/Items/Components/Signal/NotComponent.cs +++ b/Subsurface/Source/Items/Components/Signal/NotComponent.cs @@ -1,6 +1,6 @@ using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class NotComponent : ItemComponent { diff --git a/Subsurface/Source/Items/Components/Signal/OrComponent.cs b/Subsurface/Source/Items/Components/Signal/OrComponent.cs index 335096ff5..5515635d3 100644 --- a/Subsurface/Source/Items/Components/Signal/OrComponent.cs +++ b/Subsurface/Source/Items/Components/Signal/OrComponent.cs @@ -1,6 +1,6 @@ using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class OrComponent : AndComponent { diff --git a/Subsurface/Source/Items/Components/Signal/OxygenDetector.cs b/Subsurface/Source/Items/Components/Signal/OxygenDetector.cs index f52764f97..918d64241 100644 --- a/Subsurface/Source/Items/Components/Signal/OxygenDetector.cs +++ b/Subsurface/Source/Items/Components/Signal/OxygenDetector.cs @@ -1,6 +1,6 @@ using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class OxygenDetector : ItemComponent { diff --git a/Subsurface/Source/Items/Components/Signal/RegExFindComponent.cs b/Subsurface/Source/Items/Components/Signal/RegExFindComponent.cs index 5b294b0f1..c5eb192aa 100644 --- a/Subsurface/Source/Items/Components/Signal/RegExFindComponent.cs +++ b/Subsurface/Source/Items/Components/Signal/RegExFindComponent.cs @@ -1,7 +1,7 @@ using System.Xml.Linq; using System.Text.RegularExpressions; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class RegExFindComponent : ItemComponent { diff --git a/Subsurface/Source/Items/Components/Signal/SignalCheckComponent.cs b/Subsurface/Source/Items/Components/Signal/SignalCheckComponent.cs index 0f282106a..617846d07 100644 --- a/Subsurface/Source/Items/Components/Signal/SignalCheckComponent.cs +++ b/Subsurface/Source/Items/Components/Signal/SignalCheckComponent.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class SignalCheckComponent : ItemComponent { diff --git a/Subsurface/Source/Items/Components/Signal/WifiComponent.cs b/Subsurface/Source/Items/Components/Signal/WifiComponent.cs index d1486eca7..870f3ddb3 100644 --- a/Subsurface/Source/Items/Components/Signal/WifiComponent.cs +++ b/Subsurface/Source/Items/Components/Signal/WifiComponent.cs @@ -3,7 +3,7 @@ using System; using System.Collections.Generic; using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class WifiComponent : ItemComponent { diff --git a/Subsurface/Source/Items/Components/Signal/Wire.cs b/Subsurface/Source/Items/Components/Signal/Wire.cs index 7e62b0a16..7c6b3871b 100644 --- a/Subsurface/Source/Items/Components/Signal/Wire.cs +++ b/Subsurface/Source/Items/Components/Signal/Wire.cs @@ -6,7 +6,7 @@ using System.Globalization; using System.Linq; using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class Wire : ItemComponent { diff --git a/Subsurface/Source/Items/Components/Turret.cs b/Subsurface/Source/Items/Components/Turret.cs index 47d9f0406..62a2ce1f3 100644 --- a/Subsurface/Source/Items/Components/Turret.cs +++ b/Subsurface/Source/Items/Components/Turret.cs @@ -6,7 +6,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using FarseerPhysics; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class Turret : Powered { diff --git a/Subsurface/Source/Items/Components/Wearable.cs b/Subsurface/Source/Items/Components/Wearable.cs index bc3232869..f052172f1 100644 --- a/Subsurface/Source/Items/Components/Wearable.cs +++ b/Subsurface/Source/Items/Components/Wearable.cs @@ -4,7 +4,7 @@ using System.IO; using System.Linq; using System.Xml.Linq; -namespace Subsurface.Items.Components +namespace Barotrauma.Items.Components { class WearableSprite { diff --git a/Subsurface/Source/Items/FixRequirement.cs b/Subsurface/Source/Items/FixRequirement.cs index 4545d71d5..e60892550 100644 --- a/Subsurface/Source/Items/FixRequirement.cs +++ b/Subsurface/Source/Items/FixRequirement.cs @@ -6,7 +6,7 @@ using System.Linq; using System.Text; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { class FixRequirement { diff --git a/Subsurface/Source/Items/Inventory.cs b/Subsurface/Source/Items/Inventory.cs index 17057458b..64ca1c3ee 100644 --- a/Subsurface/Source/Items/Inventory.cs +++ b/Subsurface/Source/Items/Inventory.cs @@ -3,10 +3,10 @@ using Lidgren.Network; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; -using Subsurface.Networking; +using Barotrauma.Networking; using System; -namespace Subsurface +namespace Barotrauma { class Inventory : Entity { diff --git a/Subsurface/Source/Items/Item.cs b/Subsurface/Source/Items/Item.cs index 6145af8b5..88de703e5 100644 --- a/Subsurface/Source/Items/Item.cs +++ b/Subsurface/Source/Items/Item.cs @@ -6,14 +6,14 @@ using Lidgren.Network; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; -using Subsurface.Networking; +using Barotrauma.Networking; using System; -using Subsurface.Items.Components; +using Barotrauma.Items.Components; using System.ComponentModel; using System.Collections.ObjectModel; using FarseerPhysics.Dynamics; -namespace Subsurface +namespace Barotrauma { public enum ActionType @@ -429,7 +429,17 @@ namespace Subsurface foreach (Item containedItem in containedItems) { if (containedItem == null) continue; - if (effect.TargetNames != null && !effect.TargetNames.Contains(containedItem.Name)) continue; + if (effect.TargetNames != null && !effect.TargetNames.Contains(containedItem.Name)) + { + bool tagFound = false; + foreach (string targetName in effect.TargetNames) + { + if (!containedItem.HasTag(targetName)) continue; + tagFound = true; + break; + } + if (!tagFound) continue; + } hasTargets = true; targets.Add(containedItem); @@ -440,30 +450,30 @@ namespace Subsurface } - if (hasTargets) + if (!hasTargets) return; + + if (effect.Targets.HasFlag(StatusEffect.TargetType.This)) { - if (effect.Targets.HasFlag(StatusEffect.TargetType.This)) + foreach (var pobject in AllPropertyObjects) { - foreach (var pobject in AllPropertyObjects) - { - targets.Add(pobject); - } + targets.Add(pobject); } - //effect.Apply(type, deltaTime, this); - //ApplyStatusEffect(effect, type, deltaTime, this); + } + //effect.Apply(type, deltaTime, this); + //ApplyStatusEffect(effect, type, deltaTime, this); - if (effect.Targets.HasFlag(StatusEffect.TargetType.Character)) targets.Add(character); - //effect.Apply(type, deltaTime, null, character); - //ApplyStatusEffect(effect, type, deltaTime, null, character, limb); + if (effect.Targets.HasFlag(StatusEffect.TargetType.Character)) targets.Add(character); + //effect.Apply(type, deltaTime, null, character); + //ApplyStatusEffect(effect, type, deltaTime, null, character, limb); - if (container != null && effect.Targets.HasFlag(StatusEffect.TargetType.Parent)) targets.Add(container); - //{ - // effect.Apply(type, deltaTime, container); - // //container.ApplyStatusEffect(effect, type, deltaTime, container); - //} + if (container != null && effect.Targets.HasFlag(StatusEffect.TargetType.Parent)) targets.Add(container); + //{ + // effect.Apply(type, deltaTime, container); + // //container.ApplyStatusEffect(effect, type, deltaTime, container); + //} - effect.Apply(type, deltaTime, this, targets); - } + effect.Apply(type, deltaTime, this, targets); + } @@ -497,7 +507,7 @@ namespace Subsurface ic.Update(deltaTime, cam); ic.PlaySound(ActionType.OnActive, Position); - ic.ApplyStatusEffects(ActionType.OnActive, deltaTime, null); + //ic.ApplyStatusEffects(ActionType.OnActive, deltaTime, null); } else { diff --git a/Subsurface/Source/Items/ItemInventory.cs b/Subsurface/Source/Items/ItemInventory.cs index b3f2ed9fb..af904fcf0 100644 --- a/Subsurface/Source/Items/ItemInventory.cs +++ b/Subsurface/Source/Items/ItemInventory.cs @@ -1,7 +1,7 @@ using Microsoft.Xna.Framework; -using Subsurface.Items.Components; +using Barotrauma.Items.Components; -namespace Subsurface +namespace Barotrauma { class ItemInventory : Inventory { diff --git a/Subsurface/Source/Items/ItemPrefab.cs b/Subsurface/Source/Items/ItemPrefab.cs index b7021d576..5ecdd28d1 100644 --- a/Subsurface/Source/Items/ItemPrefab.cs +++ b/Subsurface/Source/Items/ItemPrefab.cs @@ -7,7 +7,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; -namespace Subsurface +namespace Barotrauma { class ItemPrefab : MapEntityPrefab { diff --git a/Subsurface/Source/Items/RelatedItem.cs b/Subsurface/Source/Items/RelatedItem.cs index bdbbf339d..dbc4ce005 100644 --- a/Subsurface/Source/Items/RelatedItem.cs +++ b/Subsurface/Source/Items/RelatedItem.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { class RelatedItem { diff --git a/Subsurface/Source/Map/Entity.cs b/Subsurface/Source/Map/Entity.cs index 375f796fd..48d868ce2 100644 --- a/Subsurface/Source/Map/Entity.cs +++ b/Subsurface/Source/Map/Entity.cs @@ -1,9 +1,9 @@ using System.Collections.Generic; using Lidgren.Network; using Microsoft.Xna.Framework; -using Subsurface.Networking; +using Barotrauma.Networking; -namespace Subsurface +namespace Barotrauma { class Entity { diff --git a/Subsurface/Source/Map/Explosion.cs b/Subsurface/Source/Map/Explosion.cs index d35d0d4ba..be8fb4fcd 100644 --- a/Subsurface/Source/Map/Explosion.cs +++ b/Subsurface/Source/Map/Explosion.cs @@ -1,11 +1,11 @@ using FarseerPhysics; using Microsoft.Xna.Framework; -using Subsurface.Lights; +using Barotrauma.Lights; using System; using System.Collections.Generic; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { class Explosion { @@ -21,17 +21,6 @@ namespace Subsurface private bool sparks, shockwave, flames; - //public Explosion(Vector2 position, float range, float damage, float structureDamage, float stun = 0.0f, float force = 0.0f) - //{ - // this.position = position; - - // attack = new Attack(,); - - // this.force = force; - - - //} - public Explosion(XElement element) { attack = new Attack(element); @@ -42,7 +31,7 @@ namespace Subsurface shockwave = ToolBox.GetAttributeBool(element, "shockwave", true); flames = ToolBox.GetAttributeBool(element, "flames", true); - CameraShake = attack.Range*10.0f; + CameraShake = ToolBox.GetAttributeFloat(element, "camerashake", attack.Range*10.0f); } public void Explode() diff --git a/Subsurface/Source/Map/Gap.cs b/Subsurface/Source/Map/Gap.cs index 7f929f0a8..e7490e2b3 100644 --- a/Subsurface/Source/Map/Gap.cs +++ b/Subsurface/Source/Map/Gap.cs @@ -6,7 +6,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using System.Collections.ObjectModel; -namespace Subsurface +namespace Barotrauma { class Gap : MapEntity { diff --git a/Subsurface/Source/Map/Hull.cs b/Subsurface/Source/Map/Hull.cs index c2d9d0d58..36142d8a3 100644 --- a/Subsurface/Source/Map/Hull.cs +++ b/Subsurface/Source/Map/Hull.cs @@ -7,7 +7,7 @@ using FarseerPhysics; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -namespace Subsurface +namespace Barotrauma { class Hull : MapEntity diff --git a/Subsurface/Source/Map/IDamageable.cs b/Subsurface/Source/Map/IDamageable.cs index 9771c0f00..995c3121f 100644 --- a/Subsurface/Source/Map/IDamageable.cs +++ b/Subsurface/Source/Map/IDamageable.cs @@ -1,6 +1,6 @@ using Microsoft.Xna.Framework; -namespace Subsurface +namespace Barotrauma { interface IDamageable { diff --git a/Subsurface/Source/Map/Levels/Level.cs b/Subsurface/Source/Map/Levels/Level.cs index 03ce14e27..5ca6f7971 100644 --- a/Subsurface/Source/Map/Levels/Level.cs +++ b/Subsurface/Source/Map/Levels/Level.cs @@ -10,7 +10,7 @@ using System.Collections.Generic; using System.Diagnostics; using Voronoi2; -namespace Subsurface +namespace Barotrauma { class Level { diff --git a/Subsurface/Source/Map/Levels/VoronoiElements.cs b/Subsurface/Source/Map/Levels/VoronoiElements.cs index 746788917..5b96a33fe 100644 --- a/Subsurface/Source/Map/Levels/VoronoiElements.cs +++ b/Subsurface/Source/Map/Levels/VoronoiElements.cs @@ -52,7 +52,7 @@ using FarseerPhysics.Dynamics; using Microsoft.Xna.Framework; -using Subsurface; +using Barotrauma; using System; using System.Collections.Generic; diff --git a/Subsurface/Source/Map/Lights/ConvexHull.cs b/Subsurface/Source/Map/Lights/ConvexHull.cs index 901f95490..b3f6a486f 100644 --- a/Subsurface/Source/Map/Lights/ConvexHull.cs +++ b/Subsurface/Source/Map/Lights/ConvexHull.cs @@ -3,7 +3,7 @@ using Microsoft.Xna.Framework.Graphics; using System.Collections.Generic; using System.Linq; -namespace Subsurface.Lights +namespace Barotrauma.Lights { class CachedShadow { diff --git a/Subsurface/Source/Map/Lights/LightManager.cs b/Subsurface/Source/Map/Lights/LightManager.cs index ec7d06687..b5799e9a8 100644 --- a/Subsurface/Source/Map/Lights/LightManager.cs +++ b/Subsurface/Source/Map/Lights/LightManager.cs @@ -3,7 +3,7 @@ using Microsoft.Xna.Framework.Graphics; using System.Collections.Generic; using System.Diagnostics; -namespace Subsurface.Lights +namespace Barotrauma.Lights { class LightManager { @@ -124,18 +124,18 @@ namespace Subsurface.Lights spriteBatch.End(); } - //ClearAlphaToOne(graphics, spriteBatch); - //spriteBatch.Begin(SpriteSortMode.Immediate, CustomBlendStates.MultiplyWithAlpha, null, null, null, null, cam.Transform); + ClearAlphaToOne(graphics, spriteBatch); + spriteBatch.Begin(SpriteSortMode.Immediate, CustomBlendStates.MultiplyWithAlpha, null, null, null, null, cam.Transform); - //foreach (LightSource light in lights) - //{ - // if (light.hullsInRange.Count > 0 || light.Color.A < 0.01f || light.Range < 1.0f) continue; - // if (!MathUtils.CircleIntersectsRectangle(light.Position, light.Range, viewRect)) continue; + foreach (LightSource light in lights) + { + if (light.hullsInRange.Count > 0 || light.Color.A < 0.01f || light.Range < 1.0f) continue; + if (!MathUtils.CircleIntersectsRectangle(light.Position, light.Range, viewRect)) continue; - // light.Draw(spriteBatch); - //} + light.Draw(spriteBatch); + } - //spriteBatch.End(); + spriteBatch.End(); //clear alpha, to avoid messing stuff up later ClearAlphaToOne(graphics, spriteBatch); diff --git a/Subsurface/Source/Map/Lights/LightSource.cs b/Subsurface/Source/Map/Lights/LightSource.cs index 0ed505b0f..6dd94e1ad 100644 --- a/Subsurface/Source/Map/Lights/LightSource.cs +++ b/Subsurface/Source/Map/Lights/LightSource.cs @@ -5,7 +5,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; -namespace Subsurface.Lights +namespace Barotrauma.Lights { class LightSource { diff --git a/Subsurface/Source/Map/Location.cs b/Subsurface/Source/Map/Location.cs index 92d2cfb1a..7e5e067b6 100644 --- a/Subsurface/Source/Map/Location.cs +++ b/Subsurface/Source/Map/Location.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; -namespace Subsurface +namespace Barotrauma { class Location diff --git a/Subsurface/Source/Map/LocationType.cs b/Subsurface/Source/Map/LocationType.cs index 31e267e9d..9ac05b1ab 100644 --- a/Subsurface/Source/Map/LocationType.cs +++ b/Subsurface/Source/Map/LocationType.cs @@ -5,7 +5,7 @@ using System.Linq; using System.Text; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { class LocationType { diff --git a/Subsurface/Source/Map/Map.cs b/Subsurface/Source/Map/Map.cs index 03a75b777..f23ab45c2 100644 --- a/Subsurface/Source/Map/Map.cs +++ b/Subsurface/Source/Map/Map.cs @@ -6,7 +6,7 @@ using System.Linq; using System.Text; using Voronoi2; -namespace Subsurface +namespace Barotrauma { class Map { diff --git a/Subsurface/Source/Map/MapEntity.cs b/Subsurface/Source/Map/MapEntity.cs index 9c8fad1ba..1cc9cbc74 100644 --- a/Subsurface/Source/Map/MapEntity.cs +++ b/Subsurface/Source/Map/MapEntity.cs @@ -8,7 +8,7 @@ using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using System.Collections.ObjectModel; -namespace Subsurface +namespace Barotrauma { class MapEntity : Entity { diff --git a/Subsurface/Source/Map/MapEntityPrefab.cs b/Subsurface/Source/Map/MapEntityPrefab.cs index 946ec34b4..f553214ff 100644 --- a/Subsurface/Source/Map/MapEntityPrefab.cs +++ b/Subsurface/Source/Map/MapEntityPrefab.cs @@ -5,7 +5,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; -namespace Subsurface +namespace Barotrauma { class MapEntityPrefab { diff --git a/Subsurface/Source/Map/Md5Hash.cs b/Subsurface/Source/Map/Md5Hash.cs index c91579662..ff01bac91 100644 --- a/Subsurface/Source/Map/Md5Hash.cs +++ b/Subsurface/Source/Map/Md5Hash.cs @@ -4,7 +4,7 @@ using System.Text; using System.Text.RegularExpressions; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { public class Md5Hash { diff --git a/Subsurface/Source/Map/Structure.cs b/Subsurface/Source/Map/Structure.cs index cbff2b873..601872dbf 100644 --- a/Subsurface/Source/Map/Structure.cs +++ b/Subsurface/Source/Map/Structure.cs @@ -10,10 +10,10 @@ using FarseerPhysics.Factories; using Lidgren.Network; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using Subsurface.Networking; -using Subsurface.Lights; +using Barotrauma.Networking; +using Barotrauma.Lights; -namespace Subsurface +namespace Barotrauma { class WallSection { diff --git a/Subsurface/Source/Map/StructurePrefab.cs b/Subsurface/Source/Map/StructurePrefab.cs index 978801100..fb6cd0848 100644 --- a/Subsurface/Source/Map/StructurePrefab.cs +++ b/Subsurface/Source/Map/StructurePrefab.cs @@ -6,7 +6,7 @@ using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using System.Collections.Generic; -namespace Subsurface +namespace Barotrauma { class StructurePrefab : MapEntityPrefab { diff --git a/Subsurface/Source/Map/Submarine.cs b/Subsurface/Source/Map/Submarine.cs index 1b6da89a9..063f7014e 100644 --- a/Subsurface/Source/Map/Submarine.cs +++ b/Subsurface/Source/Map/Submarine.cs @@ -5,7 +5,7 @@ using FarseerPhysics.Dynamics; using Lidgren.Network; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using Subsurface.Items.Components; +using Barotrauma.Items.Components; using System; using System.Collections.Generic; using System.IO; @@ -13,7 +13,7 @@ using System.Linq; using System.Reflection; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { public enum Direction : byte { @@ -516,11 +516,17 @@ namespace Subsurface } catch { - DebugConsole.ThrowError("Couldn't load submarine ''" + file + "! (Unrecognized file extension)"); - return null; + //no file extension specified: try using the default one + file += ".sub"; } - if (extension == ".gz") + if (string.IsNullOrWhiteSpace(extension)) + { + extension = ".sub"; + file += ".sub"; + } + + if (extension == ".sub") { Stream stream = SaveUtil.DecompressFiletoStream(file); if (stream == null) @@ -580,8 +586,7 @@ namespace Subsurface Type t; try { - // Get the type of a specified class. - t = Type.GetType("Subsurface." + typeName, true, true); + t = Type.GetType("Barotrauma." + typeName, true, true); if (t == null) { DebugConsole.ThrowError("Error in " + filePath + "! Could not find a entity of the type ''" + typeName + "''."); diff --git a/Subsurface/Source/Map/SubmarineHull.cs b/Subsurface/Source/Map/SubmarineHull.cs index b313f4068..9beddb331 100644 --- a/Subsurface/Source/Map/SubmarineHull.cs +++ b/Subsurface/Source/Map/SubmarineHull.cs @@ -12,7 +12,7 @@ using System.Linq; using System.Text; using Voronoi2; -namespace Subsurface +namespace Barotrauma { class SubmarineBody { diff --git a/Subsurface/Source/Map/WaterRenderer.cs b/Subsurface/Source/Map/WaterRenderer.cs index 27718c5ed..94b5ed0e7 100644 --- a/Subsurface/Source/Map/WaterRenderer.cs +++ b/Subsurface/Source/Map/WaterRenderer.cs @@ -3,7 +3,7 @@ using System.IO; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -namespace Subsurface +namespace Barotrauma { class WaterRenderer : IDisposable { diff --git a/Subsurface/Source/Map/WayPoint.cs b/Subsurface/Source/Map/WayPoint.cs index 416acebd8..25442fdc5 100644 --- a/Subsurface/Source/Map/WayPoint.cs +++ b/Subsurface/Source/Map/WayPoint.cs @@ -8,7 +8,7 @@ using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using System.Collections.ObjectModel; -namespace Subsurface +namespace Barotrauma { public enum SpawnType { None, Human, Enemy, Cargo }; class WayPoint : MapEntity diff --git a/Subsurface/Source/Networking/GameClient.cs b/Subsurface/Source/Networking/GameClient.cs index e03f4b567..a048500e0 100644 --- a/Subsurface/Source/Networking/GameClient.cs +++ b/Subsurface/Source/Networking/GameClient.cs @@ -4,7 +4,7 @@ using Lidgren.Network; using Microsoft.Xna.Framework; using System.Collections.Generic; -namespace Subsurface.Networking +namespace Barotrauma.Networking { class GameClient : NetworkMember { diff --git a/Subsurface/Source/Networking/GameServer.cs b/Subsurface/Source/Networking/GameServer.cs index b611b4d6b..3f9ba9755 100644 --- a/Subsurface/Source/Networking/GameServer.cs +++ b/Subsurface/Source/Networking/GameServer.cs @@ -6,7 +6,7 @@ using Lidgren.Network; using Microsoft.Xna.Framework; using RestSharp; -namespace Subsurface.Networking +namespace Barotrauma.Networking { class GameServer : NetworkMember { @@ -1002,6 +1002,15 @@ namespace Subsurface.Networking } } + //share the rest of the jobs according to the ''commonness'' of the job + float totalCommonness = 0.0f; + for (int i = 0; i < JobPrefab.List.Count; i++) + { + if (JobPrefab.List[i].AllowAlways || JobPrefab.List[i].MaxNumber == 0) continue; + + totalCommonness += JobPrefab.List[i].Commonness; + } + for (int preferenceIndex = 0; preferenceIndex < 3; preferenceIndex++) { for (int i = unassigned.Count - 1; i >= 0; i--) @@ -1018,7 +1027,7 @@ namespace Subsurface.Networking } } - //UpdateNetLobby(null); + UpdateNetLobby(null); } diff --git a/Subsurface/Source/Networking/NetConfig.cs b/Subsurface/Source/Networking/NetConfig.cs index 7034986d6..c9eb500a0 100644 --- a/Subsurface/Source/Networking/NetConfig.cs +++ b/Subsurface/Source/Networking/NetConfig.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; -namespace Subsurface.Networking +namespace Barotrauma.Networking { static class NetConfig { diff --git a/Subsurface/Source/Networking/NetworkEvent.cs b/Subsurface/Source/Networking/NetworkEvent.cs index 6cc1420f5..8e1595605 100644 --- a/Subsurface/Source/Networking/NetworkEvent.cs +++ b/Subsurface/Source/Networking/NetworkEvent.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using Lidgren.Network; -namespace Subsurface.Networking +namespace Barotrauma.Networking { enum NetworkEventType { diff --git a/Subsurface/Source/Networking/NetworkMember.cs b/Subsurface/Source/Networking/NetworkMember.cs index dfaac9fb6..a283e3e40 100644 --- a/Subsurface/Source/Networking/NetworkMember.cs +++ b/Subsurface/Source/Networking/NetworkMember.cs @@ -4,7 +4,7 @@ using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using System.Collections.Generic; -namespace Subsurface.Networking +namespace Barotrauma.Networking { enum PacketTypes { diff --git a/Subsurface/Source/Particles/Particle.cs b/Subsurface/Source/Particles/Particle.cs index 643fefdbf..75ea43ef8 100644 --- a/Subsurface/Source/Particles/Particle.cs +++ b/Subsurface/Source/Particles/Particle.cs @@ -4,7 +4,7 @@ using Microsoft.Xna.Framework.Graphics; using System; using System.Collections.Generic; -namespace Subsurface.Particles +namespace Barotrauma.Particles { class Particle { diff --git a/Subsurface/Source/Particles/ParticleEmitter.cs b/Subsurface/Source/Particles/ParticleEmitter.cs index d2e3cea6b..99b97ab0b 100644 --- a/Subsurface/Source/Particles/ParticleEmitter.cs +++ b/Subsurface/Source/Particles/ParticleEmitter.cs @@ -3,7 +3,7 @@ using Microsoft.Xna.Framework; using FarseerPhysics; using System; -namespace Subsurface.Particles +namespace Barotrauma.Particles { class ParticleEmitterPrefab { diff --git a/Subsurface/Source/Particles/ParticleManager.cs b/Subsurface/Source/Particles/ParticleManager.cs index 08291162b..750ccfdf1 100644 --- a/Subsurface/Source/Particles/ParticleManager.cs +++ b/Subsurface/Source/Particles/ParticleManager.cs @@ -5,7 +5,7 @@ using FarseerPhysics; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -namespace Subsurface.Particles +namespace Barotrauma.Particles { class ParticleManager { diff --git a/Subsurface/Source/Particles/ParticlePrefab.cs b/Subsurface/Source/Particles/ParticlePrefab.cs index 40abed125..d505b3131 100644 --- a/Subsurface/Source/Particles/ParticlePrefab.cs +++ b/Subsurface/Source/Particles/ParticlePrefab.cs @@ -2,7 +2,7 @@ using Microsoft.Xna.Framework; using FarseerPhysics; -namespace Subsurface.Particles +namespace Barotrauma.Particles { class ParticlePrefab { diff --git a/Subsurface/Source/Physics/Physics.cs b/Subsurface/Source/Physics/Physics.cs index 472f80e5f..90e44be4e 100644 --- a/Subsurface/Source/Physics/Physics.cs +++ b/Subsurface/Source/Physics/Physics.cs @@ -2,7 +2,7 @@ using FarseerPhysics.Dynamics; using Microsoft.Xna.Framework; -namespace Subsurface +namespace Barotrauma { static class Physics { diff --git a/Subsurface/Source/Physics/PhysicsBody.cs b/Subsurface/Source/Physics/PhysicsBody.cs index f97ee93b6..05a916536 100644 --- a/Subsurface/Source/Physics/PhysicsBody.cs +++ b/Subsurface/Source/Physics/PhysicsBody.cs @@ -5,11 +5,11 @@ using FarseerPhysics.Factories; using Lidgren.Network; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using Subsurface.Networking; +using Barotrauma.Networking; using System.Collections.Generic; using System; -namespace Subsurface +namespace Barotrauma { class PhysicsBody { diff --git a/Subsurface/Source/PlayerInput.cs b/Subsurface/Source/PlayerInput.cs index 0eca9b249..abd1fcdf1 100644 --- a/Subsurface/Source/PlayerInput.cs +++ b/Subsurface/Source/PlayerInput.cs @@ -1,7 +1,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Input; -namespace Subsurface +namespace Barotrauma { public enum InputType diff --git a/Subsurface/Source/Program.cs b/Subsurface/Source/Program.cs index dca120a86..42e2511b7 100644 --- a/Subsurface/Source/Program.cs +++ b/Subsurface/Source/Program.cs @@ -12,7 +12,7 @@ using System.Windows.Forms; #endregion -namespace Subsurface +namespace Barotrauma { #if WINDOWS || LINUX /// diff --git a/Subsurface/Source/Properties.cs b/Subsurface/Source/Properties.cs index c6aed3039..21503aa68 100644 --- a/Subsurface/Source/Properties.cs +++ b/Subsurface/Source/Properties.cs @@ -8,7 +8,7 @@ using System.Xml.Linq; using System.ComponentModel; -namespace Subsurface +namespace Barotrauma { [AttributeUsage(AttributeTargets.Property)] public class Editable : System.Attribute diff --git a/Subsurface/Source/Screens/EditCharacterScreen.cs b/Subsurface/Source/Screens/EditCharacterScreen.cs index faffba83e..f2bc7b006 100644 --- a/Subsurface/Source/Screens/EditCharacterScreen.cs +++ b/Subsurface/Source/Screens/EditCharacterScreen.cs @@ -6,7 +6,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using System.Collections.Generic; -namespace Subsurface +namespace Barotrauma { class EditCharacterScreen : Screen { diff --git a/Subsurface/Source/Screens/EditMapScreen.cs b/Subsurface/Source/Screens/EditMapScreen.cs index ef124abe9..57611e69e 100644 --- a/Subsurface/Source/Screens/EditMapScreen.cs +++ b/Subsurface/Source/Screens/EditMapScreen.cs @@ -3,7 +3,7 @@ using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using System; -namespace Subsurface +namespace Barotrauma { class EditMapScreen : Screen { diff --git a/Subsurface/Source/Screens/GameScreen.cs b/Subsurface/Source/Screens/GameScreen.cs index 1069506b6..04da3ef86 100644 --- a/Subsurface/Source/Screens/GameScreen.cs +++ b/Subsurface/Source/Screens/GameScreen.cs @@ -2,10 +2,10 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; -using Subsurface.Lights; +using Barotrauma.Lights; using System.Diagnostics; -namespace Subsurface +namespace Barotrauma { class GameScreen : Screen { @@ -288,7 +288,7 @@ namespace Subsurface Submarine.DrawFront(spriteBatch); - GameMain.GameSession?.Level?.Draw(spriteBatch); + if (Level.Loaded!=null) Level.Loaded.Draw(spriteBatch); spriteBatch.End(); diff --git a/Subsurface/Source/Screens/LobbyScreen.cs b/Subsurface/Source/Screens/LobbyScreen.cs index 0ca926800..4241a7ee2 100644 --- a/Subsurface/Source/Screens/LobbyScreen.cs +++ b/Subsurface/Source/Screens/LobbyScreen.cs @@ -6,7 +6,7 @@ using Microsoft.Xna.Framework.Graphics; using System; using System.Collections.Generic; -namespace Subsurface +namespace Barotrauma { class LobbyScreen : Screen { diff --git a/Subsurface/Source/Screens/MainMenuScreen.cs b/Subsurface/Source/Screens/MainMenuScreen.cs index ed7e51ae3..09ce8d636 100644 --- a/Subsurface/Source/Screens/MainMenuScreen.cs +++ b/Subsurface/Source/Screens/MainMenuScreen.cs @@ -1,10 +1,10 @@ using System; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using Subsurface.Networking; +using Barotrauma.Networking; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { class MainMenuScreen : Screen { diff --git a/Subsurface/Source/Screens/NetLobbyScreen.cs b/Subsurface/Source/Screens/NetLobbyScreen.cs index 625464bf3..fc4e7a22e 100644 --- a/Subsurface/Source/Screens/NetLobbyScreen.cs +++ b/Subsurface/Source/Screens/NetLobbyScreen.cs @@ -2,14 +2,14 @@ using Lidgren.Network; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using Subsurface.Networking; +using Barotrauma.Networking; using FarseerPhysics; using FarseerPhysics.Factories; using FarseerPhysics.Dynamics; using System.IO; using System.Collections.Generic; -namespace Subsurface +namespace Barotrauma { class NetLobbyScreen : Screen { diff --git a/Subsurface/Source/Screens/Screen.cs b/Subsurface/Source/Screens/Screen.cs index e0a8268ab..be828a21a 100644 --- a/Subsurface/Source/Screens/Screen.cs +++ b/Subsurface/Source/Screens/Screen.cs @@ -1,6 +1,6 @@ using Microsoft.Xna.Framework.Graphics; -namespace Subsurface +namespace Barotrauma { class Screen { diff --git a/Subsurface/Source/Screens/ServerListScreen.cs b/Subsurface/Source/Screens/ServerListScreen.cs index d1a691daa..92a30889d 100644 --- a/Subsurface/Source/Screens/ServerListScreen.cs +++ b/Subsurface/Source/Screens/ServerListScreen.cs @@ -2,7 +2,7 @@ using Lidgren.Network; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using Subsurface.Networking; +using Barotrauma.Networking; using FarseerPhysics; using FarseerPhysics.Factories; using FarseerPhysics.Dynamics; @@ -10,7 +10,7 @@ using System.IO; using System.Collections.Generic; using RestSharp; -namespace Subsurface +namespace Barotrauma { class ServerListScreen : Screen { diff --git a/Subsurface/Source/Screens/SettingsScreen.cs b/Subsurface/Source/Screens/SettingsScreen.cs index f11ec0174..f905e8e17 100644 --- a/Subsurface/Source/Screens/SettingsScreen.cs +++ b/Subsurface/Source/Screens/SettingsScreen.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; -namespace Subsurface +namespace Barotrauma { class SettingsScreen : Screen { diff --git a/Subsurface/Source/Sounds/AmbientSoundManager.cs b/Subsurface/Source/Sounds/AmbientSoundManager.cs index b563b86e6..f633735ea 100644 --- a/Subsurface/Source/Sounds/AmbientSoundManager.cs +++ b/Subsurface/Source/Sounds/AmbientSoundManager.cs @@ -5,10 +5,10 @@ using System.Xml.Linq; using FarseerPhysics; using FarseerPhysics.Dynamics; using Microsoft.Xna.Framework; -using Subsurface.Sounds; +using Barotrauma.Sounds; using System.Collections.Generic; -namespace Subsurface +namespace Barotrauma { public enum DamageSoundType { None, diff --git a/Subsurface/Source/Sounds/OggSound.cs b/Subsurface/Source/Sounds/OggSound.cs index 775a6aa8b..b06d320b8 100644 --- a/Subsurface/Source/Sounds/OggSound.cs +++ b/Subsurface/Source/Sounds/OggSound.cs @@ -2,7 +2,7 @@ using NVorbis; using OpenTK.Audio.OpenAL; -namespace Subsurface.Sounds +namespace Barotrauma.Sounds { class OggSound : IDisposable { diff --git a/Subsurface/Source/Sounds/OggStream.cs b/Subsurface/Source/Sounds/OggStream.cs index ae4be34ae..efcdd56a6 100644 --- a/Subsurface/Source/Sounds/OggStream.cs +++ b/Subsurface/Source/Sounds/OggStream.cs @@ -7,7 +7,7 @@ using System.Threading; using NVorbis; using OpenTK.Audio.OpenAL; -namespace Subsurface.Sounds +namespace Barotrauma.Sounds { internal static class ALHelper { diff --git a/Subsurface/Source/Sounds/Sound.cs b/Subsurface/Source/Sounds/Sound.cs index 80da381f0..cf7fdccd6 100644 --- a/Subsurface/Source/Sounds/Sound.cs +++ b/Subsurface/Source/Sounds/Sound.cs @@ -4,9 +4,9 @@ using System.IO; using FarseerPhysics; using FarseerPhysics.Dynamics; using Microsoft.Xna.Framework; -using Subsurface.Sounds; +using Barotrauma.Sounds; -namespace Subsurface +namespace Barotrauma { public class Sound { diff --git a/Subsurface/Source/Sounds/SoundManager.cs b/Subsurface/Source/Sounds/SoundManager.cs index 8fcd7c96e..7943c820a 100644 --- a/Subsurface/Source/Sounds/SoundManager.cs +++ b/Subsurface/Source/Sounds/SoundManager.cs @@ -6,7 +6,7 @@ using OpenTK.Audio; using System; -namespace Subsurface.Sounds +namespace Barotrauma.Sounds { static class SoundManager { diff --git a/Subsurface/Source/Sprite.cs b/Subsurface/Source/Sprite.cs index 9ab714479..ceb73925d 100644 --- a/Subsurface/Source/Sprite.cs +++ b/Subsurface/Source/Sprite.cs @@ -5,7 +5,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { public class Sprite { diff --git a/Subsurface/Source/Utils/MathUtils.cs b/Subsurface/Source/Utils/MathUtils.cs index 50c993542..9c355344f 100644 --- a/Subsurface/Source/Utils/MathUtils.cs +++ b/Subsurface/Source/Utils/MathUtils.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; -namespace Subsurface +namespace Barotrauma { static class MathUtils { diff --git a/Subsurface/Source/Utils/Rand.cs b/Subsurface/Source/Utils/Rand.cs index a564feb9f..e62bcd7cf 100644 --- a/Subsurface/Source/Utils/Rand.cs +++ b/Subsurface/Source/Utils/Rand.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; -namespace Subsurface +namespace Barotrauma { static class Rand { diff --git a/Subsurface/Source/Utils/SaveUtil.cs b/Subsurface/Source/Utils/SaveUtil.cs index c73ea070c..d1a0a7e92 100644 --- a/Subsurface/Source/Utils/SaveUtil.cs +++ b/Subsurface/Source/Utils/SaveUtil.cs @@ -6,7 +6,7 @@ using System.Linq; using System.Text; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { public class SaveUtil { @@ -32,11 +32,11 @@ namespace Subsurface { if (Submarine.Loaded!=null) { - Submarine.Loaded.SaveAs(Path.Combine(tempPath, "map.gz")); + Submarine.Loaded.SaveAs(Path.Combine(tempPath, "map.sub")); } else { - File.Copy(GameMain.GameSession.Submarine.FilePath, Path.Combine(tempPath, "map.gz")); + File.Copy(GameMain.GameSession.Submarine.FilePath, Path.Combine(tempPath, "map.sub")); } } catch (Exception e) @@ -72,7 +72,7 @@ namespace Subsurface DecompressToDirectory(filePath, tempPath, null); - Submarine selectedMap = new Submarine(Path.Combine(tempPath, "map.gz"), "");// Submarine.Load(); + Submarine selectedMap = new Submarine(Path.Combine(tempPath, "map.sub"), "");// Submarine.Load(); GameMain.GameSession = new GameSession(selectedMap, fileName, Path.Combine(tempPath, "gamesession.xml")); //Directory.Delete(tempPath, true); diff --git a/Subsurface/Source/Utils/TextureLoader.cs b/Subsurface/Source/Utils/TextureLoader.cs index 63cddbe7d..79b0f17a7 100644 --- a/Subsurface/Source/Utils/TextureLoader.cs +++ b/Subsurface/Source/Utils/TextureLoader.cs @@ -6,7 +6,7 @@ using Color = Microsoft.Xna.Framework.Color; using System; using Microsoft.Xna.Framework; -namespace Subsurface +namespace Barotrauma { /// /// Based on http://jakepoz.com/jake_poznanski__background_load_xna.html diff --git a/Subsurface/Source/Utils/ToolBox.cs b/Subsurface/Source/Utils/ToolBox.cs index dd36e51b4..bf8abcf2c 100644 --- a/Subsurface/Source/Utils/ToolBox.cs +++ b/Subsurface/Source/Utils/ToolBox.cs @@ -8,7 +8,7 @@ using System.Text; using System.Xml; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { public static class ToolBox { diff --git a/Subsurface/Source/Utils/UpdaterUtil.cs b/Subsurface/Source/Utils/UpdaterUtil.cs index 0c6fabbcc..97f11f4e0 100644 --- a/Subsurface/Source/Utils/UpdaterUtil.cs +++ b/Subsurface/Source/Utils/UpdaterUtil.cs @@ -6,7 +6,7 @@ using System.Security.Cryptography; using System.Text; using System.Xml.Linq; -namespace Subsurface +namespace Barotrauma { public static class UpdaterUtil { diff --git a/Subsurface_Solution.sln b/Subsurface_Solution.sln index d1bf602ec..bacafb288 100644 --- a/Subsurface_Solution.sln +++ b/Subsurface_Solution.sln @@ -1,9 +1,9 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.23107.0 +# Visual Studio 2013 +VisualStudioVersion = 12.0.21005.1 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Subsurface", "Subsurface\Subsurface.csproj", "{008C0F83-E914-4966-9135-EA885059EDD8}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Barotrauma", "Subsurface\Barotrauma.csproj", "{008C0F83-E914-4966-9135-EA885059EDD8}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Subsurface_contentContent", "Subsurface_content\Subsurface_contentContent\Subsurface_contentContent.contentproj", "{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}" EndProject diff --git a/Subsurface_Solution.v12.suo b/Subsurface_Solution.v12.suo index e0e3c5377b13c9ebd49637793494cebf56e0b612..a716f1b7d0a262cae39d6a6d634a0f09f6590060 100644 GIT binary patch delta 19709 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