Example #1
0
    private void Awake()
    {
        if (!GameManager.GetSingleton)
        {
            Debug.LogError("Désactiver la trash !");
        }
        GameManager.GetSingleton.AddPlayerController(this, IdPlayer);
        playerBody   = GetComponent <Rigidbody>();
        lifeBehavior = GetComponent <LifeBehavior>();
        weaponHandle = GetComponent <WeaponHandler>();
        pickupHandle = GetComponent <PickupHandler>();
        animPlayer.GetComponent <SpriteRenderer>().color = colorPlayer;

        for (int i = 0; i < 4; i++)
        {
            GameObject animator = transform.GetChild(1).GetChild(i).gameObject;
            if (i == idPlayer) // desactive tous les animatirs sauf celui du joueur actuel
            {
                animPlayer = animator;
            }
            else
            {
                animator.SetActive(false);
            }
        }
        //animPick = transform.GetChild(3).GetComponent<Animator>();
        //weapons = new List<Weapons>();
        //SetupListWeapons();                     //setup la lsit des weapons
    }
Example #2
0
    public void IsGameOver()
    {
        if (StateManager.GetSingleton.State == StateManager.GameState.Play)
        {
            int countDeadPlayer = 0;
            foreach (var player in spawnPlayer)
            {
                if (player.PlayerController)
                {
                    LifeBehavior life = player.PlayerController.GetComponent <LifeBehavior>();

                    if (!life || life.CurrentLife <= 0)
                    {
                        countDeadPlayer++;
                    }
                }
                else
                {
                    countDeadPlayer++;
                }
            }

            if (countDeadPlayer >= spawnPlayer.Count)
            {
                GameOver();
            }
        }
    }
    void Start()
    {
        lb        = GameObject.Find("Player").GetComponent <LifeBehavior>();
        player    = GameObject.Find("Player").GetComponent <Player>();
        GM        = GameObject.Find("GameManager").GetComponent <GameManager>();
        ads       = GameObject.Find("Ads").GetComponent <DeathAds>();
        gameTimer = GameObject.Find("GameTimer").GetComponent <GameTimer>();

        GM.Mute();
        CheckMuteIcon();
    }
Example #4
0
    /// <summary>
    /// test la collision avec l'objet
    /// </summary>
    private void CollisionBehavior(Collider col)
    {
        LifeBehavior life = col.gameObject.GetComponent <LifeBehavior>();

        if (life && !currentlyIntoTrigger)
        {
            bool damageable = isDamagingThis(life.EntityType);
            if (damageable)
            {
                counterCollision++;
                int score = life.TakeDamages(damages, oneShot);
                if (score != 0)
                {
                    if (PlayerController) // NB si un ennemi fait des degats, il ne gagne pas de points et ne devrait pas avoir de playerController
                    {
                        Vector3 scorePosition = life.CurrentLife <= 0 ? life.transform.position : life.transform.position + life.transform.up * 1.5f;
                        CreateScorePrefab(scorePosition, life.CurrentLife <= 0, score);
                        PlayerController.ScorePlayer += score;
                        SoundManager.GetSingularity.PlayImpactSound(PlayerController.IdPlayer);
                    }
                }
                else
                {
                    // Si on kill la target pas besoin de désactiver la source de dommage
                    // Important car TriggerExit jamais appelé donc currentlyIntoTrigger reste à true
                    currentlyIntoTrigger = true;
                }

                if (collisionBeforeKilling >= 0 && counterCollision >= collisionBeforeKilling)
                {
                    isSourceEnabled = false;  //desactiver l'origine des dégât si souhaité

                    IKillable killable = gameObject.GetComponent <IKillable>();
                    if (killable != null)
                    {
                        killable.Kill();
                    }
                }
            }
        }
    }
Example #5
0
    private LifeBehavior playerLife;               //reference a playerLife
    #endregion

    #region Initialization

    private void Start()
    {
        //init le player
        if (player && animSpawn)    //si tout est ok dans les references
        {
            spawnedOnce                  = false;
            playerController             = player.GetComponent <PlayerController>();                                          //get la reference du playerCOntroller
            playerController.IdPlayer    = transform.GetSiblingIndex();                                                       //set son id selon la position du spawnPlayer dans la hiérarchie
            playerController.ScorePlayer = GameManager.GetSingleton.ScoreManager.Data.scorePlayer[playerController.IdPlayer]; //set son score

            playerLife = player.GetComponent <LifeBehavior>();                                                                //get reference de la vie
            player.transform.SetParent(GameManager.GetSingleton.ObjectDynamiclyCreated);                                      //set son emplacement dans la hiérarchie
            player.transform.position = transform.position;                                                                   //change sa position

            animSpawn.SpawnPlayer = this;                                                                                     //set la reference à l'animation
            animSpawn.gameObject.SetActive(false);                                                                            //desactive l'animation si elle est activé (on est en initialisation, on active pas encore...

            SpriteRenderer renderer = animSpawn.GetComponent <SpriteRenderer>();
            if (renderer)
            {
                renderer.color = playerController.ColorPlayer;
            }
        }
    }