Cloning rework (#3808)

* Fix cloning

* Fix cloning after clone dies and remove unneeded code

* Fix ignored

Co-authored-by: Silver <silvertorch5@gmail.com>
This commit is contained in:
ShadowCommander
2021-05-11 16:16:08 -07:00
committed by GitHub
parent d41fc24834
commit c2d66723a3
8 changed files with 191 additions and 148 deletions

View File

@@ -1,6 +1,6 @@
#nullable enable
using Content.Server.Eui;
using Content.Server.Players;
using Content.Server.GameObjects.EntitySystems;
using Content.Server.Mobs;
using Content.Shared.Eui;
using Content.Shared.GameObjects.Components.Observer;
using Robust.Shared.GameObjects;
@@ -9,28 +9,26 @@ namespace Content.Server.GameObjects.Components.Observer
{
public class AcceptCloningEui : BaseEui
{
private readonly IEntity _newMob;
private readonly Mind _mind;
public AcceptCloningEui(IEntity newMob)
public AcceptCloningEui(Mind mind)
{
_newMob = newMob;
_mind = mind;
}
public override void HandleMessage(EuiMessageBase msg)
{
base.HandleMessage(msg);
if (msg is not AcceptCloningChoiceMessage choice
|| choice.Button == AcceptCloningUiButton.Deny
|| _newMob.Deleted)
if (msg is not AcceptCloningChoiceMessage choice ||
choice.Button == AcceptCloningUiButton.Deny ||
!EntitySystem.TryGet<CloningSystem>(out var cloningSystem))
{
Close();
return;
}
var mind = Player.ContentData()?.Mind;
mind?.TransferTo(_newMob);
mind?.UnVisit();
cloningSystem.TransferMindToClone(_mind);
Close();
}
}