Exemple #1
0
        /// <summary>
        /// 현재 덱의 정보를 저장
        /// </summary>
        public void SaveData()
        {
            DataArea db = Management.MenuGameManager.Instance.DataArea;



            if (db.OwnedData.DecData.Count > curOwnedDecIndex)
            {
                db.OwnedData.DecData[curOwnedDecIndex].decList = new List <DecInfo>();

                for (int i = 0; i < decData.decList.Count; ++i)
                {
                    db.OwnedData.DecData[curOwnedDecIndex].decList.Add(decData.decList[i]);
                }

                db.OwnedData.DecData[curOwnedDecIndex].decCount = decData.decList.Count;
                if (decData.decCount <= 0)
                {
                    db.OwnedData.DecData.RemoveAt(curOwnedDecIndex);
                }
            }
            else
            {
                db.OwnedData.DecData.Add(new SettingDecData(decData.decList.Count, "새로운 덱 " + curOwnedDecIndex, new List <DecInfo>(decData.decList)));
                curOwnedDecIndex = db.OwnedData.DecData.Count - 1;
            }
        }
Exemple #2
0
        public float ValueLookup(int x, int y)
        {
            // find area
            DataArea lookupArea = null;

            foreach (DataArea area in lookupLayer.Areas)
            {
                if (area.Area.Contains(x, y))
                {
                    lookupArea = area;
                    break;
                }
            }
            if (lookupArea != null)
            {
                int xActual = x - lookupArea.Area.Left;
                int yActual = y - lookupArea.Area.Top;

                if (lookupArea is FloatArea)
                {
                    return((float)lookupArea[xActual, yActual]);
                }
                else
                {
                    return((byte)lookupArea[xActual, yActual]);
                }
            }
            return(0);
        }
Exemple #3
0
        private void SetTextBySelectedMat(DataArea _db)
        {
            int  needExp  = _db.OwnedData.ItemData[slot.IndexOfViewType].NeedExp;
            int  curExp   = _db.OwnedData.ItemData[slot.IndexOfViewType].CurExp + addExp;
            int  lv       = _db.OwnedData.ItemData[slot.IndexOfViewType].Lv;
            int  prevLv   = lv;
            bool changeLv = false;

            while (needExp <= curExp)
            {
                ++lv;
                curExp  -= needExp;
                needExp  = _db.DefaultExpManager.UnitExpChart.NeedExp[lv];
                changeLv = true;
            }
            addLv  = lv - prevLv;
            addExp = curExp;
            BasicStatus bs      = _db.DefaultItemData[_db.OwnedData.ItemData[slot.IndexOfViewType].IndexOfType].BasicStatus;
            BasicStatus abs     = _db.OwnedData.ItemData[slot.IndexOfViewType].AddStatus;
            BasicStatus nextAbs = _db.OwnedData.ItemData[slot.IndexOfViewType].AddStatus + _db.DefaultItemData[_db.OwnedData.ItemData[slot.IndexOfViewType].IndexOfType].AddStatusByLv * (lv - prevLv);

            if (addLv > 0)
            {
                lvText.text = (_db.OwnedData.ItemData[slot.IndexOfViewType].Lv) + " >> " + lv;
            }
            else
            {
                lvText.text = prevLv.ToString();
            }
            expText.text = (_db.OwnedData.ItemData[slot.IndexOfViewType].CurExp) + " >> " + curExp;
        }
Exemple #4
0
        /// <summary>
        /// 通信命令发送前的协议格式化
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        private string FormatCmd(CmdType cmdType, DataArea areaType)
        {
            string cmdStr = "@00FA000000000";  //读写指令字符串的前缀

            //先拼接读写命令
            if (cmdType == CmdType.CmdRead)
            {
                cmdStr += "0101";
            }
            else if (cmdType == CmdType.CmdWrite)
            {
                cmdStr += "0102";
            }

            //再拼接操作区代码
            if (areaType == DataArea.DMWord)
            {
                cmdStr += "82";
            }
            else if (areaType == DataArea.WRBit)
            {
                cmdStr += "31";
            }

            return(cmdStr);
        }
Exemple #5
0
        public override void Create(byte[] create)
        {
            Analysis(create);
            var n1 = DataArea.Take(7).ToArray();

            DeviceNumber = new DeviceNumber(n1);
        }
