public static DamageTargetType DamageTargetType(this PlayerDamageType playerDamageType)
        {
            switch (playerDamageType)
            {
            case PlayerDamageType.HeavyLaser:
            case PlayerDamageType.LightLaser:
                return(BLL.DamageTargetType.Single);

            case PlayerDamageType.Pulse:
                return(BLL.DamageTargetType.All);

            case PlayerDamageType.Rocket:
                return(BLL.DamageTargetType.Single);

            case PlayerDamageType.InterceptorsMultiple:
                //TODO: Do we need to distinguish between all (closest) and all (actually all)?
                return(BLL.DamageTargetType.All);

            case PlayerDamageType.InterceptorsSingle:
                return(BLL.DamageTargetType.Single);

            default:
                throw new InvalidOperationException();
            }
        }
Esempio n. 2
0
 internal PlayerDamage(int amount, PlayerDamageType playerDamageType, IEnumerable <int> affectedDistances, IList <ZoneLocation> affectedZones)
 {
     Amount            = amount;
     PlayerDamageType  = playerDamageType;
     AffectedDistances = affectedDistances;
     AffectedZones     = affectedZones;
 }
Esempio n. 3
0
        // makes player lose health
        public void TakeDamage(int damage, PlayerDamageType damageType)
        {
            if (!isInvincible)
            {
                // damage
                health -= damage;
                PlayerHUD.instance.UpdateHealth(health);

                // set correct invincibility
                switch (damageType)
                {
                case PlayerDamageType.Block:
                    invincibilityTime = longInvincibilityTime;
                    break;

                default:
                    invincibilityTime = defaultInvincibilityTime;
                    break;
                }

                // damage flash
                StopCoroutine("DamageFlash");
                StartCoroutine("DamageFlash");

                // kill enemy if health reaches 0
                if (health <= 0)
                {
                    Die();
                }
            }
        }
 public PlayerDamage(int amount, PlayerDamageType playerDamageType, int range, IList <ZoneLocation> zoneLocations)
 {
     Amount           = amount;
     PlayerDamageType = playerDamageType;
     Range            = range;
     ZoneLocations    = zoneLocations;
 }
 public PlayerDamage(int amount, PlayerDamageType playerDamageType, int range, IList<ZoneLocation> zoneLocations)
 {
     Amount = amount;
     PlayerDamageType = playerDamageType;
     Range = range;
     ZoneLocations = zoneLocations;
 }
Esempio n. 6
0
 protected Cannon(IEnergyProvider source, int baseDamage, IEnumerable <int> baseAffectedDistances, PlayerDamageType playerDamageType, params ZoneLocation[] affectedZones)
 {
     this.source                = source;
     this.baseDamage            = baseDamage;
     this.baseAffectedDistances = baseAffectedDistances;
     this.playerDamageType      = playerDamageType;
     this.affectedZones         = affectedZones;
 }
Esempio n. 7
0
 protected Cannon(EnergyContainer source, int damage, int range, PlayerDamageType playerDamageType, IList <ZoneLocation> zonesAffected)
 {
     this.source           = source;
     this.damage           = damage;
     this.range            = range;
     this.playerDamageType = playerDamageType;
     this.zonesAffected    = zonesAffected;
 }
Esempio n. 8
0
 protected Cannon(EnergyContainer source, int damage, int range, PlayerDamageType playerDamageType, IList<ZoneLocation> zonesAffected)
 {
     this.source = source;
     this.damage = damage;
     this.range = range;
     this.playerDamageType = playerDamageType;
     this.zonesAffected = zonesAffected;
 }
    public void TakeDamage(float dmg, PlayerDamageType type)
    {
        if (alive)
        {
            currentHealth -= dmg;
            if (type == PlayerDamageType.Injure)
                UIManager.instance.overlay.Show(Color.red);
            else if (type == PlayerDamageType.Suffocate)
                UIManager.instance.overlay.Show(Color.blue);

            //Play damage sound
            if(soundTimer <= 0)
            {
                soundTimer = 0.8f;
                GetComponent<AudioSource>().PlayOneShot(damageSounds[Random.Range(0, damageSounds.Length - 1)]);
            }
        }
        else
            Die();
    }
Esempio n. 10
0
        public static DamageTargetType DamageTargetType(this PlayerDamageType playerDamageType)
        {
            switch (playerDamageType)
            {
            case PlayerDamageType.HeavyLaser:
            case PlayerDamageType.LightLaser:
                return(BLL.DamageTargetType.Single);

            case PlayerDamageType.Pulse:
                return(BLL.DamageTargetType.All);

            case PlayerDamageType.Rocket:
                return(BLL.DamageTargetType.Single);

            case PlayerDamageType.InterceptorsMultiple:
                return(BLL.DamageTargetType.All);

            case PlayerDamageType.InterceptorsSingle:
                return(BLL.DamageTargetType.Single);

            default:
                throw new InvalidOperationException();
            }
        }
Esempio n. 11
0
 internal PlayerDamage(int amount, PlayerDamageType playerDamageType, IEnumerable <int> affectedDistances, IList <ZoneLocation> affectedZones, Player performingPlayer, bool requiresTargetingAssistance)
     : this(amount, playerDamageType, affectedDistances, affectedZones, performingPlayer)
 {
     RequiresTargetingAssistance = requiresTargetingAssistance;
 }
Esempio n. 12
0
 internal PlayerDamage(int amount, PlayerDamageType playerDamageType, IEnumerable <int> affectedDistances, IList <ZoneLocation> affectedZones, Player performingPlayer)
     : this(amount, playerDamageType, affectedDistances, affectedZones)
 {
     PerformingPlayer = performingPlayer;
 }
Esempio n. 13
0
 protected LaserCannon(IEnergyProvider source, int baseDamage, PlayerDamageType playerDamageType, ZoneLocation currentZone)
     : base(source, baseDamage, new [] { 1, 2, 3 }, playerDamageType, currentZone)
 {
 }
Esempio n. 14
0
 protected Cannon(EnergyContainer source, int damage, int range, PlayerDamageType playerDamageType, ZoneLocation zoneAffected)
     : this(source, damage, range, playerDamageType, new[] { zoneAffected })
 {
 }
Esempio n. 15
0
 protected Cannon(EnergyContainer source, int damage, int range, PlayerDamageType playerDamageType, ZoneLocation zoneAffected)
     : this(source, damage, range, playerDamageType, new[] { zoneAffected })
 {
 }
Esempio n. 16
0
 protected LaserCannon(EnergyContainer source, int damage, PlayerDamageType playerDamageType, ZoneLocation currentZone)
     : base(source, damage, 3, playerDamageType, currentZone)
 {
 }
Esempio n. 17
0
 protected LaserCannon(EnergyContainer source, int damage, PlayerDamageType playerDamageType, ZoneLocation currentZone)
     : base(source, damage, 3, playerDamageType, currentZone)
 {
 }