Beispiel #1
0
    private void Update()
    {
        currentFrame = owner.model.frameIndex;

        for (int i = 0; i < colliders[currentCombo].colliders.Count; i++)
        {
            if (colliders[currentCombo].colliders[i] != null)
            {
                DamageCollider dc = colliders[currentCombo].colliders[i].GetComponent <DamageCollider>();
                if (i != currentFrame)
                {
                    colliders[currentCombo].colliders[i].SetActive(false);
                }
            }
        }

        if (colliders[currentCombo].colliders[currentFrame] != null)
        {
            if (colliders[currentCombo].colliders[currentFrame].GetComponentInChildren <ShootProjectile>() != null)
            {
                ShootProjectile sp = colliders[currentCombo].colliders[currentFrame].GetComponentInChildren <ShootProjectile>();
                sp.direction  = swingDirection;
                sp.projectile = projectile;
                sp.owner      = owner;
            }
            colliders[currentCombo].colliders[currentFrame].SetActive(true);
        }
    }
    private void Start()
    {
        damageCollider  = GetComponent <DamageCollider>();
        currentBehavior = enemyBehavior.Idle;

        Init();
    }
Beispiel #3
0
    public virtual void OnTriggerEnter2D(Collider2D other)
    {
        //Debug.Log(other.gameObject.name + " > " + gameObject.name);
        DamageCollider damageCollider = other.GetComponent <DamageCollider>();

        if (damageCollider != null)
        {
            if (damageCollider.sender == this)
            {
                return;
            }
            if (other.gameObject.layer == 10)
            {
                float dmg = damageCollider.damage;
                health_cur -= dmg;

                UI_WhiteScreen.alpha = 1;

                //if(flashEffect != null)
                //flashEffect.scale = 1;

                Vector3 dir = (other.transform.position - transform.position).normalized;
                GetComponent <Rigidbody2D>().AddForce(-dir * (30 + (dmg * 50)));
                return;
            }
        }
    }
Beispiel #4
0
    public void DamageCollider()
    {
        AudioSource    a;
        DamageCollider dc = Instantiate(damageCollider, transform.position, Quaternion.identity).GetComponent <DamageCollider>();

        (a = Instantiate(GameManager.instance.genericSoundObject, transform.position, Quaternion.identity).GetComponent <AudioSource>()).clip = breakSound;
        a.volume = 0.3f;
    }
 // Use this for initialization
 void Start()
 {
     health = maxHealth;
     sanity = maxSanity;
     foreach (Collider col in colliderBase.GetComponentsInChildren <Collider>())
     {
         DamageCollider damageThingy = col.gameObject.AddComponent <DamageCollider> ();
         damageThingy.damageable = this;
     }
 }
Beispiel #6
0
 public void LoadWeaponsDamageCollider(bool isLeft)
 {
     if (isLeft)
     {
         leftHandDamageCollider = leftHandSlot.currentWeaponModel.GetComponentInChildren <DamageCollider>();
     }
     else
     {
         rightHandDamageCollider = rightHandSlot.currentWeaponModel.GetComponentInChildren <DamageCollider>();
     }
 }
Beispiel #7
0
    public override void PrestartEffect(CharacterData character)
    {
        if (prestartEffectActivated)
        {
            return;
        }
        base.PrestartEffect(character);

        Socket socket = character.RetrieveSocket(socketName);

        colliderObject = socket.colliderObject;
        DamageCollider collider = colliderObject.GetComponent <DamageCollider>();

        collider.action = ApplyEffect;
    }
Beispiel #8
0
	public void Attack(){		
		if(a_t <= 0){
			Vector3 dir = (target.position - transform.position).normalized;

			float angle = Mathf.Atan2 (dir.y, dir.x) * Mathf.Rad2Deg;
			Quaternion rot = Quaternion.AngleAxis (angle + 90, Vector3.forward);

			DamageCollider dc = Instantiate (swingObject, ZeroZ ((transform.position + (dir * 1.4f))), rot).GetComponent<DamageCollider>();
			dc.damage = stats.attackDamage;
			dc.sender = this;
			
			GetComponent<Rigidbody2D>().AddForce(dir * 500);
			a_t = stats.attackSpeed;
		}
	}