Exemple #6
0
        /// <summary>
        /// 서브 콘테이너에게 인덱스를 받아 세팅
        /// </summary>
        /// <param name="_index"></param>
        public override void GetTargetIndex(int _index)
        {
            if (_index >= 0)
            {
                selectTarget = true;
            }
            else
            {
                Strengthen();
                return;
            }

            DataArea db = Management.MenuGameManager.Instance.DataArea;

            slot.IndexOfViewType  = _index;
            slot.lvText.text      = db.OwnedData.MinionData[_index].Lv.ToString();
            slot.nameText.text    = db.DefaultMinionData[db.OwnedData.MinionData[_index].IndexOfMinion].MinionName;
            slot.SlotImage.sprite = Resources.Load <Sprite>(db.DefaultMinionData[db.OwnedData.MinionData[_index].IndexOfMinion].MainImagePath);

            BasicStatus bs  = db.DefaultMinionData[db.OwnedData.MinionData[_index].IndexOfMinion].BasicStatus;
            BasicStatus abs = db.OwnedData.MinionData[_index].AddStatus;

            lvText.text                  = (db.OwnedData.MinionData[_index].Lv).ToString();
            expText.text                 = (db.OwnedData.MinionData[_index].CurExp).ToString();
            hpText.text                  = (bs.Hp + abs.Hp).ToString();
            mpText.text                  = (bs.Mp + abs.Mp).ToString();
            attackSpeedText.text         = (bs.AttackSpeed + abs.AttackSpeed).ToString();
            attackRangeText.text         = (bs.AttackRange + abs.AttackRange).ToString();
            attackPowerText.text         = (bs.AttackPower + abs.AttackPower).ToString();
            criticalChanceText.text      = (bs.CriticalChance + abs.CriticalChance).ToString();
            deffenceText.text            = (bs.Deffence + abs.Deffence).ToString();
            deffencePentractionText.text = (bs.DeffencePentraction + abs.DeffencePentraction).ToString();
            evasiveText.text             = (bs.Evasive + abs.Evasive).ToString();
            moveSpeedText.text           = (bs.MoveSpeed + abs.MoveSpeed).ToString();
        }
        /// <summary>
        /// 서브 콘테이너에게 인덱스를 받아 세팅
        /// </summary>
        /// <param name="_index"></param>
        public override void GetTargetIndex(int _index)
        {
            if (_index >= 0)
            {
                selectTarget = true;
            }
            else
            {
                Strengthen();
                return;
            }

            DataArea db = Management.MenuGameManager.Instance.DataArea;

            slot.IndexOfViewType  = _index;
            slot.lvText.text      = db.OwnedData.SkillData[_index].Lv.ToString();
            slot.nameText.text    = db.DefaultSkillData[db.OwnedData.SkillData[_index].IndexOfType].SkillName;
            slot.SlotImage.sprite = Resources.Load <Sprite>(db.DefaultSkillData[db.OwnedData.SkillData[_index].IndexOfType].MainImagePath);

            BasicStatus bs  = db.DefaultSkillData[db.OwnedData.SkillData[_index].IndexOfType].BasicStatus;
            BasicStatus abs = db.OwnedData.SkillData[_index].AddStatus;

            lvText.text  = (db.OwnedData.SkillData[_index].Lv).ToString();
            expText.text = (db.OwnedData.SkillData[_index].CurExp).ToString();
        }
        public void SetDec()
        {
            ClearSlot();

            // dec Setting
            int      maxDec   = (int)DecMax.OwnedMax;
            DataArea db       = Management.MenuGameManager.Instance.DataArea;
            int      decIndex = db.LoginData.Free_DecSlotCount + db.LoginData.Event_DecSlotCount + db.LoginData.Pay_DecSlotCount;

            for (int i = 0; i < maxDec; ++i)
            {
                UI_DecSlotModule newDecSlot = Instantiate(slotPrefab, slotParent.transform).GetComponent <UI_DecSlotModule>();

                newDecSlot.indexOfSlot = i;

                decList.Add(newDecSlot);

                // 소유 가능한 덱보다 작으면 세팅
                if (i >= decIndex)
                {
                    continue;
                }

                Sprite image   = null;
                string decName = "덱을 세팅하세요";
                // slot Setting
                // 세팅된 덱의 데이터 가 있다면 세팅
                if (db.OwnedData.DecData.Count > i)
                {
                    newDecSlot.indexOfType = i;
                    int     unitIndex = db.OwnedData.DecData[i].decList[0].ownedIndex;
                    DecType type      = db.OwnedData.DecData[i].decList[0].type;
                    string  path      = "";
                    if (type == DecType.Minion)
                    {
                        path = db.DefaultMinionData[db.OwnedData.MinionData[unitIndex].IndexOfMinion].MainImagePath;
                    }
                    else
                    {
                        path = db.DefaultSkillData[db.OwnedData.SkillData[unitIndex].IndexOfType].MainImagePath;
                    }
                    image   = Resources.Load <Sprite>(path);
                    decName = db.OwnedData.DecData[i].decName;
                    newDecSlot.decCountText.text = db.OwnedData.DecData[i].decCount + "/" + (int)DecMax.UnitMax;
                }

                newDecSlot.decNameText.text = decName;
                newDecSlot.slotImage.sprite = image;

                // trigger set
                if (newDecSlot.clickFunc == null)
                {
                    newDecSlot.clickFunc = () => { ClickedButton(ownerContainer, openSubContainerModuleIndex, new OpenSubContainerData(openSubContainerModuleIndex, newDecSlot.indexOfSlot)); };
                }
            }
        }
