Files
LuaCsForBarotraumaEP/Barotrauma/BarotraumaShared/Source/Events/Missions/MonsterMission.cs
T
juanjp600 4d225c65f2 Updated to MonoGame 3.6 + Directory refactor
- Barotrauma's projects are in the Barotrauma directory
- All libraries are in the Libraries directory
- MonoGame is now managed by NuGet, rather than referenced from the installed files (TODO: consider using PCL for easier cross-platform development?)
- NuGet libraries are not included in the repo, as getting the latest versions automatically should be preferred
- Removed Content/effects.mgfx as it didn't seem to be used anywhere
- Removed some references to Subsurface directory
- Renamed Launcher2 to Launcher
2017-06-27 09:52:57 -03:00

67 lines
1.6 KiB
C#

using Barotrauma.Networking;
using Microsoft.Xna.Framework;
using System;
using System.Xml.Linq;
namespace Barotrauma
{
class MonsterMission : Mission
{
private string monsterFile;
private int state;
private Character monster;
private Vector2 radarPosition;
public override Vector2 RadarPosition
{
get { return monster != null && !monster.IsDead ? radarPosition : Vector2.Zero; }
}
public MonsterMission(XElement element, Location[] locations)
: base(element, locations)
{
monsterFile = ToolBox.GetAttributeString(element, "monsterfile", "");
}
public override void Start(Level level)
{
Vector2 spawnPos = Level.Loaded.GetRandomInterestingPosition(true, Level.PositionType.MainPath, true);
monster = Character.Create(monsterFile, spawnPos, null, GameMain.Client != null);
monster.Enabled = false;
radarPosition = spawnPos;
}
public override void Update(float deltaTime)
{
switch (state)
{
case 0:
if (monster.Enabled)
{
radarPosition = monster.Position;
}
if (!monster.IsDead) return;
#if CLIENT
ShowMessage(state);
#endif
state = 1;
break;
}
}
public override void End()
{
if (!monster.IsDead) return;
GiveReward();
completed = true;
}
}
}