private void SetAnimationState(NetworkCharacterSyncer syncer)
 {
     if (syncer.type == NetworkCharacterSyncerType.player)
     {
         syncer.worldState.AnimationState       = new AnimationState();
         syncer.worldState.AnimationState.State = GetPlayerAnimationState(syncer);
     }
     else
     {
         var controller = syncer.GetComponent <MonsterAnimationController>();
         if (syncer.worldState.AnimationState == null)
         {
             syncer.worldState.AnimationState = new AnimationState();
         }
         if (controller.attacking)
         {
             syncer.worldState.AnimationState.State = "attacking";
         }
         else if (controller.moving)
         {
             syncer.worldState.AnimationState.State = "moving";
         }
         else
         {
             syncer.worldState.AnimationState.State = "idle";
         }
     }
 }
 private void SetVisibility(NetworkCharacterSyncer syncer)
 {
     //if (syncer.type == NetworkCharacterSyncerType.player) syncer.worldState.IsVisible = true;
     //else if (Hider.instance.IsSeen(syncer.GetComponent<Hideable>())) syncer.worldState.IsVisible = true;
     //else syncer.worldState.IsVisible = false;
     syncer.worldState.IsVisible = true; // temp for now until I add a way to cull things hidden by walls
 }
 private void SetHealthAndStatus(NetworkCharacterSyncer syncer)
 {
     syncer.worldState.HealthAndStatus = new HealthAndStatus();
     if (syncer.type == NetworkCharacterSyncerType.player)
     {
         syncer.worldState.HealthAndStatus.Level = syncer.GetComponent <ExperienceGainer>().level;
     }
     else
     {
         syncer.worldState.HealthAndStatus.Level = syncer.GetComponent <MonsterScaler>().level;
     }
     syncer.worldState.HealthAndStatus.Hp    = (int)syncer.GetComponent <Health>().hp;
     syncer.worldState.HealthAndStatus.MaxHp = (int)syncer.GetComponent <Health>().maxHP;
 }
 private string GetPlayerAnimationState(NetworkCharacterSyncer syncer)
 {
     if (syncer.GetComponent <Health>().hp <= 0)
     {
         return("dead");
     }
     else if (syncer.GetComponent <InputController>().moving)
     {
         return("moving");
     }
     else
     {
         return("idle");
     }
 }
 private void SetModelData(NetworkCharacterSyncer syncer)
 {
     if (syncer.type == NetworkCharacterSyncerType.player)
     {
         syncer.worldState.ModelData = new ModelData();
         syncer.worldState.ModelData.PlayerAppearance         = new PlayerAppearanceData();
         syncer.worldState.ModelData.PlayerAppearance.FurType = syncer.GetComponent <PlayerSyncer>().furType;
     }
     else
     {
         syncer.worldState.ModelData = new ModelData();
         syncer.worldState.ModelData.MonsterPrefab            = new MonsterPrefabData();
         syncer.worldState.ModelData.MonsterPrefab.PrefabName = syncer.gameObject.name.Replace(" (Clone)", "");
     }
 }