Exemple #9
0
        /// <summary>
        /// 从PLC读DM区字数据
        /// </summary>
        /// <param name="addr"></param>
        /// <param name="len"></param>
        public void ReadDMDatas(int addr, int len)
        {
            curAddr    = addr;
            curReadNum = len * 2;
            curOpArea  = DataArea.DMWord;
            string cmdstr = FormatCmd(CmdType.CmdRead, DataArea.DMWord);

            cmdstr = string.Format("{0}{1}00{2}", cmdstr, addr.ToString("X4"), curReadNum.ToString("X4"));
            ScomSendData(cmdstr);
        }
        private void SetSettingDataArea(DataArea dataArea)
        {
            // set by setData
            dataArea.LoginData.NeedLvExp          = dataArea.DefaultExpManager.UserExpChart.NeedExp[dataArea.LoginData.Lv - 1];
            dataArea.LoginData.Free_DecSlotCount  = dataArea.DefaultUserData.BasicDecCount + dataArea.LoginData.Lv / dataArea.DefaultUserData.OpenFreeDecLvInterval;
            dataArea.LoginData.PlusGatchaRate     = dataArea.DefaultUserData.AddGatchaRateByLv * dataArea.LoginData.Lv;
            dataArea.LoginData.PlusStrengthenRate = dataArea.DefaultUserData.AddStrengthenRateByLv * dataArea.LoginData.Lv;

            dataArea.OwnedData = new OwnedListData();

            dataArea.OwnedData.ItemData   = new List <SettingItemData>();
            dataArea.OwnedData.MinionData = new List <SettingMinionData>();

            // item
            int lv = 3;

            dataArea.OwnedData.ItemData.Add(new SettingItemData(ItemType.Weapon, dataArea.LoginData.ItemSerializeCodeCount++, 0, lv, 0, dataArea.DefaultExpManager.ItemExpChart.NeedExp[lv - 1], true, 0));
            dataArea.OwnedData.ItemData.Add(new SettingItemData(ItemType.Weapon, dataArea.LoginData.ItemSerializeCodeCount++, 1, lv, 0, dataArea.DefaultExpManager.ItemExpChart.NeedExp[lv - 1], true, 1));
            dataArea.OwnedData.ItemData.Add(new SettingItemData(ItemType.Weapon, dataArea.LoginData.ItemSerializeCodeCount++, 0, lv + 3, 0, dataArea.DefaultExpManager.ItemExpChart.NeedExp[lv + 2], false, -1));
            dataArea.OwnedData.ItemData.Add(new SettingItemData(ItemType.Weapon, dataArea.LoginData.ItemSerializeCodeCount++, 1, lv + 3, 0, dataArea.DefaultExpManager.ItemExpChart.NeedExp[lv + 2], false, -1));
            dataArea.OwnedData.ItemData.Add(new SettingItemData(ItemType.Weapon, dataArea.LoginData.ItemSerializeCodeCount++, 0, lv + 1, 0, dataArea.DefaultExpManager.ItemExpChart.NeedExp[lv], false, -1));
            dataArea.OwnedData.ItemData.Add(new SettingItemData(ItemType.Weapon, dataArea.LoginData.ItemSerializeCodeCount++, 1, lv + 1, 0, dataArea.DefaultExpManager.ItemExpChart.NeedExp[lv], false, -1));
            dataArea.OwnedData.ItemData.Add(new SettingItemData(ItemType.Weapon, dataArea.LoginData.ItemSerializeCodeCount++, 0, lv + 5, 0, dataArea.DefaultExpManager.ItemExpChart.NeedExp[lv + 4], false, -1));
            dataArea.OwnedData.ItemData.Add(new SettingItemData(ItemType.Weapon, dataArea.LoginData.ItemSerializeCodeCount++, 1, lv + 5, 0, dataArea.DefaultExpManager.ItemExpChart.NeedExp[lv + 4], false, -1));

            // minion
            int rate    = 1;
            int skillLV = 1;
            int needExp = dataArea.DefaultExpManager.SkillExpChart.NeedExp[skillLV];
            SettingMinionSkillData minionSkill = new SettingMinionSkillData(SkillType.Active, 0, skillLV, 0, needExp);

            dataArea.OwnedData.MinionData.Add(new SettingMinionData(0, dataArea.LoginData.MinionSerializeCodeCount++, lv, rate, 0, dataArea.DefaultExpManager.UnitExpChart.NeedExp[lv - 1], 3, new int[] { 0 }, 2, new SettingMinionSkillData[] { minionSkill }));
            dataArea.OwnedData.MinionData.Add(new SettingMinionData(1, dataArea.LoginData.MinionSerializeCodeCount++, lv, rate, 10, dataArea.DefaultExpManager.UnitExpChart.NeedExp[lv - 1], 3, new int[] { 1 }, 2, new SettingMinionSkillData[] { minionSkill }));
            dataArea.OwnedData.MinionData.Add(new SettingMinionData(0, dataArea.LoginData.MinionSerializeCodeCount++, lv + 5, rate, 0, dataArea.DefaultExpManager.UnitExpChart.NeedExp[lv + 4], 3, new int[] { }, 2, new SettingMinionSkillData[] { minionSkill }));
            dataArea.OwnedData.MinionData.Add(new SettingMinionData(1, dataArea.LoginData.MinionSerializeCodeCount++, lv + 2, rate, 10, dataArea.DefaultExpManager.UnitExpChart.NeedExp[lv + 1], 3, new int[] { }, 2, new SettingMinionSkillData[] { minionSkill }));

            dataArea.OwnedData.MinionData.Add(new SettingMinionData(0, dataArea.LoginData.MinionSerializeCodeCount++, lv, rate, 0, dataArea.DefaultExpManager.UnitExpChart.NeedExp[lv - 1], 3, new int[] {  }, 2, new SettingMinionSkillData[] { minionSkill }));
            dataArea.OwnedData.MinionData.Add(new SettingMinionData(1, dataArea.LoginData.MinionSerializeCodeCount++, lv, rate, 10, dataArea.DefaultExpManager.UnitExpChart.NeedExp[lv - 1], 3, new int[] {  }, 2, new SettingMinionSkillData[] { minionSkill }));
            dataArea.OwnedData.MinionData.Add(new SettingMinionData(0, dataArea.LoginData.MinionSerializeCodeCount++, lv + 5, rate, 0, dataArea.DefaultExpManager.UnitExpChart.NeedExp[lv + 4], 3, new int[] { }, 2, new SettingMinionSkillData[] { minionSkill }));
            dataArea.OwnedData.MinionData.Add(new SettingMinionData(1, dataArea.LoginData.MinionSerializeCodeCount++, lv + 2, rate, 10, dataArea.DefaultExpManager.UnitExpChart.NeedExp[lv + 1], 3, new int[] { }, 2, new SettingMinionSkillData[] { minionSkill }));


            // skill
            dataArea.OwnedData.SkillData = new List <SettingSkillData>();
            int skillLv = 2;

            dataArea.OwnedData.SkillData.Add(new SettingSkillData(SkillType.Active, 0, skillLv, 0, dataArea.DefaultExpManager.SkillExpChart.NeedExp[skillLv - 1]));
            dataArea.OwnedData.SkillData.Add(new SettingSkillData(SkillType.Active, 0, skillLv + 2, 0, dataArea.DefaultExpManager.SkillExpChart.NeedExp[skillLv + 1]));
            dataArea.OwnedData.SkillData.Add(new SettingSkillData(SkillType.Active, 1, skillLv + 5, 100, dataArea.DefaultExpManager.SkillExpChart.NeedExp[skillLv + 4]));
            dataArea.OwnedData.SkillData.Add(new SettingSkillData(SkillType.Active, 1, skillLv, 0, dataArea.DefaultExpManager.SkillExpChart.NeedExp[skillLv - 1]));

            // dec
            dataArea.OwnedData.DecData = new List <SettingDecData>();
        }
        public override Bitmap GenerateBitmap(Size size, DataArea area)
        {
            SizeF  scale    = new SizeF(area.Area.Width / size.Width, area.Area.Height / size.Height);
            PointF startPos = area.Area.Location;
            PointF pos      = startPos;

            Bitmap     bitmap = new Bitmap(size.Width, size.Height, PixelFormat.Format32bppArgb);
            BitmapData data   = bitmap.LockBits(new Rectangle(0, 0, size.Width, size.Height), ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb);

            unsafe
            {
                Bitmap32bitARGBPixel *pixels = (Bitmap32bitARGBPixel *)data.Scan0;
                if (area.Data is byte[])
                {
                    for (int y = 0; y < size.Height; y++)
                    {
                        pos.X = startPos.X;
                        for (int x = 0; x < size.Width; x++)
                        {
                            // take sample
                            byte value = (byte)area[(int)pos.X, (int)pos.Y];
                            //bitmap.SetPixel(x, y, GetPixel((int)pos.X, (int)pos.Y, value));
                            SetPixel((int)pos.X, (int)pos.Y, value, pixels);

                            pos.X += scale.Width;
                            pixels++;
                        }
                        pos.Y += scale.Height;
                    }
                }
                else if (area.Data is float[])
                {
                    for (int y = 0; y < size.Height; y++)
                    {
                        pos.X = startPos.X;
                        for (int x = 0; x < size.Width; x++)
                        {
                            // take sample
                            float rawValue = (float)area[(int)pos.X, (int)pos.Y];
                            float value    = rawValue / area.MaxDataValue;
                            //bitmap.SetPixel(x, y, Color.FromArgb(255, value, value, value));
                            SetPixel((int)pos.X, (int)pos.Y, value, pixels);

                            pos.X += scale.Width;
                            pixels++;
                        }
                        pos.Y += scale.Height;
                    }
                }
            }
            bitmap.UnlockBits(data);

            return(bitmap);
        }