Beispiel #9
0
    private void LoadWeaponDamageCollider(WeaponHolderSlot.SlotTypes slotType)
    {
        switch (slotType)
        {
        case WeaponHolderSlot.SlotTypes.leftHand:
            leftHandDamageCollider = leftHandSlot.currentWeaponInstance.GetComponentInChildren <DamageCollider>();
            break;

        case WeaponHolderSlot.SlotTypes.rightHand:
            rightHandDamageCollider = rightHandSlot.currentWeaponInstance.GetComponentInChildren <DamageCollider>();
            break;

        default:
            break;
        }
    }
    // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        if (Fighter == null)
        {
            Fighter = animator.gameObject.GetComponent <Controll>();
        }

        if (Fighter2 == null)
        {
            Fighter2 = animator.gameObject.GetComponent <Controll2>();
        }

        if (soundEff != null)
        {
            if (Fighter != null)
            {
                Fighter.PlaySound(soundEff);
            }

            if (Fighter2 != null)
            {
                Fighter2.PlaySound(soundEff);
            }
        }
        if (Fighter != null)
        {
            damageColli_Player1 = GameObject.Find("Player1").GetComponentInChildren <DamageCollider>();

            if (damageColli_Player1 != null)
            {
                damageColli_Player1.Damage = damage;
            }

            FighterAnimatorBegin(Fighter.gameObject, "Player2", animator, stateInfo, layerIndex);
        }
        if (Fighter2 != null)
        {
            DamageCollider damageColli = GameObject.Find("Player2").GetComponentInChildren <DamageCollider>();

            if (damageColli_Player2 != null)
            {
                damageColli.Damage = damage;
            }

            FighterAnimatorBegin(Fighter2.gameObject, "Player1", animator, stateInfo, layerIndex);
        }
    }
    void OnTriggerEnter(Collider trigger)
    {
        //Entering a hurtbox (could also be viewed as a punch being moved toward you)
        if (trigger.gameObject.tag == "Hurtbox" && stats.invTime <= 0)
        {
            //Get the DamageCollider
            DamageCollider damageCollider = trigger.gameObject.GetComponent <DamageCollider>();

            //Apply values
            if (!anim.GetCurrentAnimatorStateInfo(0).IsName("Guard"))
            {
                SoundManager.Instance.PlaySound("Impact" + Random.Range(1, 4).ToString());
                Instantiate(hitEffect, damageCollider.transform.position, Quaternion.identity);
                gameplayManager.WorldImpactEffect(damageCollider.Damage * 0.01f, damageCollider.Damage * 0.005f, damageCollider.Damage * 0.004f);

                stats.health         -= damageCollider.Damage;
                stats.applicableForce = damageCollider.ImpactForce;
            }
            else
            {
                SoundManager.Instance.PlaySound("ImpactOnShield");
                Instantiate(guardEffect, this.transform.position, Quaternion.identity);
                gameplayManager.WorldImpactEffect(damageCollider.Damage * 0.01f, damageCollider.Damage * 0.002f, damageCollider.Damage * 0.001f);

                stats.health -= (damageCollider.Damage) / 3;
            }

            stats.invTime = 0.5f;
        }

        if (trigger.gameObject.tag == "Health")
        {
            stats.health += trigger.gameObject.GetComponent <HealthPickup>().RestoreAmount;
            stats.health  = Mathf.Clamp(stats.health, 0, 100);

            trigger.gameObject.GetComponent <HealthPickup>().CollectPickup();
        }

        if (trigger.gameObject.tag == "LevelEnd")
        {
            gameplayManager.NextLevel();
        }
    }
Beispiel #12
0
    public void Init()
    {
        for (int i = 0; i < colliders[currentCombo].colliders.Count; i++)
        {
            if (colliders[currentCombo].colliders[i] != null)
            {
                DamageCollider dc = colliders[currentCombo].colliders[i].GetComponent <DamageCollider>();
                dc.owner  = owner;
                dc.adc    = this;
                dc.damage = damage;
                dc.height = height;
                if (conditions.Count > 0)
                {
                    dc.conditions.AddRange(conditions);
                }
            }
        }

        gameObject.SetActive(false);
    }
Beispiel #13
0
    void OnTriggerEnter(Collider trigger)
    {
        //Entering a hitbox (could also be viewed as a punch being moved toward you)
        if (trigger.gameObject.tag == "Hitbox" && stats.invTime <= 0)
        {
            //Get the DamageCollider
            DamageCollider damageCollider = trigger.gameObject.GetComponent <DamageCollider>();

            //Impact effects
            SoundManager.Instance.PlaySound("Impact" + Random.Range(1, 4).ToString());
            Instantiate(hitSpark, trigger.gameObject.transform.position, Quaternion.identity);
            gameplayManager.WorldImpactEffect(damageCollider.Damage * 0.01f, damageCollider.Damage * 0.005f, damageCollider.Damage * 0.004f);

            //Apply values
            stats.health         -= damageCollider.Damage;
            stats.applicableForce = damageCollider.ImpactForce;

            stats.invTime = 0.2f;
        }
    }
    public Damageable GetLooking(float dist)
    {
        RaycastHit hit;

        if (Physics.SphereCast(
                playerCamera.position,
                .1f,
                playerCamera.forward,
                out hit,
                dist,
                Physics.DefaultRaycastLayers,
                QueryTriggerInteraction.Collide))
        {
            DamageCollider col = hit.collider.gameObject.GetComponentInChildren <DamageCollider> ();
            if (col != null && col.damageable != self && col.damageable.canBeAttacked)
            {
                return(col.damageable);
            }
        }
        return(null);
    }
Beispiel #15
0
 public virtual void Start()
 {
     DamageCollider = GetComponentInChildren <DamageCollider>();
     EntityAnimator = GetComponentInChildren <Animator>();
 }
Beispiel #16
0
 private void LoadRightWeaponDamageCollider()
 {
     //accedemos a la clase weaponHolderSlot y recogemos el valor de la var currentWeaponModel para almacenarlo
     rightHandDamageCollider = rightHandSlot.currentWeaponModel.GetComponentInChildren <DamageCollider>();
 }
Beispiel #17
0
 public void InitDynaMesh(C_Attack attackScript, DamageCollider damageColliderScript, int damageToDeal)
 {
     m_attackScript          = attackScript;
     m_damagerColliderScript = damageColliderScript;
     m_damageTicksToDeal     = damageToDeal;
 }
Beispiel #18
0
 private void LoadRightWeaponDamageCollider()
 {
     rightHandDamageCollider = rightHandSlot.currentWeaponModel.GetComponentInChildren <DamageCollider>();
 }
Beispiel #19
0
 private void LoadLeftWeaponDamageCollider()
 {
     leftHandDamageCollider = leftHandSlot.currentWeaponModel.GetComponentInChildren <DamageCollider>();
 }