Exemplo n.º 1
0
 void Awake()
 {
     vision     = GetComponent <EnemyVision>();
     attack     = GetComponent <TurretAttack>();
     death      = GetComponent <Enemy_Death>();
     childcount = transform.childCount;
 }
Exemplo n.º 2
0
 void Start()
 {
     lookAt = GetComponent <TurretLookAt>();
     idle   = GetComponent <TurretIdle>();
     attack = GetComponent <TurretAttack>();
     pulse  = GetComponent <TurretPulse>();
     death  = GetComponent <TurretDeath>();
 }
Exemplo n.º 3
0
            public void OnAttack(Obj_AI_Turret sender, Obj_AI_Base target, Obj_AI_BaseMissileClientDataEventArgs e)
            {
                this.LastFireTime = Game.TickCount;
                this.LastTarget   = target;

                var tAttack = new TurretAttack
                {
                    StartTime    = Game.TickCount,
                    Sender       = sender,
                    Target       = target,
                    AttackStatus = TurretAttack.AttackState.Casted
                };

                this.LastAttack = tAttack;

                this.Attacks.Add(tAttack);
            }
Exemplo n.º 4
0
    public void HitBy(TurretAttack bullet)
    {
        //AudioSource.PlayClipAtPoint(AudioManager.se_hit ,Camera .main.transform .position );

        /*
         * float fDamage = bullet.damage;
         * if (bullet.type == 11) fDamage *= 1 - magicalResist / 100f;
         * if (bullet.type == 12) fDamage *= 1 - physicalResist / 100f;
         * this.hp -= fDamage ;
         *
         * if (hp <= 0)
         * {
         *
         *  hp = 0;
         * }
         *
         * if(bullet.effect != 0)
         * {
         *  if(bullet.effect == 21)
         *  {
         *      Frozen(bullet.effectTime);
         *  }
         *
         *  if(bullet.effect == 22)
         *  {
         *      Burn(bullet.effectTime);
         *  }
         *
         *  if(bullet.effect == 23)
         *  {
         *      Stun(bullet.effectTime);
         *  }
         * }
         */

        HitBy(bullet.damage, bullet.type, bullet.effect, bullet.effectTime);

        if (bullet.form == 1)
        {
            Destroy(bullet.gameObject);
        }
    }
Exemplo n.º 5
0
        private void ObjAiBaseOnOnProcessAutoAttack(Obj_AI_Base sender, Obj_AI_BaseMissileClientDataEventArgs args)
        {
            //Only detect attacks from and to minions close to us
            if (sender == null || sender.Distance(this.Player) > 3500 || sender is Obj_AI_Hero)
            {
                return;
            }

            var target = args.Target as Obj_AI_Base;

            if (target != null)
            {
                if (!this.MinionAggroData.ContainsKey(target.NetworkId))
                {
                    this.MinionAggroData.Add(target.NetworkId, new AggroData(target, this));
                }

                if (sender.IsTurret)
                {
                    var data = this.MinionAggroData[target.NetworkId];

                    if (data != null)
                    {
                        if (data.LastTurretAttack != null)
                        {
                            if (Game.TickCount - data.LastTurretAttack.CastTime < 2500)
                            {
                                data.TurretShotNumber++;
                            }

                            else
                            {
                                data.TurretShotNumber = 1;
                            }
                        }

                        var auto = new TurretAttack(
                            sender,
                            target,
                            args,
                            data.LastTurretAttack == null ? 1 : data.TurretShotNumber,
                            args.SpellData.Name,
                            sender.Inventory.HasItem(1337420)); //todo: add actual item id.

                        if (!this.incomingAttacks.ContainsKey(auto.Target.NetworkId))
                        {
                            this.incomingAttacks.Add(auto.Target.NetworkId, new List <Attack>());
                        }

                        this.incomingAttacks[auto.Target.NetworkId].Add(auto);

                        data.LastTurretAttack = auto;
                    }
                }

                else
                {
                    var auto = new AutoAttack(sender, target, args, args.SpellData.Name);

                    if (!this.incomingAttacks.ContainsKey(auto.Target.NetworkId))
                    {
                        this.incomingAttacks.Add(auto.Target.NetworkId, new List <Attack>());
                    }

                    this.incomingAttacks[auto.Target.NetworkId].Add(auto);

                    if (this.MinionAggroData.ContainsKey(auto.Target.NetworkId))
                    {
                        this.MinionAggroData[auto.Target.NetworkId].LastMinionAttack = auto;
                    }
                }
            }
        }
Exemplo n.º 6
0
 private static void CancelExplosiveShot(TurretAttack turret)
 {
     turret.WillFireExplosiveShot      = false;
     TurretAttack.ExplosiveShotPlanned = false;
 }