示例#1
0
        void OnEntitySpawned(CH47HelicopterAIController ch47)
        {
            if (!configData.Alerts.CH47)
            {
                return;
            }
            if (ch47 == null)
            {
                return;
            }
            var srcPos = ch47.transform.position;

            timer.Once(1f, () =>
            {
                var destPos = ch47.GetMoveTarget();
                string msg  = Lang("CH47", null, GetLocation(srcPos, null, null), GetLocationDest(destPos));
                Server.Broadcast(msg);
                if (configData.Misc.LogToConsole)
                {
                    Puts(msg);
                }
                if (configData.Misc.LogToFile)
                {
                    LogToFile("log", $"[{DateTime.Now.ToString("HH:mm:ss")}] {msg}", this);
                }
            });
        }
        private void TryDropCrate(CH47HelicopterAIController chinook)
        {
            float randomtime = UnityEngine.Random.Range(configData.minTime, configData.maxTime);

            timer.Once(randomtime, () =>
            {
                if (chinook.IsDestroyed || chinook == null)
                {
                    return;
                }
                if (chinook.CanDropCrate() || blockedChinooks.Contains(chinook))
                {
                    if ((configData.checkWater && !AboveWater(chinook.transform.position)) || !configData.checkWater)
                    {
                        if ((configData.checkMonument && !AboveMonument(chinook.transform.position)) || !configData.checkMonument)
                        {
                            if (BasePlayer.activePlayerList.Count >= configData.minPlayers)
                            {
                                chinook.DropCrate();
                            }
                            if (chinook.numCrates == 0)
                            {
                                if (blockedChinooks.Contains(chinook))
                                {
                                    blockedChinooks.Remove(chinook);
                                }
                                return;
                            }
                        }
                    }
                    TryDropCrate(chinook);
                }
            });
        }
 private object CanHelicopterDropCrate(CH47HelicopterAIController chinook)
 {
     if (configData.blockFP && blockedChinooks.Contains(chinook))
     {
         return(false);
     }
     return(null);
 }
 void OnEntitySpawned(BaseEntity entity)
 {
     if (entity is CH47HelicopterAIController)
     {
         CH47HelicopterAIController chinook = entity as CH47HelicopterAIController;
         TryDropCrate(chinook);
     }
 }
 private void OnEntitySpawned(CH47HelicopterAIController chinook)
 {
     if (chinook == null)
     {
         return;
     }
     if (chinook.landingTarget != Vector3.zero)
     {
         return;
     }
     timer.Once(configData.spawnedDelay, () => TryDropCrate(chinook));
 }
示例#6
0
        public override StateStatus StateThink(float delta)
        {
            Vector3 orbitCenter = GetOrbitCenter();
            CH47HelicopterAIController entity = brain.GetEntity();
            Vector3 position   = entity.GetPosition();
            Vector3 vector     = Vector3Ex.Direction2D(orbitCenter, position);
            Vector3 vector2    = Vector3.Cross(Vector3.up, vector);
            float   num        = ((Vector3.Dot(Vector3.Cross(entity.transform.right, Vector3.up), vector2) < 0f) ? (-1f) : 1f);
            float   num2       = 75f;
            Vector3 normalized = (-vector + vector2 * num * 0.6f).normalized;
            Vector3 vector3    = orbitCenter + normalized * num2;

            entity.SetMoveTarget(vector3);
            entity.SetAimDirection(Vector3Ex.Direction2D(vector3, position));
            base.StateThink(delta);
            return(StateStatus.Running);
        }
示例#7
0
    public void Call()
    {
        CH47HelicopterAIController component = GameManager.server.CreateEntity(heliPrefab.resourcePath).GetComponent <CH47HelicopterAIController>();

        if ((bool)component)
        {
            Vector3         size    = TerrainMeta.Size;
            CH47LandingZone closest = CH47LandingZone.GetClosest(base.transform.position);
            Vector3         zero    = Vector3.zero;
            zero.y = closest.transform.position.y;
            Vector3 vector   = Vector3Ex.Direction2D(closest.transform.position, zero);
            Vector3 position = closest.transform.position + vector * startDist;
            position.y = closest.transform.position.y;
            component.transform.position = position;
            component.SetLandingTarget(closest.transform.position);
            component.Spawn();
        }
    }
