private void OpenSkinSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer)
        {
            performer.PopupMessage(Loc.GetString("Cut open the skin..."));

            // TODO do_after: Delay
            _skinOpened = true;
        }
Пример #2
0
        private void LoosenOrganSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer)
        {
            if (Parent == null)
            {
                return;
            }
            if (Parent.Mechanisms.Count <= 0)
            {
                return;
            }

            var toSend = new List <IMechanism>();

            foreach (var mechanism in Parent.Mechanisms)
            {
                if (!_disconnectedOrgans.Contains(mechanism))
                {
                    toSend.Add(mechanism);
                }
            }

            if (toSend.Count > 0)
            {
                surgeon.RequestMechanism(toSend, LoosenOrganSurgeryCallback);
            }
        }
        private void RetractSkinSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer)
        {
            performer.PopupMessage(performer, Loc.GetString("Retract the skin..."));

            // TODO do_after: Delay
            _skinRetracted = true;
        }
        private void ClampVesselsSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer)
        {
            performer.PopupMessage(performer, Loc.GetString("Clamp the vessels..."));

            // TODO do_after: Delay
            _vesselsClamped = true;
        }
 protected void CautizerizeIncisionSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer)
 {
     performer.PopupMessage(performer, Loc.GetString("Cauterize the incision..."));
     //Delay?
     _skinOpened     = false;
     _vesselsClamped = false;
     _skinRetracted  = false;
 }
        private void CauterizeIncisionSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer)
        {
            performer.PopupMessage(Loc.GetString("Cauterize the incision..."));

            // TODO do_after: Delay
            _skinOpened     = false;
            _vesselsClamped = false;
            _skinRetracted  = false;
        }
        protected void RemoveBodyPartSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer)
        {
            if (!(container is BodyManagerComponent)) //This surgery requires a DroppedBodyPartComponent.
            {
                return;
            }
            BodyManagerComponent bmTarget = (BodyManagerComponent)container;

            performer.PopupMessage(performer, Loc.GetString("Saw off the limb!"));
            //Delay?
            bmTarget.DisconnectBodyPart(_parent, true);
        }
Пример #8
0
        private void ClampVesselsSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer)
        {
            if (Parent == null)
            {
                return;
            }

            performer.PopupMessage(Loc.GetString("Clamp the vessels..."));

            // TODO BODY do_after: Delay
            _vesselsClamped = true;
        }
Пример #9
0
        private void RetractSkinSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer)
        {
            if (Parent == null)
            {
                return;
            }

            performer.PopupMessage(Loc.GetString("Retract the skin..."));

            // TODO BODY do_after: Delay
            _skinRetracted = true;
        }
        private void RemoveOrganSurgeryCallback(Mechanism target, IBodyPartContainer container,
                                                ISurgeon surgeon,
                                                IEntity performer)
        {
            if (target == null || !Parent.Mechanisms.Contains(target))
            {
                return;
            }

            performer.PopupMessage(performer, Loc.GetString("Remove the organ..."));

            // TODO do_after: Delay
            Parent.TryDropMechanism(performer, target, out _);
            _disconnectedOrgans.Remove(target);
        }
        private void RemoveBodyPartSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer)
        {
            // This surgery requires a DroppedBodyPartComponent.
            if (!(container is BodyManagerComponent))
            {
                return;
            }

            var bmTarget = (BodyManagerComponent)container;

            performer.PopupMessage(performer, Loc.GetString("Saw off the limb!"));

            // TODO do_after: Delay
            bmTarget.DisconnectBodyPart(Parent, true);
        }
 protected void RemoveOrganSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer)
 {
     if (_disconnectedOrgans.Count <= 0)
     {
         return;
     }
     if (_disconnectedOrgans.Count == 1)
     {
         RemoveOrganSurgeryCallback(_disconnectedOrgans[0], container, surgeon, performer);
     }
     else
     {
         surgeon.RequestMechanism(_disconnectedOrgans, RemoveOrganSurgeryCallback);
     }
 }
