Пример #1
0
        public static void SendMultiTargetReq(this NetState ns, MultiTarget t)
        {
            if (ns == null || !ns.GetSendBuffer(out var buffer))
            {
                return;
            }

            var writer = new CircularBufferWriter(buffer);

            writer.Write((byte)0x99); // Packet ID
            writer.Write(t.AllowGround);
            writer.Write(t.TargetID);
            writer.Write((byte)t.Flags);
            writer.Clear(11);
            writer.Write((short)t.MultiID);
            writer.Write((short)t.Offset.X);
            writer.Write((short)t.Offset.Y);
            writer.Write((short)t.Offset.Z);
            if (ns.HighSeas)
            {
                writer.Write(0);
            }

            ns.Send(ref buffer, writer.Position);
        }
Пример #2
0
        public static void SendMultiTargetReq(this NetState ns, MultiTarget t)
        {
            if (ns == null)
            {
                return;
            }

            var writer = new SpanWriter(stackalloc byte[ns.HighSeas ? 30 : 26]);

            writer.Write((byte)0x99); // Packet ID
            writer.Write(t.AllowGround);
            writer.Write(t.TargetID);
            writer.Write((byte)t.Flags);
            writer.Clear(11);
            writer.Write((short)t.MultiID);
            writer.Write((short)t.Offset.X);
            writer.Write((short)t.Offset.Y);
            writer.Write((short)t.Offset.Z);
            if (ns.HighSeas)
            {
                writer.Write(0);
            }

            ns.Send(writer.Span);
        }
Пример #3
0
 void IEditorMultiTargetBehaviour.InitializeMultiTarget(MultiTarget multiTarget)
 {
     base.mTrackable = this.mMultiTarget = multiTarget;
     if (base.mExtendedTracking)
     {
         this.mMultiTarget.StartExtendedTracking();
     }
 }
Пример #4
0
 public override int GetHashCode()
 {
     return((DrugId +
             TargetId +
             MultiTarget.ToString() +
             TargetClassifierCategory +
             TargetClassifierDescription +
             CreatonDate.ToString()).GetHashCode());
 }
Пример #5
0
 // Creates a new Multi Target with the data of the Multi Target with the
 // given name.
 // Returns false if Multi Target does not exist.
 public void GetMultiTarget(string name, out MultiTarget mt)
 {
     try
     {
         mt = multiTargets[name];
     }
     catch
     {
         throw;
     }
 }
Пример #6
0
 // Add Multi Target Part to the Multi Target with the given multiTargetName.
 public void AddMultiTargetPart(MultiTargetPart item, string multiTargetName)
 {
     try
     {
         MultiTarget mt = multiTargets[multiTargetName];
         mt.parts.Add(item);
     }
     catch
     {
         throw;
     }
 }
Пример #7
0
    private MultiTargetAbstractBehaviour CreateMultiTargetBehaviour(MultiTarget multiTarget)
    {
        GameObject gameObject = new GameObject();
        MultiTargetAbstractBehaviour behaviour  = BehaviourComponentFactory.Instance.AddMultiTargetBehaviour(gameObject);
        IEditorMultiTargetBehaviour  behaviour2 = behaviour;

        Debug.Log(string.Concat(new object[] { "Creating Multi Target with values: \n ID:           ", multiTarget.ID, "\n Name:         ", multiTarget.Name, "\n Path:         ", behaviour2.DataSetPath }));
        behaviour2.SetNameForTrackable(multiTarget.Name);
        behaviour2.SetDataSetPath(behaviour2.DataSetPath);
        behaviour2.InitializeMultiTarget(multiTarget);
        return(behaviour);
    }
Пример #8
0
 public void CustomMultiTarget()
 {
     var target = new MultiTarget()
     {
         new CustomTarget(),
         new CustomTarget()
     };
     using (var profiler = new MicroProfiler("MyName", target: target))
     {
         Thread.Sleep(11);
     }
     Assert.That(target.All(x => (x as CustomTarget).Elapsed >= 10), Is.True);
     Assert.That(target.All(x => (x as CustomTarget).Name == "MyName"), Is.True);
 }