Exemple #12
0
        /// <summary>
        /// 从PLC读WR区寄存器位数据
        /// </summary>
        /// <param name="addr"></param>
        /// <param name="len"></param>
        public string[] ReadWRDat(int addr, int len)
        {
            string[] res;
            curAddr    = addr;
            curReadNum = len;
            curOpArea  = DataArea.WRBit;
            string cmdstr = FormatCmd(CmdType.CmdRead, DataArea.WRBit);

            cmdstr = string.Format("{0}{1}00{2}", cmdstr, addr.ToString("X4"), len.ToString("X4"));
            res    = ReadAndReceive(cmdstr);
            return(res);
        }
        public override void Create(byte[] create)
        {
            FullFrame = create;

            Analysis(create);
            var version = DataArea.Take(2).ToArray();

            HardwareVersion = new HardwareVersion(version);
            var version1 = DataArea.Skip(2).Take(2).ToArray();

            SoftwareVersion = new SoftwareVersion(version1);
        }
Exemple #14
0
        public DataArea[] BreakdownGroup()
        {
            if (breakdownRects != null)
            {
                return(breakdownRects);
            }

            RectangleF[] rectsF = region.GetRegionScans(new Matrix());
            DataArea[]   rects  = breakdownRects = new DataArea[rectsF.Length];

            // convert rectangles
            for (int i = 0; i < rects.Length; i++)
            {
                Rectangle rect = Rectangle.Truncate(rectsF[i]);
                // match to source rect
                DataArea src = null;
                foreach (DataArea tRect in rectangles)
                {
                    if (tRect.Area.Contains(rect))
                    {
                        src = tRect;
                        break;
                    }
                }
                if (src != null)
                {
                    // calc tex-coords
                    int   xStartPos = rect.X - src.Area.X;
                    float xScale    = src.TexCoords.Width / src.Area.Width;
                    float xStart    = src.TexCoords.X + (xStartPos * xScale);

                    float xEnd = rect.Width * xScale;

                    int   yStartPos = rect.Y - src.Area.Y;
                    float yScale    = src.TexCoords.Height / src.Area.Height;
                    float yStart    = src.TexCoords.Y + (yStartPos * yScale);

                    float yEnd = rect.Height * yScale;

                    if (src.Data is byte[])
                    {
                        rects[i] = new ByteArea(rect, new RectangleF(xStart, yStart, xEnd, yEnd), (byte[])src.Data, src.DataSize);
                    }
                    else
                    {
                        rects[i] = new FloatArea(rect, new RectangleF(xStart, yStart, xEnd, yEnd), (float[])src.Data, src.DataSize);
                    }
                }
            }

            return(rects);
        }
