Ejemplo n.º 1
0
 public void Init(LogicModules lm, bool isSubmodule = false)
 {
     _isSubmodule     = isSubmodule;
     _module          = lm;
     ModuleName.text  = lm.ModuleName;
     ModuleImg.sprite = DefaultResources.GetModuleSprite(lm);
     GetComponent <Button>().onClick.AddListener(EditModule);
 }
Ejemplo n.º 2
0
    private void UpdateSnakeView()
    {
        foreach (Transform t in SnakeView)
        {
            t.gameObject.SetActive(false);
        }

        if (CurrentSnake != null)
        {
            SnakeView.transform.GetChild(0).gameObject.SetActive(true);
            SnakeView.transform.GetChild(0).GetComponent <Image>().sprite = CurrentSnake.Skin.Head;

            for (int i = 1; i < CurrentSnake.ModulesSlots + 2; i++)
            {
                SnakeView.transform.GetChild(i).gameObject.SetActive(true);
                if (i == CurrentSnake.ModulesSlots + 1)
                {
                    SnakeView.transform.GetChild(i).localRotation = Quaternion.Euler(0, 0, _tailRotations[i - 4]);
                    SnakeView.transform.GetChild(i).GetComponent <Image>().sprite = CurrentSnake.Skin.Tail;
                    SnakeView.transform.GetChild(i).GetChild(0).gameObject.SetActive(false);
                }
                else
                {
                    if (i > 3)
                    {
                        SnakeView.transform.GetChild(i).localRotation = Quaternion.Euler(0, 0, _bodyRotations[i - 4]);
                    }
                    if (i % 4 == 1 || i % 4 == 2)
                    {
                        SnakeView.transform.GetChild(i).GetComponent <Image>().sprite = CurrentSnake.Skin.Body;
                    }
                    else
                    {
                        SnakeView.transform.GetChild(i).GetComponent <Image>().sprite = CurrentSnake.Skin.Angle;
                    }
                    SnakeView.transform.GetChild(i).GetChild(0).gameObject.SetActive(true);
                }
            }
        }


        int j = 0;

        foreach (SnakeModuleSlot s in SnakeView.GetComponentsInChildren <SnakeModuleSlot>())
        {
            LogicModules lm = null;
            if (CurrentSnake != null && j < CurrentSnake.ModulesSlots)
            {
                lm = CurrentSnake.Modules[j];
            }
            s.SetSlot(lm);
            j++;
        }
        UpdateModules();
    }
Ejemplo n.º 3
0
    public void ElementClicked(LogicModules editingModule, Vector2 position, LogicElement currentElement)
    {
        if (!_elementCounter.SelectedElement || Player.Instance.GetElementCount(_elementCounter.SelectedElement) == 0)
        {
            return;
        }

        if (currentElement.ElementType != LogicElement.LogicElementType.MyHead)
        {
            if (_elementCounter.SelectedElement.ElementType == LogicElement.LogicElementType.MyHead)
            {
                //click on any with head
                RemovePreviousHead();
            }
        }
        else
        {
            if (_elementCounter.SelectedElement.ElementType == LogicElement.LogicElementType.MyHead)
            {
                //click with head on head
                return;
            }
        }

        LogicElement newElement;

        if (_elementCounter.SelectedElement.ElementType == currentElement.ElementType)
        {
            newElement = DefaultResources.GetElementByEnum(LogicElement.LogicElementType.Any);
            Player.Instance.AddElements(currentElement, 1);
        }
        else
        {
            if (Player.Instance.GetElementCount(_elementCounter.SelectedElement) > 0)
            {
                Player.Instance.AddElements(_elementCounter.SelectedElement, -1);
                Player.Instance.AddElements(currentElement, 1);
                newElement = _elementCounter.SelectedElement;
            }
            else
            {
                newElement = currentElement;
                Debug.LogWarning("Not enough elements!");
            }
        }


        ((SimpleModule)editingModule).SetElement(position, newElement.ElementType);

        if (currentElement.ElementType == LogicElement.LogicElementType.MyHead)
        {
            PlaceHeadNear(position);
        }
    }
    public void Init(LogicModules module, bool flag)
    {
        if (flag)
        {
            GetComponent <Image>().color = Color.green;
        }
        else
        {
            GetComponent <Image>().color = Color.red;
        }

        Init(module);
    }
Ejemplo n.º 5
0
    public void EditModule(LogicModules module)
    {
        if (module == EditingModule)
        {
            module = null;
        }

        EditingModule           = module;
        ModuleName.interactable = module != null;
        if (module == null)
        {
            ModuleName.text = "";
        }

        if (module != null)
        {
            ModuleName.text = module.ModuleName;
        }

        _combinationPanel.Hide();
        _chipPanel.Hide();


        if (module != null)
        {
            if (module.ModuleType == ModuleHolder.ModuleType.Simple)
            {
                _submoduleCounter.gameObject.SetActive(false);
                _chipPanel.Init((SimpleModule)module);
                Submodules.gameObject.SetActive(false);
                Elements.gameObject.SetActive(true);
                _elementCounter.gameObject.SetActive(true);
                Elements.UpdateList(DefaultResources.Elements);
            }
            else
            {
                _combinationPanel.Init((ComplexModule)module);
                Elements.gameObject.SetActive(false);
                Submodules.gameObject.SetActive(true);
                _submoduleCounter.gameObject.SetActive(true);
                _elementCounter.gameObject.SetActive(false);
            }
        }

        UpdateModulesList();
    }
Ejemplo n.º 6
0
    public void SetSubmodule(LogicModules module)
    {
        if (_submoduleCounter.SelectedModule != null)
        {
            Player.Instance.Modules.Add(_submoduleCounter.SelectedModule);
        }
        Player.Instance.Modules.Remove(module);

        UpdateModulesList();
        if (_submoduleCounter.SelectedModule == module)
        {
            _submoduleCounter.SelectedModule = null;
        }
        else
        {
            _submoduleCounter.SelectedModule = module;
        }
    }
 public void Init(LogicModules module)
 {
     _submodule = module;
 }
Ejemplo n.º 8
0
 private void SubmoduleSeted(LogicModules newModule, int id)
 {
     _activeTemplate.UpdateSubmodule(newModule, id);
 }
Ejemplo n.º 9
0
 public static Sprite GetModuleSprite(LogicModules lm)
 {
     //compare modules by size
     return(Modules.FirstOrDefault(l => l.ModuleHolderName == lm.HolderName).Img);
 }
Ejemplo n.º 10
0
 private void OnEnable()
 {
     _ownerModule = GetComponentInParent <ModulesEditor>().EditingModule;
     ((SimpleModule)_ownerModule).OnElementSeted += ElementChanged;
 }
Ejemplo n.º 11
0
 public void SetSelectedModule(LogicModules module)
 {
     _selectedModule = module;
 }
Ejemplo n.º 12
0
 public void UpdateSubmodule(LogicModules newModule, int id)
 {
     _comboSlots[id].Init(newModule);
 }
Ejemplo n.º 13
0
 private void Start()
 {
     SelectedModule = null;
 }
Ejemplo n.º 14
0
 public void SetSlot(LogicModules module)
 {
     Module = module;
 }