private IEnumerator ServerProcessCloning(CloningRecord record) { yield return(WaitFor.Seconds(10f)); statusString = "Cloning process complete."; if (console) { console.UpdateDisplay(); } if (record.mind.IsOnline()) { var playerBody = PlayerSpawn.ServerClonePlayer(record.mind, transform.position.CutToInt()).GetComponent <LivingHealthMasterBase>(); void ApplyDamage() { ApplyCloningDamage(playerBody); } playerBody.OnFullyInitialised(ApplyDamage); //GameObject //Do cloning damage //Initialisation order } statusSync = CloningPodStatus.Empty; }
public void SyncSprite(CloningPodStatus value) { statusSync = value; if (value == CloningPodStatus.Empty) { spriteRenderer.sprite = emptySprite; } else { spriteRenderer.sprite = cloningSprite; } }
private IEnumerator ServerProcessCloning(CloningRecord record) { yield return(WaitFor.Seconds(10f)); statusString = "Cloning process complete."; if (console) { console.consoleGUI.UpdateDisplay(); } if (record.mind.IsOnline(record.mind.GetCurrentMob())) { PlayerSpawn.ServerClonePlayer(record.mind, transform.position.CutToInt()); } statusSync = CloningPodStatus.Empty; }
private IEnumerator ProcessCloning(CloningRecord record) { yield return(WaitFor.Seconds(10f)); statusString = "Cloning process complete."; if (console) { console.consoleGUI.UpdateDisplay(); } if (record.mind.IsOnline(record.mind.GetCurrentMob())) { record.mind.ClonePlayer(gameObject, record.characterSettings); } statusSync = CloningPodStatus.Empty; }
private IEnumerator ServerProcessCloning(CloningRecord record) { yield return(WaitFor.Seconds(10f)); statusString = "Cloning process complete."; if (console) { console.UpdateDisplay(); } if (record.mind.IsOnline()) { var playerBody = PlayerSpawn.ServerClonePlayer(record.mind, transform.position.CutToInt()).GetComponent <LivingHealthMasterBase>(); playerBody.ApplyDamageAll(this.gameObject, LimbCloningDamage, AttackType.Internal, DamageType.Clone, false); } statusSync = CloningPodStatus.Empty; }
private string StatusToMachineStateId(CloningPodStatus status) { //TODO: implement NoMind for if the mind is not yet in the body //TODO: Find a use for GORE POD switch (status) { case Cloning: return("pod_1"); case NoMind: return("pod_e"); case Gore: return("pod_g"); case Idle: return("pod_0"); default: throw new ArgumentOutOfRangeException(nameof(status), status, "unknown CloningPodStatus"); } }
public void UpdateStatus(CloningPodStatus status) { Status = status; UpdateAppearance(); EntitySystem.Get <CloningSystem>().UpdateUserInterface(this); }
public void ServerStartCloning(CloningRecord record) { statusSync = CloningPodStatus.Cloning; statusString = "Cloning cycle in progress."; StartCoroutine(ServerProcessCloning(record)); }