Finalize Surgery

This commit is contained in:
VegaZ
2021-05-03 21:33:56 +02:00
81 changed files with 3654 additions and 609 deletions

View File

@@ -32,21 +32,6 @@ namespace ReallifeGamemode.Server.Managers
[RemoteEvent("creatorSave")]
public void CreatorSave(Player player, bool gender, string parentData, string featureData, string appearanceData, string hairAndColorData)
{
var charExists = false;
var genderSwap = false;
var cUser = player.GetUser();
if (cUser.CharacterId != null)
{
charExists = true;
if(cUser.Character.Gender != gender)
{
genderSwap = true;
}
}
var jParentData = JObject.Parse(parentData);
var jFeatureData = JArray.Parse(featureData);
var jAppearanceData = JArray.Parse(appearanceData);
@@ -79,27 +64,27 @@ namespace ReallifeGamemode.Server.Managers
float neckWidth = jFeatureData.Value<float>(19);
byte blemishes = jAppearanceData[0].Value<byte>("Value");
float blemishesOpacity = jAppearanceData[0].Value<byte>("Opacity");
float blemishesOpacity = jAppearanceData[0].Value<float>("Opacity");
byte facialHair = jAppearanceData[1].Value<byte>("Value");
float facialHairOpacity = jAppearanceData[1].Value<byte>("Opacity");
float facialHairOpacity = jAppearanceData[1].Value<float>("Opacity");
byte eyebrows = jAppearanceData[2].Value<byte>("Value");
float eyebrowsOpacity = jAppearanceData[2].Value<byte>("Opacity");
float eyebrowsOpacity = jAppearanceData[2].Value<float>("Opacity");
byte ageing = jAppearanceData[3].Value<byte>("Value");
float ageingOpacity = jAppearanceData[3].Value<byte>("Opacity");
float ageingOpacity = jAppearanceData[3].Value<float>("Opacity");
byte makeup = jAppearanceData[4].Value<byte>("Value");
float makeupOpacity = jAppearanceData[4].Value<byte>("Opacity");
float makeupOpacity = jAppearanceData[4].Value<float>("Opacity");
byte blush = jAppearanceData[5].Value<byte>("Value");
float blushOpacity = jAppearanceData[5].Value<byte>("Opacity");
float blushOpacity = jAppearanceData[5].Value<float>("Opacity");
byte complexion = jAppearanceData[6].Value<byte>("Value");
float complexionOpacity = jAppearanceData[6].Value<byte>("Opacity");
float complexionOpacity = jAppearanceData[6].Value<float>("Opacity");
byte sunDamage = jAppearanceData[7].Value<byte>("Value");
float sunDamageOpacity = jAppearanceData[7].Value<byte>("Opacity");
float sunDamageOpacity = jAppearanceData[7].Value<float>("Opacity");
byte lipstick = jAppearanceData[8].Value<byte>("Value");
float lipstickOpacity = jAppearanceData[8].Value<byte>("Opacity");
float lipstickOpacity = jAppearanceData[8].Value<float>("Opacity");
byte freckles = jAppearanceData[9].Value<byte>("Value");
float frecklesOpacity = jAppearanceData[9].Value<byte>("Opacity");
float frecklesOpacity = jAppearanceData[9].Value<float>("Opacity");
byte chestHair = jAppearanceData[10].Value<byte>("Value");
float chestHairOpacity = jAppearanceData[10].Value<byte>("Opacity");
float chestHairOpacity = jAppearanceData[10].Value<float>("Opacity");
byte hair = jHairAndColorData.Value<byte>(0);
byte hairColor = jHairAndColorData.Value<byte>(1);
@@ -111,8 +96,26 @@ namespace ReallifeGamemode.Server.Managers
byte lipstickColor = jHairAndColorData.Value<byte>(7);
byte chestHairColor = jHairAndColorData.Value<byte>(8);
var charExists = false;
var genderSwap = false;
using (var saveCharacter = new DatabaseContext())
{
var userId = player.GetUser(saveCharacter).Id;
var user = saveCharacter.Users.SingleOrDefault(u => u.Id == userId);
var oldChar = saveCharacter.Characters.FirstOrDefault(c => c.UserId == user.Id);
if (user.CharacterId != null)
{
charExists = true;
if (oldChar.Gender != gender)
{
genderSwap = true;
}
}
var character = new Database.Entities.Character
{
UserId = player.GetUser().Id,
@@ -181,20 +184,15 @@ namespace ReallifeGamemode.Server.Managers
saveCharacter.Characters.Add(character);
saveCharacter.SaveChanges();
var userId = player.GetUser().Id;
var user = saveCharacter.Users.SingleOrDefault(u => u.Id == userId);
user.CharacterId = character.Id;
if (genderSwap)
{
var charClothes = saveCharacter.CharacterClothes.Where(c => c.UserId == user.Id);
foreach(var cloth in charClothes)
{
saveCharacter.Remove(cloth);
saveCharacter.SaveChanges();
}
var charClothes = saveCharacter.CharacterClothes.Where(c => c.UserId == user.Id);
saveCharacter.RemoveRange(charClothes);
saveCharacter.SaveChanges();
}
for (var x = 1; x <= 11; x++)
@@ -280,12 +278,12 @@ namespace ReallifeGamemode.Server.Managers
}
}
if (charExists)
{
user.BankAccount.Balance -= 15000;
if(user.FreeSurgery == true) user.FreeSurgery = false;
}
saveCharacter.Remove(oldChar);
}
saveCharacter.SaveChanges();
}
//HeadOverlay makeupHo = new HeadOverlay()
@@ -304,14 +302,15 @@ namespace ReallifeGamemode.Server.Managers
//};
//player.SetHeadOverlay(4, makeupHo);
//player.SetHeadOverlay(5, blushHo);
player.SafeTeleport(Main.DEFAULT_SPAWN_POSITION, Main.DEFAULT_SPAWN_HEADING, true);
player.TriggerEvent("draw", player.Name, player.Handle.Value);
player.Dimension = 0;
if (charExists)
{
ApplyCharacter(player);
UpdateCharacterCloth.LoadCharacterDefaults(player);
{
LeaveSurgery(player);
}
else
{
player.SafeTeleport(Main.DEFAULT_SPAWN_POSITION, Main.DEFAULT_SPAWN_HEADING, true);
player.TriggerEvent("draw", player.Name, player.Handle.Value);
player.Dimension = 0;
}
}