Beispiel #1
0
    private void CreateRecord(LivingHealthBehaviour mob, PlayerScript playerScript)
    {
        var record = new CloningRecord();

        record.UpdateRecord(mob, playerScript);
        CloningRecords.Add(record);
    }
Beispiel #2
0
 public bool RemoveItem(CloningRecord record)
 {
     foreach (var pair in EntryIndex)
     {
         if (((GUI_CloningRecordItem)pair.Value)?.cloningRecord == record)
         {
             Remove(pair.Key);
             return(true);
         }
     }
     UpdatePeepers();
     return(false);
 }
Beispiel #3
0
    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;
    }
Beispiel #4
0
 public void TryClone(CloningRecord record)
 {
     if (cloningPod && cloningPod.CanClone())
     {
         if (record.mind.ConfirmClone(record.mobID))
         {
             cloningPod.StartCloning(record);
             CloningRecords.Remove(record);
         }
         else
         {
             cloningPod.statusString = "Initialisation failure.";
         }
     }
 }
Beispiel #5
0
    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;
    }
Beispiel #6
0
    public void ServerTryClone(CloningRecord record)
    {
        if (cloningPod && cloningPod.CanClone())
        {
            var status = record.mind.GetCloneableStatus(record.mobID);

            if (status == CloneableStatus.Cloneable)
            {
                cloningPod.ServerStartCloning(record);
                cloningRecords.Remove(record);
            }
            else
            {
                cloningPod.UpdateStatusString(status);
            }
        }
    }
Beispiel #7
0
 public void ViewRecord(CloningRecord cloningRecord)
 {
     specificRecord = cloningRecord;
     UpdateDisplay();
     netPageSwitcher.SetActivePage(PageSpecificRecord);
 }
Beispiel #8
0
 public void RemoveRecord()
 {
     CloningConsole.RemoveRecord(specificRecord);
     specificRecord = null;
 }
Beispiel #9
0
 public void ServerStartCloning(CloningRecord record)
 {
     statusSync   = CloningPodStatus.Cloning;
     statusString = "Cloning cycle in progress.";
     StartCoroutine(ServerProcessCloning(record));
 }
Beispiel #10
0
 public void RemoveRecord(CloningRecord specificRecord)
 {
     cloningRecords.Remove(specificRecord);
 }