Esempio n. 1
0
    void CreateItems()
    {
        itemsLeftText.text = GameState.CurrentRound.itemPicks + " Left";
        foreach (Transform child in imageList.transform)
        {
            Destroy(child.gameObject);
        }
        Show();

        foreach (FreeMovable item in GameState.Instance.rounds[GameState.Instance.Round - 1].items)
        {
            if (item == null)
            {
                continue;
            }
            SpriteRenderer sr      = item.GetComponent <SpriteRenderer>();
            GameObject     newItem = Instantiate(rawImageTemplate);
            RawImage       riUI    = newItem.GetComponent <RawImage>();
            riUI.texture = sr.sprite.texture;
            IconScript iconscript = newItem.GetComponent <IconScript>();
            iconscript.attachedItem = item;
            iconscript.SetIcon();
            iconscript.ItemsLeftText = itemsLeftText;
            riUI.transform.SetParent(imageList.transform, false);
        }
    }
Esempio n. 2
0
    public void UpdateDescription()
    {
        //sets the apperance of the window to match the selected item

        if (itemIcons.selectedButton)
        {
            equipButton.active = true;
            IconScript itemScript = itemIcons.selectedButton.GetComponent <IconScript>();

            if (itemScript.individualItem == inventory.Hand) //if selected item is held the equip button is already pressed
            {
                equipButton.currState = EquipButton.ButtonState.Selected;
            }
            else
            {
                equipButton.currState = EquipButton.ButtonState.Idle;
            }

            descName.text = itemScript.itemName;
            descDesc.text = itemScript.description.Replace("<br>", "\n");

            equipButton.ButtonUpdate();
        }
        else //if nothing is selected make the window empty and the equip button unclickable
        {
            equipButton.active    = false;
            equipButton.currState = EquipButton.ButtonState.Hover;

            descName.text = "";
            descDesc.text = "";

            equipButton.ButtonUpdate();
        }
    }
Esempio n. 3
0
    void OnMouseOver()
    {
        //overObject = true;

        // On clicking object, set icon positions to object center,
        // then make them visible and scale them to full size while
        // moving out from center
        if (Input.GetMouseButtonDown(0))
        {
            if (objectPropertiesScript.isBackground == true)
            {
                iconHandlerScript.beingUsed = false;
            }
            else if (objectPropertiesScript.visible == true)
            {
                iconHandlerScript.startPos     = this.transform.position;
                iconHandlerScript.beingUsed    = true;
                iconHandlerScript.firstClicked = true;

                // get the icon scripts
                lookIconScript  = iconHandlerScript.lookIcon.GetComponent <IconScript>();
                useIconScript   = iconHandlerScript.useIcon.GetComponent <IconScript>();
                storeIconScript = iconHandlerScript.storeIcon.GetComponent <IconScript>();

                // set the linked object of the icon scripts to be the currently
                // click object

                lookIconScript.linkedObject  = this.gameObject;
                useIconScript.linkedObject   = this.gameObject;
                storeIconScript.linkedObject = this.gameObject;
            }
        }
    }
Esempio n. 4
0
    /// <summary>
    /// Make a place new IconScript for AbstractObject.
    /// If AbstractObject has his own coordinats != 1, the game will use them
    /// </summary>
    /// <param name="x"> coordinat of free space </param>
    /// <param name="y"> coordinat of free space </param>
    /// <param name="itm"> source </param>
    /// <returns> new IconScript object </returns>
    public static GameObject PlaceNewGameobject(float x, float y, AbstractObject itm)
    {
        MainScript ms = Camera.main.GetComponent <MainScript>();
        GameObject go = Instantiate(ms.m_iconPrefab);

        go.name = itm.m_name;
        IconScript isc = go.GetComponent <IconScript>();

        isc.m_ms = ms;
        if (isc != null)
        {
            isc.m_thisItem = itm;
        }

        isc._tmpPos.z = go.transform.position.z;
        //if coordinates does not set in excel, it will be random
        if (itm.m_defaultX == 1 && itm.m_defaultY == 1)
        {
            isc._tmpPos.x = x;
            isc._tmpPos.y = y;
        }
        else
        {
            isc._tmpPos.x = itm.m_defaultX;
            isc._tmpPos.y = itm.m_defaultY;
        }
        go.transform.position = isc._tmpPos;

        isc.m_thisItem.m_thisObject = isc;
        isc.m_thisItem.ChangeProductionType(
            isc.transform.Find("smallIcon").GetComponent <SpriteRenderer>(), isc);
        MainScript.m_sAllItems.Add(go);

        return(go);
    }