Пример #9
0
        public MultiTargetReq(MultiTarget t) : base(0x99, 26)
        {
            Stream.Write(t.AllowGround);
            Stream.Write(t.TargetID);
            Stream.Write((byte)t.Flags);

            Stream.Fill();

            Stream.Seek(18, SeekOrigin.Begin);
            Stream.Write((short)t.MultiID);
            Stream.Write((short)t.Offset.X);
            Stream.Write((short)t.Offset.Y);
            Stream.Write((short)t.Offset.Z);
        }
        // Methods
        public MultiTargetReq(MultiTarget t) : base(153, 26)
        {
            this.m_Stream.Write(t.AllowGround);
            this.m_Stream.Write(t.TargetID);
            this.m_Stream.Write(((byte)t.Flags));
            this.m_Stream.Fill();
            this.m_Stream.Seek(18, SeekOrigin.Begin);
            this.m_Stream.Write(((short)t.MultiID));
            Point3D pointd1 = t.Offset;

            this.m_Stream.Write(((short)pointd1.X));
            pointd1 = t.Offset;
            this.m_Stream.Write(((short)pointd1.Y));
            pointd1 = t.Offset;
            this.m_Stream.Write(((short)pointd1.Z));
        }
Пример #11
0
        private MultiTargetAbstractBehaviour CreateMultiTargetBehaviour(MultiTarget multiTarget)
        {
            GameObject gameObject = new GameObject();
            MultiTargetAbstractBehaviour multiTargetAbstractBehaviour = BehaviourComponentFactory.Instance.AddMultiTargetBehaviour(gameObject);

            Debug.Log(string.Concat(new object[]
            {
                "Creating Multi Target with values: \n ID:           ",
                multiTarget.ID,
                "\n Name:         ",
                multiTarget.Name,
                "\n Path:         ",
                ((MultiTargetImpl)multiTarget).DataSet.Path
            }));
            multiTargetAbstractBehaviour.InitializeTarget(multiTarget, true);
            return(multiTargetAbstractBehaviour);
        }
Пример #12
0
        internal override bool InitializeTarget(Trackable trackable, bool applyTargetScaleToBehaviour)
        {
            base.InitializeTarget(trackable, applyTargetScaleToBehaviour);
            MultiTargetImpl multiTargetImpl = trackable as MultiTargetImpl;

            if (multiTargetImpl == null)
            {
                return(false);
            }
            this.mTrackable     = (this.mMultiTarget = multiTargetImpl);
            this.mTrackableName = multiTargetImpl.Name;
            this.mDataSetPath   = multiTargetImpl.DataSet.Path;
            if (this.mExtendedTracking)
            {
                this.mMultiTarget.StartExtendedTracking();
            }
            return(true);
        }
Пример #13
0
    private MultiTargetBehaviour CreateMultiTargetBehaviour(MultiTarget multiTarget)
    {
        GameObject           multiTargetObject = new GameObject();
        MultiTargetBehaviour newMTB            =
            multiTargetObject.AddComponent <MultiTargetBehaviour>();

        IEditorMultiTargetBehaviour newEditorMTB = newMTB;

        Debug.Log("Creating Multi Target with values: " +
                  "\n ID:           " + multiTarget.ID +
                  "\n Name:         " + multiTarget.Name +
                  "\n Path:         " + newEditorMTB.DataSetPath);


        // Set Multi Target attributes.
        newEditorMTB.SetNameForTrackable(multiTarget.Name);
        newEditorMTB.SetDataSetPath(newEditorMTB.DataSetPath);
        newEditorMTB.InitializeMultiTarget(multiTarget);

        return(newMTB);
    }
Пример #14
0
 // Set attributes of the Multi Target with the given name.
 // If the Multi Target does not yet exist it is created automatically.
 public void SetMultiTarget(MultiTarget item, string name)
 {
     multiTargets[name] = item;
 }
