public void acceptDamage(DamageAcceptorRegistry.DamageArgs argInArgs)
    {
        if (destructible)
        {
            float locDamage = argInArgs.dmg;

            if (locDamage > 0)
            {
                if (hitPoints > locDamage)
                {
                    hitPoints -= locDamage;
                    locDamage  = 0;
                }
                else
                {
                    hitPoints = 0;
                    Invoke("Destruct", 0.02f);
                    DamageProvider dp = argInArgs.source.GetComponent <DamageProvider>();
                    if (dp != null)
                    {
                        dp.ReportKill(this);
                    }
                }
            }
        }
        Push(argInArgs.knockback);
    }
Exemplo n.º 2
0
 protected override void Die(DamageAcceptorRegistry.DamageArgs argInArgs)
 {
     Spawn();
     Spawn();
     Spawn();
     Spawn();
 }
 public void acceptDamage(DamageAcceptorRegistry.DamageArgs argInArgs)
 {
     if (argInArgs.type == "demolition")
     {
         Destroy(this.gameObject);
     }
 }
Exemplo n.º 4
0
 public void acceptDamage(DamageAcceptorRegistry.DamageArgs argInArgs)
 {
     if (argInArgs.dmg > 0)
     {
         Explode();
     }
 }
Exemplo n.º 5
0
 public override void acceptDamage(DamageAcceptorRegistry.DamageArgs argInArgs)
 {
     //Debug.Log("MeleeAcceptDmg" + argInArgs.dmg);
     if (argInArgs.type == "melee")
     {
         argInArgs.dmg *= 3;
     }
     SpitBloodParticle((transform.position - argInArgs.source.transform.position).normalized, transform.position);
     base.acceptDamage(argInArgs);
 }
Exemplo n.º 6
0
    public virtual void acceptDamage(DamageAcceptorRegistry.DamageArgs argInArgs)
    {
        //Debug.Log("AIAcceptDmg" + argInArgs.dmg);
        if (this.gameObject == null)
        {
            return;
        }
        if (stats.isDead)
        {
            return;
        }
        float locDamage = argInArgs.dmg;

        if (stats.currentArmorPoints > 0)
        {
            if (stats.currentArmorPoints > locDamage)
            {
                stats.currentArmorPoints -= locDamage;
                locDamage = 0;
            }
            else
            {
                stats.currentArmorPoints = 0;
                locDamage -= stats.currentArmorPoints;
            }
        }
        if (locDamage > 0)
        {
            if (stats.currentHitPoints > locDamage)
            {
                stats.currentHitPoints -= locDamage;
                locDamage = 0;
                Knockback(argInArgs.knockback);
            }
            else
            {
                stats.currentHitPoints = 0;
                stats.isDead           = true;
                DamageProvider dp = argInArgs.source.GetComponent <DamageProvider>();
                if (dp != null)
                {
                    dp.ReportKill(this);
                }
                Die(argInArgs);
            }
        }
        Transform healthbar = transform.Find("HealthBar");

        if (healthbar != null)
        {
            healthbar.transform.Find("Level").GetComponent <Image>().fillAmount = stats.currentHitPoints / stats.totalHitPoints;
        }
    }
Exemplo n.º 7
0
    public void acceptDamage(DamageAcceptorRegistry.DamageArgs argInArgs)
    {
        Vector3    direction = (transform.position - argInArgs.source.transform.position).normalized;
        GameObject effect    =
            Instantiate(Resources.Load("BloodParticle",
                                       typeof(GameObject)),
                        transform.position,
                        Quaternion.FromToRotation(Vector3.right, direction),
                        transform.parent)
            as GameObject;

        Push(argInArgs.knockback);
    }
