Пример #1
0
    private void SpawnMission()
    {
        int randomNumber     = Random.Range(0, 1000);
        int randomStartIndex = randomNumber % missionPoints.Count;

        randomNumber = Random.Range(0, 1000);
        int randomEndIndex = randomNumber % missionPoints.Count;

        while (randomEndIndex == randomStartIndex)
        {
            randomNumber   = Random.Range(0, 1000);
            randomEndIndex = randomNumber % missionPoints.Count;
        }

        missionBeginObject = missionPoints[randomStartIndex];
        missionEndObject   = missionPoints[randomEndIndex];

        if (missionIndicatorInstance == null)
        {
            missionIndicatorInstance = Instantiate(missionIndicator,
                                                   missionBeginObject.missionSpawnPoint.transform.position,
                                                   missionIndicator.transform.rotation);
        }
        else
        {
            missionIndicatorInstance.transform.position = missionBeginObject
                                                          .missionSpawnPoint.transform.position;
        }

        missionBeginValidated = false;
        missionEndValidated   = false;
    }
Пример #2
0
    /// <summary>
    /// 根据配置数据找到对应位置的显示对象数据
    /// </summary>

/*
 *      public MissionPoint getPointInfoByLoc (int[] loc)
 *      {
 *              foreach (MissionPoint info in pointList) {
 *                      if (info.loc [0] == loc [0] && info.loc [1] == loc [1])
 *                              return info;
 *              }
 *              return null;
 *      }
 */

    public void createAllPointInfo()
    {
        pointList = new List <MissionPoint> ();

        pointData = MissionInfoManager.Instance.mission.points;
        int mapId = MissionInfoManager.Instance.mission.getPlayerPoint().getMapId();

        //遍历所有id;
        for (int i = 0; i < pointData.Length; i++)
        {
            if (pointData [i].getMapId() != mapId)
            {
                continue;
            }

            //已经有该id,不再制作点位
            bool repy = false;
            foreach (MissionPoint info in pointList)
            {
                if (info.loc [0] == pointData [i].getPointLoction() [0] && info.loc [1] == pointData [i].getPointLoction() [1])
                {
                    pointData [i].PointInfo = info;
                    repy = true;
                    break;
                }
            }
            if (repy == true)
            {
                continue;
            }

            MissionPoint pointInfo = new MissionPoint();
            pointInfo.loc = pointData [i].getPointLoction();

            //0,0就随机玩,一般策划不会配0,0
            if (pointInfo.loc [0] == 0 && pointInfo.loc [1] == 0)
            {
                drawPoint.localPosition = new Vector3(Random.Range(50, 2000), 0, Random.Range(50, 2000));
            }
            else
            {
                drawPoint.localPosition = new Vector3(pointInfo.loc [0], 0, pointInfo.loc [1]);
            }
            pointInfo.woldPos       = drawPoint.position;
            pointInfo.localPosition = drawPoint.localPosition;
            pointInfo.pointIndex    = i;
            pointData [i].PointInfo = pointInfo;
            pointList.Add(pointInfo);
        }
    }
Пример #3
0
    /** 试炼跑到终点后做的事情 */
    void moveArriveByPractice()
    {
        changeState(fuben_characterState.stand);
        MissionPointInfo point = MissionInfoManager.Instance.mission.GetPlayerNextPoint();              //获取下个节点的逻辑信息

        if (point == null)
        {
            return;
        }
        MissionPoint info = point.PointInfo;

        if (info != null && info.eventObj != null)
        {
            Destroy(info.eventObj.gameObject);
        }
    }
Пример #4
0
        /// <summary>
        /// 从列表中删除最后一个
        /// </summary>
        public void removeMissionPoint(object sender, EventArgs e)
        {
            //找到最近一次的mp和与之对应的btn
            if (mps.Count > 0)
            {
                MissionPoint mp = mps[mps.Count - 1];
                mps.Remove(mp);

                //文字信息改为整体刷新
                string info = "";
                foreach (MissionPoint temp in mps)
                {
                    info += ((Button)xw_btn[temp.no]).Text + " " + (temp.isVibrate ? "振动" : "一一") + "  " + temp.time / 60 + " 分钟\r\n";
                }
                lblMission.Text = info;
            }
        }
