Exemplo n.º 1
0
        void OnGetMissionData(SendActiveMissionMessage sendActiveMissionMessage)
        {
            var missionData = sendActiveMissionMessage.MissionData;

            if (missionData.ClientData == null)
            {
                Debug.LogWarning("RequirementUI missionData is null");
                return;
            }

            requiredStylepoints    = $"/{missionData.StylePointValues.MinStylePoints.ToString()}";
            requirementHeader.text = $"{missionData.ClientData.name}s requirements:";
            stylePoints.text       = $"0{requiredStylepoints}";
            foreach (var client in clientGameObjects)
            {
                client.SetActive(client.name == missionData.ClientData.name);
            }

            clientSkin.material = missionData.ClientData.Skin;
            foreach (var requirement in missionData.Requirements)
            {
                var temp = Instantiate(requirementTMPTextPrefab, requirementTextParent);
                temp.text = requirement.ToString();
                requirements.Add(requirement.ToString(), temp);
            }

            EventBroker.Instance().SubscribeMessage <RequirementUIMessage>(UpdateRequirementUI);
            EventBroker.Instance().SubscribeMessage <CurrentStylePointsMessage>(UpdateStylePointsUI);
            EventBroker.Instance().UnsubscribeMessage <SendActiveMissionMessage>(OnGetMissionData);
        }
        void OnGetMissionData(SendActiveMissionMessage missionMessage)
        {
            if (missionMessage.MissionData.ClientData == null)
            {
                Debug.Log("No missionData");
                EventBroker.Instance().UnsubscribeMessage <SendActiveMissionMessage>(OnGetMissionData);
                return;
            }

            wearablesOnClient = missionMessage.CurrentWearables;
            EventBroker.Instance().SubscribeMessage <EventClothesChanged>(OnClothingChanged);
            EventBroker.Instance().SubscribeMessage <RemoveAllClothes>(OnReset);
            EventBroker.Instance().UnsubscribeMessage <SendActiveMissionMessage>(OnGetMissionData);

            activeMissionData = missionMessage.MissionData;
            requirements      = activeMissionData.Requirements.ToList();
            parentGameObject.SetActive(true);
            Invoke(nameof(CheckRequirements), 0.1f);
        }