private void onMmoItemUpdated(CPMMOItem mmoItem)
 {
     if (mmoItem is T)
     {
         onItemUpdated(mmoItem as T);
     }
 }
Ejemplo n.º 2
0
 private void changed(CPMMOItem newItem)
 {
     if (this.ItemChanged != null)
     {
         this.ItemChanged(newItem);
     }
 }
Ejemplo n.º 3
0
        private void onServerObjectUpdate(BaseEvent evt)
        {
            IMMOItem  sfsItem = (IMMOItem)evt.Params["mmoItem"];
            CPMMOItem data    = ItemFactory.Create(sfsItem, getSessionId);

            mt.triggerEvent(GameServerEvent.SERVER_ITEM_CHANGED, data);
        }
    private void onTargetMMOItemChanged(CPMMOItem obj)
    {
        IslandTargetMMOItem islandTargetMMOItem = obj as IslandTargetMMOItem;

        if (islandTargetMMOItem == null || !gameObjectIdToIslandTargetComponentMap.ContainsKey(islandTargetMMOItem.Id.Id))
        {
            return;
        }
        IslandTarget islandTarget = gameObjectIdToIslandTargetComponentMap[islandTargetMMOItem.Id.Id];

        if (!(islandTarget != null))
        {
            return;
        }
        if (islandTargetMMOItem.IsAnnihilated())
        {
            islandTarget.CueDestroyTargetByServer();
            TargetsRemaining--;
            dispatcher.DispatchEvent(new IslandTargetsEvents.TargetsRemainingUpdated(TargetsRemaining, TotalTargets));
            if (TargetsRemaining == 0)
            {
                dispatcher.DispatchEvent(default(IslandTargetsEvents.GameRoundEnded));
                LogWaveComplete();
                currentGameMMOItemId = -1L;
            }
        }
        else
        {
            islandTarget.DamageCapacity    = islandTargetMMOItem.HitCapacity;
            islandTarget.ServerDamageCount = islandTargetMMOItem.HitCount;
            islandTarget.UpdateDamageSlider();
            dispatcher.DispatchEvent(new IslandTargetsEvents.TargetHit(islandTargetMMOItem.HitCapacity, islandTargetMMOItem.HitCount));
        }
    }
Ejemplo n.º 5
0
    private void parseCPMMOItem(CPMMOItem cPMMOItem)
    {
        ActionedItem actionedItem = (ActionedItem)cPMMOItem;

        if (actionedItem.ActionCount > 0)
        {
            onPinataHit(cPMMOItem.Id.Id.ToString(), actionedItem.ActionCount);
        }
    }
 private void parseCPMMOItem(CPMMOItem cPMMOItem)
 {
     if (cPMMOItem is PlayerHeldItem)
     {
         PlayerHeldItem       playerHeldItem       = (PlayerHeldItem)cPMMOItem;
         InvitationalItemData invitationalItemData = Service.Get <JsonService>().Deserialize <InvitationalItemData>(playerHeldItem.Properties);
         if (invitationalItemData != null)
         {
             AvailableItemQuantity = invitationalItemData.actionCount;
         }
     }
 }
Ejemplo n.º 7
0
        private void onCPMMOItemChanged(CPMMOItem cPMMOItem)
        {
            PlayerHeldItem playerHeldItem = cPMMOItem as PlayerHeldItem;

            if (playerHeldItem != null)
            {
                ItemData itemData = Service.Get <JsonService>().Deserialize <ItemData>(playerHeldItem.Properties);
                if (itemData != null && itemData.actionCount == 0)
                {
                    onPropUsed(cPMMOItem.CreatorId, playerHeldItem.Type, cPMMOItem.Id.Id.ToString(), Vector3.zero);
                }
            }
        }
Ejemplo n.º 8
0
        private DataEntityHandle addServerObjectWithItemData(CPMMOItem item)
        {
            DataEntityHandle dataEntityHandle = dataEntityCollection.FindEntity <ServerObjectItemData, CPMMOItemId>(item.Id);

            if (dataEntityHandle.IsNull)
            {
                dataEntityHandle = dataEntityCollection.AddEntity(ServerObjectItemData.GetEntityName(item.Id));
            }
            if (!dataEntityHandle.IsNull)
            {
                dataEntityCollection.AddComponent(dataEntityHandle, delegate(ServerObjectItemData component)
                {
                    component.Item = item;
                });
            }
            return(dataEntityHandle);
        }