Esempio n. 5
0
    /// <summary>
    /// place new icons on the screen and make arrows
    /// </summary>
    /// <param name="items"> new icons collection </param>
    public void PlaceOpenedItems(List <AbstractObject> items)
    {
        foreach (var itm in items)
        {
            if (itm.m_isItOpen < 1)
            {
                continue;
            }

            FindEmptySpace(out var x, out var y);
            IconScript.PlaceNewGameobject(x, y, itm);
        }
        //make arrows. All the objects should be placed
        foreach (var aitm in items.Where(aitm => aitm.m_isItOpen > 0))
        {
            aitm.OpenItem();
            var itm = aitm as GameAbstractItem;

            if (itm?.m_dependencyCount == null)
            {
                continue;
            }
            foreach (var depList in itm.m_dependencyCount)
            {
                foreach (var dep in depList.m_dependency.Where(
                             dep => dep.m_isItOpen > 0))
                {
                    ArrowScript.NewStoredArrowScript(dep.m_thisObject, itm.m_thisObject);
                }
            }
        }
    }
Esempio n. 6
0
    IEnumerator ExecuteAttack(Attack attack, Attack counterattack)
    {
        Vector3 xSpacing = (playerIndex == 1 ? Vector3.right : Vector3.left) * iconSpacing;
        Vector3 ySpacing = Vector3.down * iconSpacing;

        List <IconScript> rockIcons     = new List <IconScript>();
        List <IconScript> scissorsIcons = new List <IconScript>();
        List <IconScript> paperIcons    = new List <IconScript>();

        for (int j = 0; j < attack.rock; j++)
        {
            IconScript icon = Instantiate <IconScript>(rockPrefab);
            icon.transform.parent        = iconContainer;
            icon.transform.localPosition = xSpacing * j;
            icon.transform.localScale    = Vector3.one * iconScale;
            rockIcons.Add(icon);
        }
        for (int j = 0; j < attack.scissors; j++)
        {
            IconScript icon = Instantiate <IconScript>(scissorsPrefab);
            icon.transform.parent        = iconContainer;
            icon.transform.localPosition = xSpacing * j + ySpacing;
            icon.transform.localScale    = Vector3.one * iconScale;
            scissorsIcons.Add(icon);
        }
        for (int j = 0; j < attack.paper; j++)
        {
            IconScript icon = Instantiate <IconScript>(paperPrefab);
            icon.transform.parent        = iconContainer;
            icon.transform.localPosition = xSpacing * j + ySpacing * 2;
            icon.transform.localScale    = Vector3.one * iconScale;
            paperIcons.Add(icon);
        }

        Vector3 startPos  = iconContainer.position;
        Vector3 targetPos = iconContainer.position + (playerIndex == 1 ? Vector3.left : Vector3.right) * iconMoveDistance;
        float   startTime = Time.time;

        while (Time.time < startTime + iconMoveDuration)
        {
            iconContainer.position = Vector3.Lerp(startPos, targetPos, Mathf.SmoothStep(0, 1, (Time.time - startTime) / iconMoveDuration));
            yield return(null);
        }

        rockIcons.GetRange(0, Mathf.Min(rockIcons.Count, counterattack.paper)).ForEach(icon => icon.ToggleBroken(true));
        scissorsIcons.GetRange(0, Mathf.Min(scissorsIcons.Count, counterattack.rock)).ForEach(icon => icon.ToggleBroken(true));
        paperIcons.GetRange(0, Mathf.Min(paperIcons.Count, counterattack.scissors)).ForEach(icon => icon.ToggleBroken(true));

        startTime = Time.time;
        while (Time.time < startTime + iconMoveDuration)
        {
            iconContainer.position = Vector3.Lerp(targetPos, startPos, Mathf.SmoothStep(0, 1, (Time.time - startTime) / iconMoveDuration));
            yield return(null);
        }

        finalDamage = Mathf.Max(attack.rock - counterattack.paper, 0) +
                      Mathf.Max(attack.scissors - counterattack.rock, 0) +
                      Mathf.Max(attack.paper - counterattack.scissors, 0);
    }
