public void Zap(CyclopsSonarCreatureDetector.EntityData creatureToZap = null)
        {
            if (!AbleToZap())
            {
                return;
            }

            ZapRadius();

            UpdateCooldown();

            if (creatureToZap != null)
            {
                var newTarget = new CreatureTarget(creatureToZap);

                if (newTarget.IsValidTarget)
                {
                    target = newTarget;
                }
            }

            if (target != null && !target.IsValidTarget)
            {
                target = null;
            }

            if (target == null)
            {
                return;
            }

            ZapCreature();
        }
Beispiel #2
0
        public void Zap(CyclopsSonarCreatureDetector.EntityData creatureToZap = null)
        {
            if (!this.UpgradeHandler.HasUpgrade)
            {
                return;
            }

            if (!this.SeamothInBay)
            {
                return;
            }

            if (!this.HasElectricalDefense)
            {
                return;
            }

            if (this.IsOnCooldown)
            {
                return;
            }

            if (Cyclops.powerRelay.GetPower() < EnergyRequiredToZap)
            {
                return;
            }

            ZapRadius();

            timeOfLastZap = Time.time; // Update time of last zap for cooldown purposes

            if (creatureToZap != null)
            {
                var newTarget = new CreatureTarget(creatureToZap);

                if (newTarget.IsValidTarget)
                {
                    target = newTarget;
                }
            }

            if (!target.IsValidTarget)
            {
                target = null;
            }

            if (target == null)
            {
                return;
            }

            ZapCreature();
        }