Example #1
0
        internal PressureStatisticalResult(
            PressureNode first,
            PressureNode last,
            IEnumerable <Crest> crests,
            IEnumerable <Trough> troughs,
            Crest highestInCrests,
            Crest lowestInCrests,
            Trough highestInTroughs,
            Trough lowestInTroughs)
        {
            this.First      = first;
            this.Last       = last;
            this.Crests     = crests.ToList();
            this.Troughs    = troughs.ToList();
            this.PeakToPeak = this.Crests
                              .Cast <PressureNode>()
                              .Concat(this.Troughs)
                              .OrderBy(x => x.TimeStamp)
                              .ToList();

            this.HighestInCrests  = highestInCrests;
            this.HighestInTroughs = highestInTroughs;
            this.LowestInCrests   = lowestInCrests;
            this.LowestInTroughs  = lowestInTroughs;
        }
Example #2
0
        public ITextBuilder Crest(Crest crest)
        {
            this.crests.Add(crest);

            return(this);
        }
Example #3
0
        private void OnPlayerUnlock(ObjectUnlockEvent theEvent)
        {
            Player player   = theEvent.Sender;
            var    playerId = player.Id.ToString();

            if (AllowLockPicking)
            {
                return;
            }
            if (DeclarationOfWarEnable)
            {
                var         playerguild   = player.GetGuild();
                ulong       playerguildId = playerguild.BaseID;
                CrestScheme crestScheme   = SocialAPI.Get <CrestScheme>();
                Crest       crest         = crestScheme.GetCrestAt(player.Entity.Position);
                if (crest != null)
                {
                    var   crestguid   = crest.ObjectGUID;
                    Guild targetguild = SocialAPI.Get <GuildScheme>().TryGetGuildByObject(crestguid);


                    if (IsAtWar(playerguildId, targetguild.BaseID) && targetguild != null)
                    {
                        return;
                    }
                }
            }
            if (ProtectedZoneEnable)
            {
                var zoneId   = TryGetZoneId(player);
                var zoneFlag = "lockpickingallowed";
                if (NoLockPickingInZones)
                {
                    if (!IsInZone(player))
                    {
                        return;
                    }
                }
                if (IsInZone(player) && hasFlag(zoneId.ToString(), zoneFlag))
                {
                    return;
                }
            }
            var                  name                  = "";
            var                  position              = new Vector3();
            var                  defenseLevel          = 0;
            ISecurable           securable             = GUIDManager.TryGetObject <ISecurable>(theEvent.GUID);
            Component            component             = securable as Component;
            CageCaptureManager   cageCaptureManager    = GUIDManager.TryGetObject <CageCaptureManager>(theEvent.GUID);
            PlayerCaptureManager playerCaptureManager1 = player.Entity.TryGet <PlayerCaptureManager>();

            if (playerCaptureManager1 != null && playerCaptureManager1.Captive != null && playerCaptureManager1.Captive == player.Entity && !playerCaptureManager1.Captive.Has <CageCaptureManager>())
            {
                return;                                                                                                                                                                                      //allow prisoner to escape rope with lockpick
            }
            if (cageCaptureManager)
            {
                if (AllowCageLockPicking)
                {
                    return;
                }
                if (cageCaptureManager.Prisoner != null)
                {
                    if (cageCaptureManager.PrisonerPlayerID == player.Id)
                    {
                        return;                                                  //allow prisoner to escape with lockpick
                    }
                }
                defenseLevel = securable.Defense;
            }
            else
            {
                if (AllowDoorLockPicking)
                {
                    return;
                }
                defenseLevel = securable.Defense;
            }

            if (component != null)
            {
                Entity entity = component.TryGetEntity(); //works for cages, entity is null on all doors
                position = (entity == null ? component.gameObject.transform.position : entity.Position);
                if (entity != null)
                {
                    name = Clean(entity.name);
                }
                else
                {
                    name = "Door";
                }
            }
            theEvent.Cancel(player + " tried to unlock a " + name + " at " + position);
            securable.Lock(true);
            //give lockpicks used back
            string itemname = "Lockpick";
            int amount      = defenseLevel;
            if (!ConsumeLockPicks)
            {
                GiveInventoryStack(player, itemname, amount);
            }
            if (MessageOn)
            {
                SendReply(player, Message("Warning", playerId), name);
            }

            if (LoggingOn)
            {
                Puts(Message("Log"), player, name, player.Entity.Position);
            }
        }
        void cmdProd(Player player, string command, string[] args)
        {
            string playerId = player.Id.ToString();
            ulong  ownerId  = 0;

            if (!hasPermission(player))
            {
                return;
            }

            var        position = new Vector3();
            RaycastHit hit;

            var playerentity = player.Entity;

            if (Physics.Raycast(playerentity.Position, playerentity.GetOrCreate <LookBridge>().Forward, out hit, float.MaxValue))
            {
                position = new Vector3(hit.point.x, hit.point.y, hit.point.z);
                Collider component    = hit.collider;
                Collider mainCollider = component as Collider;
                var      collidertype = hit.collider.GetType().Name;
                var      target       = mainCollider.TryGetEntity();
                if (target == null)
                {
                    if (Physics.Raycast(playerentity.Position, playerentity.GetOrCreate <LookBridge>().Forward, out hit, float.MaxValue, layers))
                    {
                        position = new Vector3(hit.point.x, hit.point.y, hit.point.z);
                        var  block = component.gameObject;
                        bool flag  = block.FirstComponentAncestor <OctPrefab>() != null;
                        if (!flag && block.layer == BlockManager.CubeLayer && block.tag != "NonOctPrefab")
                        {
                            flag = true;
                        }
                        if (flag)
                        {
                            position = block.gameObject.transform.position; //get position of actual block
                            CrestScheme crestScheme = SocialAPI.Get <CrestScheme>();
                            Crest       crest       = crestScheme.GetCrestAt(position);

                            if (crest == null)
                            {
                                SendReply(player, lang.GetMessage("noOwnerDetected", this, playerId));
                                return;
                            }
                            SendReply(player, lang.GetMessage("guildNameIs", this, playerId), crest.GuildName);
                            var   crestguid = crest.ObjectGUID;
                            Guild guild     = SocialAPI.Get <GuildScheme>().TryGetGuildByObject(crestguid);
                            if (guild != null)
                            {
                                var guildOwner = guild.Members();
                                SendReply(player, lang.GetMessage("guildMembers", this, playerId), guildOwner);
                            }
                        }
                    }
                    else
                    {
                        SendReply(player, lang.GetMessage("noTarget", this, playerId));
                    }
                    return;
                }
                position = target.Position;          //get position of actual entity
                if (target.name.Contains("Sleeper")) //check for Sleepers
                {
                    PlayerSleeperObject sleeper = target.GetComponentInChildren <PlayerSleeperObject>();
                    SendReply(player, lang.GetMessage("sleeperName", this, playerId), sleeper.DisplayName);
                }
                else
                {
                    foreach (var entity in Entity.TryGetAll()) //check all entities positions and find the one closest to where player is looking
                    {
                        if (entity.Position == position)
                        {
                            var name       = entity.name;
                            var isecurable = entity.TryGet <ISecurable>();
                            var owner      = "";

                            foreach (var sleeper in PlayerSleeperObject.AllSleeperObjects) //Loop through sleepers and check for ownership
                            {
                                if (SocialAPI.Get <SecurityScheme>().OwnsObject(sleeper.Key, entity.TryGet <ISecurable>()))
                                {
                                    PlayerSleeperObject sleeperobject = sleeper.Value.GetComponentInChildren <PlayerSleeperObject>();
                                    ownerId = sleeper.Key;
                                    owner   = sleeperobject.DisplayName;
                                }
                            }
                            foreach (var players in Server.AllPlayers)// Check all online players for ownership
                            {
                                if (SocialAPI.Get <SecurityScheme>().OwnsObject(players.Id, entity.TryGet <ISecurable>()))
                                {
                                    ownerId = players.Id;
                                    owner   = players.Name;
                                }
                            }
                            foreach (var players in Server.DeadPlayerMessages)// Check all dead players for ownership
                            {
                                if (SocialAPI.Get <SecurityScheme>().OwnsObject(players.Key, entity.TryGet <ISecurable>()))
                                {
                                    ownerId = players.Key;
                                    owner   = players.Value;
                                }
                            }
                            SendReply(player, lang.GetMessage("getInfo", this, playerId), name, position, owner, ownerId);
                        }
                    }
                }
            }
            else
            {
                SendReply(player, lang.GetMessage("noInfo", this, playerId));
            }
            return;
        }
