コード例 #1
0
        public void StartJumpToPosition(Vector3 pos, int skillID = -1)
        {
            var eventInstance = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)CustomEventCode.JumpToPosition,
                EventData       = new Hashtable {
                    { (int)SPC.Position, pos.ToArray() },
                    { (int)SPC.Skill, skillID }
                }
            };
            var            eventData      = new EventData((byte)EventCode.ItemGeneric, eventInstance);
            SendParameters sendParameters = new SendParameters {
                Unreliable = false,
                ChannelId  = Settings.ItemEventChannel
            };

            if (skillID == -1)
            {
                ReceiveEvent(eventData, sendParameters);
            }
            else
            {
                if (nebulaObject.IsPlayer())
                {
                    SendEventData(EventReceiver.OwnerAndSubscriber, eventData, sendParameters);
                }
                else
                {
                    SendEventData(EventReceiver.ItemSubscriber, eventData, sendParameters);
                }
            }
        }
コード例 #2
0
        public void SendHeal(EventReceiver receiver, Hashtable healProperties)
        {
            if (!nebulaObject)
            {
                return;
            }
            if (receiver == EventReceiver.OwnerAndSubscriber || receiver == EventReceiver.ItemOwner)
            {
                if (nebulaObject.getItemType() != ItemType.Avatar)
                {
                    receiver = EventReceiver.ItemSubscriber;
                }
            }

            healProperties.Add((int)SPC.ShotID, healID);
            healID++;
            if (healID == int.MaxValue)
            {
                healID = 1;
            }
            var eventInstance = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)CustomEventCode.Heal,
                EventData       = healProperties
            };
            SendParameters sendParameters = new SendParameters {
                ChannelId  = Settings.ItemEventChannel,
                Unreliable = false
            };
            var eventData = new EventData((byte)EventCode.ItemGeneric, eventInstance);

            SendEventData(receiver, eventData, sendParameters);
        }
コード例 #3
0
        /// <summary>
        /// Send to subscribers event about interactable state of activator
        /// </summary>
        /// <param name="interactable">Current interactable activator state</param>
        public void SendActivatorEvent(bool interactable)
        {
            if (!nebulaObject)
            {
                return;
            }

            var eventInstance = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)CustomEventCode.Activator,
                EventData       = new Hashtable {
                    { (int)SPC.Interactable, interactable }
                }
            };
            SendParameters sendParameters = new SendParameters {
                ChannelId  = Settings.ItemEventChannel,
                Unreliable = false
            };
            var eventData = new EventData((byte)EventCode.ItemGeneric, eventInstance);

            var msg = new ItemEventMessage(nebulaObject as Item, eventData, sendParameters);

            (nebulaObject as Item).EventChannel.Publish(msg);
        }
コード例 #4
0
    public static ItemGeneric GetNearestItem(Vector2 position, float radius)
    {
        var items = GetNearbyItems(position, radius);

        if (items.Count == 0)
        {
            return(null);
        }

        Func <ItemGeneric, float> getRad = (item) => ((Vector2)item.transform.position - position).sqrMagnitude;

        ItemGeneric nearest = items[0];
        float       minDist = getRad(nearest);

        for (int i = 1; i < items.Count; i++)
        {
            var   item = items[i];
            float dist = getRad(item);
            if (dist < minDist)
            {
                //replace nearest
                nearest = item;
                minDist = dist;
            }
        }
        return(nearest);
    }
コード例 #5
0
        public void EventOnSkillsUpdated()
        {
            if (mSkills == null)
            {
                mSkills = GetComponent <PlayerSkills>();
            }
            if (mCharacter == null)
            {
            }

            var eventInstance = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = (byte)ItemType.Avatar,
                CustomEventCode = (byte)CustomEventCode.SkillsUpdated,
                EventData       = mSkills.GetInfo(),
                GameReferenceId = nebulaObject.Id,
                CharacterId     = mCharacter.characterId
            };
            var            eData          = new EventData((byte)EventCode.ItemGeneric, eventInstance);
            SendParameters sendParameters = new SendParameters {
                Unreliable = false, ChannelId = Settings.ItemEventChannel
            };

            this.Peer.SendEvent(eData, sendParameters);
        }
