Example #1
0
    void showIconItemBuff(string id, EItemState state, int numberWave)
    {
        GameObject itemBuff = MonoBehaviour.Instantiate(Resources.Load <GameObject> ("Prefab/Effect/Item Buff")) as GameObject;

        itemBuff.transform.parent     = PlayManager.Instance.itemBuffTemp.transform;
        itemBuff.transform.localScale = Vector3.one;

        //set dimension
        UISprite sprite = itemBuff.GetComponent <UISprite> ();

        sprite.keepAspectRatio = UIWidget.AspectRatioSource.Free;
        sprite.SetDimensions(sprite.mainTexture.width, sprite.mainTexture.height);
        sprite.keepAspectRatio = UIWidget.AspectRatioSource.BasedOnHeight;

        itemBuff.GetComponent <UIStretch> ().container = waveTemp;

        //set anchor sprite
        UIAnchor anchor = itemBuff.GetComponent <UIAnchor> ();

        anchor.container      = waveTemp;
        anchor.relativeOffset = new Vector2(PlayConfig.AnchorItemBuffStart.x, PlayConfig.AnchorItemBuffStart.y
                                            - listItemBuff.Count * PlayConfig.AnchorItemBuffDistanceY);

        //set anchor label
        itemBuff.transform.GetChild(0).GetComponent <UIAnchor> ().enabled = true;

        //set icon and wave
        ItemBuffController itemBuffController = itemBuff.GetComponent <ItemBuffController> ();

        itemBuffController.ID    = id;
        itemBuffController.State = state;
        itemBuffController.Waves = numberWave;

        listItemBuff.Add(id, itemBuff);
    }
Example #2
0
 //init state to pickable--item show on the map and can be picked up by player
 public void InitPickable( )
 {
     gameObject.SetActive(true);
     col.enabled  = true;
     rend.enabled = true;
     state        = EItemState.PICKABLE;
 }
Example #3
0
    public void enableItem(string id, EItemState state, int numberWave)
    {
        if (state != EItemState.TOWER)
        {
            if (!listItemState.Contains(state))            // neu chua co
            {
                listItemState.Add(state);
                showIconItemBuff(id, state, numberWave);
            }
            else             // neu da~ co' thi cong^. don^`
            {
                listItemBuff[id].GetComponent <ItemBuffController>().Waves += numberWave;
            }
        }
        else
        {
            for (int i = 1; i <= 3; i++)
            {
                object[]   values    = getIdStateByIndex(i);
                EItemState stateTemp = (EItemState)values[1];

                if (!listItemState.Contains(stateTemp))                // neu chua co
                {
                    listItemState.Add(stateTemp);
                    showIconItemBuff(values[0].ToString(), stateTemp, numberWave);
                }
                else                 // neu da~ co' thi cong^. don^`
                {
                    listItemBuff[values[0].ToString()].GetComponent <ItemBuffController>().Waves += numberWave;
                }
            }
        }
    }
Example #4
0
 //init state to pick_up--disable collider and sprite and set owner
 protected void InitPickUp(IPlayer owner)
 {
     this.owner   = owner;
     owner.Item   = this;
     col.enabled  = false;
     rend.enabled = false;
     state        = EItemState.PICK_UP;
 }
Example #5
0
 //Get componenet and set state to UNUSE
 protected virtual void Awake( )
 {
     col          = GetComponent <Collider2D> ( );
     rend         = GetComponent <SpriteRenderer> ( );
     col.enabled  = false;
     rend.enabled = false;
     state        = EItemState.UNUSE;
 }
    public void SetState(EItemState itemState)
    {
        if (state == itemState)
        {
            return;
        }

        state = itemState;
        SetObjectProperties();
    }
Example #7
0
 /// <summary>
 /// Cheks if any of the 'checkflags' values are in the 'value'
 /// </summary>
 /// <param name="value"></param>
 /// <param name="checkflags"></param>
 /// <returns></returns>
 public static bool WorkshopItemStateHasAllFlags(EItemState value, params EItemState[] checkflags)
 {
     foreach (var checkflag in checkflags)
     {
         if ((value & checkflag) != checkflag)
         {
             return(false);
         }
     }
     return(true);
 }
Example #8
0
 //init state to unuse--item doesn't show on the map just keep ref in the ItemManager
 public virtual void InitUnuse( )
 {
     if (owner != null)
     {
         owner.Item = null;
     }
     owner        = null;
     col.enabled  = false;
     rend.enabled = false;
     gameObject.SetActive(false);
     state = EItemState.UNUSE;
     manager.ItemAlreadyUse( );
 }