Esempio n. 7
0
    /// <summary>
    /// Change production icon to building icon
    /// </summary>
    /// <param name="render"> render </param>
    /// <param name="isc"> target IconScript </param>
    public override void ChangeProductionType(SpriteRenderer render, IconScript isc)
    {
        Vector3 pos = render.transform.position;

        pos.z = -1;
        render.transform.position = pos;
        Texture2D obj = Resources.Load("Pictures/building") as Texture2D;

        render.sprite = Sprite.Create(obj, new Rect(0.0f, 0.0f, obj.width, obj.height), new Vector2(0.5f, 0.5f), 100.0f);
        isc.ChangeSprite("Pictures/Button_up_demolish", "Pictures/Button_up_demolish_gray");
    }
Esempio n. 8
0
 /// <summary>
 ///  Start is called before the first frame update.
 ///  Called by Unity. In multi-threds systems, could be after first frame update.
 /// </summary>
 void Start()
 {
     try
     {
         _iconScript = gameObject.transform.parent.parent.gameObject.GetComponent <IconScript>();
     }
     catch (Exception ex)
     {
         Debug.LogError("CustButton Start exception:" + ex.Message);
     }
 }
Esempio n. 9
0
 /// <summary>
 /// Select current icon.
 /// All arrows should be displayed
 /// </summary>
 void SelectIcon()
 {
     if (_sSelectedIcon != null)
     {
         _sSelectedIcon.UnselectIcon();
     }
     _sSelectedIcon = this;
     MoveArrows(m_from, -1f);
     MoveArrowsFull(m_to, -1f);
     MoveArrows(m_toolsTo, -1.1f);
     MoveArrows(m_toolsFrom, -1.1f);
 }
Esempio n. 10
0
    public void CreateNewIcon()
    {
        if (iconPath.Length > 0)
        {
            GameObject icon = Instantiate(iconPrefab);
            icon.transform.position = Vector3.zero;
            IconScript iconScript = icon.GetComponent <IconScript>();
            iconScript.filePath    = iconPath;
            iconScript.contextMenu = contextMenu;
            iconScript.newName     = field.text;

            gameObject.SetActive(false);
        }
    }
Esempio n. 11
0
    /// <summary>
    /// Save the game to the json string.
    /// String should be written into a file or send to server
    /// </summary>
    /// <returns>game save</returns>
    public string Save()
    {
        foreach (AbstractObject itm in AbstractObject.m_sEverything)
        {
            switch (itm.GetType().FullName)
            {
            case nameof(Science): m_allScience.Add(itm as Science); break;

            case nameof(Population): m_population = itm as Population; break;

            case nameof(Items): m_allItems.Add(itm as Items); break;

            case nameof(GameMaterial): m_allMaterails.Add(itm as GameMaterial); break;

            case nameof(Buildings): m_allBuildings.Add(itm as Buildings); break;

            case nameof(Army): m_allArmy.Add(itm as Army); break;

            case nameof(Resource): m_allResources.Add(itm as Resource); break;

            case nameof(Process): m_allProcesses.Add(itm as Process); break;

            case nameof(WildAnimal): m_allWildAnimals.Add(itm as WildAnimal); break;

            case nameof(DomesticAnimal): m_allDomestic.Add(itm as DomesticAnimal); break;
            }
        }

        foreach (GameObject go in MainScript.m_sAllItems)
        {
            IconScript ics = go.GetComponent <IconScript>();
            GameIcon   gic = new GameIcon();
            gic.m_pos     = ics.transform.position;
            gic.m_itmName = ics.m_thisItem.m_name;
            m_allGameIcons.Add(gic);
        }

        TimeScript tsc = Camera.main.GetComponent <TimeScript>();

        m_speed = tsc.m_speed;
        m_day   = tsc.m_day;
        m_year  = tsc.m_year;

        m_canShowTooltips = LearningTip.m_sCanShow;

        string json = JsonUtility.ToJson(this);

        return(json);
    }