コード例 #6
0
        /// <summary>
        /// sends when player ship model updated
        /// </summary>
        public void EventOnShipModelUpdated()
        {
            if (mShip == null || mShip.shipModel == null)
            {
                return;
            }

            Hashtable eventData = new Hashtable();

            //get array of all model slots state
            eventData.Add((int)SPC.Info, mShip.shipModel.GetInfo());

            var eventInstance = new ItemGeneric {
                ItemId          = string.Empty,
                ItemType        = ItemType.Avatar.toByte(),
                CustomEventCode = (byte)CustomEventCode.ShipModelUpdated,
                EventData       = eventData,
                GameReferenceId = nebulaObject.Id,
                CharacterId     = mCharacter.characterId
            };

            var            eData          = new EventData((byte)EventCode.ItemGeneric, eventInstance);
            SendParameters sendParameters = new SendParameters {
                Unreliable = false, ChannelId = Settings.ItemEventChannel
            };

            this.Peer.SendEvent(eData, sendParameters);
        }
コード例 #7
0
ファイル: LinksViewModel.cs プロジェクト: 07101994/acoso-e
 private async Task DoSelectedLink(ItemGeneric item)
 {
     Analytics.TrackEvent("Acceso al link sobre acoso escolar - ONG " + item.Title);
     await NavigationService.NavigateToAsync <WebViewModel>(new LinkWebView()
     {
         Title = item.Title, Url = item.UrlShare
     });
 }
コード例 #8
0
 public override async Task InitializeAsync(object navigationData)
 {
     if (navigationData != null)
     {
         this.SelectedLink = navigationData as ItemGeneric;
         this.FileStream   = typeof(App).GetTypeInfo().Assembly.GetManifestResourceStream("Bully.Document." + this.SelectedLink.File);
         Title             = SelectedLink.Title;
         MessagingCenter.Send <GenericPdfViewModel, ItemGeneric>(this, "LoadPdf", this.SelectedLink);
         Analytics.TrackEvent("Leer pdf" + SelectedLink.Title);
     }
 }
コード例 #9
0
        public void ReceiveTeleportJump(Hashtable status)
        {
            var evt = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)CustomEventCode.TeleportJump,
                EventData       = status
            };
            var            evtData        = new EventData((byte)EventCode.ItemGeneric, evt);
            SendParameters sendParameters = new SendParameters {
                Unreliable = true, ChannelId = Settings.ItemEventChannel
            };

            ReceiveEvent(evtData, sendParameters);
        }
コード例 #10
0
        public void SendSubZoneUpdate(EventReceiver receiver, int subZone)
        {
            var eventInstance = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)CustomEventCode.UpdateSubZone,
                EventData       = subZone
            };
            SendParameters sendParameters = new SendParameters {
                ChannelId = Settings.ItemEventChannel, Unreliable = false
            };
            var eventData = new EventData((byte)EventCode.ItemGeneric, eventInstance);

            SendEventData(receiver, eventData, sendParameters);
        }
コード例 #11
0
        public void ReceiveUpdateCombatStats()
        {
            var evt = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)CustomEventCode.UpdateCombatStats,
                EventData       = GetComponent <MmoActor>().ActionExecutor.GetCombatParams()
            };
            var            evtData        = new EventData((byte)EventCode.ItemGeneric, evt);
            SendParameters sendParameters = new SendParameters {
                Unreliable = true, ChannelId = Settings.ItemEventChannel
            };

            ReceiveEvent(evtData, sendParameters);
        }
コード例 #12
0
        public void SendKilled(EventReceiver receiver)
        {
            var eventInstance = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)CustomEventCode.WasKilled,
                EventData       = new Hashtable()
            };
            SendParameters sendParameters = new SendParameters {
                ChannelId = Settings.ItemEventChannel, Unreliable = false
            };
            var eventData = new EventData((byte)EventCode.ItemGeneric, eventInstance);

            SendEventData(receiver, eventData, sendParameters);
        }
コード例 #13
0
        public void ReceiveQuestConditionUpdate(Hashtable hash)
        {
            var eventInstance = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)CustomEventCode.QuestConditionUpdate,
                EventData       = hash
            };
            SendParameters sendParameters = new SendParameters {
                Unreliable = false,
                ChannelId  = Settings.ItemEventChannel
            };
            EventData eventData = new EventData((byte)EventCode.ItemGeneric, eventInstance);

            ReceiveEvent(eventData, sendParameters);
        }
コード例 #14
0
        public void ReceiveCellsUpdated(Hashtable info)
        {
            var eventInstance = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)CustomEventCode.CellsUpdated,
                EventData       = info
            };
            SendParameters sendParameters = new SendParameters {
                ChannelId  = Settings.ItemEventChannel,
                Unreliable = false
            };
            EventData eventData = new EventData((byte)EventCode.ItemGeneric, eventInstance);

            ReceiveEvent(eventData, sendParameters);
        }
