Пример #1
0
 public void DamageCalculation(InflictDamage receivedDamage)
 {
     if (IsAnOppositeType(receivedDamage.weaponHolder.Type))
     {
         ApplyDamage(receivedDamage.weaponStats);
         CheckDeath();
     }
 }
Пример #2
0
        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);
        }
Пример #3
0
    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();
            }
        }
    }
Пример #4
0
        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);
        }
Пример #5
0
 /// <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;
 }
Пример #6
0
 public Laser CreateLaser(Vector2 start, Vector2 end, InflictDamage inflictDamageDeligate, LaserType type)
 {
     var laser = new Laser(start, end, inflictDamageDeligate, type);
       return laser;
 }
Пример #7
0
 public DamageInflictedEventArgs(IBattle battle, InflictDamage action) : base(battle)
 {
     Action = action;
 }