Ejemplo n.º 1
0
    public void startPlayers(bool start = true, bool death = false)
    {
        // All players
        foreach (PlayerController player in players)
        {
            // Get HP controller
            HitpointController hitpointController = player.GetComponent <HitpointController> ();

            // Heal (if start)
            if (start)
            {
                hitpointController.heal();
            }

            // Update death status (if death)
            if (death)
            {
                hitpointController.isDead = !start;
            }

            // Update status
            player.stop    = !start;
            player.isReady = start;
        }
    }
Ejemplo n.º 2
0
 private void Awake()
 {
     this.hitpointController = transform.GetComponent <HitpointController>();
     this.weapons            = transform.GetComponentsInChildren <WeaponController>();
     this.nav = transform.GetComponent <NavMeshAgent>();
     // Set handlers for the hitpoint related events that we care about.
     hitpointController.OnDeath += HandleDeath;
     // Register events
     EventManager.SelectPlanet += SetTarget;
 }
Ejemplo n.º 3
0
    void Start()
    {
        // Get components
        hitpointController = GetComponent <HitpointController> ();

        // Assign variables
        hitpointController.UI = playerUI;

        // Initial UI
        updateResources();
    }
Ejemplo n.º 4
0
    void OnTriggerEnter2D(Collider2D other)
    {
        // Get HP controller
        HitpointController hitpointController = other.GetComponent <HitpointController> ();

        // If other has HP
        if (hitpointController && !hitpointController.isDead)
        {
            // Deal damage
            hitpointController.damage(damage, issuer);

            // Self distruct (if target is not dead)
            if (hitpointController.takeBullet)
            {
                Destroy(gameObject);
            }
        }
    }
Ejemplo n.º 5
0
    public void damage(float amount, GameObject issuer)
    {
        if (isDead || (playerController && playerController.stop))
        {
            return;
        }

        // Deal damage
        hitpoints = Mathf.Clamp(hitpoints -= amount, 0f, maxHitpoints);

        // Update HP slider
        updateHitpointSlider();

        // Kill if no HP left
        if (hitpoints == 0f)
        {
            // Set to death
            isDead = true;

            // Get destroy time
            float time = 0f;

            // Dead sound
            if (deadSound)
            {
                deadSound.Play();
                time = deadSound.clip.length;
            }

            // If has item drop
            if (deathItemCount > 0 && issuer != gameObject)
            {
                // As much as item count
                for (int i = 0; i < deathItemCount; i++)
                {
                    // Different positions
                    Vector2 position = new Vector2(transform.position.x * i, transform.position.y * i);

                    // Drop items
                    HitpointController deathItemInstance = Instantiate(deathItem, position, transform.rotation).GetComponent <HitpointController> ();

                    // Collect by issuer
                    deathItemInstance.damage(1f, issuer);

                    // Sound like 1 item
                    deathItemInstance.GetComponent <AudioSource> ().volume /= deathItemCount;
                }
            }

            // If collectable (item)
            if (tag == "Item")
            {
                // Set to collector
                movingToCollector = issuer.transform;

                // Save start position
                movingFrom = transform;

                // No movement
                GetComponent <MovementController> ().moveSpeed = 0;
            }

            // If needs to be destroyed after dying
            else if (destroyAfterDeath)
            {
                // Destroy after audio finished
                Destroy(gameObject, time);
            }
        }
        else
        {
            // Hit sound
            if (hitSound)
            {
                hitSound.Play();
            }
        }
    }
Ejemplo n.º 6
0
 void Awake()
 {
     this.hitpointController = transform.GetComponent <HitpointController>();
     // Set handlers for the hitpoint related events that we care about.
     hitpointController.OnDeath += HandleDeath;
 }