Exemple #15
0
        public int getuser(string user)
        {
            int u = data.Areas.FindIndex(m => m.User == user);

            if (u == -1)
            {
                DataArea da = new DataArea();
                da.User = user; da.Items = new List <DataItem>();
                data.Areas.Add(da);
                u = data.Areas.FindIndex(m => m.User == user);
            }
            return(u);
        }
 private void SearchDecByIndex(DataArea _db, DecType type, int _index, int _newIndex)
 {
     for (int i = 0; i < _db.OwnedData.DecData.Count; ++i)
     {
         for (int j = 0; j < _db.OwnedData.DecData[i].decList.Count; ++j)
         {
             if (_db.OwnedData.DecData[i].decList[j].type == type && _db.OwnedData.DecData[i].decList[j].ownedIndex == _index)
             {
                 _db.OwnedData.DecData[i].decList[j].ownedIndex = _newIndex;
             }
         }
     }
 }
Exemple #17
0
        /// <summary>
        /// 从PLC读DM区字数据
        /// </summary>
        /// <param name="addr"></param>
        /// <param name="len"></param>
        public string[] ReadDMIntDats(int addr, int len)
        {
            string[] res;
            curAddr    = addr;
            curReadNum = len * 2;
            curOpData  = DataType.IntData;
            curOpArea  = DataArea.DMWord;
            string cmdstr = FormatCmd(CmdType.CmdRead, DataArea.DMWord);

            cmdstr = string.Format("{0}{1}00{2}", cmdstr, addr.ToString("X4"), curReadNum.ToString("X4"));
            res    = ReadAndReceive(cmdstr);
            return(res);
        }
