Ejemplo n.º 1
0
        private void Start()
        {
            _cannonCollider = gameObject.transform.Find("HarpoonCannon").gameObject.GetComponent <BoxCollider2D>();
            _projectileObj  = gameObject.transform.Find("HarpoonCannon/HarpoonProjectile").gameObject;
            var ropeObj = gameObject.transform.Find("HarpoonCannon/HarpoonRope").gameObject;

            _crankController = gameObject.transform.Find("../../Wheel").gameObject.GetComponent <CrankController>();

            _inventory = gameObject.transform.Find("../../Inventory").gameObject.GetComponent <Inventory>();

            _rotatableHandler    = GetComponent <RotatableHandler>();
            _shotHandler         = GetComponent <HarpoonShotHandler>();
            _projectileCollision = _projectileObj.GetComponent <ProjectileCollision>();
            _movingProjectile    = _projectileObj.GetComponent <MovingProjectile>();
            _rope                   = ropeObj.GetComponent <HarpoonRope>();
            _windInProjectile       = _projectileObj.GetComponent <WindInProjectile>();
            _cannonCollider.enabled = false;
            _crankController.EnableController(false);

            _crankController.CrankRotationEvent += _windInProjectile.AddTravelDistance;
            _rotatableHandler.RotationEvent     += OnRotationEvent;
            _shotHandler.ShotEvent += OnShotEvent;
            _projectileCollision.CollisionEvent += ProjectileOnCollisionEvent;
            HookableObjectController.AddHarpoonController(this);
        }
Ejemplo n.º 2
0
        /**
         * stops the projectile
         */
        public void StopProjectileMovement()
        {
            if (_isWoundIn) //Harpoon has been wound in
            {
                ResetCannon();
            }
            else //Harpoon hasn't been wound in
            {
                _cannonCollider.enabled = true;
                _movingProjectile.SetVelocity(0);

                if (enabled)
                {
                    _crankController.EnableController(true);
                }

                //prepare windInProjectile functionality
                _windInProjectile.ResetProjectile();
                _windInProjectile.TravelSpeed = projectileSpeed;
                _isWoundIn = true;
            }
        }