コード例 #15
0
 /// <summary>
 /// Send to self player buffs info when they is updated
 /// </summary>
 /// <param name="buffHash"></param>
 public void ReceiveBuffsUpdate(Hashtable buffHash)
 {
     if (nebulaObject.IsPlayer())
     {
         ItemGeneric eventInstance = new ItemGeneric {
             ItemId          = nebulaObject.Id,
             ItemType        = nebulaObject.Type,
             CustomEventCode = (byte)CustomEventCode.BuffsUpdated
         };
         SendParameters sendParameters = new SendParameters {
             Unreliable = false, ChannelId = Settings.ItemEventChannel
         };
         EventData eventData = new EventData((byte)EventCode.ItemGeneric, eventInstance);
         ReceiveEvent(eventData, sendParameters);
     }
 }
コード例 #16
0
        public void SendHealDron(Hashtable info)
        {
            var evt = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)CustomEventCode.HealDron,
                EventData       = info
            };
            var            evtData        = new EventData((byte)EventCode.ItemGeneric, evt);
            SendParameters sendParameters = new SendParameters {
                Unreliable = false,
                ChannelId  = Settings.ItemEventChannel
            };

            SendEventData(EventReceiver.OwnerAndSubscriber, evtData, sendParameters);
        }
コード例 #17
0
        public void ReceivePassiveBonuses(Hashtable info)
        {
            var evt = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)CustomEventCode.PassiveBonusesUpdate,
                EventData       = info
            };
            var            evtData        = new EventData((byte)EventCode.ItemGeneric, evt);
            SendParameters sendParameters = new SendParameters {
                Unreliable = false,
                ChannelId  = Settings.ItemEventChannel
            };

            ReceiveEvent(evtData, sendParameters);
        }
コード例 #18
0
        /// <summary>
        /// Send event to player about completion of dialog
        /// </summary>
        /// <param name="dialogId"></param>
        public void ReceiveDialogCompleted(string dialogId)
        {
            var eventInstance = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)CustomEventCode.DialogCompleted,
                EventData       = dialogId
            };
            SendParameters sendParameters = new SendParameters {
                Unreliable = false,
                ChannelId  = Settings.ItemEventChannel
            };
            EventData eventData = new EventData((byte)EventCode.ItemGeneric, eventInstance);

            ReceiveEvent(eventData, sendParameters);
        }
コード例 #19
0
        public void SendCollectChest(Hashtable hash)
        {
            var eventInstance = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)CustomEventCode.CollectChest,
                EventData       = hash
            };
            SendParameters sendParameters = new SendParameters {
                ChannelId  = Settings.ItemEventChannel,
                Unreliable = false
            };
            var eventData = new EventData((byte)EventCode.ItemGeneric, eventInstance);

            SendEventData(EventReceiver.ItemSubscriber, eventData, sendParameters);
        }
コード例 #20
0
        public void FoundLoreRecord(string id)
        {
            var eventInstance = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)CustomEventCode.FoundLoreRecord,
                EventData       = id
            };
            SendParameters sendParameters = new SendParameters {
                ChannelId  = Settings.ItemEventChannel,
                Unreliable = false
            };
            var eventData = new EventData((byte)EventCode.ItemGeneric, eventInstance);

            ReceiveEvent(eventData, sendParameters);
        }
コード例 #21
0
        //Here i use ItemServicesChannel = 1
        public void ReceiveNewQuests(CustomEventCode code, Hashtable hash)
        {
            ItemGeneric eventInstance = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)code,
                EventData       = hash
            };
            SendParameters sendParameters = new SendParameters {
                Unreliable = false,
                ChannelId  = Settings.ItemServicesChannel
            };
            EventData eventData = new EventData((byte)EventCode.ItemGeneric, eventInstance);

            ReceiveEvent(eventData, sendParameters);
        }
コード例 #22
0
        public void SendUnderConstructChanged(bool underConstruct)
        {
            var evt = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)CustomEventCode.UnderConstructChanged,
                EventData       = underConstruct
            };
            SendParameters sendParameters = new SendParameters {
                ChannelId  = Settings.ItemEventChannel,
                Unreliable = false
            };
            var eventData = new EventData((byte)EventCode.ItemGeneric, evt);

            SendEventData(EventReceiver.ItemSubscriber, eventData, sendParameters);
        }
コード例 #23
0
        public void TestReceiveEventOnOtherChannel()
        {
            ItemGeneric eventInstance = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)CustomEventCode.TestEventOnOtherChannel,
                EventData       = 0
            };
            EventData      eventData      = new EventData((byte)EventCode.ItemGeneric, eventInstance);
            SendParameters sendParameters = new SendParameters {
                Unreliable = false,
                ChannelId  = 1
            };

            GetComponent <MmoActor>()?.Peer?.SendEvent(eventData, sendParameters);
        }