Exemple #18
0
        /// <summary>
        /// 从PLC读一个DM区字数据
        /// </summary>
        /// <param name="addr"></param>
        /// <param name="len"></param>
        public string[] ReadDMDat(int addr)
        {
            string[] res;
            curAddr    = addr;
            curReadNum = 2;
            curOpData  = DataType.FloatData;
            curOpArea  = DataArea.DMWord;
            string cmdstr = FormatCmd(CmdType.CmdRead, DataArea.DMWord);

            cmdstr = string.Format("{0}{1}000002", cmdstr, addr.ToString("X4"));
            res    = ReadAndReceive(cmdstr);
            return(res);
        }
Exemple #19
0
        public void CloseButton(UI_Container _container)
        {
            DataArea db = Management.MenuGameManager.Instance.DataArea;

            try
            {
                int resultCurSelectSlot = curSelectSlot >= 0 ? db.OwnedData.ItemData[slotList[curSelectSlot].IndexOfViewType].IndexOfSerializeCode : -1;
                ClickedButton(_container, closeSubContainerModuleIndex, new int[] { curItemSlotIndex, resultCurSelectSlot });
            }
            catch (Exception ex)
            {
                Management.MenuGameManager.Instance.errorText.text = ex.Message;
            }
        }
Exemple #20
0
        private int OperateExp(DataArea _db)
        {
            int addExp = 0;


            Debug.Log("Rate 추가해서 고쳐야됨");
            for (int i = 0; i < selectedMatOwnedIndex.Count; ++i)
            {
                //_db.DefaultMinionData[_db.OwnedData.MinionData[selectedMatOwnedIndex[i]].IndexOfMinion];
                addExp += _db.DefaultExpManager.UnitExp[2];
            }


            return(addExp);
        }
Exemple #21
0
        /// <summary>
        /// 从PLC读WR区寄存器位数据
        /// </summary>
        /// <param name="addr"></param>
        /// <param name="len"></param>
        public void ReadWRData(int addr, int len)
        {
            if (len > 538)
            {
                len = 538;  //使用fins指令最大可以读取538个字节,PLC中一个字节占16位
            }

            curAddr    = addr;
            curReadNum = len;
            curOpArea  = DataArea.WRBit;
            string cmdstr = FormatCmd(CmdType.CmdRead, DataArea.WRBit);

            cmdstr = string.Format("{0}{1}00{2}", cmdstr, addr.ToString("X4"), len.ToString("X4"));
            ScomSendData(cmdstr);
        }
Exemple #22
0
        public override Bitmap GenerateBitmap(Size size, DataArea area)
        {
            SizeF  scale    = new SizeF(area.Area.Width / size.Width, area.Area.Height / size.Height);
            PointF startPos = area.Area.Location;
            PointF pos      = startPos;

            Bitmap bitmap = new Bitmap(size.Width, size.Height);

            if (area.Data is byte[])
            {
                for (int y = 0; y < size.Height; y++)
                {
                    pos.X = startPos.X;
                    for (int x = 0; x < size.Width; x++)
                    {
                        // take sample
                        byte value = (byte)area[(int)pos.X, (int)pos.Y];
                        // TODO: Use unmanaged direct access
                        bitmap.SetPixel(x, y, Color.FromArgb(255, value, value, value));

                        pos.X += scale.Width;
                    }
                    pos.Y += scale.Height;
                }
            }
            else if (area.Data is float[])
            {
                for (int y = 0; y < size.Height; y++)
                {
                    pos.X = startPos.X;
                    for (int x = 0; x < size.Width; x++)
                    {
                        // take sample
                        float rawValue = (float)area[(int)pos.X, (int)pos.Y];
                        if (rawValue > 0)
                        {
                            byte value = (byte)((rawValue / area.MaxDataValue) * 255);
                            // TODO: Use unmanaged direct access
                            bitmap.SetPixel(x, y, Color.FromArgb(255, value, value, value));
                        }
                        pos.X += scale.Width;
                    }
                    pos.Y += scale.Height;
                }
            }

            return(bitmap);
        }
