// 창고에서 해당 캐릭터 아이디 하나를 삭제
 public void RemoveStockId(int characterId)
 {
     if (characterDataSheet.TryGetCharacterTier(characterId, out var tier))
     {
         CharacterStock stock = Stocks[tier];
         stock.characterIds.Remove(characterId);
     }
 }
    // 창고에서 랜덤으로 아이디를 하나 반환.
    // 반환 하면서 창고에서 그 아이디를 하나를 삭제한다.
    public int GetRandomId(Tier tier)
    {
        CharacterStock stock = Stocks[tier];

        int randomIndex       = Random.Range(0, stock.characterIds.Count);
        int randomCharacterId = stock.characterIds[randomIndex];

        RemoveStockId(randomCharacterId);

        return(randomCharacterId);
    }
Пример #3
0
 private void lstStrings_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (this.lstStrings.SelectedItems.Count > 0)
     {
         CharacterStock SelectChar = this.CharacterListing[(int)lstStrings.SelectedItems[0].Tag];
         CharacterName.Text = SelectChar.Name;
         Model.Text         = SelectChar.Model;
         tex1.Text          = SelectChar.Tex_01;
         tex2.Text          = SelectChar.Tex_02;
         tex3.Text          = SelectChar.Tex_03;
         tex4.Text          = SelectChar.Additional_Tex;
     }
 }
    // 창고에 캐릭터 별(성)에 따른 캐릭터 아이디 추가
    public void AddCharacterId(CharacterInfo characterInfo)
    {
        if (characterDataSheet.TryGetCharacterTier(characterInfo.id, out var tier))
        {
            CharacterStock stock = Stocks[tier];

            int numOfAdditions = GetNumOfCharactersPerStar(characterInfo.star);

            for (int i = 0; i < numOfAdditions; ++i)
            {
                stock.characterIds.Add(characterInfo.id);
            }
        }
    }
    private void InitializeStocks()
    {
        CharacterStock oneTierStock   = new CharacterStock();
        CharacterStock twoTierStock   = new CharacterStock();
        CharacterStock threeTierStock = new CharacterStock();
        CharacterStock fourTierStock  = new CharacterStock();

        if (characterDataSheet.TryGetCharacterDatas(out var characterDatas))
        {
            foreach (var characterData in characterDatas)
            {
                for (int i = 0; i < CardService.MAX_NUM_OF_CARDS_PER_CHARACTER; ++i)
                {
                    switch (characterData.Value.Tier)
                    {
                    case Tier.One:
                        oneTierStock.characterIds.Add(characterData.Key);
                        break;

                    case Tier.Two:
                        twoTierStock.characterIds.Add(characterData.Key);
                        break;

                    case Tier.Three:
                        threeTierStock.characterIds.Add(characterData.Key);
                        break;

                    case Tier.Four:
                        fourTierStock.characterIds.Add(characterData.Key);
                        break;

                    default:
                        Debug.Log("Error InitializeStock");
                        break;
                    }
                }
            }
        }

        Stocks.Add(Tier.One, oneTierStock);
        Stocks.Add(Tier.Two, twoTierStock);
        Stocks.Add(Tier.Three, threeTierStock);
        Stocks.Add(Tier.Four, fourTierStock);
    }