Exemplo n.º 8
0
 public override void acceptDamage(DamageAcceptorRegistry.DamageArgs argInArgs)
 {
     Debug.Log("BubaExpl_acceptDamage");
     if (cooldown == 0f)
     {
         cooldown = 1f;
         GameObject proj = Instantiate(Resources.Load("Grenade", typeof(GameObject)),
                                       this.transform.position + Vector3.up, transform.rotation)
                           as GameObject;
         proj.GetComponent <Grenade>().speed  = moveSpeed;
         proj.GetComponent <Grenade>().damage = 30f;
         Die(argInArgs);
     }
 }
Exemplo n.º 9
0
    public override void acceptDamage(DamageAcceptorRegistry.DamageArgs argInArgs)
    {
        float locDamage = argInArgs.dmg;

        if (locDamage > 0)
        {
            head.SetActive(false);
            hitCooldown = 3f;
            SpitBloodParticle((transform.position - argInArgs.source.transform.position).normalized, transform.position + Vector3.up / 2);
            if (Time.time - lastBloodifyTime > 3f)
            {
                lastBloodifyTime = Time.time;
                Bloodify(this.transform.position + Vector3.up);
            }
        }
    }
    protected override void Die(DamageAcceptorRegistry.DamageArgs argInArgs)
    {
        Weapon weap = GetComponentInChildren <Weapon>();

        if (weap != null)
        {
            weap.transform.parent = gpParent.transform;
            weap.Drop();
            //Destroy(weap.gameObject, 4f);
        }
        Vector3    stickBodyPosition = transform.Find("StickBody").position;
        GameObject ragdoll           = Instantiate(Resources.Load("Ragdoll", typeof(GameObject)),
                                                   stickBodyPosition, Quaternion.identity, gpParent.transform) as GameObject;

        ragdoll.GetComponent <Ragdoll>().Push(argInArgs.knockback);

        Bloodify(this.transform.position + Vector3.up);
        base.Die(argInArgs);
    }
    protected override void Die(DamageAcceptorRegistry.DamageArgs argInArgs)
    {
        Vector3    stickBodyPosition = transform.Find("StickBody").position;
        GameObject ragdoll           = Instantiate(Resources.Load("Ragdoll", typeof(GameObject)),
                                                   stickBodyPosition, Quaternion.identity, gpParent.transform) as GameObject;

        ragdoll.GetComponent <Ragdoll>().Push(argInArgs.knockback);

        Registry.instance.damageAcceptors.doAreaDamage(this.gameObject, (Vector2)transform.position, 5, damage, "normal", knockback);

        GameObject explosion = Instantiate(Resources.Load("Explosion", typeof(GameObject)), this.transform.position, Quaternion.identity) as GameObject;

        explosion.transform.parent      = this.transform.parent;
        explosion.transform.localScale *= 5;
        PlayerEventsControl.instance.TriggerEvent_OnExplosion();
        this.gameObject.SetActive(false);
        Destroy(this.gameObject);
        Destroy(explosion, 2f);

        Bloodify(this.transform.position + Vector3.up);
    }
Exemplo n.º 12
0
 protected virtual void Die(DamageAcceptorRegistry.DamageArgs argInArgs)
 {
     this.gameObject.SetActive(false);
     Destroy(this.gameObject, 0.1f);
 }
Exemplo n.º 13
0
 public override void acceptDamage(DamageAcceptorRegistry.DamageArgs argInArgs)
 {
     return;
 }
Exemplo n.º 14
0
 protected override void Die(DamageAcceptorRegistry.DamageArgs argInArgs)
 {
     Bloodify(this.transform.position + Vector3.up);
     base.Die(argInArgs);
 }
Exemplo n.º 15
0
 public override void acceptDamage(DamageAcceptorRegistry.DamageArgs argInArgs)
 {
     SpitBloodParticle((transform.position - argInArgs.source.transform.position).normalized, transform.position + Vector3.up);
     base.acceptDamage(argInArgs);
 }
 public override void acceptDamage(DamageAcceptorRegistry.DamageArgs argInArgs)
 {
     //DropGrenade();
     //Die(argInArgs);
 }
