private void onServerObjectItemAdded(DataEntityHandle handle, ServerObjectItemData obj)
    {
        IslandTargetGroupMMOItem islandTargetGroupMMOItem = obj.Item as IslandTargetGroupMMOItem;

        if (islandTargetGroupMMOItem != null)
        {
            onIslandGroupMMOItemAdded(handle, obj, islandTargetGroupMMOItem);
            return;
        }
        IslandTargetMMOItem islandTargetMMOItem = obj.Item as IslandTargetMMOItem;

        if (islandTargetMMOItem != null)
        {
            onIslandTargetMMOItemAdded(handle, obj, islandTargetMMOItem);
            return;
        }
        IslandTargetPlaygroundStatsMMOItem islandTargetPlaygroundStatsMMOItem = obj.Item as IslandTargetPlaygroundStatsMMOItem;

        if (islandTargetPlaygroundStatsMMOItem != null)
        {
            onIslandTargetPlaygroundStatsMMOItemAdded(handle, obj, islandTargetPlaygroundStatsMMOItem);
        }
    }
    private void onIslandTargetsPlaygroundStatsChanged(CPMMOItem obj)
    {
        IslandTargetPlaygroundStatsMMOItem islandTargetPlaygroundStatsMMOItem = obj as IslandTargetPlaygroundStatsMMOItem;

        dispatcher.DispatchEvent(new IslandTargetsEvents.StatsUpdated(islandTargetPlaygroundStatsMMOItem.GetBestWinStreakToday(), islandTargetPlaygroundStatsMMOItem.GetCurrentWinStreakToday()));
    }
 private void onIslandTargetPlaygroundStatsMMOItemAdded(DataEntityHandle handle, ServerObjectItemData serverObjectItemData, IslandTargetPlaygroundStatsMMOItem item)
 {
     if (!dataModelHandleListenersMap.ContainsKey(handle) && item.GetPath() == base.transform.GetPath())
     {
         dataModelHandleListenersMap[handle] = serverObjectItemData;
         serverObjectItemData.ItemChanged   += onIslandTargetsPlaygroundStatsChanged;
         dispatcher.DispatchEvent(new IslandTargetsEvents.StatsUpdated(item.GetBestWinStreakToday(), item.GetCurrentWinStreakToday()));
     }
 }