public void Refresh(int total_officer_count_)
        {
#if OFFICER_SYS
            m_officers_grid.EnsureSize <EventGameOfficerDispatchItemView>(total_officer_count_);

            for (int i = 0; i < m_officers_grid.ChildCount; ++i)
            {
                m_officers_grid.GetChild <EventGameOfficerDispatchItemView>(i).Init(i);
                m_officers_grid.GetChild <EventGameOfficerDispatchItemView>(i).Visible = true;
            }
#endif

            ConfEvent event_data = ConfEvent.Get(CurViewLogic().Event_id);

            m_vit_cost_num_txt.Text = event_data.vitConsume.ToString();

            HashSet <long> keywords = new HashSet <long>();

            foreach (var phase_id in event_data.phases)
            {
                var phase = ConfEventPhase.Get(phase_id);

                foreach (var key_id in phase.keyWords)
                {
                    keywords.Add(key_id);
                }
            }

            m_keywords_grid.EnsureSize <EventGameKeywordItemView>(keywords.Count);

            int gi = 0;
            foreach (var item in keywords)
            {
                m_keywords_grid.GetChild <EventGameKeywordItemView>(gi).Refresh(gi, item);
                m_keywords_grid.GetChild <EventGameKeywordItemView>(gi).Visible = true;
                ++gi;
            }

            m_event_icon.Sprite    = ConfEventAttribute.Get(event_data.type).icon;
            m_event_name.Text      = LocalizeModule.Instance.GetString(event_data.name);
            m_event_desc.Text      = LocalizeModule.Instance.GetString(event_data.descs);
            m_case_name.Text       = LocalizeModule.Instance.GetString(ConfEventAttribute.Get(event_data.type).name);
            m_case_tex.TextureName = event_data.sceneInfo;


            m_normal_cash_txt.Text  = event_data.coinGain.ToString();
            m_perfect_cash_txt.Text = event_data.cashGain.ToString();
        }
示例#2
0
        public static void GetFeedBackAndDialogue(long officer_id_, long phase_id_, int valuation_, out string feedback_, out string dialogue_)
        {
            officer_id_ = 0 == officer_id_ ? 101 : officer_id_;
            string temp_feedback = 0 == valuation_?ConfEventPhase.Get(phase_id_).normaFeedback : ConfEventPhase.Get(phase_id_).successFeedback;

            string temp_dialogue = 0 == valuation_?ConfEventPhase.Get(phase_id_).normalDialogue : ConfEventPhase.Get(phase_id_).successDialogue;

            string officer_name = LocalizeModule.Instance.GetString(ConfOfficer.Get(officer_id_).name);

            feedback_ = LocalizeModule.Instance.GetString(temp_feedback);

            feedback_ = ExchangeKeyWords(feedback_, officer_name);

            dialogue_ = LocalizeModule.Instance.GetString(temp_dialogue);

            dialogue_ = ExchangeKeyWords(dialogue_, officer_name);
        }
        private void NextStep()
        {
            if (false == this.Visible)
            {
                return;
            }

            PhaseInfo info_ = m_phases.Dequeue();

            if (null == info_)
            {
                this.GetReward();
                return;
            }

            Dictionary <UBSParamKeyName, object> _params = new Dictionary <UBSParamKeyName, object>()
            {
                { UBSParamKeyName.Success, info_.Perfect ? 1 : 0 },
                { UBSParamKeyName.ContentID, CurViewLogic().Event_id },
                { UBSParamKeyName.PhaseID, info_.PhaseTemplateId },
                { UBSParamKeyName.OfficerID, info_.OfficerTemplateId }
            };

            UserBehaviorStatisticsModules.Instance.LogEvent(UBSEventKeyName.event_Phase, null, _params);

            m_desc_root.Visible = false;

            m_case_txt.Text = LocalizeModule.Instance.GetString(ConfEventPhase.Get(info_.PhaseTemplateId).descs);

            Action OnCase = () => PlayCase(info_.PhaseTemplateId);
            Action OnTalk = () =>
            {
                PlayTalk(info_.OfficerTemplateId, info_.PhaseTemplateId, false == info_.Perfect ? 0 : 1);
                AddScore(m_cur_score, m_cur_score - info_.PhaseScore);
            };

            Action OnEndPhase = () =>
            {
                m_case_root.Visible = false;
            };

            Action OnNext = () =>
            {
                //if (0 != m_phases.Count)
                //    TimeModule.Instance.SetTimeout(NextStep, C_TWEEN_TIME + 0.5f);
                //else
                //    TimeModule.Instance.SetTimeout(GetReward, C_TWEEN_TIME + 0.5f);

                if (0 != m_phases.Count)
                {
                    NextStep();
                }
                else
                {
                    GetReward();
                }
            };

            TimeModule.Instance.SetTimeout(OnCase, C_TWEEN_TIME);
            TimeModule.Instance.SetTimeout(OnTalk, C_TWEEN_TIME + 0.5f);
            TimeModule.Instance.SetTimeout(OnEndPhase, C_TWEEN_TIME + 2.5f);
            TimeModule.Instance.SetTimeout(OnNext, C_TWEEN_TIME + 3.5f);
        }