// 창고에서 해당 캐릭터 아이디 하나를 삭제 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); }
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); }
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(); } } }