Пример #15
0
 // Creates a new Multi Target with the data of the Multi Target with the
 // given name.
 // Returns false if Multi Target does not exist.
 public void GetMultiTarget(string name, out MultiTarget mt)
 {
     try
     {
         mt = multiTargets[name];
     }
     catch
     {
         throw;
     }
 }
Пример #16
0
        public static async Task <bool> Combat()
        {
            if (BotManager.Current.IsAutonomous)
            {
                if (Core.Me.HasTarget)
                {
                    Movement.NavigateToUnitLos(Core.Me.CurrentTarget, 20 + Core.Me.CurrentTarget.CombatReach);
                }
            }

            if (!Core.Me.HasTarget || !Core.Me.CurrentTarget.ThoroughCanAttack())
            {
                return(false);
            }

            if (await CustomOpenerLogic.Opener())
            {
                return(true);
            }

            if (MachinistSettings.Instance.UseFlamethrower && Core.Me.HasAura(Auras.Flamethrower))
            {
                // First check movement otherwise Flamethrower can be executed whereas you are moving
                if (MovementManager.IsMoving)
                {
                    return(false);
                }

                if (!MachinistSettings.Instance.UseFlamethrower)
                {
                    return(true);
                }

                if (Core.Me.EnemiesInCone(8) >= MachinistSettings.Instance.FlamethrowerEnemyCount)
                {
                    return(true);
                }
            }

            if (ActionResourceManager.Machinist.OverheatRemaining != TimeSpan.Zero)
            {
                if (MachinistRoutine.GlobalCooldown.CanWeave(1))
                {
                    //Utility
                    if (await PhysicalDps.ArmsLength(MachinistSettings.Instance))
                    {
                        return(true);
                    }
                    if (await PhysicalDps.Interrupt(MachinistSettings.Instance))
                    {
                        return(true);
                    }

                    //Pets
                    if (await Pet.RookQueen())
                    {
                        return(true);
                    }

                    //Cooldowns
                    if (await Cooldowns.BarrelStabilizer())
                    {
                        return(true);
                    }

                    //oGCDs
                    if (await SingleTarget.GaussRound())
                    {
                        return(true);
                    }
                    if (await MultiTarget.Ricochet())
                    {
                        return(true);
                    }

                    //Cooldowns
                    if (await Cooldowns.Reassemble())
                    {
                        return(true);
                    }
                }
            }
            else
            {
                if (MachinistRoutine.GlobalCooldown.CanWeave())
                {
                    //Utility
                    if (await Utility.Tactician())
                    {
                        return(true);
                    }
                    if (await PhysicalDps.ArmsLength(MachinistSettings.Instance))
                    {
                        return(true);
                    }
                    if (await PhysicalDps.SecondWind(MachinistSettings.Instance))
                    {
                        return(true);
                    }
                    if (await PhysicalDps.Interrupt(MachinistSettings.Instance))
                    {
                        return(true);
                    }

                    //Pets
                    if (await Pet.RookQueen())
                    {
                        return(true);
                    }
                    if (await Pet.RookQueenOverdrive())
                    {
                        return(true);
                    }

                    //Cooldowns
                    if (await Cooldowns.Wildfire())
                    {
                        return(true);
                    }
                    if (await Cooldowns.Hypercharge())
                    {
                        return(true);
                    }
                    if (await Cooldowns.Reassemble())
                    {
                        return(true);
                    }
                    if (await Cooldowns.BarrelStabilizer())
                    {
                        return(true);
                    }

                    //oGCDs
                    if (await SingleTarget.GaussRound())
                    {
                        return(true);
                    }
                    if (await MultiTarget.Ricochet())
                    {
                        return(true);
                    }
                }
            }

            //GCDs - Top Hypercharge Priority
            if (await MultiTarget.AutoCrossbow())
            {
                return(true);
            }
            if (await SingleTarget.HeatBlast())
            {
                return(true);
            }

            //Use On CD
            if (await MultiTarget.ChainSaw())
            {
                return(true);
            }
            if (await MultiTarget.BioBlaster())
            {
                return(true);
            }
            if (await SingleTarget.Drill())
            {
                return(true);
            }
            if (await SingleTarget.HotAirAnchor())
            {
                return(true);
            }
            if (await MultiTarget.Flamethrower())
            {
                return(true);
            }
            if (await MultiTarget.Scattergun())
            {
                return(true);
            }

            //Default Combo
            if (await SingleTarget.HeatedCleanShot())
            {
                return(true);
            }
            if (await SingleTarget.HeatedSlugShot())
            {
                return(true);
            }

            return(await SingleTarget.HeatedSplitShot());
        }
