예제 #1
0
    public void SelectPlayer(LA2Char pl)
    {
        foreach (var kv in SM.playerActorManager.playerProperties)
        {
            if (kv.Key == pl)
            {
                if (kv.Value.isSelected)
                {
                    return;
                }
                else
                {
                    kv.Value.isSelected = true;
                }
            }
            else if (kv.Value.isSelected)
            {
                kv.Value.isSelected = false;
            }
        }

        ClearUserSelection();
        ClearNpcSelection();

        SelectionChangedEvent?.Invoke();
    }
예제 #2
0
 private void RemovePlayer(LA2Char pl)
 {
     _actionQueue.Enqueue(() =>
     {
         var pp = playerProperties[pl];
         Destroy(pp.gameObject);
         playerProperties.Remove(pl);
     });
 }
예제 #3
0
 private void AddPlayer(LA2Char pl)
 {
     playerProperties.Add(pl, new ActorProperties());
     {
         _actionQueue.Enqueue(() =>
         {
             var newActor     = Instantiate(PlayerActorPrefab, WorldUtils.L2ToUnityCoords(pl.X, pl.Y, 0), WorldUtils.ActorDefaultRotation());
             var pas          = newActor.GetComponent <PlayerActorScript>();
             pas.player       = pl;
             pl.ExpiredEvent += RemovePlayer;
             var pp           = playerProperties[pl];
             pp.gameObject    = newActor;
             pp.actorScript   = pas;
         });
     }
 }