Example #1
0
 public override SurgeryAction GetSurgeryStep(SurgeryToolType toolType)
 {
     if (_skinOpened)
     {
         if (_vesselsClamped)
         {
             if (_skinRetracted)
             {
                 if (_targetOrgan != null && toolType == SurgeryToolType.VesselCompression)
                 {
                     return(RemoveOrganSurgery);
                 }
                 if (toolType == SurgeryToolType.Incision) //_targetOrgan is potentially given a value by DisconnectOrganSurgery.
                 {
                     return(DisconnectOrganSurgery);
                 }
                 else if (toolType == SurgeryToolType.Cauterization)
                 {
                     return(CautizerizeIncisionSurgery);
                 }
             }
             else
             {
                 if (toolType == SurgeryToolType.Retraction)
                 {
                     return(RetractSkinSurgery);
                 }
                 else if (toolType == SurgeryToolType.Cauterization)
                 {
                     return(CautizerizeIncisionSurgery);
                 }
             }
         }
         else
         {
             if (toolType == SurgeryToolType.VesselCompression)
             {
                 return(ClampVesselsSurgery);
             }
             else if (toolType == SurgeryToolType.Cauterization)
             {
                 return(CautizerizeIncisionSurgery);
             }
         }
     }
     else
     {
         if (toolType == SurgeryToolType.Incision)
         {
             return(OpenSkinSurgery);
         }
     }
     return(null);
 }
Example #2
0
        /// <summary>
        ///     Attempts to perform surgery with the given tooltype. Returns whether the operation was successful.
        /// </summary>
        /// /// <param name="toolType">The SurgeryToolType used for this surgery.</param>
        /// /// <param name="performer">The entity performing the surgery.</param>
        public bool PerformSurgery(SurgeryToolType toolType, BodyManagerComponent target, IEntity performer)
        {
            SurgeryAction step = GetSurgeryStep(toolType);

            if (step == null)
            {
                return(false);
            }
            step(target, performer);
            return(true);
        }
Example #3
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(SurgeryToolType toolType, BodyManagerComponent target, IEntity performer)
 {
     return(_surgeryData.PerformSurgery(toolType, target, performer));
 }
Example #4
0
 /// <summary>
 ///     Returns whether the given SurgertToolType can be used on the current state of this BodyPart (e.g.
 /// </summary>
 public bool SurgeryCheck(SurgeryToolType toolType)
 {
     return(_surgeryData.CheckSurgery(toolType));
 }
Example #5
0
 /// <summary>
 ///     Returns whether the given SurgeryToolType can be used to perform a surgery.
 /// </summary>
 public bool CheckSurgery(SurgeryToolType toolType)
 {
     return(GetSurgeryStep(toolType) != null);
 }
Example #6
0
 /// <summary>
 ///     Gets the delegate corresponding to the surgery step using the given SurgeryToolType. Returns null if no surgery step can be performed.
 /// </summary>
 public abstract SurgeryAction GetSurgeryStep(SurgeryToolType toolType);