Exemplo n.º 1
0
        private void CreateRecord(LivingHealthBehaviour mob, PlayerScript playerScript)
        {
            var record = new CloningRecord();

            record.UpdateRecord(mob, playerScript);
            cloningRecords.Add(record);
        }
Exemplo n.º 2
0
        private void CreateRecord(LivingHealthMasterBase livingHealth, PlayerScript playerScript)
        {
            var record = new CloningRecord();

            record.UpdateRecord(livingHealth, playerScript);
            cloningRecords.Add(record);
        }
Exemplo n.º 3
0
        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;
        }
Exemplo n.º 4
0
        private IEnumerator ServerProcessCloning(CloningRecord record)
        {
            yield return(WaitFor.Seconds(10f));

            statusString = "Cloning process complete.";
            if (console)
            {
                console.UpdateDisplay();
            }
            if (record.mind.IsOnline())
            {
                PlayerSpawn.ServerClonePlayer(record.mind, transform.position.CutToInt());
            }
            statusSync = CloningPodStatus.Empty;
        }
Exemplo n.º 5
0
        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;
        }
Exemplo n.º 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);
                }
            }
        }
Exemplo n.º 7
0
 public void RemoveRecord(CloningRecord specificRecord)
 {
     cloningRecords.Remove(specificRecord);
 }
Exemplo n.º 8
0
 public void ServerStartCloning(CloningRecord record)
 {
     statusSync   = CloningPodStatus.Cloning;
     statusString = "Cloning cycle in progress.";
     StartCoroutine(ServerProcessCloning(record));
 }