Ejemplo n.º 9
0
    public static CPMMOItem Create(IMMOItem sfsItem, Func <int?, long> sessionIdMapper)
    {
        ItemCategory intValue = (ItemCategory)sfsItem.GetVariable(SocketItemVars.CATEGORY.GetKey()).GetIntValue();
        CPMMOItem    cPMMOItem;

        switch (intValue)
        {
        case ItemCategory.Consumable:
            cPMMOItem = createConsumableItem(sfsItem);
            break;

        case ItemCategory.ScheduledRoomObject:
            cPMMOItem = createStatefulWorldObject(sfsItem);
            break;

        case ItemCategory.IslandTarget:
            cPMMOItem = createIslandTargetMMOItem(sfsItem);
            break;

        case ItemCategory.IslandTargetGroup:
            cPMMOItem = createIslandTargetGroupMMOItem(sfsItem);
            break;

        case ItemCategory.IslandTargetPlaygroundStats:
            cPMMOItem = createIslandTargetPlaygroundStatsMMOItem(sfsItem);
            break;

        case ItemCategory.PartyGamelobby:
            cPMMOItem = createPartyGameLobbyMMOItem(sfsItem);
            break;

        case ItemCategory.DanceBattle:
            cPMMOItem = createDanceBattleMMOItem(sfsItem);
            break;

        default:
            cPMMOItem = new CPMMOItem();
            Log.LogError(typeof(CPMMOItem), "Unknown item category: " + intValue);
            break;
        }
        cPMMOItem.Id        = new CPMMOItemId(sfsItem.Id, CPMMOItemId.CPMMOItemParent.WORLD);
        cPMMOItem.CreatorId = sessionIdMapper(sfsItem.GetVariable(SocketItemVars.CREATOR.GetKey()).GetIntValue());
        return(cPMMOItem);
    }
Ejemplo n.º 10
0
        private void onProximityListUpdate(BaseEvent evt)
        {
            RoomMember roomMember;

            foreach (User item in (List <User>)evt.Params["addedUsers"])
            {
                roomMember      = default(RoomMember);
                roomMember.Id   = getSessionId(item);
                roomMember.Name = item.Name;
                mt.triggerEvent(GameServerEvent.ROOM_USER_ADDED, roomMember);
                LocomotionActionEvent locomotionActionEvent = default(LocomotionActionEvent);
                locomotionActionEvent.SessionId = getSessionId(item);
                locomotionActionEvent.Type      = LocomotionAction.SnapToPosition;
                locomotionActionEvent.Position  = new Vector3(item.AOIEntryPoint.FloatX, item.AOIEntryPoint.FloatY, item.AOIEntryPoint.FloatZ);
                locomotionActionEvent.Direction = Vector3.zero;
                locomotionActionEvent.Timestamp = 0L;
                mt.triggerEvent(GameServerEvent.USER_LOCO_ACTION, locomotionActionEvent);
                broadcastUserVariables(item);
            }
            foreach (User item2 in (List <User>)evt.Params["removedUsers"])
            {
                roomMember      = default(RoomMember);
                roomMember.Id   = getSessionId(item2);
                roomMember.Name = item2.Name;
                mt.triggerEvent(GameServerEvent.ROOM_USER_REMOVED, roomMember);
                item2.UserManager.RemoveUser(item2);
            }
            foreach (IMMOItem item3 in (List <IMMOItem>)evt.Params["addedItems"])
            {
                CPMMOItem cPMMOItem = ItemFactory.Create(item3, getSessionId);
                mt.triggerEvent(GameServerEvent.SERVER_ITEM_ADDED, cPMMOItem);
                CPMMOItemPosition cPMMOItemPosition = default(CPMMOItemPosition);
                cPMMOItemPosition.Id       = cPMMOItem.Id;
                cPMMOItemPosition.Position = new Vector3(item3.AOIEntryPoint.FloatX, item3.AOIEntryPoint.FloatY, item3.AOIEntryPoint.FloatZ);
                mt.triggerEvent(GameServerEvent.SERVER_ITEM_MOVED, cPMMOItemPosition);
            }
            foreach (IMMOItem item4 in (List <IMMOItem>)evt.Params["removedItems"])
            {
                mt.triggerEvent(GameServerEvent.SERVER_ITEM_REMOVED, new CPMMOItemId(item4.Id, CPMMOItemId.CPMMOItemParent.WORLD));
            }
        }
