Inheritance: MonoBehaviour
 // receive damage and notify handlers
 public void ApplyDamage(float amount, Vector3 position, Vector3 force, DamageDealer dealer) {
     if (handlers == null || handlers.Length == 0) {
         Debug.LogError("No DamageHandlers available to receive damage: " + this);
     } else {
         foreach (DamageHandler d in handlers) {
             d.HandleDamage(amount, position, force, dealer);
         }
     }
 }
    // Extension method for easily applying damage to the game object owning a component.  Returns true if collider is damageable
    // Ex: bool damageable = collider.ApplyDamage(...);
    public static bool ApplyDamage(this Component component, float amount, Vector3 position, Vector3 force, DamageDealer dealer) {
        DamageReceiver receiver = (DamageReceiver) component.GetComponentInParent(typeof(DamageReceiver));

        if (receiver == null) {
            return false;
        } else {
            receiver.ApplyDamage(amount, position, force, dealer);
            return true;
        }
    }
Exemple #3
0
    // Fire weapon, if not in the delay interval
    public bool FireWeapon(Vector3 position, Vector3 direction, DamageDealer dealer) {
        if (fireIntervalRemaining <= 0f) {
            Vector3 fireDirection = RandomDirectionOffset(direction, config.sprayAngle);
            ProjectileBehaviour projectile = (ProjectileBehaviour)PoolManager.Instance.GetPooledObject(config.projectilePrefab);
            projectile.InitializeAndActivate(position, fireDirection, dealer);

            // set the interval to prevent firing immediately on the next frame
            fireIntervalRemaining = config.fireInterval;

            return true;
        } else {
            return false;
        }
    }
    // Initialize bullet with direction and dealer, then activate
    public void InitializeAndActivate(Vector3 initialPosition, Vector3 direction, DamageDealer dealer) {
        // validate radius
        if (useRadius && radius <= 0f) {
            Debug.LogError("Can't use radius of 0 or less: " + radius + ", ignoring", this);
            useRadius = false;
        }

        // move forward by radius if applicable, prevents unexpected collisions
        if (useRadius) {
            transform.position = initialPosition + direction * radius;
        } else {
            transform.position = initialPosition;
        }
        
        this.direction = direction;
        this.dealer = dealer;
        alive = true;

        Activate();
    }
Exemple #5
0
	void Awake()
	{
		damageDealer = GetComponent<DamageDealer>();
		damageTaker = GetComponent<DamageTaker>();
		enemyAnimator = GetComponent<EnemyAnimator>();
	}
 public override void Hitted(GameObject objectWhichHittedMe, DamageDealer damageDealer)
 {
     Damage(damageDealer.GetDamage(), objectWhichHittedMe);
 }
    private void OnTriggerEnter(Collider other)
    {
        DamageDealer damageDealer = other.gameObject.GetComponent <DamageDealer>();

        Destroy(damageDealer);
    }
 public void OnTakeDamage(DamageDealer dealer, float dmg, Vector2 dealPoint)
 {
     OnDie();
 }
 public void HandleDamage(float amount, Vector3 position, Vector3 force, DamageDealer dealer) {
     if (!alive) {
         rigidbody.AddForceAtPosition(force, position, ForceMode.Acceleration);
     }
 }
Exemple #10
0
    private void OnCollisionEnter(Collision collision)
    {
        DamageDealer damage = collision.gameObject.GetComponent <DamageDealer>();

        HandleDamage(damage);
    }
Exemple #11
0
 private void BlinkOnHit(DamageDealer dealer, DamageTaker taker)
 {
     GameManager.CameraShake.ShakeCamera(this.hitShakeDuration, this.hitShakeDistance);
     this.StartCoroutine(this.Blink(taker.InvulnerabilityDuration));
 }
Exemple #12
0
 private void Awake()
 {
     audioSource  = GetComponent <AudioSource>();
     damageDealer = GetComponent <DamageDealer>();
 }
