Finalize Surgery

This commit is contained in:
VegaZ
2021-05-03 19:10:14 +02:00
parent 36f2517844
commit 19f0810918
7 changed files with 243 additions and 146 deletions

View File

@@ -4,6 +4,7 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using ReallifeGamemode.Database.Entities;
using ReallifeGamemode.Database.Models;
using ReallifeGamemode.Server.Events;
using ReallifeGamemode.Server.Extensions;
namespace ReallifeGamemode.Server.Managers
@@ -31,6 +32,21 @@ 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);
@@ -161,14 +177,26 @@ namespace ReallifeGamemode.Server.Managers
ChestHairColor = chestHairColor
};
saveCharacter.Characters.Add(character);
saveCharacter.SaveChanges();
var userId = player.GetUser().Id;
var user = saveCharacter.Users.SingleOrDefault(u => u.Id == userId);
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();
}
}
for (var x = 1; x <= 11; x++)
{
var s = 0;
@@ -232,16 +260,19 @@ namespace ReallifeGamemode.Server.Managers
break;
};
}
var createClothes = new Database.Entities.CharacterCloth()
if (!charExists || genderSwap)
{
UserId = userId,
Duty = false,
SlotType = 1,
SlotId = x,
ClothId = y,
Texture = 0
};
saveCharacter.CharacterClothes.Add(createClothes);
var createClothes = new Database.Entities.CharacterCloth()
{
UserId = userId,
Duty = false,
SlotType = 1,
SlotId = x,
ClothId = y,
Texture = 0
};
saveCharacter.CharacterClothes.Add(createClothes);
}
}
else
{
@@ -249,6 +280,12 @@ namespace ReallifeGamemode.Server.Managers
}
}
if (charExists)
{
user.BankAccount.Balance -= 15000;
if(user.FreeSurgery == true) user.FreeSurgery = false;
}
saveCharacter.SaveChanges();
}
//HeadOverlay makeupHo = new HeadOverlay()
@@ -270,6 +307,12 @@ namespace ReallifeGamemode.Server.Managers
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);
}
}
/// <summary>
@@ -424,6 +467,7 @@ namespace ReallifeGamemode.Server.Managers
}
public static void StartSurgery(Player player)
{
/*
Character c = player.GetUser().GetCharacter();
var PlayerCharacterData = new
@@ -487,7 +531,7 @@ namespace ReallifeGamemode.Server.Managers
BlushColor = c.BlushColor,
LipstickColor = c.LipstickColor,
ChestHairColor = c.ChestHairColor
};
};*/
var currentPlayerCreatorDimension = (uint)NAPI.Data.GetWorldData("playerCreatorDimension");
currentPlayerCreatorDimension++;
@@ -495,7 +539,7 @@ namespace ReallifeGamemode.Server.Managers
player.Dimension = NAPI.Data.GetWorldData("playerCreatorDimension");
player.SafeTeleport(new Vector3(266.472, -1339.1357, 24.5378));
player.Heading = 146.35101f;
player.TriggerEvent("toggleSurgery", JsonConvert.SerializeObject(PlayerCharacterData));
player.TriggerEvent("toggleCreator", true);
}
[RemoteEvent("surgeryLeave")]
@@ -504,6 +548,7 @@ namespace ReallifeGamemode.Server.Managers
player.Dimension = 0;
player.SafeTeleport(new Vector3(258.581, -1345.1406, 24.5378), Main.DEFAULT_SPAWN_HEADING, true);
ApplyCharacter(player);
UpdateCharacterCloth.LoadCharacterDefaults(player);
}
[RemoteEvent("SaveSurgery")]
public static void SaveSurgery(Player player, bool gender, string parentData, string featureData, string appearanceData, string hairAndColorData)