Round summary screen, GUIMessageBoxes disable other UI elements, renamed quests as missions

This commit is contained in:
Regalis11
2015-12-23 22:18:02 +02:00
parent c7e7b3909f
commit b2d5704f7e
22 changed files with 357 additions and 153 deletions
@@ -1,14 +1,9 @@
using FarseerPhysics;
using Microsoft.Xna.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using System.Xml.Linq;
namespace Barotrauma
{
class MonsterQuest : Quest
class MonsterMission : Mission
{
private string monsterFile;
@@ -21,7 +16,7 @@ namespace Barotrauma
get { return monster.Position; }
}
public MonsterQuest(XElement element)
public MonsterMission(XElement element)
: base(element)
{
monsterFile = ToolBox.GetAttributeString(element, "monsterfile", "");
@@ -48,12 +43,8 @@ namespace Barotrauma
public override void End()
{
if (!monster.IsDead)
{
new GUIMessageBox("Quest failed", failureMessage);
return;
}
if (!monster.IsDead) return;
GiveReward();
completed = true;
+27 -22
View File
@@ -3,16 +3,15 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Xml.Linq;
namespace Barotrauma
{
class Quest
class Mission
{
private static List<Quest> list = new List<Quest>();
private static List<Mission> list = new List<Mission>();
private static string configFile = "Content/Quests.xml";
private static string configFile = "Content/Missions.xml";
private string name;
@@ -60,7 +59,17 @@ namespace Barotrauma
get { return Vector2.Zero; }
}
public Quest(XElement element)
public string SuccessMessage
{
get { return successMessage; }
}
public string FailureMessage
{
get { return failureMessage; }
}
public Mission(XElement element)
{
name = ToolBox.GetAttributeString(element, "name", "");
@@ -68,8 +77,10 @@ namespace Barotrauma
reward = ToolBox.GetAttributeInt(element, "reward", 1);
successMessage = ToolBox.GetAttributeString(element, "successmessage", "");
failureMessage = ToolBox.GetAttributeString(element, "failuremessage", "");
successMessage = ToolBox.GetAttributeString(element, "successmessage",
"Mission completed successfully");
failureMessage = ToolBox.GetAttributeString(element, "failuremessage",
"Mission failed");
radarLabel = ToolBox.GetAttributeString(element, "radarlabel", "");
@@ -83,7 +94,7 @@ namespace Barotrauma
}
}
public static Quest LoadRandom(Location[] locations, Random rand)
public static Mission LoadRandom(Location[] locations, Random rand)
{
XDocument doc = ToolBox.TryLoadXml(configFile);
if (doc == null) return null;
@@ -119,32 +130,32 @@ namespace Barotrauma
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 + "''.");
DebugConsole.ThrowError("Error in " + configFile + "! Could not find a mission class of the type ''" + type + "''.");
continue;
}
}
catch
{
DebugConsole.ThrowError("Error in " + configFile + "! Could not find a an event class of the type ''" + type + "''.");
DebugConsole.ThrowError("Error in " + configFile + "! Could not find a mission class of the type ''" + type + "''.");
continue;
}
ConstructorInfo constructor = t.GetConstructor(new[] { typeof(XElement) });
object instance = constructor.Invoke(new object[] { element });
Quest quest = (Quest)instance;
Mission mission = (Mission)instance;
for (int n = 0; n<2; n++)
{
quest.description = quest.description.Replace("[location"+(n+1)+"]", locations[n].Name);
mission.description = mission.description.Replace("[location"+(n+1)+"]", locations[n].Name);
quest.successMessage = quest.successMessage.Replace("[location" + (n + 1) + "]", locations[n].Name);
quest.failureMessage = quest.failureMessage.Replace("[location" + (n + 1) + "]", locations[n].Name);
mission.successMessage = mission.successMessage.Replace("[location" + (n + 1) + "]", locations[n].Name);
mission.failureMessage = mission.failureMessage.Replace("[location" + (n + 1) + "]", locations[n].Name);
}
return quest;
return mission;
}
randomNumber -= eventProbability[i];
@@ -168,9 +179,8 @@ namespace Barotrauma
}
/// <summary>
/// End the quest and give a reward if it was completed successfully
/// End the mission and give a reward if it was completed successfully
/// </summary>
/// <returns>whether the quest was completed or not</returns>
public virtual void End()
{
completed = true;
@@ -180,11 +190,6 @@ namespace Barotrauma
public void GiveReward()
{
if (!string.IsNullOrWhiteSpace(successMessage))
{
new GUIMessageBox("Quest completed successfully", successMessage);
}
var mode = GameMain.GameSession.gameMode as SinglePlayerMode;
if (mode == null) return;
@@ -8,7 +8,7 @@ using System.Xml.Linq;
namespace Barotrauma
{
class SalvageQuest : Quest
class SalvageMission : Mission
{
private ItemPrefab itemPrefab;
@@ -24,7 +24,7 @@ namespace Barotrauma
}
}
public SalvageQuest(XElement element)
public SalvageMission(XElement element)
: base(element)
{
string itemName = ToolBox.GetAttributeString(element, "itemname", "");
@@ -33,7 +33,7 @@ namespace Barotrauma
if (itemPrefab == null)
{
DebugConsole.ThrowError("Error in salvagequest: couldn't find an item prefab with the name "+itemName);
DebugConsole.ThrowError("Error in SalvageMission: couldn't find an item prefab with the name "+itemName);
}
}
@@ -91,11 +91,7 @@ namespace Barotrauma
public override void End()
{
item.Remove();
if (item.CurrentHull == null)
{
new GUIMessageBox("Quest failed", failureMessage);
return;
}
if (item.CurrentHull == null) return;
GiveReward();