Пример #1
0
    public void UseItem(PlayerController player)
    {
        if (selectedItem == null)
        {
            LevelManager lManager = FindObjectOfType <LevelManager>();
            lManager.ActivateNPCFeedback("No hay un item en esta casilla");

            return;
        }

        ActivableSystem system = GetActivableSystem(player);

        if (system)
        {
            if (system.PlaceItem(selectedItem.Value.sprite))
            {
                RemoveItem();
            }
        }
    }
    private void HandleGearSystemA(GearSystem gearSystem, bool notifyOthers)
    {
        // Dispose every used gear in case of reconnection
        for (int i = 0; i < gearSystem.components.Length; i++)
        {
            string     usedGearName = gearSystem.components[i].sprite.name;
            GameObject usedGear     = GameObject.Find(usedGearName);

            if (usedGear)
            {
                DestroyObject(usedGearName, .1f);
            }
        }

        // Hide every placed gear
        SpriteRenderer[] componentSlots = gearSystem.GetComponentsInChildren <SpriteRenderer>();
        for (int i = 0; i < componentSlots.Length; i++)
        {
            componentSlots[i].sprite = null;
        }

        // Change the gearsystem sprite

        SpriteRenderer systemSpriteRenderer = gearSystem.GetComponent <SpriteRenderer>();

        systemSpriteRenderer.sprite = gearSystem.activatedSprite;


        gearSystem.ToggleParticles(true);
        SetAnimatorBool("startMoving", true, gearSystem);


        GameObject secondMachine = GameObject.Find("MaqEngranaje2");

        if (secondMachine)
        {
            ActivableSystem secondGear = secondMachine.GetComponent <ActivableSystem>();
            SetAnimatorBool("startMoving", true, secondGear);
        }

        MoveTowardsAndDie blocksMover = GameObject.Find("GiantBlockers").GetComponent <MoveTowardsAndDie>();

        blocksMover.StartMoving(gearSystem.GetParticles());

        if (notifyOthers)
        {
            SetAnimatorBool("startMovingMachine", false, gearSystem, 2f);
        }

        if (Object.FindObjectOfType <Planner>())
        {
            if (gearSystem.switchObj)
            {
                gearSystem.switchObj.ActivateSwitch();

                Planner planner = Object.FindObjectOfType <Planner>();
                planner.Monitor();
            }
        }

        if (notifyOthers)
        {
            SendMessageToServer("ObstacleDestroyed/GiantBlockers", true);
            SendMessageToServer("ActivateSystem/" + gearSystem.name, true);
        }
    }
    protected void SetAnimatorBool(string parameter, bool value, ActivableSystem activableSystem, float time)
    {
        SceneAnimator sceneAnimator = GameObject.FindObjectOfType <SceneAnimator>();

        sceneAnimator.SetBool(parameter, value, activableSystem.gameObject, time);
    }
    protected void StartAnimation(string animationName, ActivableSystem activableSystem)
    {
        SceneAnimator sceneAnimator = GameObject.FindObjectOfType <SceneAnimator>();

        sceneAnimator.StartAnimation(animationName, activableSystem.gameObject);
    }