Пример #13
0
        private void RemoveBodyPartSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer)
        {
            if (Parent == null)
            {
                return;
            }
            if (!(container is IBody body))
            {
                return;
            }

            performer.PopupMessage(Loc.GetString("Saw off the limb!"));

            // TODO BODY do_after: Delay
            body.RemovePart(Parent, true);
        }
        protected void LoosenOrganSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer)
        {
            if (_parent.Mechanisms.Count <= 0)
            {
                return;
            }
            List <Mechanism> toSend = new List <Mechanism>();

            foreach (Mechanism mechanism in _parent.Mechanisms)
            {
                if (!_disconnectedOrgans.Contains(mechanism))
                {
                    toSend.Add(mechanism);
                }
            }
            if (toSend.Count > 0)
            {
                surgeon.RequestMechanism(toSend, LoosenOrganSurgeryCallback);
            }
        }
        public int RegistSurgeon(string name, string surname, DateTime birth, string surgeryType)
        {
            ISurgeon surgeon = factory.CreateSurgeon(name, surname, birth, surgeryType);

            return(surgeonRepo.SaveSurgeon(surgeon));
        }
Пример #16
0
        private void RemoveOrganSurgeryCallback(IMechanism?target, IBodyPartContainer container, ISurgeon surgeon,
                                                IEntity performer)
        {
            if (Parent == null || target == null || !Parent.Mechanisms.Contains(target))
            {
                return;
            }

            performer.PopupMessage(Loc.GetString("Remove the organ..."));

            // TODO BODY do_after: Delay
            Parent.RemoveMechanism(target, performer.Transform.Coordinates);
            _disconnectedOrgans.Remove(target);
        }
Пример #17
0
        private void LoosenOrganSurgeryCallback(IMechanism?target, IBodyPartContainer container, ISurgeon surgeon,
                                                IEntity performer)
        {
            if (Parent == null || target == null || !Parent.Mechanisms.Contains(target))
            {
                return;
            }

            performer.PopupMessage(Loc.GetString("Loosen the organ..."));

            // TODO BODY do_after: Delay
            _disconnectedOrgans.Add(target);
        }
 protected void ClampVesselsSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer)
 {
     performer.PopupMessage(performer, Loc.GetString("Clamp the vessels..."));
     //Delay?
     _vesselsClamped = true;
 }
 protected void RetractSkinSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer)
 {
     performer.PopupMessage(performer, Loc.GetString("Retract the skin..."));
     //Delay?
     _skinRetracted = true;
 }
 public void RemoveOrganSurgeryCallback(Mechanism target, IBodyPartContainer container, ISurgeon surgeon, IEntity performer)
 {
     if (target != null && _parent.Mechanisms.Contains(target))
     {
         performer.PopupMessage(performer, Loc.GetString("Remove the organ..."));
         //Delay?
         _parent.DropMechanism(performer, target);
         _disconnectedOrgans.Remove(target);
     }
 }
Пример #21
0
 public int SaveSurgeon(ISurgeon surgeon)
 {
     this.surgeon.Add(++number, surgeon);
     return(number);
 }
Пример #22
0
        public bool PerformSurgery(SurgeryType surgeryType, IBodyPartContainer container, ISurgeon surgeon,
                                   IEntity performer)
        {
            var step = GetSurgeryStep(surgeryType);

            if (step == null)
            {
                return(false);
            }

            step(container, surgeon, performer);
            return(true);
        }
Пример #23
0
 /// <summary>
 ///     Attempts to perform surgery on this BodyPart with the given tool. Returns false if there was an error, true if successful.
 /// </summary>
 public bool AttemptSurgery(SurgeryType toolType, IBodyPartContainer target, ISurgeon surgeon, IEntity performer)
 {
     return(_surgeryData.PerformSurgery(toolType, target, surgeon, performer));
 }