示例#8
0
        void OnEntitySpawned(CH47HelicopterAIController ch47)
        {
            if (!configData.alerts.ch47)
            {
                return;
            }

            timer.Once(1.5f, () =>
            {
                if (ch47 == null)
                {
                    return;
                }
                if (configData.misc.hideRigCrates && ch47.ShouldLand())
                {
                    return;
                }

                SendMsg(Lang("CH47", null, GetLocation(ch47.transform.position, null, null), GetLocationDest(ch47.GetMoveTarget())));
            });
        }
示例#9
0
    public void Call()
    {
        CH47HelicopterAIController component = (CH47HelicopterAIController)((Component)GameManager.server.CreateEntity(this.heliPrefab.resourcePath, (Vector3)null, (Quaternion)null, true)).GetComponent <CH47HelicopterAIController>();

        if (!Object.op_Implicit((Object)component))
        {
            return;
        }
        Vector3         size    = TerrainMeta.Size;
        CH47LandingZone closest = CH47LandingZone.GetClosest(((Component)this).get_transform().get_position());
        Vector3         zero    = Vector3.get_zero();

        zero.y = ((Component)closest).get_transform().get_position().y;
        Vector3 vector3_1 = Vector3Ex.Direction2D(((Component)closest).get_transform().get_position(), zero);
        Vector3 vector3_2 = Vector3.op_Addition(((Component)closest).get_transform().get_position(), Vector3.op_Multiply(vector3_1, this.startDist));

        vector3_2.y = ((Component)closest).get_transform().get_position().y;
        ((Component)component).get_transform().set_position(vector3_2);
        component.SetLandingTarget(((Component)closest).get_transform().get_position());
        component.Spawn();
    }
    public void Call()
    {
        GameManager gameManager = GameManager.server;
        string      str         = this.heliPrefab.resourcePath;
        Vector3     vector3     = new Vector3();
        Quaternion  quaternion  = new Quaternion();
        CH47HelicopterAIController component = gameManager.CreateEntity(str, vector3, quaternion, true).GetComponent <CH47HelicopterAIController>();

        if (component)
        {
            Vector3         size     = TerrainMeta.Size;
            CH47LandingZone closest  = CH47LandingZone.GetClosest(base.transform.position);
            Vector3         vector31 = Vector3.zero;
            vector31.y = closest.transform.position.y;
            Vector3 vector32 = Vector3Ex.Direction2D(closest.transform.position, vector31);
            Vector3 vector33 = closest.transform.position + (vector32 * this.startDist);
            vector33.y = closest.transform.position.y;
            component.transform.position = vector33;
            component.SetLandingTarget(closest.transform.position);
            component.Spawn();
        }
    }
        void TryDropCrate(CH47HelicopterAIController chinook)
        {
            int randomtime = rnd.Next(config.minTime, config.maxTime);

            timer.Once(randomtime, () => {
                if (!chinook.IsDead())
                {
                    if (chinook.CanDropCrate())
                    {
                        if ((config.checkWater && !AboveWater(chinook.transform.position)) || !config.checkWater)
                        {
                            if ((config.checkMonument && !AboveMonument(chinook.transform.position)) || !config.checkMonument)
                            {
                                chinook.DropCrate();
                            }
                        }
                        else
                        {
                            TryDropCrate(chinook);
                        }
                    }
                }
            });
        }
示例#12
0
 private void OnEntitySpawned(CH47HelicopterAIController entity)
 {
     HandleEntity(entity);
 }
示例#13
0
 private object OnEntityKill(CH47HelicopterAIController heli)
 {
     return(Interface.Oxide.CallDeprecatedHook("OnHelicopterKilled", "OnEntityKill(CH47HelicopterAIController heli)",
                                               new System.DateTime(2020, 4, 1), heli));
 }
示例#14
0
 private object OnHelicopterAttack(CH47HelicopterAIController heli)
 {
     return(Interface.Oxide.CallDeprecatedHook("OnHelicopterAttacked", "OnHelicopterAttack(CH47HelicopterAIController heli)",
                                               new DateTime(2022, 12, 31), heli));
 }