Пример #1
0
        private void AEShoot(RealmTime time, Item item, Position target, ActivateEffect eff)
        {
            var arcGap     = item.ArcGap * Math.PI / 180;
            var startAngle = Math.Atan2(target.Y - Y, target.X - X) - (item.NumProjectiles - 1) / 2 * arcGap;
            var prjDesc    = item.Projectiles[0]; //Assume only one

            var sPkts = new Packet[item.NumProjectiles];

            for (var i = 0; i < item.NumProjectiles; i++)
            {
                var proj = CreateProjectile(prjDesc, item.ObjectType,
                                            (int)Stats.GetAttackDamage(prjDesc.MinDamage, prjDesc.MaxDamage, true),
                                            time.TotalElapsedMs, new Position()
                {
                    X = X, Y = Y
                }, (float)(startAngle + arcGap * i));
                Owner.EnterWorld(proj);
                sPkts[i] = new AllyShoot()
                {
                    OwnerId       = Id,
                    Angle         = proj.Angle,
                    ContainerType = item.ObjectType,
                    BulletId      = proj.ProjectileId
                };
                FameCounter.Shoot(proj);
            }
            BroadcastSync(sPkts, p => p != this && this.DistSqr(p) < RadiusSqr);
        }
Пример #2
0
 // Use this for initialization
 void Start()
 {
     allyShoot     = GetComponent <AllyShoot>();
     targetManager = GameObject.FindObjectOfType <TargetManager>().GetComponent <TargetManager>();
 }
Пример #3
0
 // Use this for initialization
 void Start()
 {
     targetManager = GameObject.FindObjectOfType <TargetManager>().GetComponent <TargetManager>();
     aicc          = GetComponent <UnityStandardAssets.Characters.ThirdPerson.AICharacterControl>();
     allyShoot     = GetComponent <AllyShoot>();
 }