Exemple #13
0
 public bool CheckDamageDealer(DamageDealer dealer)
 {
     bool ok = false;
     if(this.IsAttack() && dealer.baseAttack) ok = true;
     else if(this.IsSkill())
     {
         for(int i=0; i<dealer.skillID.Length; i++)
         {
             if(dealer.skillID[i] == this.useID) ok = true;
         }
     }
     else if(this.IsItem())
     {
         for(int i=0; i<dealer.itemID.Length; i++)
         {
             if(dealer.itemID[i] == this.useID) ok = true;
         }
     }
     return ok;
 }
Exemple #14
0
	void Awake()
	{
		damageDealer = GetComponent<DamageDealer>();
		damageTaker = GetComponent<DamageTaker>();
		audioSource = GetComponent<AudioSource>();
	}
 public void Setup()
 {
     testObject = testHelper.InstantiateScript<DamageDealer>();
     collider2D = testHelper.InstantiateScript<BoxCollider2D> ();
     playerStatus = collider2D.gameObject.AddComponent<PlayerStatusStub> ();
     playerMovement = collider2D.gameObject.AddComponent<PlayerMovementStub> ();
 }
 public void HandleDamage(float amount, Vector3 position, Vector3 force, DamageDealer dealer) {
     wasDamaged = true;
 }
Exemple #17
0
    protected void DealDamage(Damage damage, bool stopRegen, DamageDealer damageDealer)
    {
        if (damage.Magnitude == 0 || this == null || deathHandler.IsDead) {
            return;
        }

        Stat damaged = stats[damage.Type.Damages()];
        if (damaged.Current == damaged.Max) {
            damaged.NextRegenTick = Time.time + damaged.SingleTickRegenTimer + (stopRegen ? damaged.RegenCooldown : 0f);
        }
        else if (stopRegen) {
            damaged.NextRegenTick += damaged.RegenCooldown;
        }

        damaged.Current -= damage.Magnitude;
        damaged.AllocatedRegen -= damage.Magnitude;

        if (damaged.Current <= 0) {
            if (damageDealer != null && damageDealer.Owner != null) {
                CharacterEventListener killer = damageDealer.Owner.GetComponent<CharacterEventListener>();
                if (killer != null) {
                    killer.Broadcast(CharacterEvents.Kill, new KillEvent(){Other = gameObject});
                }
            }

            listener.Broadcast(CharacterEvents.Die, null);
        }
        else {
            if (GermaniumTracker.Singleton()[target.Team] > damaged.Max - damaged.AllocatedRegen) {
                GermaniumTracker.Singleton()[target.Team] -= damaged.Max - damaged.AllocatedRegen;
                damaged.AllocatedRegen = damaged.Max;
            }
            else {
                damaged.AllocatedRegen += GermaniumTracker.Singleton()[target.Team];
                GermaniumTracker.Singleton()[target.Team] = 0;
                awaitingRegen.Enqueue(damage.Type.Damages());
            }
        }
    }
Exemple #18
0
 public void AddHealth(DamageDealer damageDealer)
 {
     health += damageDealer.GetDamage();
 }
Exemple #19
0
 private void ProcessHit(DamageDealer damageDealer)
 {
     health -= damageDealer.GetDamage();
     ClearScene();
 }
Exemple #20
0
    private void OnTriggerEnter2D(Collider2D other)
    {
        DamageDealer damageDealer = other.gameObject.GetComponent <DamageDealer>();

        ProcessHit(damageDealer);
    }
Exemple #21
0
    private void EnemyHit(DamageDealer damageDealer)
    {
        GameObject enemyHit = Instantiate(enemyHitPrefab, damageDealer.transform.position, Quaternion.identity) as GameObject;

        Destroy(enemyHit, hitTime);
    }
    public void TakeHit(DamageDealer damager)
    {
        Debug.Log("Take hit");

        if (Network.isClient) {
            return;
        }
        int dmg = damager.GetComponent<DamageDealer>().damage;
        TakeDamage(dmg);
    }
Exemple #23
0
 private void ProcessHit(DamageDealer damageDealer)
 {
     TakeDamage(damageDealer.GetDamage());
 }