Exemple #23
0
        private void SetTextBySelectedMat(DataArea _db)
        {
            int  needExp  = _db.OwnedData.MinionData[slot.IndexOfViewType].NeedExp;
            int  curExp   = _db.OwnedData.MinionData[slot.IndexOfViewType].CurExp + addExp;
            int  lv       = _db.OwnedData.MinionData[slot.IndexOfViewType].Lv;
            int  prevLv   = lv;
            bool changeLv = false;

            while (needExp <= curExp)
            {
                ++lv;
                curExp  -= needExp;
                needExp  = _db.DefaultExpManager.UnitExpChart.NeedExp[lv];
                changeLv = true;
            }
            ChangeStatus(_db, curExp, lv, prevLv);
        }
        private void SetDefaultDataArea(DataArea dataArea)
        {
            string basicPath = "";
            string json      = "";

#if UNITY_STANDALONE_WIN || UNITY_EDITOR
            basicPath = Application.streamingAssetsPath;
            json      = File.ReadAllText(basicPath + DataPath.defaultPath);
#else
            basicPath = "jar:file://" + Application.dataPath + "!/assets";
            WWW www = new WWW(basicPath + DataPath.defaultPath);
            json = www.text;
            Debug.LogError(json);
#endif
            // load
            Management.MenuGameManager.Instance.DataArea = JsonUtility.FromJson <DataArea>(json);
            Debug.Log("Complete Load");
        }
Exemple #25
0
        //打印
        public void PrintD()
        {
            PageIndex = -1;
            Count     = (List.Count % PageRow == 0) ? (List.Count / PageRow) : (List.Count / PageRow) + 1;
            if (Count == 0)
            {
                return;
            }
            int           c  = list.Count;
            PrintDocument pd = new PrintDocument();

            pd.PrintPage += (o, e) =>
            {
                PrintDocument pd1 = (PrintDocument)o;
                if (pd1.PrintedPageCount - 1 != PageIndex)
                {
                    return;
                }
                if (List is PagedObjectList)
                {
                    PageIndex++;
                    PagedObjectList pol = (PagedObjectList)List;
                    pol.DataLoaded += (o1, e1) =>
                    {
                        //加载展示数据
                        go.CopyDataFrom(List[0]);
                        e.PageVisual = DataArea;
                        DataArea.UpdateLayout();
                        //打印完成,重置索引
                        if (PageIndex == Count - 1)
                        {
                            e.HasMorePages = false;
                        }
                        else
                        {
                            e.HasMorePages = true;
                        }
                    };
                    pol.PageIndex = PageIndex;
                }
            };
            pd.Print("");
        }
Exemple #26
0
        /// <summary>
        /// Read dataarea information
        /// </summary>
        /// <param name="reader">XmlReader representing a dataarea block</param>
        /// <param name="dataArea">DataArea representing the enclosing area</param>
        private List <DatItem> ReadDataArea(XmlReader reader, DataArea dataArea)
        {
            List <DatItem> items = new List <DatItem>();

            while (!reader.EOF)
            {
                // We only want elements
                if (reader.NodeType != XmlNodeType.Element)
                {
                    reader.Read();
                    continue;
                }

                // Get the elements from the software
                switch (reader.Name)
                {
                case "rom":
                    var rom = new Rom
                    {
                        Name       = reader.GetAttribute("name"),
                        Size       = Sanitizer.CleanLong(reader.GetAttribute("size")),
                        CRC        = reader.GetAttribute("crc"),
                        SHA1       = reader.GetAttribute("sha1"),
                        Offset     = reader.GetAttribute("offset"),
                        Value      = reader.GetAttribute("value"),
                        ItemStatus = reader.GetAttribute("status").AsItemStatus(),
                        LoadFlag   = reader.GetAttribute("loadflag").AsLoadFlag(),

                        DataArea = dataArea,
                    };

                    items.Add(rom);
                    reader.Read();
                    break;

                default:
                    reader.Read();
                    break;
                }
            }

            return(items);
        }
Exemple #27
0
        /// <summary>
        /// 슬롯 선택시
        /// </summary>
        /// <param name="_slotIndex"></param>
        public void SelectSlot(int _slotIndex)
        {
            DataArea db      = Management.MenuGameManager.Instance.DataArea;
            DecInfo  curUnit = null;

            // 덱에 세팅되있는 값이면 취소하고
            if ((curUnit = SearchSame(_slotIndex)) != null)
            {
                --decData.decCount;
                decData.decList.Remove(curUnit);
                slotList[_slotIndex].selectedImage.SetActive(false);
            }
            // 없으면 덱에 넣고 selected
            else if (decData.decCount < (int)DecMax.UnitMax)
            {
                ++decData.decCount;
                decData.decList.Add(new DecInfo(curType, _slotIndex));
                slotList[_slotIndex].selectedImage.SetActive(true);
            }
        }
