public override void WriteXML(XElement ele, ElderScrollsPlugin master) { XElement subEle; if (StageFlags != null) { ele.TryPathTo("StageFlags", true, out subEle); StageFlags.WriteXML(subEle, master); } if (Conditions != null) { ele.TryPathTo("Conditions", true, out subEle); foreach (var entry in Conditions) { XElement newEle = new XElement("Condition"); entry.WriteXML(newEle, master); subEle.Add(newEle); } } if (LogEntry != null) { ele.TryPathTo("LogEntry", true, out subEle); LogEntry.WriteXML(subEle, master); } if (Script != null) { ele.TryPathTo("Script", true, out subEle); Script.WriteXML(subEle, master); } if (NextQuest != null) { ele.TryPathTo("NextQuest", true, out subEle); NextQuest.WriteXML(subEle, master); } }
public override void WriteBinary(ESPWriter writer) { if (StageFlags != null) { StageFlags.WriteBinary(writer); } if (Conditions != null) { foreach (var item in Conditions) { item.WriteBinary(writer); } } if (LogEntry != null) { LogEntry.WriteBinary(writer); } if (Script != null) { Script.WriteBinary(writer); } if (NextQuest != null) { NextQuest.WriteBinary(writer); } }
// Start is called before the first frame update void Start() { if (DebugMode) { sf = StageFlags.AllSF; } else { //ステージのクリアデータを取得 string data = "STAGE_FLAG_" + WorldNum.ToString(); sf = (StageFlags)PlayerPrefs.GetInt(data, 0); Debug.Log("データ名:" + data); } //動かすコンポネ取得 SSCM = SSCursor.GetComponent <CursorMove>(); //フェードパネルとUIの親取得 FadeObj = GameObject.Find("FadePanel").GetComponent <FadeManager>(); //無条件解放 stages[NowSelStage].GetComponent <StaUnl>().SetUnlockFlg(true); stages[NowSelStage].GetComponent <StaUnl>().OpenAnim(); SSCM.transform.position = stages[NowSelStage].transform.position; //ステージ名設定 StageNumText.text = WorldNum.ToString() + " ー " + (NowSelStage + 1).ToString(); StageNameText.text = stages[NowSelStage].GetComponent <StaUnl>().GetStageName(); //サウンド Source = GetComponent <AudioSource>(); }
public override void ReadXML(XElement ele, ElderScrollsPlugin master) { XElement subEle; if (ele.TryPathTo("StageFlags", false, out subEle)) { if (StageFlags == null) { StageFlags = new SimpleSubrecord <QuestStageFlags>(); } StageFlags.ReadXML(subEle, master); } if (ele.TryPathTo("Conditions", false, out subEle)) { if (Conditions == null) { Conditions = new List <Condition>(); } foreach (XElement e in subEle.Elements()) { Condition temp = new Condition(); temp.ReadXML(e, master); Conditions.Add(temp); } } if (ele.TryPathTo("LogEntry", false, out subEle)) { if (LogEntry == null) { LogEntry = new SimpleSubrecord <String>(); } LogEntry.ReadXML(subEle, master); } if (ele.TryPathTo("Script", false, out subEle)) { if (Script == null) { Script = new EmbeddedScript(); } Script.ReadXML(subEle, master); } if (ele.TryPathTo("NextQuest", false, out subEle)) { if (NextQuest == null) { NextQuest = new RecordReference(); } NextQuest.ReadXML(subEle, master); } }
public override void ReadBinary(ESPReader reader) { List <string> readTags = new List <string>(); while (reader.BaseStream.Position < reader.BaseStream.Length) { string subTag = reader.PeekTag(); switch (subTag) { case "QSDT": if (readTags.Contains("QSDT")) { return; } if (StageFlags == null) { StageFlags = new SimpleSubrecord <QuestStageFlags>(); } StageFlags.ReadBinary(reader); break; case "CTDA": if (Conditions == null) { Conditions = new List <Condition>(); } Condition tempCTDA = new Condition(); tempCTDA.ReadBinary(reader); Conditions.Add(tempCTDA); break; case "CNAM": if (readTags.Contains("CNAM")) { return; } if (LogEntry == null) { LogEntry = new SimpleSubrecord <String>(); } LogEntry.ReadBinary(reader); break; case "SCHR": if (readTags.Contains("SCHR")) { return; } Script.ReadBinary(reader); break; case "NAM0": if (readTags.Contains("NAM0")) { return; } if (NextQuest == null) { NextQuest = new RecordReference(); } NextQuest.ReadBinary(reader); break; default: return; } readTags.Add(subTag); } }
//クリアフラグとアンロックフラグのチェック private void FlgCheck(StageFlags sf) { //Stage_1クリア済み if ((sf & StageFlags.Stage_1) == StageFlags.Stage_1) { stages[0].GetComponent <StaUnl>().SetClearFlg(true); stages[1].GetComponent <StaUnl>().SetUnlockFlg(true); } else { stages[0].GetComponent <StaUnl>().SetClearFlg(false); stages[1].GetComponent <StaUnl>().SetUnlockFlg(false); } //Stage_2クリア済み if ((sf & StageFlags.Stage_2) == StageFlags.Stage_2) { stages[1].GetComponent <StaUnl>().SetClearFlg(true); stages[2].GetComponent <StaUnl>().SetUnlockFlg(true); } else { stages[1].GetComponent <StaUnl>().SetClearFlg(false); stages[2].GetComponent <StaUnl>().SetUnlockFlg(false); } //Stage_3クリア済み if ((sf & StageFlags.Stage_3) == StageFlags.Stage_3) { stages[2].GetComponent <StaUnl>().SetClearFlg(true); stages[3].GetComponent <StaUnl>().SetUnlockFlg(true); } else { stages[2].GetComponent <StaUnl>().SetClearFlg(false); stages[3].GetComponent <StaUnl>().SetUnlockFlg(false); } if (WorldNum != 1) { //Stage_4クリア済み if ((sf & StageFlags.Stage_4) == StageFlags.Stage_4) { stages[3].GetComponent <StaUnl>().SetClearFlg(true); stages[4].GetComponent <StaUnl>().SetUnlockFlg(true); } else { stages[3].GetComponent <StaUnl>().SetClearFlg(false); stages[4].GetComponent <StaUnl>().SetUnlockFlg(false); } //Stage_5クリア済み if ((sf & StageFlags.Stage_5) == StageFlags.Stage_5) { stages[4].GetComponent <StaUnl>().SetClearFlg(true); } else { stages[4].GetComponent <StaUnl>().SetClearFlg(false); } } else { //ワールド1専用 Stage_4クリア済み if ((sf & StageFlags.Stage_4) == StageFlags.Stage_4) { stages[3].GetComponent <StaUnl>().SetClearFlg(true); } else { stages[3].GetComponent <StaUnl>().SetClearFlg(false); } } }
public bool HasFlag(StageFlags flag) { return(Flags.HasFlag(flag)); }