private void onMmoItemUpdated(CPMMOItem mmoItem) { if (mmoItem is T) { onItemUpdated(mmoItem as T); } }
private void changed(CPMMOItem newItem) { if (this.ItemChanged != null) { this.ItemChanged(newItem); } }
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)); } }
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; } } }
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); } } }
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); }
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); }
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)); } }
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; } } } }
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"); } } } }
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())); }
public ItemSpawned(CPMMOItem item) { Item = item; }
private void onItemChanged(CPMMOItem cPMMOItem) { parseCPMMOItem(cPMMOItem); }
private void onServerObjectChanged(CPMMOItem obj) { UpdateWorldObjectState(obj as StatefulWorldObject); }
private void onServerItemChanged(GameServerEvent gameServerEvent, object data) { CPMMOItem item = (CPMMOItem)data; Service.Get <EventDispatcher>().DispatchEvent(new WorldServiceEvents.ItemChanged(item)); }