Exemplo n.º 1
0
    private void addActMov(IUseable actUsable)
    {
        item = mov;
        //Debug.Log(mov.MyTitle);
        MiUsable = actUsable;
        //mov.stackSize = 1;
        miStack = 1;
        GameObject go = Instantiate(EditorScript.MyInstance.inputWinGO, transform) as GameObject; //se agrega linea como gameobject

        InputWinObj = go.GetComponent <InputWindow>();
        EditorScript.MyInstance.inputs.Add(InputWinObj.StackField);
        InputWinObj.transform.SetParent(EditorScript.MyInstance.linea.transform, false);
        InputWinObj.MyIndex = EditorScript.MyInstance.linea.MyIndex;
        InputWinObj.item    = item;
        //EditorScript.MyInstance.inputs[0].text = "66";
        EditorScript.MyInstance.AgregarLinea();

        SetUseable(actUsable);
    }
    public Stack <IUseable> GetUseables(IUseable type)
    {
        Stack <IUseable> useables = new Stack <IUseable>();

        foreach (Bag bag in MyBags)
        {
            foreach (SlotScript slot in bag.MyBagScript.MySlots)
            {
                if (!slot.IsEmpty && slot.MyItem.GetType() == type.GetType())
                {
                    foreach (Item item in slot.MyItems)
                    {
                        useables.Push(item as IUseable);
                    }
                }
            }
        }
        return(useables);
    }
    public Stack <IUseable> GetUseables(IUseable type, Item obj)
    {
        Stack <IUseable> useables = new Stack <IUseable>();

        foreach (Bag bag in bags)
        {
            foreach (SlotScript slot in bag.MyBagScript.MySlots)
            {
                if (!slot.IsEmpty /* && slot.MyItem.GetType() == type.GetType()*/ && slot.MyItem.objType == obj.objType)
                {
                    foreach (Item item in slot.MyItems)
                    {
                        useables.Push(item as IUseable);
                    }
                }
            }
        }
        //Debug.Log(type.GetType());
        return(useables);
    }
    void OnTriggerEnter(Collider other)
    {
        IUseable tempUseable = GetUseableObject(other.gameObject);

        if (tempUseable != null && _oldUseableObject != tempUseable && tempUseable.CanBeUsed(_player.gameObject))
        {
            _oldUseableObject = tempUseable;
            UseableObject     = tempUseable;

            if (_canvasInstance)
            {
                _canvasInstance.transform.SetParent(other.transform);
                _canvasInstance.transform.position = other.transform.position;
                if (_canvasGroup)
                {
                    _canvasGroup.alpha = 1;
                }
            }
        }
    }
Exemplo n.º 5
0
    public void SetUseable(IUseable useable)
    {
        if (useable is Item)
        {
            MyUseables = InventoryScript.MyInstance.GetUseables(useable);
            if (InventoryScript.MyInstance.FromSlot != null)
            {
                InventoryScript.MyInstance.FromSlot.MyIcon.color = Color.white;
                InventoryScript.MyInstance.FromSlot = null;
            }
        }
        else
        {
            MyUseables.Clear();
            this.MyUseable = useable;
        }

        count = MyUseables.Count;
        UpdateVisual(useable as IMoveable);
    }
    void OnTriggerExit(Collider other)
    {
        IUseable tempUseable = GetUseableObject(other.gameObject);

        if (tempUseable != null && _oldUseableObject == tempUseable)
        {
            _oldUseableObject = null;
            UseableObject     = null;

            if (_canvasInstance)
            {
                _canvasInstance.transform.SetParent(null);
                _canvasInstance.transform.position = Vector3.zero;

                if (_canvasGroup)
                {
                    _canvasGroup.alpha = 0;
                }
            }
        }
    }