Пример #5
0
        public static MissionPoint FindMissionByKey(string missionpointkey)
        {
            if (missionpointinfo_list == null || missionpointinfo_list.Count == 0)
            {
                return(null);
            }
            MissionPoint rmissionpoint = null;

            foreach (MissionPoint missionpoint in missionpointinfo_list)
            {
                if (missionpoint.key.CompareTo(missionpointkey) == 0)
                {
                    rmissionpoint = missionpoint;
                    break;
                }
            }
            return(rmissionpoint);
        }
Пример #6
0
        // Use this for initialization
        void Start()
        {
            LoadingData.LoadItem();

            Utilities.DebugLog("LoadingData.GetTabCount " + LoadingData.GetTabCount(LoadingData.table_equipment));
            BlackSmithAddition getback          = LoadingData.FindBlackSmithAdditionByKey(blacksmithfindkey);
            Equipment          getback2         = LoadingData.FindEquipmentInfoByKey(equipmentfindkey);
            GameMaterial       getback3         = LoadingData.FindMaterialByKey(materialfindkey);
            MissionPoint       missionpointback = LoadingData.FindMissionByKey(missionpointfindkey);
            Stage   stageback   = LoadingData.FindStageByKey(stagefindkey);
            Alchemy alchemyback = LoadingData.FindAlchemyByKey(alchemyfindkey);

            Utilities.DebugLog("addition info " + getback.itemkey);
            Utilities.DebugLog("need add " + getback.param.Count + "  item");
            foreach (KeyValuePair <string, int> param in getback.param)
            {
                Utilities.DebugLog("addition key " + param.Key + "  value " + param.Value);
            }
            Utilities.DebugLog("================================");
            Utilities.DebugLog("weapon info " + getback2.equipmentkey);

            Utilities.DebugLog("weapon type " + getback2.type);

            Utilities.DebugLog("weapon price " + getback2.price_value);

            Utilities.DebugLog("material info " + getback3.itemkey);

            Utilities.DebugLog("weapon tw " + getback3.tw);

            Utilities.DebugLog("weapon desc " + getback2.tw_desc);

            Utilities.DebugLog("mission point now is " + missionpointback.key);

            Utilities.DebugLog("stageback now is " + stageback.key);
            Utilities.DebugLog("stageback point now is " + stageback.checkpointcount);
            Utilities.DebugLog("stageback king is " + stageback.kingname);

            Utilities.DebugLog("alchemyback now is " + alchemyback.itemkey);
            foreach (KeyValuePair <GameMaterial, int> param in alchemyback.param)
            {
                Utilities.DebugLog("addition key " + param.Key.tw + "  value " + param.Value);
            }
        }
Пример #7
0
        /// <summary>
        /// 添加到列表中
        /// </summary>
        public void addMissionPoint(object sender, EventArgs e)
        {
            if (!checkFormat())
            {
                return;
            }
            MissionPoint mp = new MissionPoint();

            mp.no        = tbxNoReal.Text;
            mp.isVibrate = cbxIsVibrate.Checked;
            mp.time      = Int32.Parse(tbxTime.Text) * 60;
            mp.timeFixed = mp.time;

            mps.Add(mp);

            //文字信息改为整体刷新
            string info = "";

            foreach (MissionPoint temp in mps)
            {
                info += ((Button)xw_btn[temp.no]).Text + " " + (temp.isVibrate ? "振动" : "一一") + "  " + temp.time / 60 + " 分钟\r\n";
            }
            lblMission.Text = info;
        }
Пример #8
0
        public void AddMissionPoint(MissionPoint mp)
        {
            missionPoints.Add(mp);

            PointCount = missionPoints.Count;
            if (mp.TargetDetected > 0)
            {
                TargetsDetected++;
            }
            missionPoints.Sort(new MissionPointComparer());
        }
Пример #9
0
        public MissionPoint AddMissionPoint(Coordinate3D coord, TargetType type, string annotation)
        {
            MissionPoint mp = null;
            if (mission != null)
            {

                index++;
                mp = new MissionPoint(mission.ID, index, coord.Lat, coord.Lon, coord.Alt, type, CurrentMissionTime, annotation);
                mission.AddMissionPoint(mp);

                if (index > 1)
                {
                    mission.DistanceFlown += CalcDistance(lastCoord, coord);
                }

                lastCoord = new Coordinate3D(coord.Lat, coord.Lon, coord.Alt);
            }

            return mp;
        }
