protected virtual void NetFuncSetDealingItem(short itemIndex, short amount) { if (DealingState != DealingState.Dealing) { gameManager.SendServerGameMessage(ConnectionId, GameMessage.Type.InvalidDealingState); return; } if (itemIndex >= nonEquipItems.Count) { return; } DealingCharacterItems dealingItems = DealingItems; for (int i = dealingItems.Count - 1; i >= 0; --i) { if (itemIndex == dealingItems[i].nonEquipIndex) { dealingItems.RemoveAt(i); break; } } CharacterItem characterItem = nonEquipItems[itemIndex].Clone(); characterItem.amount = amount; DealingCharacterItem dealingItem = new DealingCharacterItem(); dealingItem.nonEquipIndex = itemIndex; dealingItem.characterItem = characterItem; dealingItems.Add(dealingItem); // Update to clients DealingItems = dealingItems; }
protected virtual void NetFuncSetDealingItem(ushort itemIndex, short amount) { if (DealingState != DealingState.Dealing) { GameManager.SendServerGameMessage(ConnectionId, GameMessage.Type.InvalidDealingState); return; } if (itemIndex >= nonEquipItems.Count) { return; } var dealingItems = DealingItems; for (var i = dealingItems.Count - 1; i >= 0; --i) { if (itemIndex == dealingItems[i].nonEquipIndex) { dealingItems.RemoveAt(i); break; } } var characterItem = nonEquipItems[itemIndex]; var dealingItem = new DealingCharacterItem(); dealingItem.nonEquipIndex = itemIndex; dealingItem.dataId = characterItem.dataId; dealingItem.level = characterItem.level; dealingItem.amount = amount; dealingItem.durability = characterItem.durability; dealingItems.Add(dealingItem); // Update to clients DealingItems = dealingItems; }
public virtual void ExchangeDealingItemsAndGold() { if (DealingCharacter == null) { return; } List <DealingCharacterItem> tempDealingItems = new List <DealingCharacterItem>(DealingItems); for (int i = nonEquipItems.Count - 1; i >= 0; --i) { CharacterItem nonEquipItem = nonEquipItems[i]; for (int j = tempDealingItems.Count - 1; j >= 0; --j) { DealingCharacterItem dealingItem = tempDealingItems[j]; if (dealingItem.nonEquipIndex == i && nonEquipItem.amount >= dealingItem.characterItem.amount) { if (DealingCharacter.IncreaseItems(dealingItem.characterItem)) { // Reduce item amount when able to increase item to co character nonEquipItem.amount -= dealingItem.characterItem.amount; if (nonEquipItem.amount == 0) { nonEquipItems.RemoveAt(i); } else { nonEquipItems[i] = nonEquipItem; } } tempDealingItems.RemoveAt(j); break; } } } this.FillEmptySlots(); Gold -= DealingGold; DealingCharacter.Gold += DealingGold; }