Example #1
0
        IEnumerator MoveRoutine(bool isBlock = false)
        {
            if (isBlock)
            {
                Vector2 origin = ((Vector2)transform.position);
                Vector2 dest   = ((Vector2)transform.position + _currentDir * _walkSize);

                if (ColliderChecker.CheckColliders(origin, dest, _obstacles))
                {
                    yield break;
                }
            }

            _isMoving = true;
            Vector2 walkAmount = _currentDir * (_walkSize / _walkCount);

            while (true)
            {
                this.transform.Translate(walkAmount);
                _currentWalkCount++;

                if (_currentWalkCount == _walkCount)
                {
                    _currentWalkCount = 0;
                    _isMoving         = false;
                    yield break;
                }

                yield return(new WaitForSeconds(_walkTime));
            }
        }
    // Start is called before the first frame update
    void Awake()
    {
        if (TryGetComponent(out Tower tower))
        {
            this.tower = tower;
        }

        if (TryGetComponent(out MaterialChanger materialChanger))
        {
            this.materialChanger = materialChanger;
        }

        if (TryGetComponent(out ColliderChecker colliderChecker))
        {
            this.colliderChecker = colliderChecker;
        }

        if (TryGetComponent(out TowerBuildingController towerBuildingController))
        {
            this.towerBuildingController = towerBuildingController;
        }

        if (TryGetComponent(out TowerPlacingController towerPlacingController))
        {
            this.towerPlacingController = towerPlacingController;
        }

        materialChanger.IgnoredMeshes.Add(towerPlacingController.attackRangePreview.GetComponent <MeshRenderer>());
    }
 public ColliderController(ColliderChecker colliderChecker, Life life, Point point, MonoBehaviour script)
 {
     this.colliderChecker = colliderChecker;
     this.life            = life;
     this.point           = point;
     this.script          = script;
     script.StartCoroutine(Updater());
 }
Example #4
0
        protected virtual bool DetectPlayer()
        {
            Vector2 origin = ((Vector2)transform.position + _currentDir * _walkSize);
            Vector2 dest   = ((Vector2)transform.position + (_currentDir * _walkSize) * _detectRange);

            List <Collider2D> playerCols = ColliderChecker.GetColliders(origin, dest, "Player");

            if (playerCols.Count > 0)
            {
                _detectedPlayer = playerCols[0].gameObject.GetComponent <PlayerController>();
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #5
0
        protected virtual void CheckColEntered()
        {
            if (_isActive)
            {
                List <Collider2D> cols = ColliderChecker.GetColliders(this.transform.position, this.transform.position, _tag);

                foreach (var col in cols)
                {
                    if (col.tag == "Npc")
                    {
                        col.GetComponent <EventNpc>().Delete();
                    }
                    if (col.tag == "Player")
                    {
                        PlayerController player = col.GetComponent <PlayerController>();
                        StartCoroutine(TeleportPlayer(player));
                    }
                }
            }
        }