Пример #10
0
        /// <summary>
        /// 发送位移命令
        /// </summary>
        private void toLocation()
        {
            //order18(btnF5 ?, TYPE_F ?, 5 ?);
            //根据currZJIndex 获取当前穴位的坐标
            int[] fx = new int[8], fy = new int[8], bx = new int[8], by = new int[8];

            string[]
            strs = config1.frontX.Split(",".ToCharArray());
            for (int i = 0; i < strs.Length; i++)
            {
                fx[i] = Int32.Parse(strs[i]);
            }
            strs = config1.frontY.Split(",".ToCharArray());
            for (int i = 0; i < strs.Length; i++)
            {
                fy[i] = Int32.Parse(strs[i]);
            }

            strs = config1.backX.Split(",".ToCharArray());
            for (int i = 0; i < strs.Length; i++)
            {
                bx[i] = Int32.Parse(strs[i]);
            }
            strs = config1.backY.Split(",".ToCharArray());
            for (int i = 0; i < strs.Length; i++)
            {
                by[i] = Int32.Parse(strs[i]);
            }

            int          x = 0, y = 0;
            MissionPoint mp = mps[currZJIndex];

            if (mp.no.Equals("F1"))
            {
                x = fx[0]; y = fy[0];
            }
            if (mp.no.Equals("B1"))
            {
                x = bx[0]; y = by[0];
            }
            if (mp.no.Equals("F2"))
            {
                x = fx[1]; y = fy[1];
            }
            if (mp.no.Equals("B2"))
            {
                x = bx[1]; y = by[1];
            }
            if (mp.no.Equals("F3"))
            {
                x = fx[2]; y = fy[2];
            }
            if (mp.no.Equals("B3"))
            {
                x = bx[2]; y = by[2];
            }
            if (mp.no.Equals("F4"))
            {
                x = fx[3]; y = fy[3];
            }
            if (mp.no.Equals("B4"))
            {
                x = bx[3]; y = by[3];
            }
            if (mp.no.Equals("F5"))
            {
                x = fx[4]; y = fy[4];
            }
            if (mp.no.Equals("B5"))
            {
                x = bx[4]; y = by[4];
            }
            if (mp.no.Equals("F6"))
            {
                x = fx[5]; y = fy[5];
            }
            if (mp.no.Equals("B6"))
            {
                x = bx[5]; y = by[5];
            }
            if (mp.no.Equals("F7"))
            {
                x = fx[6]; y = fy[6];
            }
            if (mp.no.Equals("B7"))
            {
                x = bx[6]; y = by[6];
            }
            if (mp.no.Equals("F8"))
            {
                x = fx[7]; y = fy[7];
            }
            if (mp.no.Equals("B8"))
            {
                x = bx[7]; y = by[7];
            }

            order18Direct(x, y);
        }
Пример #11
0
        /// <summary>
        /// 用动画标识当前穴位(按钮)
        /// </summary>
        private void animateCurrPoint(Object sender, EventArgs e)
        {
            MissionPoint mp  = mps[currZJIndex];
            Button       btn = mp.btn;

            if (btn.BackColor == Color.Red)
            {
                btn.BackColor = Color.Green;
            }
            else
            {
                btn.BackColor = Color.Red;
            }

            //处理显示的问题
            tbxTotalTimeMin2.Text = totalZJTime / 60 + "";
            tbxTotalTimeSec2.Text = totalZJTime % 60 + "";
            tbxCurrTimeMin2.Text  = mp.time / 60 + "";
            tbxCurrTimeSec2.Text  = mp.time % 60 + "";

            //计时操作
            totalZJTime--;
            mp.time--;

            if (mp.time == 0)
            {
                btn.BackColor = Color.Black;

                //发送一下振动(停),停止
                if (mp.isVibrate)
                {
                    order16_17(null, null); Console.WriteLine("【结束 振动】: currZJIndex " + currZJIndex);
                }
                send(ORDER.Z19, 19, ORDER.L19);


                currZJIndex++;


                if (currZJIndex < mps.Count)
                {
                    //转向下一个穴位
                    toLocation();
                    //振动
                    MissionPoint mpNext = mps[currZJIndex];
                    if (mpNext.isVibrate)
                    {
                        order16_17(null, null); Console.WriteLine("【开始 振动】: currZJIndex " + currZJIndex);
                    }
                }
            }

            if (totalZJTime == 0)
            {
                timer.Stop();
                currZJIndex         = 0;
                btnStart2.Enabled   = true;
                btnMission2.Enabled = true;
                cbxScheme2.Enabled  = true;

                tbxTotalTimeMin2.Text = null;
                tbxTotalTimeSec2.Text = null;
                tbxCurrTimeMin2.Text  = null;
                tbxCurrTimeSec2.Text  = null;
            }
        }