Пример #17
0
 // Set attributes of the Multi Target with the given name.
 // If the Multi Target does not yet exist it is created automatically.
 public void SetMultiTarget(MultiTarget item, string name)
 {
     multiTargets[name] = item;
 }
Пример #18
0
        public static async Task <bool> Combat()
        {
            if (BotManager.Current.IsAutonomous)
            {
                if (Core.Me.HasTarget)
                {
                    Movement.NavigateToUnitLos(Core.Me.CurrentTarget, 23);
                }
            }

            if (!Core.Me.HasTarget || !Core.Me.CurrentTarget.ThoroughCanAttack())
            {
                return(false);
            }

            if (await CustomOpenerLogic.Opener())
            {
                return(true);
            }

            if (MachinistSettings.Instance.UseFlamethrower && Core.Me.HasAura(Auras.Flamethrower))
            {
                // First check movement otherwise Flamethrower can be executed whereas you are moving
                if (MovementManager.IsMoving)
                {
                    return(false);
                }

                if (!MachinistSettings.Instance.UseFlamethrower)
                {
                    return(true);
                }

                if (Core.Me.EnemiesInCone(8) >= MachinistSettings.Instance.FlamethrowerEnemyCount)
                {
                    return(true);
                }
            }

            //oGCDs

            //Utility
            if (await Utility.Tactician())
            {
                return(true);
            }
            if (await PhysicalDps.ArmsLength(MachinistSettings.Instance))
            {
                return(true);
            }
            if (await PhysicalDps.SecondWind(MachinistSettings.Instance))
            {
                return(true);
            }
            if (await Utility.HeadGraze())
            {
                return(true);
            }

            if (Weaving.GetCurrentWeavingCounter() < 2)
            {
                //Pets
                if (await Pet.RookQueen())
                {
                    return(true);
                }
                if (await Pet.RookQueenOverdrive())
                {
                    return(true);
                }

                //Cooldowns
                if (await Cooldowns.Wildfire())
                {
                    return(true);
                }
                if (await Cooldowns.Hypercharge())
                {
                    return(true);
                }
                if (await Cooldowns.Reassemble())
                {
                    return(true);
                }
                if (await Cooldowns.BarrelStabilizer())
                {
                    return(true);
                }

                //oGCDs
                if (await SingleTarget.GaussRound())
                {
                    return(true);
                }
                if (await MultiTarget.Ricochet())
                {
                    return(true);
                }
            }

            //GCDs - Top Hypercharge Priority
            if (await MultiTarget.AutoCrossbow())
            {
                return(true);
            }
            if (await SingleTarget.HeatBlast())
            {
                return(true);
            }

            //Use On CD
            if (await MultiTarget.BioBlaster())
            {
                return(true);
            }
            if (await SingleTarget.Drill())
            {
                return(true);
            }
            if (await SingleTarget.HotAirAnchor())
            {
                return(true);
            }
            if (await MultiTarget.Flamethrower())
            {
                return(true);
            }
            if (await MultiTarget.SpreadShot())
            {
                return(true);
            }

            //Default Combo

            if (Core.Me.ClassLevel > 58)
            {
                if (Spells.Drill.Cooldown.TotalMilliseconds > 100)
                {
                    if (await SingleTarget.HeatedCleanShot())
                    {
                        return(true);
                    }
                    if (await SingleTarget.HeatedSlugShot())
                    {
                        return(true);
                    }
                }
            }
            else
            {
                if (await SingleTarget.HeatedCleanShot())
                {
                    return(true);
                }
                if (await SingleTarget.HeatedSlugShot())
                {
                    return(true);
                }
            }

            return(await SingleTarget.HeatedSplitShot());
        }
 /// <summary>
 /// This method disconnects the TrackableBehaviour from it's associated trackable.
 /// Use it only if you know what you are doing - e.g. when you want to destroy a trackable, but reuse the TrackableBehaviour.
 /// </summary>
 protected override void InternalUnregisterTrackable()
 {
     mTrackable = mMultiTarget = null;
 }
 void IEditorMultiTargetBehaviour.InitializeMultiTarget(MultiTarget multiTarget)
 {
     mTrackable = mMultiTarget = multiTarget;
 }
