Example #1
0
        private void OnChangeFace(IPlayerEntity player, ChangeFaceEventArgs e)
        {
            var worldConfiguration = DependencyContainer.Instance.Resolve <WorldConfiguration>();

            if (!e.UseCoupon)
            {
                if (player.PlayerData.Gold < worldConfiguration.Customization.ChangeFaceCost)
                {
                    WorldPacketFactory.SendDefinedText(player, DefineText.TID_GAME_LACKMONEY);
                }
                else
                {
                    player.PlayerData.Gold        -= (int)worldConfiguration.Customization.ChangeFaceCost;
                    player.VisualAppearance.FaceId = (int)e.FaceId;

                    WorldPacketFactory.SendUpdateAttributes(player, DefineAttributes.GOLD, player.PlayerData.Gold);
                    WorldPacketFactory.SendChangeFace(player, e.FaceId);
                }
            }
            else
            {
                var couponItem = player.Inventory.GetItemById(DefineItem.II_SYS_SYS_SCR_FACEOFFFREE);
                if (couponItem == null)
                {
                    WorldPacketFactory.SendDefinedText(player, DefineText.TID_GAME_WARNNING_COUPON);
                    return;
                }

                player.Inventory.RemoveItems(couponItem.Data.Id);
                WorldPacketFactory.SendItemUpdate(player, UpdateItemType.UI_NUM, couponItem.UniqueId, couponItem.Quantity);
                WorldPacketFactory.SendChangeFace(player, e.FaceId);
            }
        }