Esempio n. 12
0
    /// <summary>
    /// place arrow and save it in IconScript
    /// tools should not been stored
    /// </summary>
    /// <param name="from"> source </param>
    /// <param name="to"> goal </param>
    /// <returns> new arrow object </returns>
    public static ArrowScript NewStoredArrowScript(IconScript from, IconScript to)
    {
        ArrowScript asc = NewArrowScript(from, to);

        try
        {
            from.m_from.Add(asc);
            to.m_to.Add(asc);
        }
        catch (Exception ex)
        {
            Debug.LogException(ex);
        }
        return(asc);
    }
Esempio n. 13
0
 /// <summary>
 /// Place new arrow
 /// </summary>
 /// <param name="from"> source </param>
 /// <param name="to"> goal </param>
 /// <returns> new arrow object </returns>
 public static ArrowScript NewArrowScript(IconScript from, IconScript to)
 {
     try
     {
         MainScript  ms  = Camera.main.GetComponent <MainScript>();
         GameObject  go  = GameObject.Instantiate(ms.m_arrowPrefab);
         ArrowScript asc = go.GetComponent <ArrowScript>();
         asc.m_to   = to;
         asc.m_from = from;
         return(asc);
     }
     catch (Exception ex)
     {
         Debug.LogException(ex);
         return(null);
     }
 }
Esempio n. 14
0
    // Use this for initialization
    void Start()
    {
        DirectoryInfo info = new DirectoryInfo(Application.dataPath + "/StreamingAssets/config");

        FileInfo[] fileInfo = info.GetFiles();
        foreach (FileInfo f in fileInfo)
        {
            if (f.Extension == ".txt")
            {
                GameObject icon       = Instantiate(iconPrefab);
                object[]   iconInfo   = ParseFile(f.FullName);
                IconScript iconScript = icon.GetComponent <IconScript>();
                iconScript.filePath     = iconInfo[0].ToString();
                iconScript.contextMenu  = contextMenu;
                icon.transform.position = new Vector3((float)iconInfo[1], (float)iconInfo[2], 0);
                iconScript.LoadProgramIcon();
            }
        }
    }
Esempio n. 15
0
    public void OnBeginDrag(PointerEventData eventData)
    {
        if (canDrag)
        {
            //Creates a clone of the icon and moves it when the other icon is selected
            draggingIcon = Instantiate(this.gameObject);

            draggingIcon.transform.SetParent(canvas.transform, false);
            draggingIcon.transform.SetAsLastSibling();

            IconScript draggingIconScript = draggingIcon.GetComponent <IconScript>();
            Destroy(draggingIconScript);

            var image = draggingIcon.GetComponent <Image>();

            image.color = new Color(0f, 0f, 0.5f, 1f);
            image.GetComponentInChildren <Image>().sprite = null;
            image.GetComponentInChildren <Image>().color  = ThemeManager.instance.SelectedColour;
            image.GetComponentInChildren <Text>().color   = Color.white;

            draggingIcon.GetComponent <RectTransform>().anchoredPosition += eventData.delta / canvas.scaleFactor;
        }
    }
Esempio n. 16
0
    void OnMouseOver()
    {
        //overObject = true;

        // On clicking object, set icon positions to object center,
        // then make them visible and scale them to full size while
        // moving out from center
        if (Input.GetMouseButtonDown(0))
        {

            if(objectPropertiesScript.isBackground == true)
            {
               iconHandlerScript.beingUsed = false;
            }
            else if (objectPropertiesScript.visible == true)
            {
                iconHandlerScript.startPos = this.transform.position;
                iconHandlerScript.beingUsed = true;
                iconHandlerScript.firstClicked = true;

                // get the icon scripts
                lookIconScript = iconHandlerScript.lookIcon.GetComponent<IconScript>();
                useIconScript = iconHandlerScript.useIcon.GetComponent<IconScript>();
                storeIconScript = iconHandlerScript.storeIcon.GetComponent<IconScript>();

                // set the linked object of the icon scripts to be the currently
                // click object

                lookIconScript.linkedObject = this.gameObject;
                useIconScript.linkedObject = this.gameObject;
                storeIconScript.linkedObject = this.gameObject;

            }

        }
    }
