public void Detector3Action(MyEntityDetector sender, MyEntity entity, int meetCriterias)
 {
     if (MySession.IsPlayerShip(entity))
     {
         MyScriptWrapper.ActivateSpawnPoint((uint)EntityID.Spawn3);
         m_Detector3.Off();
     }
 }
Exemplo n.º 2
0
        public static bool IsAllowedToAttack(MySmallShipBot attacker, MyEntity target)
        {
            if (MySession.IsPlayerShip(target))
            {
                foreach (var pair in CurrentBotsAttackingPlayer)
                {
                    if (pair.Value == attacker)
                    {
                        return(true);
                    }
                }

                return(false);
            }

            return(true);
        }
Exemplo n.º 3
0
        public static void AddAttacker(MySmallShipBot attacker, MyEntity target)
        {
            if (MySession.IsPlayerShip(target))
            {
                foreach (var pair in CurrentBotsAttackingPlayer)
                {
                    if (pair.Value == attacker)
                    {
                        return;
                    }
                }

                float attackerDistance = Vector3.Distance(MyCamera.Position, attacker.GetPosition());

                if (CurrentBotsAttackingPlayer.Count == MaxBotsAttackingPlayer)
                {
                    if (CurrentBotsAttackingPlayer[CurrentBotsAttackingPlayer.Count - 1].Key <= attackerDistance)
                    {
                        return;
                    }

                    for (int i = 0; i < CurrentBotsAttackingPlayer.Count; i++)
                    {
                        var pair = CurrentBotsAttackingPlayer[i];

                        if (attackerDistance < pair.Key)
                        {
                            CurrentBotsAttackingPlayer.RemoveAt(i);
                            break;
                        }
                    }
                }

                CurrentBotsAttackingPlayer.Add(new KeyValuePair <float, MySmallShipBot>(attackerDistance, attacker));
                CurrentBotsAttackingPlayer.Sort(Compare);
            }

            System.Diagnostics.Debug.Assert(CurrentBotsAttackingPlayer.Count <= MaxBotsAttackingPlayer);
        }