public void DamageCalculation(InflictDamage receivedDamage) { if (IsAnOppositeType(receivedDamage.weaponHolder.Type)) { ApplyDamage(receivedDamage.weaponStats); CheckDeath(); } }
public void Receive(InflictDamage inflictDamage) { InflictDamageEventArgs inflictDamageEventArgs = new InflictDamageEventArgs(this, inflictDamage); OnInflictDamage?.Invoke(this, inflictDamageEventArgs); inflictDamage.Apply(); DamageInflictedEventArgs damageInflictedEventArgs = new DamageInflictedEventArgs(this, inflictDamage); OnDamageInflicted?.Invoke(this, damageInflictedEventArgs); }
private void OnCollisionEnter(Collision collision) { InflictDamage bullet = collision.gameObject.GetComponent <InflictDamage>(); if ((collision.gameObject.transform.root != transform.parent) && bullet) { currentHealth -= bullet.Damege / armor; if (!(healthBar == null)) { healthBar.SetHealth(currentHealth); } if (currentHealth <= 0) { DeathRoot(); } } }
public Laser(Vector2 initialPosition, Vector2 targetPosition, InflictDamage inflictDamageDelegate, LaserType laserType = LaserType.Interceptor) : base(initialPosition, Allegiance.Neutral) { mLifeTime = int.MaxValue; Position = initialPosition; mStartPosition = initialPosition; mTargetPosition = targetPosition; mLaserType = laserType; mInflictDamageDelegate = inflictDamageDelegate; // DeathStar-Laser-Zeug if (laserType == LaserType.DeathStarBeam) { mLifeTime = 3; /* Vector2 normalizedDirVector = targetPosition - initialPosition; normalizedDirVector.Normalize(); Position = initialPosition + normalizedDirVector * Global.DeathStarCollisionRadius; mLength = (int)(Position - (targetPosition - normalizedDirVector * Global.mPlanetRadius[PlanetSize.Medium])).Length(); */ } mLaserMovement = new LaserMovement(this, targetPosition, MovementSpeed); }
/// <summary> /// Sends a laser from initial Position to the target Position /// </summary> /// <param name="initialPosition"></param> /// <param name="targetPosition"></param> /// <param name="inflictDamageDelegate"> </param> /// <param name="type"></param> public Laser FireLaser(Vector2 initialPosition, Vector2 targetPosition, InflictDamage inflictDamageDelegate, LaserType type) { var laser = mGameObjectFactory.CreateLaser(initialPosition, targetPosition, inflictDamageDelegate, type); AddUnit(laser); return laser; }
public Laser CreateLaser(Vector2 start, Vector2 end, InflictDamage inflictDamageDeligate, LaserType type) { var laser = new Laser(start, end, inflictDamageDeligate, type); return laser; }
public DamageInflictedEventArgs(IBattle battle, InflictDamage action) : base(battle) { Action = action; }