Пример #21
0
 protected override void InternalUnregisterTrackable()
 {
     this.mTrackable = (this.mMultiTarget = null);
 }
 public bool SetInitializationTarget(MultiTarget multiTarget, Vector3 occluderMin, Vector3 occluderMax)
 {
     return(this.SetInitializationTarget(multiTarget, occluderMin, occluderMax, Vector3.zero, Quaternion.identity));
 }
 public bool SetInitializationTarget(MultiTarget multiTarget, Vector3 occluderMin, Vector3 occluderMax, Vector3 offsetToOccluderOrigin, Quaternion rotationToOccluderOrigin)
 {
     return(this.SetInitializationTarget(((MultiTargetImpl)multiTarget).DataSet.DataSetPtr, multiTarget, occluderMin, occluderMax, offsetToOccluderOrigin, rotationToOccluderOrigin));
 }
Пример #24
0
 /// <summary>
 /// This method disconnects the TrackableBehaviour from it's associated trackable.
 /// Use it only if you know what you are doing - e.g. when you want to destroy a trackable, but reuse the TrackableBehaviour.
 /// </summary>
 protected override void InternalUnregisterTrackable()
 {
     mTrackable = mMultiTarget = null;
 }
Пример #25
0
 void IEditorMultiTargetBehaviour.InitializeMultiTarget(MultiTarget multiTarget)
 {
     mTrackable = mMultiTarget = multiTarget;
 }
Пример #26
0
        public MultiTargetReqHS(MultiTarget t)
            : base(0x99, 30)
        {
            m_Stream.Write(t.AllowGround);
            m_Stream.Write(t.TargetID);
            m_Stream.Write((byte)t.Flags);

            m_Stream.Fill();

            m_Stream.Seek(18, SeekOrigin.Begin);
            m_Stream.Write((short)t.MultiID);
            m_Stream.Write((short)t.Offset.X);
            m_Stream.Write((short)t.Offset.Y);
            m_Stream.Write((short)t.Offset.Z);
        }
Пример #27
0
    private MultiTargetBehaviour CreateMultiTargetBehaviour(MultiTarget multiTarget)
    {
        GameObject multiTargetObject = new GameObject();
        MultiTargetBehaviour newMTB =
            multiTargetObject.AddComponent<MultiTargetBehaviour>();

        IEditorMultiTargetBehaviour newEditorMTB = newMTB;

        Debug.Log("Creating Multi Target with values: " +
          "\n ID:           " + multiTarget.ID +
          "\n Name:         " + multiTarget.Name +
          "\n Path:         " + newEditorMTB.DataSetPath);

        // Set Multi Target attributes.
        newEditorMTB.SetNameForTrackable(multiTarget.Name);
        newEditorMTB.SetDataSetPath(newEditorMTB.DataSetPath);
        newEditorMTB.InitializeMultiTarget(multiTarget);

        return newMTB;
    }
Пример #28
0
    // Creates a new Multi Target with the data of the Multi Target with the
    // given name.
    // Returns false if Multi Target does not exist.
    public bool GetMultiTarget(string name, out MultiTarget mt)
    {
        try
        {
            mt = multiTargets[name];
        }
        catch (KeyNotFoundException)
        {
            mt = new MultiTarget();
            return false;
        }
        catch (Exception e)
        {
            throw e;
        }

        return true;
    }