Exemple #24
0
    private void OnTriggerEnter(Collider other)
    {
        DamageDealer damage = other.gameObject.GetComponent <DamageDealer>();

        HandleDamage(damage);
    }
 public override void Awake()
 {
     blackboard = DamageDealer.FindObjectT <Blackboard> (gameObject);
 }
Exemple #26
0
 private void Start()
 {
     _damageDealer = GetComponent <DamageDealer>();
 }
    private void OnTriggerEnter2D(Collider2D collider)
    {
        DamageDealer damageDealer = collider.gameObject.GetComponent <DamageDealer>();

        GetDamagedByProjectile(damageDealer);
    }
Exemple #28
0
 private void Start()
 {
     damageDealer = this.GetComponent <DamageDealer>();
 }
	void RaiseHeartRate(DamageDealer dealer, int damage)
	{
		RaiseHeartRate(damage);
	}
Exemple #30
0
    protected override void ResolveDamage(DamageDealer damageDealer)
    {
        float d = (weakPoint) ? damageDealer.damage * 2 : damageDealer.damage;

        dino.CurrentHealth -= d;
    }
 // handle damage
 public void HandleDamage(float amount, Vector3 position, Vector3 force, DamageDealer dealer) {
     AddHealth(-amount);
 }
    private void OnCollisionEnter2D(Collision2D collision)
    {
        DamageDealer damageDealer = collision.gameObject.GetComponent <DamageDealer>();

        GetDamaged(damageDealer);
    }
Exemple #33
0
 public override bool CanBeHit(DamageDealer damageDealer)
 {
     return(true);
 }
Exemple #34
0
 private void ProcessHit(DamageDealer damageDealer)
 {
     GetComponent <Health>().DealDamage(damageDealer.GetDamage());
     damageDealer.Hit();
 }
    //reduces health whenever collides with a gameObject
    //which has a DamageDealer component
    public void OnTriggerEnter2D(Collider2D objects)
    {
        DamageDealer damageDealerObstacle = objects.gameObject.GetComponent <DamageDealer>();

        CollideWith(damageDealerObstacle);
    }
Exemple #36
0
    private void OnCollisionEnter2D(Collision2D other)
    {
        DamageDealer damageDealer = other.gameObject.GetComponent <DamageDealer>();

        TakeDamage(damageDealer);
    }
Exemple #37
0
 public void TakeDamage(DamageDealer dealer, float dmg, Vector2 pos)
 {
     OnTakeDamage(dealer, dmg, pos);
 }
Exemple #38
0
 //Event that triggers only when the player takes damage
 private void OnTakeDamage(DamageDealer damageDealer)
 {
     healthBar.fillAmount = _health.currentHealth / 100;
     _audioSource.PlayOneShot(hurtSound);
 }
Exemple #39
0
 void Start()
 {
     damageDealer = GetComponent <DamageDealer>();
     StartCoroutine(DamageDown());
 }
Exemple #40
0
    private void OnTriggerEnter2D(Collider2D otherthingthatjustbumpedintous)
    {
        DamageDealer damageDealer = otherthingthatjustbumpedintous.gameObject.GetComponent <DamageDealer>();

        death(damageDealer);
    }
Exemple #41
0
 // Use this for initialization
 void Awake()
 {
     damageDealer = GetComponent <DamageDealer>();
 }
    private void OnTriggerEnter2D(Collider2D collision)
    {
        DamageDealer damageDealer = collision.gameObject.GetComponent <DamageDealer>();

        ProcessHit(collision, damageDealer);
    }
 void Start()
 {
     dmg = GetComponent <DamageDealer>();
 }
Exemple #44
0
 public override bool CanBeHit(DamageDealer damageDealer)
 {
     return(health > 0);
 }
    void Start()
    {
        stats = GetComponent<CharacterStats> ();
        dmgDealer = GetComponentInChildren<DamageDealer> ();
        weaponTransform = transform.Find ("CharacterHead").Find ("RightWep");

        wep = new Weapon ();

        //TODO - GET VARIABLES FOR THE DEFAULT POSITION SEPARATE FROM SWINGING YOUR WEP
        currentSwingRot = idleRot;
        weaponTransform.localPosition = idlePos;
    }