Esempio n. 1
0
 private void Awake()
 {
     if (!logoManager)
     {
         logoManager = FindObjectOfType <PlayerLogoManager>();
     }
 }
 private void Start()
 {
     if (!logoManager)
     {
         logoManager = FindObjectOfType <PlayerLogoManager>();
     }
     if (!audioSource)
     {
         audioSource = GetComponent <AudioSource>();
     }
     HideRaidInfo();
 }
Esempio n. 3
0
    // Start is called before the first frame update
    void Start()
    {
        if (!dropEventManager)
        {
            dropEventManager = GetComponent <DropEventManager>();
        }
        if (!ferryProgress)
        {
            ferryProgress = FindObjectOfType <FerryProgress>();
        }
        if (!gameCamera)
        {
            gameCamera = FindObjectOfType <GameCamera>();
        }

        if (!playerLogoManager)
        {
            playerLogoManager = GetComponent <PlayerLogoManager>();
        }
        if (!villageManager)
        {
            villageManager = FindObjectOfType <VillageManager>();
        }

        if (!settings)
        {
            settings = GetComponent <GameSettings>();
        }
        if (!subEventManager)
        {
            subEventManager = GetComponent <TwitchEventManager>();
        }
        if (!subEventManager)
        {
            subEventManager = gameObject.AddComponent <TwitchEventManager>();
        }

        if (!commandServer)
        {
            commandServer = GetComponent <CommandServer>();
        }
        if (!islandManager)
        {
            islandManager = GetComponent <IslandManager>();
        }
        if (!itemManager)
        {
            itemManager = GetComponent <ItemManager>();
        }
        if (!playerManager)
        {
            playerManager = GetComponent <PlayerManager>();
        }
        if (!chunkManager)
        {
            chunkManager = GetComponent <ChunkManager>();
        }
        if (!craftingManager)
        {
            craftingManager = GetComponent <CraftingManager>();
        }
        if (!raidManager)
        {
            raidManager = GetComponent <RaidManager>();
        }
        if (!streamRaidManager)
        {
            streamRaidManager = GetComponent <StreamRaidManager>();
        }
        if (!arenaController)
        {
            arenaController = FindObjectOfType <ArenaController>();
        }

        if (!ferryController)
        {
            ferryController = FindObjectOfType <FerryController>();
        }
        if (!musicManager)
        {
            musicManager = GetComponent <MusicManager>();
        }

        RegisterGameEventHandler <ItemAddEventHandler>(GameEventType.ItemAdd);
        RegisterGameEventHandler <ResourceUpdateEventHandler>(GameEventType.ResourceUpdate);
        RegisterGameEventHandler <ServerMessageEventHandler>(GameEventType.ServerMessage);

        RegisterGameEventHandler <VillageInfoEventHandler>(GameEventType.VillageInfo);
        RegisterGameEventHandler <VillageLevelUpEventHandler>(GameEventType.VillageLevelUp);

        RegisterGameEventHandler <PlayerRemoveEventHandler>(GameEventType.PlayerRemove);
        RegisterGameEventHandler <PlayerAddEventHandler>(GameEventType.PlayerAdd);
        RegisterGameEventHandler <PlayerExpUpdateEventHandler>(GameEventType.PlayerExpUpdate);
        RegisterGameEventHandler <PlayerJoinArenaEventHandler>(GameEventType.PlayerJoinArena);
        RegisterGameEventHandler <PlayerJoinDungeonEventHandler>(GameEventType.PlayerJoinDungeon);
        RegisterGameEventHandler <PlayerJoinRaidEventHandler>(GameEventType.PlayerJoinRaid);
        RegisterGameEventHandler <PlayerNameUpdateEventHandler>(GameEventType.PlayerNameUpdate);
        RegisterGameEventHandler <PlayerTaskEventHandler>(GameEventType.PlayerTask);


        RegisterGameEventHandler <StreamerWarRaidEventHandler>(GameEventType.WarRaid);
        RegisterGameEventHandler <StreamerRaidEventHandler>(GameEventType.Raid);
        RegisterGameEventHandler <PlayerAppearanceEventHandler>(GameEventType.PlayerAppearance);
        RegisterGameEventHandler <ItemBuyEventHandler>(GameEventType.ItemBuy);
        RegisterGameEventHandler <ItemSellEventHandler>(GameEventType.ItemSell);

        commandServer.StartServer(this);
        musicManager.PlayBackgroundMusic();
    }
    public void SetAppearance(SyntyAppearance appearance, Action onReady)
    {
        ResetAppearance();

        if (!logoManager)
        {
            logoManager = FindObjectOfType <PlayerLogoManager>();
        }
        if (!player)
        {
            player = GetComponent <PlayerController>();
        }

        var props = GetType().GetFields(BindingFlags.Public | BindingFlags.Instance).ToDictionary(x => x.Name, x => x);

        foreach (var prop in appearance
                 .GetType()
                 .GetProperties(BindingFlags.Public | BindingFlags.Instance))
        {
            if (props.TryGetValue(prop.Name, out var p))
            {
                var valueToSet = prop.GetValue(appearance);
                try
                {
                    if (p.FieldType == typeof(Color))
                    {
                        p.SetValue(this, GetColorFromHex(valueToSet?.ToString()));
                    }
                    else
                    {
                        p.SetValue(this, valueToSet);
                    }
                }
                catch (Exception exc)
                {
                    Debug.LogError(exc.ToString());
                }
            }
        }

        if (this.player.Clan.InClan)
        {
            logoManager.GetLogo(
                this.player.Clan.ClanInfo.Owner,
                this.player.Clan.Logo, logo =>
            {
                UpdateAppearance(logo);
                Optimize();
                if (onReady != null)
                {
                    onReady();
                }
            });
        }
        else
        {
            UpdateAppearance();
            Optimize();
            if (onReady != null)
            {
                onReady();
            }
        }
    }