Example #9
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        ItemComponent targ     = target as ItemComponent;
        EItemState    newValue = (EItemState)EditorGUILayout.EnumPopup(targ.state);

        if (newValue != targ.state)
        {
            targ.state = newValue;
            targ.SetObjectProperties();
            // do stuff, call functions, etc.
        }
    }
Example #10
0
    object[] getIdStateByIndex(int index)
    {
        string     s     = "";
        EItemState state = EItemState.HAND_OF_MIDAS;

        switch (index)
        {
        case 0: s = "HandOfMidas"; state = EItemState.HAND_OF_MIDAS; break;

        case 1: s = "ATK+"; state = EItemState.ATK; break;

        case 2: s = "SpawnShoot+"; state = EItemState.SPAWN_SHOOT; break;

        case 3: s = "Range+"; state = EItemState.RANGE; break;
        }
        return(new object[] { s, state });
    }
Example #11
0
 private void SetLeftItemState(GameObject node, TabElement data, EItemState state)
 {
     if (data != null)
     {
         Text       component  = node.transform.Find("titleText").GetComponent <Text>();
         GameObject gameObject = node.transform.Find("BtnGroup").gameObject;
         if (state == EItemState.Normal)
         {
             component.gameObject.CustomSetActive(true);
             component.text = data.configContent;
             gameObject.CustomSetActive(false);
         }
         else if (state == EItemState.Delete)
         {
             gameObject.CustomSetActive(true);
             component.gameObject.CustomSetActive(true);
             component.text = data.configContent;
             GameObject obj3 = gameObject.transform.Find("WriteBtn").gameObject;
             if (obj3 != null)
             {
                 obj3.CustomSetActive(false);
             }
             GameObject obj4 = gameObject.transform.Find("RemoveBtn").gameObject;
             if (obj4 != null)
             {
                 obj4.CustomSetActive(true);
             }
         }
         else if (state == EItemState.Record)
         {
             gameObject.CustomSetActive(true);
             component.gameObject.CustomSetActive(false);
             GameObject obj5 = gameObject.transform.Find("WriteBtn").gameObject;
             if (obj5 != null)
             {
                 obj5.CustomSetActive(true);
             }
             GameObject obj6 = gameObject.transform.Find("RemoveBtn").gameObject;
             if (obj6 != null)
             {
                 obj6.CustomSetActive(false);
             }
         }
     }
 }
Example #12
0
    public static EItemState getItemState(string ID)
    {
        EItemState state = EItemState.HAND_OF_MIDAS;

        switch (ID)
        {
        case "HandOfMidas": state = EItemState.HAND_OF_MIDAS; break;

        case "ATK+": state = EItemState.ATK; break;

        case "SpawnShoot+": state = EItemState.SPAWN_SHOOT; break;

        case "Range+": state = EItemState.RANGE; break;

        case "Tower+": state = EItemState.TOWER; break;
        }
        return(state);
    }
Example #13
0
        public HeathenWorkshopReadCommunityItem(SteamUGCDetails_t itemDetails)
        {
            SourceItemDetails = itemDetails;

            if (itemDetails.m_eFileType != EWorkshopFileType.k_EWorkshopFileTypeCommunity)
            {
                Debug.LogWarning("HeathenWorkshopReadItem is designed to display File Type = Community Item, this item is not a community item and may not load correctly.");
            }

            m_RemoteStorageDownloadUGCResult = CallResult <RemoteStorageDownloadUGCResult_t> .Create(HandleUGCDownload);

            TargetApp       = itemDetails.m_nConsumerAppID;
            FileId          = itemDetails.m_nPublishedFileId;
            Title           = itemDetails.m_rgchTitle;
            Description     = itemDetails.m_rgchDescription;
            Visibility      = itemDetails.m_eVisibility;
            Author          = new CSteamID(itemDetails.m_ulSteamIDOwner);
            CreatedOn       = SteamUtilities.ConvertUnixDate(itemDetails.m_rtimeCreated);
            LastUpdated     = SteamUtilities.ConvertUnixDate(itemDetails.m_rtimeUpdated);
            UpVotes         = itemDetails.m_unVotesUp;
            DownVotes       = itemDetails.m_unVotesDown;
            VoteScore       = itemDetails.m_flScore;
            IsBanned        = itemDetails.m_bBanned;
            IsTagsTruncated = itemDetails.m_bTagsTruncated;
            FileSize        = itemDetails.m_nFileSize;
            Visibility      = itemDetails.m_eVisibility;
            Tags.AddRange(itemDetails.m_rgchTags.Split(','));
            uint state = SteamUGC.GetItemState(FileId);

            StateFlags = (EItemState)state;

            IsSubscribed = SteamUtilities.WorkshopItemStateHasFlag(StateFlags, EItemState.k_EItemStateSubscribed);

            if (itemDetails.m_nPreviewFileSize > 0)
            {
                var previewCall = SteamRemoteStorage.UGCDownload(itemDetails.m_hPreviewFile, 1);
                m_RemoteStorageDownloadUGCResult.Set(previewCall, HandleUGCDownloadPreviewFile);
            }
            else
            {
                Debug.LogWarning("Item [" + Title + "] has no preview file!");
            }
        }