Пример #6
0
        private void openFileToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog
            {
                Filter = "Pangya IFF Character (Character*.iff)|Character*.iff",
                Title  = "Open IFF Desc"
            };

            if (dialog.ShowDialog() == DialogResult.OK)
            {
                CharacterListing = new List <CharacterStock>();
                using (BinaryReader reader = new BinaryReader(File.Open(dialog.FileName, FileMode.Open, FileAccess.Read), IffFile.GetFileEncodingByRegion(RegionSelected)))
                {
                    IffFile file            = new IffFile();
                    ushort  numberOfRecords = file.GetNumberOfRecords(reader);
                    file.JumpToFirstRecord(reader);
                    if (file.CheckMagicNumber(reader))
                    {
                        for (int i = 0; i < numberOfRecords; i++)
                        {
                            //GetFileEncodingByRegion(RegionSelected).GetString(reader.ReadBytes(XXXXXXXX)); --> exemple for encoding string
                            long position = reader.BaseStream.Position;

                            // added the virtual number
                            CharacterStock item = new CharacterStock
                            {
                                Index = i
                            };

                            //Now laborious work -> Read The file
                            item.Active = reader.ReadUInt32();
                            item.TypeId = reader.ReadUInt32();
                            item.Name   = GetFileEncodingByRegion(RegionSelected).GetString(reader.ReadBytes(40));             // 40 Byte long
                            item.Level  = reader.ReadByte();
                            item.Icon   = GetFileEncodingByRegion(RegionSelected).GetString(reader.ReadBytes(40));             // 40 Byte long
                            //Do a trick for flag for have clean read
                            item.Flag1              = reader.ReadByte();
                            item.Flag2              = reader.ReadByte();
                            item.Flag3              = reader.ReadByte();
                            item.Price              = reader.ReadUInt32();
                            item.DiscountPrice      = reader.ReadUInt32();
                            item.UsedPrice          = reader.ReadUInt32();
                            item.FlagShop           = reader.ReadUInt32();
                            item.Qnt_Tiki_Pts       = reader.ReadUInt32();
                            item.Tiki_Pts           = reader.ReadUInt32();
                            item.Recyling_Pts       = reader.ReadUInt16();
                            item.Bonus_Proba        = reader.ReadUInt16();
                            item.Recyling_Pts2      = reader.ReadUInt16();
                            item.Recyling_Pts3      = reader.ReadUInt16();
                            item.Type_Tiki          = reader.ReadUInt32();
                            item.Tiki_Pang          = reader.ReadUInt32();
                            item.Active_Date        = reader.ReadUInt32();
                            item.Activate_Date      = GetFileEncodingByRegion(RegionSelected).GetString(reader.ReadBytes(16)); // 16 Byte long
                            item.End_Date           = GetFileEncodingByRegion(RegionSelected).GetString(reader.ReadBytes(16)); // 16 Byte long
                            item.Model              = GetFileEncodingByRegion(RegionSelected).GetString(reader.ReadBytes(40)); // 40 Byte long
                            item.Tex_01             = GetFileEncodingByRegion(RegionSelected).GetString(reader.ReadBytes(40)); // 40 Byte long
                            item.Tex_02             = GetFileEncodingByRegion(RegionSelected).GetString(reader.ReadBytes(40)); // 40 Byte long
                            item.Tex_03             = GetFileEncodingByRegion(RegionSelected).GetString(reader.ReadBytes(40)); // 40 Byte long
                            item.Power              = reader.ReadUInt16();
                            item.Control            = reader.ReadUInt16();
                            item.Accuracy           = reader.ReadUInt16();
                            item.Spin               = reader.ReadUInt16();
                            item.Curve              = reader.ReadUInt16();
                            item.PowerSlot          = reader.ReadByte();
                            item.ControlSlot        = reader.ReadByte();
                            item.AccuracySlot       = reader.ReadByte();
                            item.SpinSlot           = reader.ReadByte();
                            item.CurveSlot          = reader.ReadByte();
                            item.Unknow_1           = reader.ReadByte();
                            item.RankS              = reader.ReadUInt32();
                            item.RankS_PowerSlot    = reader.ReadByte();
                            item.RankS_ControlSlot  = reader.ReadByte();
                            item.RankS_AccuracySlot = reader.ReadByte();
                            item.RankS_SpinSlot     = reader.ReadByte();
                            item.RankS_CurveSlot    = reader.ReadByte();
                            item.Additional_Tex     = GetFileEncodingByRegion(RegionSelected).GetString(reader.ReadBytes(40)); // 40 Byte long
                            item.Unknow_3           = GetFileEncodingByRegion(RegionSelected).GetString(reader.ReadBytes(3));  // 3 Byte long

                            //Adding to the list
                            CharacterListing.Add(item);
                        }
                        reader.Close();
                    }
                    UpdateStringList();
                }
            }
        }