Exemplo n.º 7
0
    /// <summary>
    /// This method is used when loading a game so we can update the visuals
    /// to whgatever the player had when logging off
    /// </summary>
    public void LoadGameUseable(IUseable useable, Item item)
    {
        if (useable is Item)
        {
            MyUseables = InventoryScript.instance.GetUseables(useable, item);
            count      = MyUseables.Count;
            buttonItem = item;
        }
        else
        {
            this.MyUseable = useable;
        }

        MyIcon.sprite = item.MyIcon;
        MyIcon.color  = Color.white;

        if (count > 1)
        {
            UpdateStackSize();
        }
    }
    static IEnumerator <float> StartJumping(Vector3 TargetPosition, Action callback, IUseable useable = null, float CustomSpeed = 0)
    {
        TargetPosition = new Vector3(TargetPosition.x, TargetPosition.y, 1);
        var StartPosition = GameLibOfMethods.player.transform.position;

        GameLibOfMethods.canInteract    = false;
        GameLibOfMethods.cantMove       = true;
        GameLibOfMethods.doingSomething = true;

        Physics2D.IgnoreLayerCollision(GameLibOfMethods.player.layer, 10, true);

        GameLibOfMethods.TempPos = GameLibOfMethods.player.transform.position;
        GameLibOfMethods.player.GetComponent <Rigidbody2D>().velocity = Vector2.zero;
        GameLibOfMethods.animator.SetBool("Walking", false);
        GameLibOfMethods.animator.SetBool("Jumping", true);

        float T      = 0;
        float _speed = CustomSpeed > 0 ? CustomSpeed : DefaultJumpSpeed;


        while (true)
        {
            T += _speed * Time.deltaTime;

            GameLibOfMethods.player.transform.position   = Vector3.Lerp(StartPosition, TargetPosition, T);
            GameLibOfMethods.player.transform.localScale = new Vector3(jumpCurve.Evaluate(T), jumpCurve.Evaluate(T));

            // if our value has reached the total, break out of the loop
            if (T >= 1)
            {
                break;
            }

            yield return(0f);
        }

        //PlayerAnimationHelper.ResetPlayer();
        callback?.Invoke();
        LastPositionBeforeJump = StartPosition;
    }
Exemplo n.º 9
0
    /// <summary>
    /// Sets the useable on an actionbutton
    /// </summary>
    public void SetUseable(IUseable useable)
    {
        if (useable is Item)
        {
            MyUseables = InventoryScript.MyInstance.GetUseables(useable);
            if (InventoryScript.MyInstance.FromSlot != null)
            {
                InventoryScript.MyInstance.FromSlot.MyCover.enabled = false;
                InventoryScript.MyInstance.FromSlot.MyIcon.enabled  = true;
                InventoryScript.MyInstance.FromSlot = null;
            }
        }
        else
        {
            MyUseables.Clear();
            this.MyUseable = useable;
        }

        count = MyUseables.Count;
        UpdateVisual(useable as IMoveable);
        UIManager.MyInstance.RefreshTooltip(MyUseable as IDescribable);
    }
Exemplo n.º 10
0
    public bool[,] GetSkillRange(IUseable skil, Actor d, int startX, int startY)
    {
        // List<TileNode> nodes = new List<TileNode>();

        bool[,] validMap = ValidBFS(
            skil.GetMaxRange(d),
            skil.GetMinRange(d),
            startX,
            startY,
            (skil).GetTargetType().immpassableTiles,
            (skil).GetTargetType().stopOnOccupied);

        if (skil.GetTargetFiltering() != null)
        {
            for (int x = 0; x < validMap.GetLength(0); x++)
            {
                for (int y = 0; y < validMap.GetLength(1); y++)
                {
                    if (validMap[x, y])
                    {
                        TileNode node = GetTileNode(x, y);

                        if (skil.FilterTileNode(d, node) == true)
                        {
                            validMap[x, y] = false;
                        }
                        else
                        {
                            // nodes.Add(node);
                        }
                    }
                }
            }
        }



        return(validMap);
    }
Exemplo n.º 11
0
    public void PickupItem(Item item)
    {
        Debug.Log("Picked up item: " + item.name);
        if (Inventory[SelectedSlot].item != null)
        {
            Inventory[SelectedSlot].item.transform.position = item.transform.position;
            Inventory[SelectedSlot].item.transform.parent   = null;
            Inventory[SelectedSlot].item.CanPickup          = false;
            Inventory[SelectedSlot].item.gameObject.SetActive(true);
            Inventory[SelectedSlot].item = null;
        }

        Inventory[SelectedSlot].item = item;
        item.gameObject.SetActive(false);
        item.transform.parent = transform;

        SelectedItem = Inventory[SelectedSlot].item.GetComponent <IUseable>();

        //Update UI
        UI.ui.Slots[SelectedSlot].sprite = item.sprite;
        UI.ui.Slots[SelectedSlot].gameObject.SetActive(true);
    }
Exemplo n.º 12
0
    public override void OnTriggerEnter2D(Collider2D other)
    {
        if (other.tag == "Useable")
        {
            useable = other.GetComponent <IUseable> ();
        }
        if (other.tag == "SignTrigger")
        {
            GameObject sign = GameObject.Find("MathProblemSign");
            var        x    = sign.GetComponent <Rigidbody2D>();
            x.constraints = RigidbodyConstraints2D.None;
            equationNum   = 1;
        }
        if (other.tag == "LevelEnd")
        {
            //use SceneManager when packaging for go live
            //EditorSceneManager.LoadScene("EndlessRunner");
            //SceneManager.LoadScene("EndlessRunner");
        }

        base.OnTriggerEnter2D(other);
    }