Exemplo n.º 17
0
 protected override void Die(DamageAcceptorRegistry.DamageArgs argInArgs)
 {
     Invoke("Explode", 0.1f);
     this.gameObject.SetActive(false);
 }
Exemplo n.º 18
0
 public void acceptDamage(DamageAcceptorRegistry.DamageArgs argInArgs)
 {
 }
Exemplo n.º 19
0
    public void acceptDamage(DamageAcceptorRegistry.DamageArgs argInArgs)
    {
        if (damageSourcesInCooldown.Find(x => x.source == argInArgs.source) == null)
        {
            if (stats.isDead)
            {
                return;
            }
            float locDamage = argInArgs.dmg;
            damageSourcesInCooldown.Add(new SourcesAndCooldowns(argInArgs.source));

            if (stats.currentArmorPoints > 0)
            {
                if (stats.currentArmorPoints > locDamage)
                {
                    stats.currentArmorPoints -= locDamage;
                    locDamage = 0;
                }
                else
                {
                    stats.currentArmorPoints = 0;
                    locDamage -= stats.currentArmorPoints;
                }
            }
            if (locDamage > 0)
            {
                //dmg popup
                GameObject popup = Instantiate(Resources.Load("DmgPopup", typeof(GameObject)),
                                               this.transform.position, Quaternion.identity, gpParent.transform)
                                   as GameObject;
                popup.GetComponent <Popup>().text = "-" + locDamage.ToString();

                //blood particle
                GameObject bloodParticle =
                    Instantiate(Resources.Load("BloodParticle",
                                               typeof(GameObject)),
                                transform.position + Vector3.up,
                                Quaternion.FromToRotation(Vector3.right, (transform.position - argInArgs.source.transform.position).normalized), gpParent.transform) as GameObject;

                Animator healthBgAnim = ui.transform.Find("HealthBackground").GetComponent <Animator>();
                if (healthBgAnim)
                {
                    healthBgAnim.SetTrigger("decrease");
                }

                if (stats.currentHitPoints > locDamage)
                {
                    stats.currentHitPoints -= locDamage;
                    locDamage = 0;
                    if (argInArgs.knockback != new Vector2(0, 0))
                    {
                        //add vertical knockback effect
                        Vector2 knb = (argInArgs.knockback.normalized + Vector2.up) * argInArgs.knockback.magnitude;
                        movement.KnockBack(knb);
                    }
                }
                else
                {
                    stats.currentHitPoints = 0;
                    stats.isDead           = true;
                    this.enabled           = false;
                    gear.enabled           = false;
                    if (anim)
                    {
                        anim.enabled = false;
                    }

                    //vsa ragdoll stuff here...
                    GameObject stickBody = transform.Find("StickBody").gameObject;
                    stickBody.SetActive(false);
                    Vector3    stickBodyPosition = stickBody.transform.position;
                    GameObject ragdoll           = Instantiate(Resources.Load("Ragdoll", typeof(GameObject)),
                                                               stickBodyPosition, Quaternion.identity, gpParent.transform) as GameObject;
                    ragdoll.GetComponent <Ragdoll>().Push(argInArgs.knockback);
                    GetComponent <CapsuleCollider2D>().enabled = false;
                    GetComponent <Rigidbody2D>().bodyType      = RigidbodyType2D.Static;
                    registry.damageAcceptors.RemoveDamageAcceptor(this);

                    deadStickyNote.SetActive(true);

                    GameObject bloodEffect =
                        Instantiate(Resources.Load("RandomBloodEffect", typeof(GameObject)), this.transform.position + Vector3.up, Quaternion.identity) as GameObject;
                    Time.timeScale = 0.5f;

                    SceneControl sceneControl = GameObject.FindObjectOfType <SceneControl>();
                    if (sceneControl != null)
                    {
                        sceneControl.Invoke("Die", 2f);
                    }
                }
            }
        }
        health.text = ((int)(stats.currentHitPoints)).ToString();
    }