示例#1
0
 // Start is called before the first frame update
 void Start()
 {
     myDoorsSys = GetComponent <DoorSystem>();
     Camera.main.transform.position = Casper.Instance.transform.position;
     StartCoroutine(delaySpawn(0.02f));
     spawnTime = Time.time;
 }
    void OnTriggerEnter(Collider other)
    {
        if (other.tag == triggerTag)
        {
            triggered = true;
            navAgent.ResetPath();
        }

        // Initiate drilling door
        if (other.tag == "DoorObject")
        {
            Door       doorInstance = null;
            DoorSystem system       = null;
            if ((doorInstance = other.gameObject.GetComponent <Door>()) != null)
            {
                system = doorInstance.SystemInstance;
            }
            if (system != null && system.LockedDoors && !system.BrokenDoors)
            {
                if (!system.RequireCore)
                {
                    drillingStart = true;
                }
                else
                {
                    securityDrilling = true;
                }
            }
        }
    }
示例#3
0
        /// <summary>
        /// Updates the auto close timer.
        /// </summary>
        public void UpdateAutoClose(EntityUid uid, AirlockComponent?airlock = null, DoorComponent?door = null)
        {
            if (!Resolve(uid, ref airlock, ref door))
            {
                return;
            }

            if (door.State != DoorState.Open)
            {
                return;
            }

            if (!airlock.CanChangeState())
            {
                return;
            }

            var autoev = new BeforeDoorAutoCloseEvent();

            RaiseLocalEvent(uid, autoev, false);
            if (autoev.Cancelled)
            {
                return;
            }

            DoorSystem.SetNextStateChange(uid, airlock.AutoCloseDelay * airlock.AutoCloseDelayModifier);
        }
示例#4
0
        private void OnPowerChanged(EntityUid uid, AirlockComponent component, PowerChangedEvent args)
        {
            if (TryComp <AppearanceComponent>(uid, out var appearanceComponent))
            {
                appearanceComponent.SetData(DoorVisuals.Powered, args.Powered);
            }

            if (!TryComp(uid, out DoorComponent? door))
            {
                return;
            }

            if (!args.Powered)
            {
                // stop any scheduled auto-closing
                if (door.State == DoorState.Open)
                {
                    DoorSystem.SetNextStateChange(uid, null);
                }
            }
            else
            {
                UpdateAutoClose(uid, door: door);
            }

            // BoltLights also got out
            component.UpdateBoltLightStatus();
        }
示例#5
0
    private void OnTriggerEnter(Collider other)
    {
        if (other.tag == "Player")
        {
            drScript.enabled = true;
            enabled          = false;
        }

        if (other.tag == "DoorObject")
        {
            Debug.Log("Trigger detected");
            Door       doorInstance = null;
            DoorSystem system       = null;
            transform.LookAt(other.transform);
            if ((doorInstance = other.gameObject.GetComponent <Door>()) != null)
            {
                system = doorInstance.SystemInstance;
            }
            if (system != null && system.LockedDoors && !system.BrokenDoors)
            {
                if (!system.RequireCore)
                {
                    drillingStart = true;
                }
                else
                {
                    securityDrilling = true;
                }
            }
        }
    }
示例#6
0
    private void OnTriggerEnter2D(Collider2D col)
    {
        if (col.gameObject.CompareTag("Item"))
        {
            if (col.gameObject.GetComponent <ItemImageSpawner>() == true)
            {
                col.gameObject.GetComponent <ItemImageSpawner>().canImageSpawn = true;
            }
        }
        if (col.gameObject.CompareTag("Enemy"))
        {
            emPanico = true;
        }


        //ALTERAR TODA ESSA BAGUNÇA
        if (col.gameObject.CompareTag("Legivel") && gc.GetActiveChar() == 0)
        {
            readTrigger = col.gameObject.GetComponent <DialogueTrigger>();
            canDialogue = true;
        }
        if (col.gameObject.CompareTag("LegivelClarice") && gc.GetActiveChar() == 2)
        {
            readTrigger = col.gameObject.GetComponent <DialogueTrigger>();
            canDialogue = true;
        }
        //ALTERAR TODA ESSA BAGUNÇA


        if (col.gameObject.CompareTag("Door"))
        {
            door            = col.gameObject.GetComponent <DoorSystem>();
            canUseDoor      = true;
            door.canUseDoor = true;
        }

        if (col.gameObject.CompareTag("Agua"))
        {
            speed    = 1.5f;
            runSpeed = 3f;
        }

        if (col.gameObject.CompareTag("CameraArea"))
        {
            camArea = col.gameObject.GetComponent <CameraControl>();
            camArea.GetTarget(this.transform);
            camArea.MoveCamera();
            camArea.Resize();
            camArea.follow = true;
        }

        //if (col.gameObject.CompareTag("SavePoint"))
        //{
        //    Save save = FindObjectOfType<Save>();
        //    save.SaveStatus();
        //}
    }
示例#7
0
    void LoadEnvironment()
    {
        var doors = FindObjectsOfType <DoorSystem>();

        foreach (var runtime in saveGame.doorRuntimes)
        {
            DoorSystem foundSystem = null;

            foreach (var door in doors)
            {
                if (door.GetComponent <SaveGameIdSystem>().SaveGameId == runtime.saveGameId)
                {
                    foundSystem = door;
                }
            }

            if (foundSystem)
            {
                foundSystem.OnLoad(saveGame);
            }
        }
    }