Esempio n. 17
0
    private void OnGUI()
    {
        //Window Scene
        GUILayout.Label("Window", EditorStyles.boldLabel);

        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Title Bar Sprite:");
        windowSprite = (Sprite)EditorGUILayout.ObjectField(windowSprite, typeof(Sprite), allowSceneObjects: true);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Window Name:");
        windowName = EditorGUILayout.TextField("", windowName);
        EditorGUILayout.EndHorizontal();

        windowSize = EditorGUILayout.Vector2Field("Window Size: ", windowSize);

        EditorGUILayout.Space();

        if (GUILayout.Button("Create Window"))
        {
            //When pressed, the icon will create an instance in the scene.
            if (windowSprite == null)
            {
                Debug.LogWarning("Window Sprite cannot contain an empty field");
            }
            else if (windowName == null)
            {
                Debug.LogWarning("Window Name cannot contain an empty field");
            }
            else
            {
                string path = "Assets/Prefabs/Windows/" + windowName + ".prefab";
                path = AssetDatabase.GenerateUniqueAssetPath(path);

                GameObject tmpWindow = Instantiate(windowPrefab);

                tmpWindow.GetComponent <RectTransform>().sizeDelta = new Vector2(windowSize.x + 4, windowSize.y + 4);
                WindowScript windowScript = tmpWindow.GetComponent <WindowScript>();
                windowScript.titleBarIcon.sprite = windowSprite;
                windowScript.titleBarText.text   = windowName;

                PrefabUtility.SaveAsPrefabAsset(tmpWindow, path);

                Destroy(tmpWindow);

                EditorUtility.FocusProjectWindow();
                Selection.activeObject = windowPrefab;
                Debug.Log(":)");
            }
        }

        EditorGUILayout.Space();

        //Icon Settings
        GUILayout.Label("Icon", EditorStyles.boldLabel);

        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Sprite:");
        iconSprite = (Sprite)EditorGUILayout.ObjectField(iconSprite, typeof(Sprite), allowSceneObjects: true);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Name:");
        iconString = EditorGUILayout.TextField("", iconString);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Window:");
        iconWindow = (GameObject)EditorGUILayout.ObjectField(iconWindow, typeof(GameObject), allowSceneObjects: true);
        EditorGUILayout.EndHorizontal();

        if (GUILayout.Button("Create Icon"))
        {
            //When pressed, the icon will create an instance in the scene.
            if (iconSprite == null)
            {
                Debug.LogWarning("Icon Sprite cannot contain an empty field");
            }
            else if (iconString == null)
            {
                Debug.LogWarning("Icon Name cannot contain an empty field");
            }
            else if (iconWindow == null)
            {
                Debug.LogWarning("Window cannot contain an empty field, create one if you need to.");
            }
            else
            {
                Icon iconScriptableObject = CreateInstance <Icon>();
                iconScriptableObject.iconName   = iconString;
                iconScriptableObject.iconSprite = iconSprite;
                iconScriptableObject.window     = iconWindow;

                AssetDatabase.CreateAsset(iconScriptableObject, "Assets/ScriptableObjects/Icons/" + iconString + ".asset");
                AssetDatabase.SaveAssets();

                GameObject tmpIcon    = Instantiate(iconPrefab);
                IconScript iconScript = tmpIcon.GetComponent <IconScript>();
                iconScript.icon             = iconScriptableObject;
                iconScript.transform.parent = ThemeManager.instance.iconSpace.transform;

                EditorUtility.FocusProjectWindow();
                Selection.activeObject = iconScriptableObject;
                Debug.Log(":)");
            }
        }

        EditorGUILayout.Space();

        //Start Menu Item Settings
        GUILayout.Label("Start Menu Item", EditorStyles.boldLabel);

        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Sprite:");
        itemSprite = (Sprite)EditorGUILayout.ObjectField(itemSprite, typeof(Sprite), allowSceneObjects: true);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Name:");
        itemName = EditorGUILayout.TextField("", itemName);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Window:");
        itemWindow = (GameObject)EditorGUILayout.ObjectField(itemWindow, typeof(GameObject), allowSceneObjects: true);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        putOnStartMenu = EditorGUILayout.Toggle("Add to start menu?", putOnStartMenu);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.Space();

        if (GUILayout.Button("Create Start Menu Button"))
        {
            //When pressed, the icon will create an instance in the scene.
            if (itemSprite == null)
            {
                Debug.LogWarning("Item Sprite cannot contain an empty field");
            }
            else if (itemName == null)
            {
                Debug.LogWarning("Item Name cannot contain an empty field");
            }
            else if (itemWindow == null)
            {
                Debug.LogWarning("Window cannot contain an empty field, create one if you need to.");
            }
            else
            {
                StartMenuItem itemScriptableObject = CreateInstance <StartMenuItem>();
                itemScriptableObject.menuName = itemName;
                itemScriptableObject.sprite   = itemSprite;
                itemScriptableObject.window   = itemWindow;

                AssetDatabase.CreateAsset(itemScriptableObject, "Assets/ScriptableObjects/Start Menu Items/" + itemName + ".asset");
                AssetDatabase.SaveAssets();

                if (putOnStartMenu)
                {
                    StartMenuScript startMenu = ThemeManager.instance.taskbarCanvas.GetComponentInChildren <StartMenuScript>();
                    startMenu.startMenuItems.Add(itemScriptableObject);
                }

                EditorUtility.FocusProjectWindow();
                Selection.activeObject = itemScriptableObject;
                Debug.Log(":)");
            }
        }

        EditorGUILayout.Space();
        //Notification Settings
        GUILayout.Label("Create a new Notification", EditorStyles.boldLabel);

        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Sprite:");
        NotificationSprite = (Sprite)EditorGUILayout.ObjectField(NotificationSprite, typeof(Sprite), allowSceneObjects: true);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Name:");
        notificationName = EditorGUILayout.TextField("", notificationName);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Lifespan:");
        notificationLifespan = EditorGUILayout.FloatField(notificationLifespan);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Tooltip Text:");
        notificationToolTip = EditorGUILayout.TextField("", notificationToolTip);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        notificationPopupDespawn = EditorGUILayout.Toggle("Despawn?", notificationPopupDespawn);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.Space();
        GUILayout.Label("Popup Settings", EditorStyles.boldLabel);

        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Popup Lifespan:");
        notificationPopupLifespan = EditorGUILayout.FloatField(notificationPopupLifespan);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Popup Title:");
        notificationPopupTitle = EditorGUILayout.TextField("", notificationPopupTitle);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Popup Description:");
        notificationPopupDescription = EditorGUILayout.TextField("", notificationPopupDescription);
        EditorGUILayout.EndHorizontal();

        if (GUILayout.Button("Create Notification"))
        {
            //When pressed, the icon will create an instance in the scene.
            if (NotificationSprite == null)
            {
                Debug.LogWarning("Notification Sprite cannot contain an empty field");
            }
            else if (notificationName == null)
            {
                Debug.LogWarning("Notification Name cannot contain an empty field");
            }
            else if (notificationToolTip == null)
            {
                Debug.LogWarning("Tooltip cannot contain an empty field");
            }
            else if (notificationPopupLifespan <= 0)
            {
                Debug.LogWarning("The popup needs to have a lifespan, or to be put on permamently.");
            }
            else if (notificationLifespan <= 0 && !notificationPopupDespawn)
            {
                Debug.LogWarning("Lifespan needs to be greater than 0 or to be on permamently.");
            }
            else if (notificationPopupTitle == null)
            {
                Debug.LogWarning("Notification Popup Title cannot be an empty field");
            }
            else if (notificationPopupDescription == null)
            {
                Debug.LogWarning("Notification Description cannot be an empty field");
            }
            else
            {
                Notification notification = CreateInstance <Notification>();

                notification.notificationSprite      = NotificationSprite;
                notification.notificationTitle       = notificationPopupTitle;
                notification.notificationToolTipText = notificationToolTip;
                notification.notificationText        = notificationPopupDescription;
                notification.stayOnPermamently       = notificationPopupDespawn;
                notification.notificationLifespan    = notificationPopupLifespan;

                AssetDatabase.CreateAsset(notification, "Assets/ScriptableObjects/Notifications/" + notificationName + ".asset");
                AssetDatabase.SaveAssets();

                GameObject      tmpNotif    = Instantiate(notificationPrefab);
                NotificationObj notifScript = tmpNotif.GetComponent <NotificationObj>();
                notifScript.notification     = notification;
                notifScript.transform.parent = ThemeManager.instance.taskbar.GetComponentInChildren <NotificationAreaScript>().NotificationsSpace.transform;

                EditorUtility.FocusProjectWindow();
                Selection.activeObject = notification;
                Debug.Log(":)");
            }
        }
    }