Exemplo n.º 13
0
    public void SetUseable(IUseable useable, Item item)
    {
        if (useable is Item)
        {
            MyUseables = InventoryScript.instance.GetUseables(useable, item);
            count      = MyUseables.Count;

            buttonItem = item;

            // if your trying to equip from the equipment slots
            if (InventoryScript.instance.FromSlot == null)
            {
                return;
            }
            else
            {
                // if your trying to drag a weapon, armor or ranged
                if ((int)item.typeOfEquipment <= 2)
                {
                    return;
                }

                InventoryScript.instance.FromSlot.MyIcon.color = Color.white;
                InventoryScript.instance.FromSlot = null;
            }
        }
        else
        {
            this.MyUseable = useable;
        }

        UpdateVisual();

        if (displayingTooltip)
        {
            UiManager.instance.RefreshToolTip(buttonItem);
        }
    }
Exemplo n.º 14
0
    //액션바에 저장
    public Stack <IUseable> GetUseables(IUseable type)
    {
        Stack <IUseable> useables = new Stack <IUseable>();

        // 가방퀵슬롯에 등록된 모든 가방을 검사.
        foreach (Bag bag in bags)
        {
            // 가방의 모든 슬롯을 검사
            foreach (SlotScript slot in bag.MyBagScript.Slots)
            {
                // 빈슬롯이 아니고
                // 퀵슬롯에 등록된 아이템이 type의 아이템과 같은 종류의 아이템이라면
                if (!slot.IsEmpty && slot.MyItem.GetType() == type.GetType())
                {
                    foreach (Item item in slot.MyItems)
                    {
                        // useables 에 담는다.
                        useables.Push(item as IUseable);
                    }
                }
            }
        }
        return(useables);
    }
    public static void JumpTo(IUseable useable, Action callback = null)
    {
        var action = callback ?? (() => useable.Use());

        StartJumping(useable.PlayerStandPosition, action, useable, useable.CustomSpeedToPosition).Start();
    }
    /// <summary>
    /// Sets the useable on an actionbutton
    /// </summary>
    public void SetUseable(IUseable useable)
    {
        this.MyUseable = useable;

        UpdateVisual();
    }
Exemplo n.º 17
0
    public void AddActClickDerecho(IUseable actUsable)
    {
        EditorScript.MyInstance.desactivarErroresLineas();

        if (actUsable is CmdMover)
        {
            /*  for (int i = 0; i < EditorScript.MyInstance.lineas.Count; i++)
             * {
             *    foreach (ActScript acto in EditorScript.MyInstance.lineas[i].actosLinea)
             *    {
             *        if (acto.item is Si)
             *        {*/

            CmdMover movAnterior = null;

            if (EditorScript.MyInstance.lineas.Count > 1)
            {
                if (EditorScript.MyInstance.lineas[EditorScript.MyInstance.lineas.Count - 2].actosLinea[0].item is CmdMover)
                {
                    movAnterior = (CmdMover)EditorScript.MyInstance.lineas[EditorScript.MyInstance.lineas.Count - 2].actosLinea[0].item;
                }
                else
                {
                    movAnterior = null;
                }
            }

            mov = (CmdMover)actUsable; // cuando se genera el mov actual mov va recoger el ultimo item de la lista
                                       //el cual es el que se agrego anteriormente porque este serta el ultimo
                                       // Debug.Log("mov " + mov);
                                       //Debug.Log("movAnt " + movAnterior);
            if (movAnterior != null)
            {
                if (movAnterior.moveType == mov.moveType && EditorScript.MyInstance.lineas[EditorScript.MyInstance.lineas.Count - 2].actosLinea[0].item is CmdMover)
                {
                    //Debug.Log("mi index "+MyIndex);
                    int x = 0;

                    if (Int32.TryParse(EditorScript.MyInstance.inputs[EditorScript.MyInstance.inputs.Count - 1].text, out x))
                    {
                        x = x + 1;
                        EditorScript.MyInstance.inputs[EditorScript.MyInstance.inputs.Count - 1].text   = x.ToString();
                        EditorScript.MyInstance.acts[EditorScript.MyInstance.MyItems.Count - 1].miStack = x;
                        //Debug.Log("1");
                    }
                }
                else
                {
                    addActMov(actUsable);
                }
            }
            else
            {
                addActMov(actUsable);
            }
            //EditorScript.MyInstance.contMov++;//cuenta la cantidad de comandos mov que instancia el usuario
        }
        else if (actUsable is Si)
        {
            si = (Si)actUsable;

            if (si.siType.ToString() == "Si")
            {
                EditorScript.MyInstance.siCompleto = false;
                InventoryScript.MyInstance.SiBloquearBotones();
                EditorScript.MyInstance.AgregarAct();
            }
            else if (si.siType.ToString() == "Ojo")
            {
                InventoryScript.MyInstance.OjoBloquearBotones();
                EditorScript.MyInstance.AgregarAct();
            }
            else if (si.siType.ToString() == "TileGrass" || si.siType.ToString() == "TileSand" || si.siType.ToString() == "TileWater" || si.siType.ToString() == "TileTree")
            {
                InventoryScript.MyInstance.tilesDesbloqueoBotones();
                EditorScript.MyInstance.AgregarLinea();
            }
            else if (si.siType.ToString() == "FinSi")
            {
                EditorScript.MyInstance.siCompleto = true;
                InventoryScript.MyInstance.finSiDesbloq();
                EditorScript.MyInstance.AgregarLinea();
            }
            else if (si.siType.ToString() == "FinSino")
            {
                EditorScript.MyInstance.sinoCompleto = true;
                InventoryScript.MyInstance.finSinoDesbloq();
                EditorScript.MyInstance.AgregarLinea();
            }
            else if (si.siType.ToString() == "Sino")
            {
                EditorScript.MyInstance.sinoCompleto = false;
                InventoryScript.MyInstance.siBloqueoInicial();
                InventoryScript.MyInstance.SinoDesbloq();
                EditorScript.MyInstance.AgregarLinea();
            }



            item     = (Si)actUsable;
            MiUsable = actUsable;

            //EditorScript.MyInstance.AgregarAct();
            EditorScript.MyInstance.MyItems.Add(item);
            SetUseable(actUsable);
        }
    }
