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); }
/** * 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; } }