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);
     }
 }
示例#3
0
    // 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);
            }
        }
示例#6
0
    //クリアフラグとアンロックフラグのチェック
    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);
            }
        }
    }
示例#7
0
文件: Stage.cs 项目: splerp/change
 public bool HasFlag(StageFlags flag)
 {
     return(Flags.HasFlag(flag));
 }