Ejemplo n.º 1
0
        private OwnedCarTrans ConvertOwnedCarToContract(AppOwnedCar personaOwnedCar)
        {
            OwnedCarTrans ownedCarTrans = new OwnedCarTrans();

            ownedCarTrans.Id            = personaOwnedCar.ID;
            ownedCarTrans.Durability    = personaOwnedCar.Durability;
            ownedCarTrans.Heat          = personaOwnedCar.Heat;
            ownedCarTrans.OwnershipType = personaOwnedCar.OwnershipType;
            //ownedCarTrans.ExpirationDate = personaOwnedCar.ExpirationDate?.LocalDateTime ?? null;
            if (personaOwnedCar.ExpirationDate.HasValue)
            {
                ownedCarTrans.ExpirationDate = personaOwnedCar.ExpirationDate.Value.LocalDateTime;
            }

            CustomCarTrans cct = new CustomCarTrans();

            cct.Id                 = personaOwnedCar.CustomCar.ID;
            cct.BaseCar            = personaOwnedCar.CustomCar.BaseCarHash;
            cct.PhysicsProfileHash = personaOwnedCar.CustomCar.PhysicsProfileHash;
            cct.CarClassHash       = unchecked ((int)0xE7CF6958);
            cct.Paints             = new List <CustomPaintTrans>();
            cct.VisualParts        = new List <VisualPartTrans>();
            cct.Rating             = 420;
            cct.Vinyls             = new List <CustomVinylTrans>();
            cct.PerformanceParts   = new List <PerformancePartTrans>();
            cct.SkillModParts      = new List <SkillModPartTrans>();
            cct.SkillModSlotCount  = 5;
            cct.ResalePrice        = personaOwnedCar.CustomCar.ResalePrice;

            ownedCarTrans.CustomCar = cct;

            return(ownedCarTrans);
        }
Ejemplo n.º 2
0
        public static String cars()
        {
            if (Access.sHttp.request.HttpMethod == "POST")
            {
                if (Access.CurrentSession.ActivePersona.Cars.Count > 1)
                {
                    Int32 carId       = Int32.Parse(Access.sHttp.request.Params.Get("serialNumber"));
                    Car   curCar      = Access.CurrentSession.ActivePersona.Cars.First(c => c.Id == carId);
                    Int32 curCarIndex = Access.CurrentSession.ActivePersona.Cars.IndexOf(curCar);

                    Economy economy = Economy.defineManually(new Economy.ProductInformation()
                    {
                        currency = Basket.Currency.Cash, price = curCar.ResalePrice
                    }, 1);
                    economy.doIncrement();
                    PersonaManagement.removeCar(curCar);

                    Int32 newIndex;
                    if (Access.CurrentSession.ActivePersona.Cars.Count <= curCarIndex)
                    {
                        newIndex = Access.CurrentSession.ActivePersona.Cars.Count - 1;
                    }
                    else
                    {
                        newIndex = curCarIndex;
                    }
                    Access.CurrentSession.ActivePersona.CurrentCarIndex = newIndex;

                    return(Access.CurrentSession.ActivePersona.SelectedCar.getOwnedCarTrans().SerializeObject());
                }
            }
            else if (Access.sHttp.request.HttpMethod == "PUT")
            {
                // TODO: Make performance parts use economy -> attribHash
                Car           curCar = Access.CurrentSession.ActivePersona.Cars[Access.CurrentSession.ActivePersona.CurrentCarIndex];
                OwnedCarTrans newCar = Access.sHttp.getPostData().DeserializeObject <OwnedCarTrans>();

                curCar.PerformanceParts = XElement.Parse(newCar.customCar.performanceParts.SerializeObject());
                return(curCar.getOwnedCarTrans().SerializeObject());
            }
            return("");
        }
