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; } } } }
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; } } } }
/// <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; }
/// <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); }
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); }
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); }
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); }
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); } }
//액션바에 저장 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(); }
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); } }
public void UseItem(IUseable <IEffect> item) { IEffect eff = item.Use(); StatsManager.ApplyEffect(eff); }
private void setSelectedAction(IUseable usable){ Debug.Log ("Action: " + usable.getName()); selectedAction = usable; }
void SkillClicked(IUseable currentSkill, Actor currentActor) { boardManager.inputFSM.SwitchState(new AbilityInUseState(boardManager, currentActor, boardManager.pathfinding.GetTileNode(currentActor.GetPosX(), currentActor.GetPosY()), currentSkill)); ClearSkillListeners(); }
/** * 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) { }
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; }
public void escape(Unit target, IUseable usable) { }
public void Prepare(IUseable abilityToPrepare) => AbilityToUse = abilityToPrepare;
public void guard(Unit target, IUseable usable) { }
public void SetUseable(ActionButton btn, IUseable useable) { btn.MyButton.image.sprite = useable.MyIcon; btn.MyButton.image.color = Color.white; btn.MyUseable = useable; }
public void useItem(Unit target, IUseable item) { }
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(); }