Ejemplo n.º 11
0
 private void loadExistingPlayerHeldExperiences(long playerId)
 {
     DataEntityHandle[] entitiesByType = dataEntityCollection.GetEntitiesByType <ServerObjectItemData>();
     foreach (DataEntityHandle handle in entitiesByType)
     {
         ServerObjectItemData component = dataEntityCollection.GetComponent <ServerObjectItemData>(handle);
         if (component.Item.Id.Parent != 0)
         {
             continue;
         }
         CPMMOItem item = component.Item;
         if (!(item is PlayerHeldItem))
         {
             continue;
         }
         PlayerHeldItem playerHeldItem = (PlayerHeldItem)item;
         if (playerHeldItem.CreatorId != playerId)
         {
             continue;
         }
         DHeldObject dHeldObject = new DHeldObject();
         dHeldObject.ObjectId = playerHeldItem.Type;
         DataEntityHandle dataEntityHandle = ((!dataEntityCollection.IsLocalPlayer(playerId)) ? dataEntityCollection.FindEntity <SessionIdData, long>(playerId) : dataEntityCollection.LocalPlayerHandle);
         if (!dataEntityHandle.IsNull)
         {
             HeldObjectsData  component2 = dataEntityCollection.GetComponent <HeldObjectsData>(dataEntityHandle);
             PrefabContentKey propExperiencePathFromPropId = getPropExperiencePathFromPropId(playerHeldItem.Type);
             if (propExperiencePathFromPropId != null && !string.IsNullOrEmpty(propExperiencePathFromPropId.Key))
             {
                 component2.IsInvitationalExperience = true;
                 CoroutineRunner.Start(loadPlayerHeldExperience(playerHeldItem), this, "loadPlayerHeldExperience");
             }
             component2.HeldObject = dHeldObject;
             if (propExperiencePathFromPropId != null && !string.IsNullOrEmpty(propExperiencePathFromPropId.Key))
             {
                 component2.IsInvitationalExperience = true;
             }
         }
     }
 }
Ejemplo n.º 12
0
 private void loadExistingWorldExperiences()
 {
     DataEntityHandle[] entitiesByType = dataEntityCollection.GetEntitiesByType <ServerObjectItemData>();
     foreach (DataEntityHandle handle in entitiesByType)
     {
         ServerObjectItemData component = dataEntityCollection.GetComponent <ServerObjectItemData>(handle);
         if (component.Item.Id.Parent != CPMMOItemId.CPMMOItemParent.WORLD)
         {
             continue;
         }
         CPMMOItem item = component.Item;
         if (item is ConsumableItem)
         {
             ConsumableItem   consumableItem = (ConsumableItem)item;
             PrefabContentKey propExperiencePathFromPropId = getPropExperiencePathFromPropId(consumableItem.Type);
             if (propExperiencePathFromPropId != null && !string.IsNullOrEmpty(propExperiencePathFromPropId.Key))
             {
                 ServerObjectPositionData component2 = dataEntityCollection.GetComponent <ServerObjectPositionData>(handle);
                 CoroutineRunner.Start(loadWorldExperience(consumableItem, component2.Position), this, "loadWorldExperience");
             }
         }
     }
 }
Ejemplo n.º 13
0
 public ItemChanged(CPMMOItem item)
 {
     Item = item;
 }
 private void onServerIslandTargetGroupChanged(CPMMOItem obj)
 {
 }
    private void onIslandTargetsPlaygroundStatsChanged(CPMMOItem obj)
    {
        IslandTargetPlaygroundStatsMMOItem islandTargetPlaygroundStatsMMOItem = obj as IslandTargetPlaygroundStatsMMOItem;

        dispatcher.DispatchEvent(new IslandTargetsEvents.StatsUpdated(islandTargetPlaygroundStatsMMOItem.GetBestWinStreakToday(), islandTargetPlaygroundStatsMMOItem.GetCurrentWinStreakToday()));
    }
Ejemplo n.º 16
0
 public ItemSpawned(CPMMOItem item)
 {
     Item = item;
 }
Ejemplo n.º 17
0
 private void onItemChanged(CPMMOItem cPMMOItem)
 {
     parseCPMMOItem(cPMMOItem);
 }
 private void onServerObjectChanged(CPMMOItem obj)
 {
     UpdateWorldObjectState(obj as StatefulWorldObject);
 }
Ejemplo n.º 19
0
    private void onServerItemChanged(GameServerEvent gameServerEvent, object data)
    {
        CPMMOItem item = (CPMMOItem)data;

        Service.Get <EventDispatcher>().DispatchEvent(new WorldServiceEvents.ItemChanged(item));
    }