Example #5
0
        public ITextBuilder Crest(Crest crest)
        {
            this.crests.Add(crest);

            return this;
        }
Example #6
0
    void GenerateCrests()
    {
        order = Enumerable.Range(0, 48).OrderBy(x => rnd.Range(0, 10000)).ToList();

        int royal = rnd.Range(0, 16);

        crestCount[royal]--;
        crests[order[0]] = Crest.Build(royal, new int [] { Crest.OR }.ToList(), new int[] { Crest.LION }.ToList(), false, false, false, true);

        int unicorn;

        do
        {
            unicorn = rnd.Range(0, 16);
        } while (unicorn == royal);
        crestCount[unicorn]--;
        crests[order[1]] = Crest.Build(unicorn, new int [] { Crest.ARGENT }.ToList(), new int[] { Crest.UNICORN }.ToList(), false, false, true, false);

        grid = crests[order[0]].GetScore(bomb) % 16;
        if (grid == 0)
        {
            grid = 16;
        }
        grid--;

        CalcValid();

        validDivitions[0] = validDivitions[0].OrderBy(x => rnd.Range(0, 10000)).ToList();
        validDivitions[1] = validDivitions[1].OrderBy(x => rnd.Range(0, 10000)).ToList();
        validDivitions[2] = validDivitions[2].OrderBy(x => rnd.Range(0, 10000)).ToList();
        validDivitions[3] = validDivitions[3].OrderBy(x => rnd.Range(0, 10000)).ToList();

        crestCount[validDivitions[0][0]]--;
        crests[order[2]] = Crest.Build(validDivitions[0][0], validTinctures[0], validCharges[0], true);
        crestCount[validDivitions[1][0]]--;
        crests[order[3]] = Crest.Build(validDivitions[1][0], validTinctures[1], validCharges[1], true);
        crestCount[validDivitions[2][0]]--;
        crests[order[4]] = Crest.Build(validDivitions[2][0], validTinctures[2], validCharges[2], true);
        crestCount[validDivitions[3][0]]--;
        crests[order[5]] = Crest.Build(validDivitions[3][0], validTinctures[3], validCharges[3], true);

        validDivitions[0] = validDivitions[0].OrderBy(x => rnd.Range(0, 10000)).ToList();
        validDivitions[1] = validDivitions[1].OrderBy(x => rnd.Range(0, 10000)).ToList();
        validDivitions[2] = validDivitions[2].OrderBy(x => rnd.Range(0, 10000)).ToList();
        validDivitions[3] = validDivitions[3].OrderBy(x => rnd.Range(0, 10000)).ToList();

        crestCount[validDivitions[0][0]]--;
        crests[order[6]] = Crest.Build(validDivitions[0][0], validTinctures[0], validCharges[0], false, true);
        crestCount[validDivitions[1][0]]--;
        crests[order[7]] = Crest.Build(validDivitions[1][0], validTinctures[1], validCharges[1], false, true);
        crestCount[validDivitions[2][0]]--;
        crests[order[8]] = Crest.Build(validDivitions[2][0], validTinctures[2], validCharges[2], false, true);
        crestCount[validDivitions[3][0]]--;
        crests[order[9]] = Crest.Build(validDivitions[3][0], validTinctures[3], validCharges[3], false, true);

        int cnt = 10;

        for (int i = 0; i < validDivitions.Length; i++)
        {
            for (int j = 0; j < validDivitions[i].Count; j++)
            {
                while (crestCount[validDivitions[i][j]] != 0)
                {
                    crestCount[validDivitions[i][j]]--;
                    crests[order[cnt]] = Crest.Build(validDivitions[i][j], validTinctures[i], validCharges[i], false);
                    cnt++;
                }
            }
        }

        for (int i = 1; i < order.Count; i++)
        {
            if (crests.Where(x => x.familyName == crests[order[i]].familyName).Count() != 1)
            {
                string name;
                do
                {
                    name = Crest.familyNames.OrderBy(x => rnd.Range(0, 100000)).ToList()[0];
                } while (crests.Where(x => x.familyName == name).Count() != 0);
                crests[order[i]].familyName = name;
            }
        }

        Log();

        for (int i = 0; i < order.Count; i++)
        {
            crests[order[i]].Paint(crestObjects[order[i]], materials);
        }
    }
 protected void AddCrest(Crest crest)
 {
     crests.Add(crest);
 }
 protected void AddCrest(Crest crest)
 {
     crests.Add(crest);
 }