Implemented more of the Guildleve Director. Correct script is now autoloaded based on leveplate. Players are now added to the contentgroup on leve start. Moved animation and stuff to C# side of things. Cleaned up code.

This commit is contained in:
Filip Maj
2017-06-25 14:25:54 -04:00
parent c42f1a08de
commit 875b76634a
9 changed files with 292 additions and 55 deletions

View File

@@ -17,6 +17,7 @@ namespace FFXIVClassic_Map_Server.actors.director
private string directorScriptPath;
private List<Actor> members = new List<Actor>();
private bool isCreated = false;
private bool isDeleted = false;
private Script directorScript;
private Coroutine currentCoroutine;
@@ -26,6 +27,7 @@ namespace FFXIVClassic_Map_Server.actors.director
{
directorId = id;
this.zone = zone;
this.zoneId = zone.actorId;
directorScriptPath = directorPath;
LoadLuaScript();
@@ -111,10 +113,25 @@ namespace FFXIVClassic_Map_Server.actors.director
}
}
if (this is GuildleveDirector)
((GuildleveDirector)this).LoadGuildleve();
StartCoroutine("mainLoop", this);
StartCoroutine("main", this);
}
public void EndDirector()
{
if (this is GuildleveDirector)
((GuildleveDirector)this).EndGuildleveDirector();
List<Actor> players = GetPlayerMembers();
foreach (Actor player in players)
((Player)player).RemoveDirector(this);
members.Clear();
isDeleted = true;
Server.GetWorldManager().GetZone(zoneId).DeleteDirector(actorId);
}
public void AddMember(Actor actor)
{
if (!members.Contains(actor))
@@ -124,15 +141,7 @@ namespace FFXIVClassic_Map_Server.actors.director
public void RemoveMember(Actor actor)
{
if (members.Contains(actor))
members.Remove(actor);
if (members.Count == 0)
Server.GetWorldManager().GetZone(zoneId).DeleteDirector(actorId);
}
public void RemoveMembers()
{
members.Clear();
Server.GetWorldManager().GetZone(zoneId).DeleteDirector(actorId);
members.Remove(actor);
}
public List<Actor> GetMembers()
@@ -155,6 +164,11 @@ namespace FFXIVClassic_Map_Server.actors.director
return isCreated;
}
public bool IsDeleted()
{
return isDeleted;
}
public void GenerateActorName(int actorNumber)
{
//Format Class Name