Exemple #1
0
    public void AñadirPersonaje(Personaje character)
    {
        if (personajes.ContainsKey(character))
        {
            Debug.LogWarning("CharacterInterfaceController::AñadirPersonaje error: Ya existe un personaje así.");
            return;
        }

        if (manager == null)
        {
            Debug.LogWarning("CharacterInterfaceController::AñadirPersonaje error: No existe el manager.");
            return;
        }

        GameObject obj = GameObject.Instantiate(controller.characterInterfacePrefab);

        obj.transform.SetParent(controller.panelCharacterInterface.transform);
        obj.transform.localScale = new Vector3(1, 1, 1);
        obj.GetComponent <RectTransform>().anchoredPosition = new Vector2(60 + 100 * personajes.Count, -25);

        CharacterPanel script = obj.GetComponent <CharacterPanel>();

        script.SetCharacter(character);

        script.boton.onClick.AddListener(() => { manager.characterController.Actualizar(character); });

        EventTrigger trigger = obj.GetComponent <EventTrigger>();

        //Entrar
        EventTrigger.Entry entry = new EventTrigger.Entry();
        entry.eventID = EventTriggerType.PointerEnter;
        entry.callback.AddListener((eventData) => { script.subPanel.SetActive(true); });
        trigger.triggers.Add(entry);
        //Salir
        EventTrigger.Entry exit = new EventTrigger.Entry();
        exit.eventID = EventTriggerType.PointerExit;
        exit.callback.AddListener((eventData) => { script.subPanel.SetActive(false); });
        trigger.triggers.Add(exit);

        script.subPanel.SetActive(false);

        personajes.Add(character, script);
    }
Exemple #2
0
    public void AssignSelectedObject(ISelectable obj)
    {
        HidePanels();

        if (obj is Building)
        {
            PanelVisible = true;

            Building building = (Building)obj;

            if (building.Module == null)
            {
                if (building.GetDisplayObject() is ConstructionSiteDisplayObject)
                {
                    ConstructionSiteDisplayObject cds = (ConstructionSiteDisplayObject)building.GetDisplayObject();
                    ConstructionPanel.gameObject.SetActive(true);
                    ConstructionPanel.SetConstructionSite(cds.ConstructionSite);

                    BuildingModulePanel.gameObject.SetActive(true);
                    BuildingModulePanel.SetModule(cds.ConstructionSite);
                }
                else if (building.Type == "Stairs" ||
                         building.Type == "Platform" ||
                         building.Type == "Slab")
                {
                    OtherBuildingPanel.gameObject.SetActive(true);
                    OtherBuildingPanel.SetOtherBuilding(building);
                }
            }
            else
            {
                if (building.Module is Storage)
                {
                    StoragePanel.gameObject.SetActive(true);
                    StoragePanel.SetStorage((Storage)building.Module);
                }
                else if (building.Module is Factory)
                {
                    if (((Factory)building.Module).IsNaturalDeposit)
                    {
                        NaturalDepositPanel.gameObject.SetActive(true);
                        NaturalDepositPanel.SetDeposit((Factory)building.Module);
                    }
                    else
                    {
                        FactoryPanel.gameObject.SetActive(true);
                        FactoryPanel.SetFactory((Factory)building.Module);
                    }
                }
                else if (building.Module is Service)
                {
                    ServicePanel.gameObject.SetActive(true);
                    ServicePanel.SetService((Service)building.Module);
                }

                if (building.Prototype.IsNaturalDeposit)
                {
                    return;
                }

                BuildingModulePanel.gameObject.SetActive(true);
                BuildingModulePanel.SetModule(building.Module);
            }
        }
        else
        if (obj is Character)
        {
            PanelVisible = true;

            Character c = (Character)obj;
            if (c.IsRobot)
            {
                RobotPanel.gameObject.SetActive(true);
                RobotPanel.SetRobot(c);
            }
            else
            {
                CharacterPanel.gameObject.SetActive(true);
                CharacterPanel.SetCharacter(c);
            }
        }
    }