Example #14
0
        public static Dictionary <PublishedFileId_t, string> GetSubscribedItems()
        {
            if (!SteamManager.Initialised)
            {
                return(null);
            }

            uint numSubbed = SteamUGC.GetNumSubscribedItems();

            PublishedFileId_t[] fileIds = new PublishedFileId_t[numSubbed];

            SteamUGC.GetSubscribedItems(fileIds, numSubbed);

            ulong  itemSize         = 0;
            uint   updatedTimestamp = 0;
            string folderPath       = null;

            Dictionary <PublishedFileId_t, string> paths = new Dictionary <PublishedFileId_t, string>();

            if (fileIds != null)
            {
                foreach (PublishedFileId_t fileId in fileIds)
                {
                    EItemState state = (EItemState)SteamUGC.GetItemState(fileId);

                    if ((state & EItemState.k_EItemStateInstalled) != 0)
                    {
                        if (SteamUGC.GetItemInstallInfo(fileId, out itemSize, out folderPath, 1024, out updatedTimestamp))
                        {
                            paths.Add(fileId, folderPath);
                        }
                    }
                    else
                    {
                        Logger.Debug("[WORKSHOP] State for Workshop Item " + fileId.m_PublishedFileId.ToString() + ": " + state.ToString());
                    }
                }
            }

            return(paths);
        }
Example #15
0
    private void LoadModIntoGame(PublishedFileId_t publishedFileId, bool owner)
    {
        ulong sizeOnDisk = 0;
        uint  folderSize = 512;

        char[] temp      = new char[folderSize];
        string folder    = new string(temp);
        uint   timeStamp = 0;

        uint       retval = SteamUGC.GetItemState(publishedFileId);
        EItemState state  = (EItemState)retval;

        Debug.Log("Item state: " + state.ToString());

        if (SteamUGC.GetItemInstallInfo(publishedFileId, out sizeOnDisk, out folder, folderSize, out timeStamp))
        {
            try {
                foreach (Mod m in ModManager.importedMods)
                {
                    if (m.path.Contains(folder))
                    {
                        // Don't load twice
                        return;
                    }
                }

                // Register new mod in the ModManager
                ModImporter.ImportMod(folder, false, owner);
            } catch (System.Exception e) {
                Debug.LogWarning($"Failed to import {folder}: {e.Message}");
            }
        }
        else
        {
            Debug.LogWarning("Attempted to load non-installed Steam Workshop item ID " + publishedFileId);
        }
    }
Example #16
0
 //init state to using--when player use item
 protected virtual void InitUse( )
 {
     timer = 0.0f;
     state = EItemState.USING;
 }
Example #17
0
        => src.Merge(errorSource.CreateErrorSource <T>().TakeUntil(src));    // TODO: Consider switch?

        public static bool RequiresDownloading(this EItemState state) => !state.IsInstalled() || state.NeedsUpdate();
Example #18
0
 public static bool IsSubscribed(this EItemState state) => state.HasFlag(EItemState.k_EItemStateSubscribed);
Example #19
0
        public static bool IsSubscribed(ulong id)
        {
            EItemState state = (EItemState)SteamUGC.GetItemState(new PublishedFileId_t(id));

            return((state & EItemState.k_EItemStateSubscribed) == EItemState.k_EItemStateSubscribed);
        }
Example #20
0
 public static bool IsInstalled(this EItemState state) => state.HasFlag(EItemState.k_EItemStateInstalled);
Example #21
0
 /// <summary>
 /// Checks if the 'checkFlag' value is in the 'value'
 /// </summary>
 /// <param name="value"></param>
 /// <param name="checkflag"></param>
 /// <returns></returns>
 public static bool WorkshopItemStateHasFlag(EItemState value, EItemState checkflag)
 {
     return((value & checkflag) == checkflag);
 }
Example #22
0
 public static bool NeedsUpdate(this EItemState state) => state.HasFlag(EItemState.k_EItemStateNeedsUpdate);
Example #23
0
 public static bool IsLegacy(this EItemState state) => state.HasFlag(EItemState.k_EItemStateLegacyItem);