(84593b8fb) Fixed: Oxygen levels of the patient on the submarine being adjusted too late

This commit is contained in:
Joonas Rikkonen
2019-05-23 15:08:27 +03:00
parent 6e47589ae2
commit 1fb558d7ef
8 changed files with 25 additions and 48 deletions
@@ -401,18 +401,6 @@ namespace Barotrauma
GameMain.CharacterEditorScreen.Select(); GameMain.CharacterEditorScreen.Select();
})); }));
commands.Add(new Command("money", "", args =>
{
if (args.Length == 0) { return; }
if (GameMain.GameSession.GameMode is CampaignMode campaign)
{
if (int.TryParse(args[0], out int money))
{
campaign.Money += money;
}
}
}, isCheat: true));
AssignRelayToServer("kick", false); AssignRelayToServer("kick", false);
AssignRelayToServer("kickid", false); AssignRelayToServer("kickid", false);
AssignRelayToServer("ban", false); AssignRelayToServer("ban", false);
@@ -1353,7 +1353,7 @@ namespace Barotrauma
bool hasLeaks = Character.Controlled.CurrentHull.Submarine != null && Character.Controlled.CurrentHull.ConnectedGaps.Any(g => !g.IsRoomToRoom && g.Open > 0.0f); bool hasLeaks = Character.Controlled.CurrentHull.Submarine != null && Character.Controlled.CurrentHull.ConnectedGaps.Any(g => !g.IsRoomToRoom && g.Open > 0.0f);
ToggleReportButton("reportbreach", hasLeaks); ToggleReportButton("reportbreach", hasLeaks);
bool hasIntruders = Character.CharacterList.Any(c => c.CurrentHull == Character.Controlled.CurrentHull && AIObjectiveFightIntruders.IsValidTarget(c, Character.Controlled)); bool hasIntruders = Character.CharacterList.Any(c => c.CurrentHull == Character.Controlled.CurrentHull && AIObjectiveFightIntruders.IsValidTarget(Character.Controlled, c));
ToggleReportButton("reportintruders", hasIntruders); ToggleReportButton("reportintruders", hasIntruders);
foreach (GUIComponent reportButton in reportButtonFrame.Children) foreach (GUIComponent reportButton in reportButtonFrame.Children)
@@ -364,6 +364,10 @@ namespace Barotrauma.Tutorials
{ {
yield return new WaitForSeconds(1.0f, false); yield return new WaitForSeconds(1.0f, false);
} }
subPatients[2].Oxygen = -50;
CoroutineManager.StartCoroutine(KeepPatientAlive(subPatients[2]), "KeepPatient3Alive");
yield return new WaitForSeconds(5.0f, false); yield return new WaitForSeconds(5.0f, false);
GameMain.GameSession.CrewManager.AddSinglePlayerChatMessage(radioSpeakerName, TextManager.Get("Doctor.Radio.EnteredSub"), ChatMessageType.Radio, null); GameMain.GameSession.CrewManager.AddSinglePlayerChatMessage(radioSpeakerName, TextManager.Get("Doctor.Radio.EnteredSub"), ChatMessageType.Radio, null);
@@ -376,8 +380,6 @@ namespace Barotrauma.Tutorials
patient.AIController.Enabled = true; patient.AIController.Enabled = true;
SetHighlight(patient, true); SetHighlight(patient, true);
} }
subPatients[2].Oxygen = -50;
CoroutineManager.StartCoroutine(KeepPatientAlive(subPatients[2]), "KeepPatient3Alive");
double subEnterTime = Timing.TotalTime; double subEnterTime = Timing.TotalTime;
@@ -454,15 +454,9 @@
<Content Include="$(MSBuildThisFileDirectory)Content\Items\Jobgear\Watchman\watchman_gear.xml"> <Content Include="$(MSBuildThisFileDirectory)Content\Items\Jobgear\Watchman\watchman_gear.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
<Content Include="$(MSBuildThisFileDirectory)Content\Items\Jobgear\Watchman\watchman_legs_female_2.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="$(MSBuildThisFileDirectory)Content\Items\Jobgear\Watchman\watchman_legs_male_2.png"> <Content Include="$(MSBuildThisFileDirectory)Content\Items\Jobgear\Watchman\watchman_legs_male_2.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
<Content Include="$(MSBuildThisFileDirectory)Content\Items\Jobgear\Watchman\watchman_torso_female_2.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="$(MSBuildThisFileDirectory)Content\Items\Jobgear\Watchman\watchman_torso_male_2.png"> <Content Include="$(MSBuildThisFileDirectory)Content\Items\Jobgear\Watchman\watchman_torso_male_2.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
@@ -321,13 +321,11 @@ namespace Barotrauma
if (c.CurrentHull != hull) { continue; } if (c.CurrentHull != hull) { continue; }
if (AIObjectiveRescueAll.IsValidTarget(c, Character)) if (AIObjectiveRescueAll.IsValidTarget(c, Character))
{ {
if (AddTargets<AIObjectiveRescueAll, Character>(c, Character)) AddTargets<AIObjectiveRescueAll, Character>(c, Character);
if (newOrder == null)
{ {
if (newOrder == null) var orderPrefab = Order.PrefabList.Find(o => o.AITag == "requestfirstaid");
{ newOrder = new Order(orderPrefab, c.CurrentHull, null, orderGiver: Character);
var orderPrefab = Order.PrefabList.Find(o => o.AITag == "requestfirstaid");
newOrder = new Order(orderPrefab, c.CurrentHull, null, orderGiver: Character);
}
} }
} }
} }
@@ -21,7 +21,6 @@ namespace Barotrauma
public bool AddTarget(T target) public bool AddTarget(T target)
{ {
if (character.IsDead) { return false; }
if (ReportedTargets.Contains(target)) if (ReportedTargets.Contains(target))
{ {
return false; return false;
@@ -10,17 +10,7 @@ namespace Barotrauma
private const float vitalityThreshold = 0.8f; private const float vitalityThreshold = 0.8f;
private const float vitalityThresholdForOrders = 0.95f; private const float vitalityThresholdForOrders = 0.95f;
public static float GetVitalityThreshold(AIObjectiveManager manager) public static float GetVitalityThreshold(AIObjectiveManager manager) => manager.CurrentOrder is AIObjectiveRescueAll ? vitalityThresholdForOrders : vitalityThreshold;
{
if (manager == null)
{
return vitalityThreshold;
}
else
{
return manager.CurrentOrder is AIObjectiveRescueAll ? vitalityThresholdForOrders : vitalityThreshold;
}
}
public AIObjectiveRescueAll(Character character, AIObjectiveManager objectiveManager, float priorityModifier = 1) public AIObjectiveRescueAll(Character character, AIObjectiveManager objectiveManager, float priorityModifier = 1)
: base(character, objectiveManager, priorityModifier) { } : base(character, objectiveManager, priorityModifier) { }
@@ -45,14 +35,8 @@ namespace Barotrauma
{ {
if (target == null || target.IsDead || target.Removed) { return false; } if (target == null || target.IsDead || target.Removed) { return false; }
if (!HumanAIController.IsFriendly(character, target)) { return false; } if (!HumanAIController.IsFriendly(character, target)) { return false; }
if (character.AIController is HumanAIController humanAI) if (!(character.AIController is HumanAIController humanAI)) { return false; }
{ if (target.Bleeding < 1 && target.Vitality / target.MaxVitality > GetVitalityThreshold(humanAI.ObjectiveManager)) { return false; }
if (target.Bleeding < 1 && target.Vitality / target.MaxVitality > GetVitalityThreshold(humanAI.ObjectiveManager)) { return false; }
}
else
{
if (target.Bleeding < 1 && target.Vitality / target.MaxVitality > vitalityThreshold) { return false; }
}
if (target.Submarine == null) { return false; } if (target.Submarine == null) { return false; }
if (target.Submarine.TeamID != character.Submarine.TeamID) { return false; } if (target.Submarine.TeamID != character.Submarine.TeamID) { return false; }
if (target.CurrentHull == null) { return false; } if (target.CurrentHull == null) { return false; }
@@ -615,7 +615,7 @@ namespace Barotrauma
NewMessage(Hull.EditWater ? "Water editing on" : "Water editing off", Color.White); NewMessage(Hull.EditWater ? "Water editing on" : "Water editing off", Color.White);
}, isCheat: true)); }, isCheat: true));
commands.Add(new Command("eventmanager", "eventmanager: Toggle event manager on/off. No new random events are created when the event manager is disabled.", (string[] args) => commands.Add(new Command("fire|editfire", "fire/editfire: Allows putting up fires by left clicking.", (string[] args) =>
{ {
Hull.EditFire = !Hull.EditFire; Hull.EditFire = !Hull.EditFire;
NewMessage(Hull.EditFire ? "Fire spawning on" : "Fire spawning off", Color.White); NewMessage(Hull.EditFire ? "Fire spawning on" : "Fire spawning off", Color.White);
@@ -988,6 +988,18 @@ namespace Barotrauma
#endif #endif
NewMessage("Set packet duplication to " + (int)(duplicates * 100) + "%.", Color.White); NewMessage("Set packet duplication to " + (int)(duplicates * 100) + "%.", Color.White);
})); }));
commands.Add(new Command("money", "", args =>
{
if (args.Length == 0) { return; }
if (GameMain.GameSession.GameMode is CampaignMode campaign)
{
if (int.TryParse(args[0], out int money))
{
campaign.Money += money;
}
}
}, isCheat: true));
#endif #endif
//"dummy commands" that only exist so that the server can give clients permissions to use them //"dummy commands" that only exist so that the server can give clients permissions to use them