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(); }
private void RemovePlayer(LA2Char pl) { _actionQueue.Enqueue(() => { var pp = playerProperties[pl]; Destroy(pp.gameObject); playerProperties.Remove(pl); }); }
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; }); } }