Exemplo n.º 18
0
        public void UseItem(IUseable <IEffect> item)
        {
            IEffect eff = item.Use();

            StatsManager.ApplyEffect(eff);
        }
Exemplo n.º 19
0
	private void setSelectedAction(IUseable usable){
		Debug.Log ("Action: " + usable.getName());
		selectedAction = usable;
	}
Exemplo n.º 20
0
 void SkillClicked(IUseable currentSkill, Actor currentActor)
 {
     boardManager.inputFSM.SwitchState(new AbilityInUseState(boardManager, currentActor, boardManager.pathfinding.GetTileNode(currentActor.GetPosX(), currentActor.GetPosY()), currentSkill));
     ClearSkillListeners();
 }
Exemplo n.º 21
0
 /**
  * Attack: [actor, target]
  *     Skill:  [actor, target(optional)]
  *     Change: Not an Action, just a menu option
  *     Guard:  [actor]
  *     Item:   [actor, target, item]
  *     Escape: [actor]
  */
 public void attack(Unit target, IUseable useable)
 {
 }
Exemplo n.º 22
0
    public AbilityInUseState(BoardManager boardManager, Actor currentActo, TileNode startNode, IUseable currentSkil, Combat c = null)
        : base(boardManager)
    {
        this.currentSkill = currentSkil;

        selection         = boardManager.tileSelection;
        selector          = boardManager.Selector;
        pathfinding       = boardManager.pathfinding;
        this.currentActor = currentActo;
        this.label        = boardManager.ui.SkillInUseName;

        previewManager = boardManager.ui.previewmanager;
        combat         = c;
        this.startNode = startNode;
    }
Exemplo n.º 23
0
 public void escape(Unit target, IUseable usable)
 {
 }
Exemplo n.º 24
0
 public void Prepare(IUseable abilityToPrepare) => AbilityToUse = abilityToPrepare;
Exemplo n.º 25
0
 public void guard(Unit target, IUseable usable)
 {
 }
Exemplo n.º 26
0
 public void SetUseable(ActionButton btn, IUseable useable)
 {
     btn.MyButton.image.sprite = useable.MyIcon;
     btn.MyButton.image.color  = Color.white;
     btn.MyUseable             = useable;
 }
Exemplo n.º 27
0
 public void useItem(Unit target, IUseable item)
 {
 }
Exemplo n.º 28
0
 public void useSkill(Unit target, IUseable skill)
 {
 }
    public static void MoveTo(IUseable useable, Action callback = null)
    {
        Action action = callback ?? (() => useable.Use());

        StartWalking(useable.PlayerStandPosition, action).Start();
    }