Ejemplo n.º 3
0
        public static AaronPresetCar ConvertServerXMLToAaronPreset(OwnedCarTrans ownedCarTrans)
        {
            AaronPresetCar aaronPresetCar = new AaronPresetCar();

            aaronPresetCar.CarName            = ownedCarTrans.CustomCar.Name;
            aaronPresetCar.Paints             = new SynchronizedObservableCollection <AaronPresetCarPaint>();
            aaronPresetCar.PerformanceParts   = new SynchronizedObservableCollection <AaronPresetCarPerfPart>();
            aaronPresetCar.SkillModParts      = new SynchronizedObservableCollection <AaronPresetCarSkill>();
            aaronPresetCar.Vinyls             = new SynchronizedObservableCollection <AaronPresetCarVinyl>();
            aaronPresetCar.VisualParts        = new SynchronizedObservableCollection <AaronPresetCarVisualPart>();
            aaronPresetCar.SkillModSlotCount  = (uint)ownedCarTrans.CustomCar.SkillModSlotCount;
            aaronPresetCar.PhysicsProfileHash = unchecked ((uint)ownedCarTrans.CustomCar.PhysicsProfileHash);

            for (int i = 0; i < 8; i++)
            {
                aaronPresetCar.Paints.Add(new AaronPresetCarPaint());
            }

            for (int i = 0; i < 31; i++)
            {
                aaronPresetCar.Vinyls.Add(new AaronPresetCarVinyl());
            }

            foreach (var paint in ownedCarTrans.CustomCar.Paints)
            {
                aaronPresetCar.Paints[paint.Slot] =
                    convertXMLPaintToAaron(paint);
            }

            foreach (var skillModPart in ownedCarTrans.CustomCar.SkillModParts)
            {
                aaronPresetCar.SkillModParts.Add(new AaronPresetCarSkill
                {
                    Hash    = unchecked ((uint)skillModPart.SkillModPartAttribHash),
                    IsFixed = skillModPart.IsFixed
                });
            }

            foreach (var performancePart in ownedCarTrans.CustomCar.PerformanceParts)
            {
                aaronPresetCar.PerformanceParts.Add(new AaronPresetCarPerfPart
                {
                    Hash = unchecked ((uint)performancePart.PerformancePartAttribHash)
                });
            }

            foreach (var customCarVisualPart in ownedCarTrans.CustomCar.VisualParts)
            {
                aaronPresetCar.VisualParts.Add(new AaronPresetCarVisualPart
                {
                    PartHash = unchecked ((uint)customCarVisualPart.PartHash),
                    SlotHash = unchecked ((uint)customCarVisualPart.SlotHash)
                });
            }

            foreach (var customVinyl in ownedCarTrans.CustomCar.Vinyls)
            {
                aaronPresetCar.Vinyls[customVinyl.Layer] = convertXMLVinylToAaron(customVinyl);
            }

            return(aaronPresetCar);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Converts a <see cref="AaronPresetCar"/> to a <see cref="OwnedCarTrans"/>
        /// </summary>
        /// <param name="aaronPresetCar"></param>
        /// <returns></returns>
        public static OwnedCarTrans ConvertAaronPresetToServerXML(AaronPresetCar aaronPresetCar)
        {
            OwnedCarTrans ownedCarTrans = new OwnedCarTrans();

            ownedCarTrans.ExpirationDate = DateTime.FromBinary(0);
            ownedCarTrans.OwnershipType  = "PresetCar";
            ownedCarTrans.Id             = 0;
            ownedCarTrans.Durability     = 0;
            ownedCarTrans.CustomCar      = new CustomCarTrans();

            // setup customcar
            ownedCarTrans.CustomCar.Name               = aaronPresetCar.CarName;
            ownedCarTrans.CustomCar.BaseCar            = unchecked ((int)Hashing.BinHash(aaronPresetCar.CarName.ToUpperInvariant()));
            ownedCarTrans.CustomCar.IsPreset           = true;
            ownedCarTrans.CustomCar.PhysicsProfileHash = unchecked ((int)aaronPresetCar.PhysicsProfileHash);

            ownedCarTrans.CustomCar.Paints           = new List <CustomPaintTrans>();
            ownedCarTrans.CustomCar.PerformanceParts = new List <PerformancePartTrans>();
            ownedCarTrans.CustomCar.SkillModParts    = new List <SkillModPartTrans>();
            ownedCarTrans.CustomCar.Vinyls           = new List <CustomVinylTrans>();
            ownedCarTrans.CustomCar.VisualParts      = new List <VisualPartTrans>();

            ownedCarTrans.CustomCar.SkillModSlotCount = (int)aaronPresetCar.SkillModSlotCount;

            for (var index = 0; index < aaronPresetCar.Paints.Count; index++)
            {
                var aaronPresetCarPaint = aaronPresetCar.Paints[index];

                if (aaronPresetCarPaint == null)
                {
                    continue;
                }

                var paint = convertAaronPaintToXML(aaronPresetCarPaint, index);

                ownedCarTrans.CustomCar.Paints.Add(paint);
            }

            foreach (var aaronPresetCarPart in aaronPresetCar.SkillModParts)
            {
                ownedCarTrans.CustomCar.SkillModParts.Add(new SkillModPartTrans
                {
                    IsFixed = false,
                    SkillModPartAttribHash = unchecked ((int)aaronPresetCarPart.Hash)
                });
            }

            foreach (var aaronPresetCarVisualPart in aaronPresetCar.VisualParts)
            {
                ownedCarTrans.CustomCar.VisualParts.Add(new VisualPartTrans
                {
                    PartHash = unchecked ((int)aaronPresetCarVisualPart.PartHash),
                    SlotHash = unchecked ((int)aaronPresetCarVisualPart.SlotHash),
                });
            }

            foreach (var aaronPresetCarPerfPart in aaronPresetCar.PerformanceParts)
            {
                ownedCarTrans.CustomCar.PerformanceParts.Add(new PerformancePartTrans
                {
                    PerformancePartAttribHash = unchecked ((int)aaronPresetCarPerfPart.Hash)
                });
            }

            for (var index = 0; index < aaronPresetCar.Vinyls.Count; index++)
            {
                var aaronPresetCarVinyl = aaronPresetCar.Vinyls[index];

                if (aaronPresetCarVinyl == null)
                {
                    continue;
                }

                var convertAaronVinylToXml = convertAaronVinylToXML(aaronPresetCarVinyl);
                convertAaronVinylToXml.Layer = index;

                ownedCarTrans.CustomCar.Vinyls.Add(convertAaronVinylToXml);
            }

            return(ownedCarTrans);
        }
Ejemplo n.º 5
0
        public static String baskets()
        {
            BasketTrans               basketTrans         = Access.sHttp.getPostData().DeserializeObject <BasketTrans>();
            CommerceResultTrans       commerceResultTrans = new CommerceResultTrans();
            List <InventoryItemTrans> inventoryItems      = new List <InventoryItemTrans>();
            List <OwnedCarTrans>      purchasedCars       = new List <OwnedCarTrans>();

            Economy economy = Economy.defineFromBasketItemTransList(basketTrans.basketItems);

            if (economy == null)
            {
                commerceResultTrans.status = Basket.ShoppingCartPurchaseResult.Fail_InvalidBasket;
            }
            else if (!economy.canBuy())
            {
                commerceResultTrans.status = Basket.ShoppingCartPurchaseResult.Fail_InsufficientFunds;
            }
            else
            {
                economy.doTransaction();
                commerceResultTrans.status = Basket.ShoppingCartPurchaseResult.Success;
                commerceResultTrans.wallets.walletTrans = new WalletTrans()
                {
                    balance  = economy.balance,
                    currency = economy.currency
                };

                foreach (BasketItemTrans basketItemTrans in basketTrans.basketItems)
                {
                    for (int i = 0; i < basketItemTrans.quantity; i++)
                    {
                        switch (basketItemTrans.getItemType())
                        {
                        case Basket.BasketItemType.Unknown:
                        {
                            commerceResultTrans.status = Basket.ShoppingCartPurchaseResult.Fail_ItemNotAvailableStandalone;
                            goto finalize;         // ahahah f**k you anti-goto people
                        }

                        case Basket.BasketItemType.THRevive:
                            // implement TH
                            break;

                        case Basket.BasketItemType.Repair:
                        {
                            Access.CurrentSession.ActivePersona.SelectedCar.Durability = (Int16)100;
                        }
                        break;

                        case Basket.BasketItemType.CarSlot:
                            // implement carslots
                            break;

                        case Basket.BasketItemType.Powerup:
                            String powerupType = basketItemTrans.productId.Replace("SRV-POWERUP-", "");

                            // TODO:
                            // expose to UI
                            // improve Persona.Inventory
                            InventoryItemEntity entity = PersonaManagement.persona.inventory.FirstOrDefault(ii => ii.entitlementTag == powerupType);
                            if (entity != null)
                            {
                                entity = InventoryItemManagement.getInventoryItemEntity(entity.id);
                                entity.remainingUseCount += DataEx.productInformations[basketItemTrans.productId].useCount;
                                entity.setInventoryItemEntity();

                                inventoryItems.Add(entity.getInventoryItemTrans());
                            }
                            break;

                        case Basket.BasketItemType.Car:
                        {
                            OwnedCarTrans purchasedCar = Catalog.getCarBasketDefinition(basketItemTrans.productId);
                            if (purchasedCar == null)
                            {
                                continue;
                            }

                            CarEntity carEntity = new CarEntity();
                            carEntity.baseCarId          = purchasedCar.customCar.baseCarId;
                            carEntity.carClassHash       = purchasedCar.customCar.carClassHash;
                            carEntity.durability         = purchasedCar.durability;
                            carEntity.heatLevel          = purchasedCar.heatLevel;
                            carEntity.name               = purchasedCar.customCar.name;
                            carEntity.paints             = purchasedCar.customCar.paints.SerializeObject();
                            carEntity.performanceParts   = purchasedCar.customCar.performanceParts.SerializeObject();
                            carEntity.physicsProfileHash = purchasedCar.customCar.physicsProfileHash;
                            carEntity.rating             = purchasedCar.customCar.rating;
                            carEntity.resalePrice        = purchasedCar.customCar.resalePrice;
                            carEntity.skillModParts      = purchasedCar.customCar.skillModParts.SerializeObject();
                            carEntity.vinyls             = purchasedCar.customCar.vinyls.SerializeObject();
                            carEntity.visualParts        = purchasedCar.customCar.visualParts.SerializeObject();

                            carEntity = PersonaManagement.addCar(carEntity);

                            purchasedCar.id           = carEntity.id;
                            purchasedCar.customCar.id = carEntity.id;
                            purchasedCars.Add(purchasedCar);
                        }
                        break;
                        }
                    }
                }
            }

finalize:
            commerceResultTrans.commerceItems  = new List <CommerceItemTrans>();
            commerceResultTrans.inventoryItems = inventoryItems.Count > 0 ? inventoryItems : new List <InventoryItemTrans>()
            {
                new InventoryItemTrans()
            };
            commerceResultTrans.purchasedCars = purchasedCars;
            return(commerceResultTrans.SerializeObject());
        }