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); }
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]); } } }
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); }
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]); } } }
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++; } }
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); } } }