Exemple #28
0
        /// <summary>
        /// 서브 콘테이너에게 리스트를 받아 세팅
        /// </summary>
        /// <param name="selectedList"></param>
        public override void GetMatList(List <int> selectedList)
        {
            DataArea db = Management.MenuGameManager.Instance.DataArea;

            if (selectedList == null)
            {
                ClearMatList(true);
                return;
            }
            ClearMatList(false);
            selectedMatOwnedIndex = selectedList;
            int count = selectedList.Count;

            selectMat = true;


            for (int i = 0; i < count; ++i)
            {
                UI_StrengthenModule newSlot = Instantiate(matSlotPrefab, matSlotParent.transform).GetComponent <UI_StrengthenModule>();
                // image set
                newSlot.SlotImage.sprite = Resources.Load <Sprite>(db.DefaultMinionData[db.OwnedData.MinionData[selectedList[i]].IndexOfMinion].MainImagePath);
                newSlot.IndexOfViewType  = selectedList[i];
                // button triggerset

                if (newSlot.clickFunc == null)
                {
                    newSlot.clickFunc = () => { CancleMatSlot(newSlot.IndexOfSlot); }
                }
                ;

                //EventTrigger.Entry entry = new EventTrigger.Entry();
                //entry.eventID = EventTriggerType.PointerDown;
                //entry.callback.AddListener((eventData) => { CancleMatSlot(newSlot.IndexOfSlot); });
                //newSlot.EventTrigger.triggers.Add(entry);
                // add list
                matSlotList.Add(newSlot);
                // add selectedList
            }
            addExp = OperateExp(db);
            SetTextBySelectedMat(db);
        }
        private void SetStage(int _indexOfChapter)
        {
            DataArea db = Management.MenuGameManager.Instance.DataArea;

            curChapterIndex = _indexOfChapter;
            int clearStage = db.LoginData.ClearStage;

            Vector2 curPos = Vector2.zero;

            for (int i = 0; i < db.DefaultChapterData[curChapterIndex].stage.Count; ++i)
            {
                if (i == 0)
                {
                    curPos += fristSlotPos;
                }
                else if (i % 2 == 0)
                {
                    curPos += evenNumberSlotOffset;
                }
                else
                {
                    curPos += oddNumberSlotOffset;
                }

                UI_StageSlotModule slot = Instantiate(stageSlotPrefab, stageSlotParent.transform).GetComponent <UI_StageSlotModule>();
                slot.SetSlot(i, db.DefaultChapterData[curChapterIndex].stage[i], clearStage >= i ? true : false);
                slot.clickedFunc = () => { ClickedButton(ownerContainer, indexOfOpenSelectDecModule, new OpenSubContainerData(0, new int[] { curChapterIndex, slot.indexOfSlot })); };
                slot.thisRectTransform.anchoredPosition = curPos;
                stageSlotList.Add(slot);
            }

            int Size_Y = db.DefaultChapterData[curChapterIndex].stage.Count * 400 + 300;

            if (Size_Y < stageRectT_Y_DefaultSize)
            {
                Size_Y = stageRectT_Y_DefaultSize;
            }
            Vector2 size = stageContainViewerRectT.anchoredPosition + Vector2.up * Size_Y;

            stageContainViewerRectT.anchoredPosition = size;
        }
Exemple #30
0
        public override Texture GenerateTexture(Size size, DataArea area, Device gDevice)
        {
            Texture texture = new Texture(gDevice, size.Width, size.Height, 0, Usage.None, Format.A8R8G8B8, Pool.Managed);

            lock (this)
            {
                ftAreaTemp  = area;
                ftScaleTemp = new SizeF(1, 1);//(float)area.Area.Width / area.DataSize.Width, (float)area.Area.Height / area.DataSize.Height);
                ftScaleTemp = new SizeF(ftScaleTemp.Width * area.Area.Width, ftScaleTemp.Height * area.Area.Height);
                ftShiftTemp = new Size(area.Area.Location);
                if (area.Data is byte[])
                {
                    TextureLoader.FillTexture(texture, FillTextureByte);
                }
                else if (area.Data is float[])
                {
                    TextureLoader.FillTexture(texture, FillTextureFloat);
                }
            }
            return(texture);
        }
 /// <summary>
 /// Initializes a new instance of the RasterSampler class.
 /// </summary>
 /// <param name="dataSource">The data area source</param>
 /// <param name="sampleSizeF">The initial sample size to take</param>
 public RasterSampler(DataArea dataSource, float sampleSizeF)
 {
     this.dataSource = dataSource;
     SampleSizeF = sampleSizeF;
 }
 /// <summary>
 /// Initializes a new instance of the RasterSampler class.
 /// </summary>
 /// <param name="dataSource">The data area source</param>
 /// <param name="sampleSize">The initial sample size to take</param>
 public RasterSampler(DataArea dataSource, int sampleSize)
 {
     this.dataSource = dataSource;
     SampleSize = sampleSize;
 }
 public SimpleRasterSampler(DataArea dataSource, int sampleSize)
     : base(dataSource, sampleSize)
 {
     width = dataSource.Area.Width - 1;
     height = dataSource.Area.Height - 1;
 }