Ejemplo n.º 1
0
    void OnTriggerEnter2D(Collider2D collider)
    {
        // Est-ce un tir ?
        PlayerShotController shot = collider.gameObject.GetComponent <PlayerShotController>();

        if (shot != null)
        {
            // Tir allié
            if (shot.isEnemyShot != isEnemy)
            {
                hp -= shot.damage;

                // Destruction du projectile
                // On détruit toujours le gameObject associé
                // sinon c'est le script qui serait détruit avec ""this""
                Destroy(shot.gameObject);

                if (hp <= 0)
                {
                    // Destruction !
                    Destroy(gameObject);
                }
            }
        }
    }
Ejemplo n.º 2
0
    //--------------------------------
    // 3 - Tirer depuis un autre script
    //--------------------------------

    /// <summary>
    /// Création d'un projectile si possible
    /// </summary>
    public void Attack(bool isEnemy)
    {
        if (CanAttack)
        {
            shootCooldown = shootingRate;

            // Création d'un objet copie du prefab
            var shotTransform = Instantiate(shotPrefab) as Transform;

            // Position
            shotTransform.position = transform.position;

            // Propriétés du script
            PlayerShotController shot = shotTransform.gameObject.GetComponent <PlayerShotController>();
            if (shot != null)
            {
                shot.isEnemyShot = isEnemy;
            }

            // On saisit la direction pour le mouvement
            MoveController move = shotTransform.gameObject.GetComponent <MoveController>();
            if (move != null)
            {
                move.direction = this.transform.right; // ici la droite sera le devant de notre objet
            }
        }
    }
Ejemplo n.º 3
0
    public override void Enter()
    {
        player = context.player;

        PlayerVFXController.OnDeathVFXEnd += HandleDeathVFXEnd;
        player.GetVFXController().PlayDeathVFX();
        player.GetSoundController().Death();

        timerForRespawn = false;
        respawnTimer    = 0f;
        player.StopImmunityCoroutine();
        PlayerInputManager.Rumble(1f, 1f, 0.5f);
        player.ChangeGraphics(context.player.GetPlayerGraphic());

        player.GetAnimatorController().SetAnimatorController(null);
        player.GetAnimatorController().ResetAnimator();

        PlayerShotController shotCtrl = context.player.GetShotController();

        shotCtrl.ChangeShotType(shotCtrl.GetPlayerDefaultShotSetting());

        player.GetActualGraphic().GetModel().transform.localScale = new Vector3(1, 1, 1);
        player.GetActualGraphic().Disable();
        player.GetCollisionController().OnStickyEnd();
        player.GetCollisionController().GetPlayerCollider().enabled = false;
        player.GetCollisionController().GetCollisionInfo().ResetAll();
        player.GetMovementController().SetCanMove(false);
        shotCtrl.SetCanShoot(false);
        shotCtrl.SetCanUseCrossair(false);
        shotCtrl.SetCanAim(false);

        if (SpeedrunManager.StopTimer != null)
        {
            SpeedrunManager.StopTimer();
        }
    }
Ejemplo n.º 4
0
    /// <summary>
    /// Funzione che inizializza lo script
    /// </summary>
    public void Init(EnemyManager _enemyMng, PlatformManager _platformMng, TokenManager _tokenMng)
    {
        //Prendo le referenze ai component e li inizializzo
        collisionCtrl = GetComponent <PlayerCollisionController>();
        if (collisionCtrl != null)
        {
            collisionCtrl.Init(this);
        }

        shootCtrl = GetComponent <PlayerShotController>();
        if (shootCtrl != null)
        {
            shootCtrl.Init(this, PoolManager.instance);
        }

        movementCtrl = GetComponent <PlayerMovementController>();
        if (movementCtrl != null)
        {
            movementCtrl.Init(this, collisionCtrl);
        }

        parasiteCtrl = GetComponent <PlayerParasiteController>();
        if (parasiteCtrl != null)
        {
            parasiteCtrl.Init(this, _enemyMng, _platformMng);
        }

        healthCtrl = GetComponent <PlayerHealthController>();
        if (healthCtrl != null)
        {
            healthCtrl.Init(this);
        }

        livesCtrl = GetComponent <PlayerLivesController>();
        if (livesCtrl != null)
        {
            livesCtrl.Init(this, _tokenMng);
        }

        playerSM = GetComponent <PlayerSMController>();
        if (playerSM != null)
        {
            playerSM.Init(this);
        }

        animCtrl = GetComponentInChildren <PlayerAnimationController>();
        if (animCtrl != null)
        {
            animCtrl.Init(this);
        }

        vfxCtrl = GetComponentInChildren <PlayerVFXController>();
        if (vfxCtrl != null)
        {
            vfxCtrl.Init(this);
        }

        sfxCtrl = GetComponentInChildren <PlayerSoundController>();
        if (sfxCtrl != null)
        {
            sfxCtrl.Setup(this);
            sfxCtrl.Init();
        }

        //Setup cose locali
        playerGraphic = GetComponentInChildren <PlayerGraphicController>();
        if (playerGraphic != null)
        {
            activeGraphic = playerGraphic;
            playerGraphic.OnModelChanged += HandleOnPlayerModeloChanged;
            playerGraphic.Init();
        }

        spriteCtrl = GetComponentInChildren <PlayerSpriteController>();
        if (spriteCtrl != null)
        {
            spriteCtrl.Init(this);
        }
    }