public void ShowDialogue(Dissectible Dissectible, List <BodyPart> BodyParts, bool TopLayer = false) { this.transform.localPosition = Vector3.zero; this.SetActive(true); Clear(); foreach (var bodyPart in BodyParts) { var newItem = Instantiate(ListItem, ScrollList.transform); newItem.BodyToChoose(bodyPart, () => { ShowDialogue(Dissectible, bodyPart); }, PickSprite, "Pick"); OpenItems.Add(newItem); } if (TopLayer == false) { foreach (var Procedure in Dissectible.BodyPartIsOn.SurgeryProcedureBase) { if (Procedure is CloseProcedure || Procedure is ImplantProcedure) { var newItem = Instantiate(ListItem, ScrollList.transform); newItem.ProcedureToChoose(Dissectible.currentlyOn, () => { StartProcedure(Dissectible, Dissectible.BodyPartIsOn, Procedure); }, Procedure.ProcedureSprite, Procedure.ProcedureName); OpenItems.Add(newItem); } } } else { var Procedure = Dissectible.GetComponent <PlayerSprites>().RaceBodyparts.Base.RootImplantProcedure; var newItem = Instantiate(ListItem, ScrollList.transform); newItem.ProcedureToChoose(Dissectible.gameObject, () => { StartProcedure(Dissectible, Dissectible.BodyPartIsOn, Procedure); }, Procedure.ProcedureSprite, Procedure.ProcedureName); OpenItems.Add(newItem); } }
public static NetMessage SendTo(List <BodyPart> BodyParts, Dissectible InDissectible, ConnectedPlayer Player) { List <uint> NetIDs = new List <uint>(); foreach (var BodyPart in BodyParts) { NetIDs.Add(BodyPart ? BodyPart.GetComponent <NetworkIdentity>().netId : NetId.Invalid); } NetMessage msg = new NetMessage { JsonData = JsonConvert.SerializeObject(NetIDs), dissectible = InDissectible ? InDissectible.GetComponent <NetworkIdentity>().netId : NetId.Invalid, }; SendTo(Player, msg); return(msg); }