Пример #12
0
 public MissionPoint getPlayerNextPointInfo(MissionPoint nowPoint)
 {
     return(null);
 }
Пример #13
0
        public byte[] Write()
        {
            MemoryStream       m  = new MemoryStream();
            EndianBinaryWriter er = new EndianBinaryWriter(m, Endianness.LittleEndian);
            int NrSections        = 0x12;

            Header.SectionOffsets = new UInt32[NrSections];
            Header.Write(er);

            int SectionIdx = 0;

            if (KartPoint != null)
            {
                WriteHeaderInfo(er, SectionIdx);
                KartPoint.Write(er);
                SectionIdx++;
            }
            if (EnemyPoint != null)
            {
                WriteHeaderInfo(er, SectionIdx);
                EnemyPoint.Write(er);
                SectionIdx++;
            }
            if (EnemyPointPath != null)
            {
                WriteHeaderInfo(er, SectionIdx);
                EnemyPointPath.Write(er);
                SectionIdx++;
            }
            if (ItemPoint != null)
            {
                WriteHeaderInfo(er, SectionIdx);
                ItemPoint.Write(er);
                SectionIdx++;
            }
            if (ItemPointPath != null)
            {
                WriteHeaderInfo(er, SectionIdx);
                ItemPointPath.Write(er);
                SectionIdx++;
            }
            if (CheckPoint != null)
            {
                WriteHeaderInfo(er, SectionIdx);
                CheckPoint.Write(er);
                SectionIdx++;
            }
            if (CheckPointPath != null)
            {
                WriteHeaderInfo(er, SectionIdx);
                CheckPointPath.Write(er);
                SectionIdx++;
            }
            if (GlobalObject != null)
            {
                WriteHeaderInfo(er, SectionIdx);
                GlobalObject.Write(er);
                SectionIdx++;
            }
            if (PointInfo != null)
            {
                WriteHeaderInfo(er, SectionIdx);
                PointInfo.Write(er);
                SectionIdx++;
            }
            if (Area != null)
            {
                WriteHeaderInfo(er, SectionIdx);
                Area.Write(er);
                SectionIdx++;
            }
            if (Camera != null)
            {
                WriteHeaderInfo(er, SectionIdx);
                Camera.Write(er);
                SectionIdx++;
            }
            if (JugemPoint != null)
            {
                WriteHeaderInfo(er, SectionIdx);
                JugemPoint.Write(er);
                SectionIdx++;
            }
            if (CannonPoint != null)
            {
                WriteHeaderInfo(er, SectionIdx);
                CannonPoint.Write(er);
                SectionIdx++;
            }
            if (MissionPoint != null)
            {
                WriteHeaderInfo(er, SectionIdx);
                MissionPoint.Write(er);
                SectionIdx++;
            }
            if (StageInfo != null)
            {
                WriteHeaderInfo(er, SectionIdx);
                StageInfo.Write(er);
                SectionIdx++;
            }
            if (CourseSect != null)
            {
                WriteHeaderInfo(er, SectionIdx);
                CourseSect.Write(er);
                SectionIdx++;
            }
            if (GliderPoint != null)
            {
                WriteHeaderInfo(er, SectionIdx);
                GliderPoint.Write(er);
                SectionIdx++;
            }
            if (GliderPointPath != null)
            {
                WriteHeaderInfo(er, SectionIdx);
                GliderPointPath.Write(er);
                SectionIdx++;
            }
            WriteHeaderFileSize(er);
            byte[] result = m.ToArray();
            er.Close();
            return(result);
        }
