public void resizeHealthBar(ComputerLayer touchedLayer, int health)
    {
        float sizeGreenLife  = oneLife * health;
        float sizeGreenLife2 = oneLife2 * health;

        switch (touchedLayer)
        {
        case ComputerLayer.OS:
            //sizeGreenLife = oneLife * health;
            osHealthBar.sizeDelta  = new Vector2(sizeGreenLife, osHealthBar.sizeDelta.y);
            osHealthBar2.sizeDelta = new Vector2(sizeGreenLife2, osHealthBar2.sizeDelta.y);
            break;

        case ComputerLayer.SOFTWARE:
            //sizeGreenLife = oneLife * health;
            softwareHealthBar.sizeDelta  = new Vector2(sizeGreenLife, softwareHealthBar.sizeDelta.y);
            softwareHealthBar2.sizeDelta = new Vector2(sizeGreenLife2, softwareHealthBar2.sizeDelta.y);
            break;

        case ComputerLayer.HARDWARE:
            //sizeGreenLife = oneLife * health;
            hardwareHealthBar.sizeDelta  = new Vector2(sizeGreenLife, hardwareHealthBar.sizeDelta.y);
            hardwareHealthBar2.sizeDelta = new Vector2(sizeGreenLife2, hardwareHealthBar2.sizeDelta.y);
            break;
        }
        size = sizeGreenLife2;
    }
    public void CmdFire(string[] cardPlayedInfos)
    {
        bool          isAttakCard        = (cardPlayedInfos[3].ToUpper() == "TRUE");
        ComputerLayer touchedLayer       = ComputerLayer.HARDWARE;
        string        touchedLayerString = cardPlayedInfos[4].ToUpper();

        if (touchedLayerString == "SOFTWARE")
        {
            touchedLayer = ComputerLayer.SOFTWARE;
        }
        else if (touchedLayerString == "OS")
        {
            touchedLayer = ComputerLayer.OS;
        }


        Card cardPlayedByThePlayer = new Card(cardPlayedInfos[0],
                                              cardPlayedInfos[1],
                                              cardPlayedInfos[2],
                                              isAttakCard,
                                              touchedLayer,
                                              int.Parse(cardPlayedInfos[5]),
                                              new Color(int.Parse(cardPlayedInfos[6]), int.Parse(cardPlayedInfos[7]), int.Parse(cardPlayedInfos[8]))
                                              );


        if (cardPlayedByThePlayer.isAttackCard)
        {
            var virus        = (GameObject)Instantiate(virusPrefab, virusSpawn.position, virusSpawn.rotation);
            var virusEffects = virus.GetComponent <VirusController>();
            virusEffects.targetLayer1 = cardPlayedByThePlayer.touchedLayer;
            virusEffects.damageLayer1 = cardPlayedByThePlayer.getDamage();

            //Changer la couleur de la balle pour qu'elle soit de la même couleur que la carte
            Renderer[] rends = virus.GetComponentsInChildren <Renderer>();
            foreach (Renderer r in rends)
            {
                r.material.color = cardPlayedByThePlayer.getCardColor();
            }

            virus.GetComponent <Rigidbody>().velocity = virus.transform.forward * 6;

            //faire apparaitre la balle sur les clients
            NetworkServer.Spawn(virus);
            //Faire disparaitre la balle au bout de 5sec pour éviter une surcharge des ressources
            Destroy(virus, 5.0f);
        }
        // Si la carte n'est pas une carte d'attaque alors c'est une carte qui nous rajoute des points
        else if (!cardPlayedByThePlayer.isAttackCard)
        {
            myHealth.setHealth(cardPlayedByThePlayer.touchedLayer, cardPlayedByThePlayer.getDamage(), false);
        }
    }
Пример #3
0
    public Card(string name, string definition, string action, bool isAttackCard, ComputerLayer touchedLayer, int damage, Color cardColor)
    {
        this.name         = name.ToUpper();
        this.definition   = definition;
        this.action       = action;
        this.isAttackCard = isAttackCard;
        this.damage       = damage;
        //Permet de s'assurer que l'on ne s'est pas trompé lors de la déclaration du nombre de dégâts
        setDamage(this.damage);
        this.cardColor    = cardColor;
        this.touchedLayer = touchedLayer;

        redColor   = cardColor.r;
        greenColor = cardColor.g;
        blueColor  = cardColor.b;
    }
    public void setHealth(ComputerLayer touchedLayer, int amount, bool isCardDecreaseHealth = true)
    {
        if (!isServer)
        {
            return;
        }

        //Vérifier si les points de vies sont négatifs
        switch (touchedLayer)
        {
        case ComputerLayer.OS:
            if (isCardDecreaseHealth)
            {
                currentOsHealth -= amount;
            }
            else
            {
                currentOsHealth = updateIfItIsLessThanTheMaximumHealth(currentOsHealth + amount);
            }
            break;

        case ComputerLayer.SOFTWARE:
            if (isCardDecreaseHealth)
            {
                currentSoftwareHealth -= amount;
            }
            else
            {
                currentSoftwareHealth = updateIfItIsLessThanTheMaximumHealth(currentSoftwareHealth + amount);
            }
            break;

        case ComputerLayer.HARDWARE:
            if (isCardDecreaseHealth)
            {
                currentHardwareHealth -= amount;
            }
            else
            {
                currentHardwareHealth = updateIfItIsLessThanTheMaximumHealth(currentHardwareHealth + amount);
            }
            break;
        }

        if (currentOsHealth <= 0)
        {
            currentOsHealth = 0;
        }
        if (currentSoftwareHealth <= 0)
        {
            currentSoftwareHealth = 0;
        }
        if (currentHardwareHealth <= 0)
        {
            currentHardwareHealth = 0;
        }

        remainingLife = currentOsHealth + currentSoftwareHealth + currentHardwareHealth;

        /*if (remainingLife <= 0)
         * {
         *  gameOver();
         * }*/
    }