Esempio n. 18
0
 /// <summary>
 /// The population cannot be managed by the player manually, buttons should be disabled
 /// </summary>
 /// <param name="render"> render </param>
 /// <param name="isc"> target IconScript </param>
 public override void ChangeProductionType(SpriteRenderer render, IconScript isc)
 {
     base.ChangeProductionType(render, isc);
     DisableAllButtons(render);
 }
Esempio n. 19
0
    /// <summary>
    /// load game from json string
    /// !!! move it to Game !!!
    /// </summary>
    void Load(string json)
    {
        Game       gm = Game.Load(json);
        MainScript ms = Camera.main.GetComponent <MainScript>();

        ms.ClearEverything();
        ms.Loading();

        CopyItems(gm.m_allArmy);
        CopyItems(gm.m_allBuildings);
        CopyItems(gm.m_allItems);
        CopyItems(gm.m_allMaterails);
        CopyItems(gm.m_allScience);
        CopyItems(gm.m_allResources);
        CopyItems(gm.m_allProcesses);
        CopyItems(gm.m_allWildAnimals);
        CopyItems(gm.m_allDomestic);

        AbstractObject.m_sEverything[AbstractObject.m_sEverything.Count - 1].
        Copy(gm.m_population);

        ms.PlaceOpenedItems(AbstractObject.GetOpennedItems());

        CopyTools(gm.m_allArmy);
        CopyTools(gm.m_allBuildings);
        CopyTools(gm.m_allItems);
        CopyTools(gm.m_allMaterails);
        CopyTools(gm.m_allProcesses);

        foreach (GameObject go in MainScript.m_sAllItems)
        {
            try
            {
                IconScript    ics = go.GetComponent <IconScript>();
                Game.GameIcon gic = null;
                foreach (var itm in gm.m_allGameIcons)
                {
                    if (itm.m_itmName == ics.m_thisItem.m_name)
                    {
                        gic = itm;
                        break;
                    }
                }
                if (gic == null)
                {
                    continue;             //throw new System.Exception("Object not found");
                }
                gm.m_allGameIcons.Remove(gic);
                ics.transform.position = gic.m_pos;
            }
            catch (Exception ex)
            {
                Debug.Log(ex.Message);
            }
        }

#if !UNITY_WEBGL
        Localization.GetLocalization().ChangeLanguage(Settings.GetSettings().m_localization.m_currentLanguage);
#endif
        TimeScript tsc = Camera.main.GetComponent <TimeScript>();
        tsc.m_day   = gm.m_day;
        tsc.m_year  = gm.m_year;
        tsc.m_speed = gm.m_speed;

        LearningTip.m_sCanShow = gm.m_canShowTooltips;

        gameObject.SetActive(false);
    }
Esempio n. 20
0
 /// <summary>
 /// change production icon in IconScript.
 /// Should be overloaded by children where it used.
 /// </summary>
 /// <param name="render"> render </param>
 /// <param name="isc"> target </param>
 public virtual void ChangeProductionType(SpriteRenderer render, IconScript isc)
 {
 }