コード例 #1
0
        public MyMissionTriggers TryCreateFromDefault(MyPlayer.PlayerId newId, bool overwrite = false)
        {
            MyMissionTriggers source;

            if (overwrite)
            {
                MissionTriggers.Remove(newId);
            }
            else
            if (MissionTriggers.TryGetValue(newId, out source)) //(MissionTriggers.ContainsKey(newId))
            {
                return(source);                                 //already exists, thats ok for us
            }
            MyMissionTriggers mtrig = new MyMissionTriggers();

            MissionTriggers.Add(newId, mtrig);

            MissionTriggers.TryGetValue(MyMissionTriggers.DefaultPlayerId, out source);
            if (source == null)
            {
                //older save which does not have defaults set
                source = new MyMissionTriggers();
                MySessionComponentMissionTriggers.Static.MissionTriggers.Add(MyMissionTriggers.DefaultPlayerId, source);
            }
            mtrig.CopyTriggersFrom(source);
            m_someoneWon = false;
            return(mtrig);
        }
コード例 #2
0
        private void SaveData()
        {
            //delete everyone else's triggers, they will be copied from defaults as needed
            MySessionComponentMission.Static.MissionTriggers.Clear();
            //create defaults:
            MyMissionTriggers triggers;

            //if (!MySessionComponentMission.Static.MissionTriggers.TryGetValue(m_defaultId, out triggers))
            //{
            //Debug.Fail("Triggers don't exist");
            //return;
            triggers = new MyMissionTriggers();
            MySessionComponentMission.Static.MissionTriggers.Add(MyMissionTriggers.DefaultPlayerId, triggers);
            //}
            //triggers.WinTriggers.Clear();
            //triggers.LoseTriggers.Clear();
            for (int i = 0; i < 6; i++)
            {
                if (m_winTrigger[i] != null)
                {
                    triggers.WinTriggers.Add(m_winTrigger[i]);
                }
                if (m_loseTrigger[i] != null)
                {
                    triggers.LoseTriggers.Add(m_loseTrigger[i]);
                }
            }
        }
コード例 #3
0
        public void TryCreateFromDefault(MyPlayer.PlayerId newId, bool overwrite = false)
        {
            if (overwrite)
            {
                MissionTriggers.Remove(newId);
            }
            else
            if (MissionTriggers.ContainsKey(newId))
            {
                return;    //already exists, thats ok for us
            }
            MyMissionTriggers mtrig = new MyMissionTriggers();

            MissionTriggers.Add(newId, mtrig);

            MyMissionTriggers source;

            MissionTriggers.TryGetValue(MyMissionTriggers.DefaultPlayerId, out source);
            if (source == null)
            {
                //older save which does not have defaults set
                return;
            }
            mtrig.CopyTriggersFrom(source);
        }
コード例 #4
0
        private void SaveData()
        {
            MyMissionTriggers triggers;

            if (!MySessionComponentMission.Static.MissionTriggers.TryGetValue(m_defaultId, out triggers))
            {
                //Debug.Fail("Triggers don't exist");
                //return;
                triggers = new MyMissionTriggers();
                MySessionComponentMission.Static.MissionTriggers.Add(m_defaultId, triggers);
            }
            triggers.WinTriggers.Clear();
            triggers.LoseTriggers.Clear();
            for (int i = 0; i < 6; i++)
            {
                if (m_winTrigger[i] != null)
                {
                    triggers.WinTriggers.Add(m_winTrigger[i]);
                }
                if (m_loseTrigger[i] != null)
                {
                    triggers.LoseTriggers.Add(m_loseTrigger[i]);
                }
            }
        }
コード例 #5
0
        private void SetDefaultValues()
        {
            //triggers:
            MyMissionTriggers triggers;

            if (!MySessionComponentMissionTriggers.Static.MissionTriggers.TryGetValue(MyMissionTriggers.DefaultPlayerId, out triggers))
            {
                triggers = new MyMissionTriggers();
                MySessionComponentMissionTriggers.Static.MissionTriggers.Add(MyMissionTriggers.DefaultPlayerId, triggers);
                //Debug.Fail("Triggers do not exist");
                return;
            }
            int combo = 0;

            foreach (var trg in triggers.WinTriggers)
            {
                for (int i = 0; i < m_winCombo[combo].GetItemsCount(); i++)
                {
                    var item = m_winCombo[combo].GetItemByIndex(i);
                    if (item.Key == trg.GetType().GetHashCode())
                    {
                        m_winCombo[combo].ItemSelected -= OnWinComboSelect;
                        m_winCombo[combo].SelectItemByIndex(i);
                        m_winCombo[combo].ItemSelected += OnWinComboSelect;
                        m_winTrigger[combo]             = (MyTrigger)trg.Clone();
                        m_winButton[combo].Enabled      = true;
                        break;
                    }
                    m_winButton[combo].Enabled = false;
                }
                combo++;
            }

            combo = 0;
            foreach (var trg in triggers.LoseTriggers)
            {
                for (int i = 0; i < m_loseCombo[combo].GetItemsCount(); i++)
                {
                    var item = m_loseCombo[combo].GetItemByIndex(i);
                    if (item.Key == trg.GetType().GetHashCode())
                    {
                        m_loseCombo[combo].ItemSelected -= OnLoseComboSelect;
                        m_loseCombo[combo].SelectItemByIndex(i);
                        m_loseCombo[combo].ItemSelected += OnLoseComboSelect;
                        m_loseTrigger[combo]             = (MyTrigger)trg.Clone();
                        m_loseButton[combo].Enabled      = true;
                        break;
                    }
                    m_loseButton[combo].Enabled = false;
                }
                combo++;
            }
        }
コード例 #6
0
 public void Load(MyObjectBuilder_SessionComponentMission obj)
 {
     MissionTriggers.Clear();
     if (obj != null && obj.Triggers != null)
     {
         foreach (var trigger in obj.Triggers.Dictionary)
         {
             var id       = new MyPlayer.PlayerId(trigger.Key.stm, trigger.Key.ser);
             var triggers = new MyMissionTriggers(trigger.Value);
             MissionTriggers.Add(id, triggers);
         }
     }
 }