コード例 #24
0
        public void ReceivePlayerMark(Hashtable hash)
        {
            var eventInstance = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)CustomEventCode.ReceivePlayerMark,
                EventData       = hash
            };
            SendParameters sendParameters = new SendParameters {
                ChannelId  = Settings.ItemEventChannel,
                Unreliable = false
            };
            var eventData = new EventData((byte)EventCode.ItemGeneric, eventInstance);

            ReceiveEvent(eventData, sendParameters);
        }
コード例 #25
0
        public void SendInvisibilityChanged(EventReceiver receiver, bool invisibleValue)
        {
            ItemGeneric eventInstance = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)CustomEventCode.InvisibilityChanged,
                EventData       = invisibleValue
            };
            SendParameters sendParameters = new SendParameters {
                ChannelId  = Settings.ItemEventChannel,
                Unreliable = false
            };
            EventData eventData = new EventData((byte)EventCode.ItemGeneric, eventInstance);

            SendEventData(receiver, eventData, sendParameters);
        }
コード例 #26
0
        public void ResurrectBySkillEffect()
        {
            var eventInstance = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)CustomEventCode.ResurrectByKillEffect,
                EventData       = new Hashtable()
            };
            SendParameters sendParameters = new SendParameters {
                ChannelId  = Settings.ItemEventChannel,
                Unreliable = false
            };
            var eventData = new EventData((byte)EventCode.ItemGeneric, eventInstance);

            SendEventData(EventReceiver.OwnerAndSubscriber, eventData, sendParameters);
        }
コード例 #27
0
        public static void SendEventShipDestroyed(this Item item, bool shipDestroyed)
        {
            if (item == null)
            {
                return;
            }
            if (item.Disposed)
            {
                return;
            }
            if (item.Fiber == null)
            {
                return;
            }

            //CL.Out(LogFilter.NPC, "SEND ITEM SHIP DESTROYED");

            item.Fiber.Enqueue(() =>
            {
                if (item.Disposed)
                {
                    CL.Out(LogFilter.NPC, "ITEM DISPOSED, SENDING NOT ALLOWED");
                    return;
                }

                var eventInstance = new ItemGeneric
                {
                    ItemId          = item.Id,
                    ItemType        = item.Type,
                    CustomEventCode = CustomEventCode.ItemShipDestroyed.toByte(),
                    EventData       = shipDestroyed
                };
                var eventData = new EventData(EventCode.ItemGeneric.toByte(), eventInstance);
                SendParameters sendParameters = new SendParameters
                {
                    Unreliable = false,
                    ChannelId  = Settings.ItemEventChannel,
                };

                if (item is IMmoItem)
                {
                    (item as IMmoItem).ReceiveEvent(eventData, sendParameters);
                }

                item.EventChannel.Publish(new ItemEventMessage(item, eventData, sendParameters));
            });
        }
コード例 #28
0
        public void ReceiveExp(int exp)
        {
            var evt = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)CustomEventCode.ReceiveExp,
                EventData       = new Hashtable {
                    { (int)SPC.Exp, exp }
                }
            };
            var            evtData        = new EventData((byte)EventCode.ItemGeneric, evt);
            SendParameters sendParameters = new SendParameters {
                Unreliable = true, ChannelId = Settings.ItemEventChannel
            };

            ReceiveEvent(evtData, sendParameters);
        }
コード例 #29
0
    public override void Update()
    {
        base.Update();

        var newNearest = ItemGeneric.GetNearestItem(this.transform.position, itemPickupRadius);

        if (newNearest != itemPickupTarget)
        {
            //highlight the item
            newNearest?.SpriteRenderer.material.SetColor("_HighlightColor", itemHighlightColor);

            //un highlight the previous item
            itemPickupTarget?.SpriteRenderer.material.SetColor("_HighlightColor", new Color(0, 0, 0, 0));

            //replace the previous item
            itemPickupTarget = newNearest;
        }
    }
コード例 #30
0
        public void ReceiveCode(RPCErrorCode code)
        {
            var eventInstance = new ItemGeneric {
                ItemId          = nebulaObject.Id,
                ItemType        = nebulaObject.Type,
                CustomEventCode = (byte)CustomEventCode.ReceiveErrorCode,
                EventData       = new Hashtable {
                    { (int)SPC.ReturnCode, (int)code }
                }
            };
            SendParameters sendParameters = new SendParameters {
                Unreliable = false,
                ChannelId  = Settings.ItemEventChannel
            };
            EventData eventData = new EventData((byte)EventCode.ItemGeneric, eventInstance);

            ReceiveEvent(eventData, sendParameters);
        }