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); }
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(""); }
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); }
/// <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); }
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()); }