Пример #14
0
        public static void SetInitListForMissionPoint()
        {
            if (itemTable != null && itemTable.Count > 0)
            {
                if (!itemTable.ContainsKey(table_missionpoint))
                {
                    return;
                }
                Hashtable parentTable = (Hashtable)itemTable [table_missionpoint];

                foreach (string stringkey in parentTable.Keys)
                {
                    //把每一行抓出來
                    Utilities.DebugLog("missionpoint init is " + stringkey);
                    Hashtable    currenttable         = (Hashtable)parentTable[stringkey];
                    MissionPoint current_missionpoint = new MissionPoint();
                    current_missionpoint.key = stringkey;
                    string           missiontype      = Utilities.LoadString(currenttable[key_missionpoint_type], "");
                    MissionPointType missionpointtype = MissionPointType.Monster;
                    switch (missiontype)
                    {
                    case "resource":
                        missionpointtype = MissionPointType.Resource;
                        break;

                    case "monster":
                        missionpointtype = MissionPointType.Monster;
                        break;

                    default:
                        break;
                    }
                    current_missionpoint.type   = missionpointtype;
                    current_missionpoint.zh_tw  = Utilities.LoadString(currenttable[key_chinese], "");
                    current_missionpoint.en     = Utilities.LoadString(currenttable [key_english], "");
                    current_missionpoint.lv     = Utilities.LoadInt(currenttable[key_missionpoint_level], 0);
                    current_missionpoint.hp     = Utilities.LoadInt(currenttable [key_missionpoint_healthpoint], 0);
                    current_missionpoint.attack = Utilities.LoadInt(currenttable [key_missionpoint_attack], 0);
                    current_missionpoint.exp    = Utilities.LoadInt(currenttable [key_missionpoint_exp], 0);
                    Dictionary <monstereffect, int> data = new Dictionary <monstereffect, int>();
                    int effectname1    = Utilities.LoadInt(currenttable[key_missionpoint_effect1], 0);
                    int effectpercent1 = Utilities.LoadInt(currenttable[key_missionpoint_effect1percent], 0);
                    int effectname2    = Utilities.LoadInt(currenttable[key_missionpoint_effect2], 0);
                    int effectpercent2 = Utilities.LoadInt(currenttable[key_missionpoint_effect2percent], 0);
                    int effectname3    = Utilities.LoadInt(currenttable[key_missionpoint_effect3], 0);
                    int effectpercent3 = Utilities.LoadInt(currenttable[key_missionpoint_effect3percent], 0);
                    if (effectname1 != 0)
                    {
                        data.Add(MissionPoint.Getmonstereffect(effectname1), effectpercent1);
                    }
                    if (effectname2 != 0)
                    {
                        data.Add(MissionPoint.Getmonstereffect(effectname2), effectpercent2);
                    }
                    if (effectname3 != 0)
                    {
                        data.Add(MissionPoint.Getmonstereffect(effectname3), effectpercent3);
                    }
                    current_missionpoint.effect = data;
                    Dictionary <string, int> dropdata = new Dictionary <string, int>();
                    dropdata = CheckIfKeyGotValue(dropdata, currenttable, key_missionpoint_drop1, key_missionpoint_drop1percent);
                    dropdata = CheckIfKeyGotValue(dropdata, currenttable, key_missionpoint_drop2, key_missionpoint_drop2percent);
                    dropdata = CheckIfKeyGotValue(dropdata, currenttable, key_missionpoint_drop3, key_missionpoint_drop3percent);
                    dropdata.Add("nonedroppercent", Utilities.LoadInt(key_missionpoint_nonedroppercent, 0));
                    current_missionpoint.drop = dropdata;
                    current_missionpoint.animationpicturename  = Utilities.LoadString(currenttable[key_missionpoint_animationpicture]);
                    current_missionpoint.animationpicturecount = Utilities.LoadInt(currenttable [key_missionpoint_animationpictruecount]);

                    missionpointinfo_list.Add(current_missionpoint);
                    Utilities.DebugLog("missionpoint now finish add is " + stringkey);
                }
            }
        }