void Check(Activatable target, float biasAngle) { if (biasAngle < currentBiasAngle) { current = target; currentBiasAngle = biasAngle; } }
private void LocateDirectSightActivatable() { if (unit.eye.underSight != null) { var activatable = unit.eye.underSight.GetComponent<Activatable>(); if (activatable != null) { if (unit.eye.distance < activatable.EffectiveMaxDistance(this)) { current = activatable; } } } }
private void UpdateGUI(Activatable activatable, bool canCallHome) => gui.UpdateGUI(activatable, canCallHome, this);
// Update is called once per frame void Update() { if (!UI.Instance.PausedStatus && (!CraftingTable.Instance || !CraftingTable.Instance.Menu.activeInHierarchy) && !endScreen.activeInHierarchy) { mouseLook(); doMovement(); //if there is a grabbable item and the inventory is not full, then E picks up item if (Input.GetKeyDown(KeyCode.E) && !Upgrades.Instance.upgradeMenu.activeInHierarchy) { if (thingsToActivate.Count > 0) { thingToActivate = thingsToActivate[0]; if (thingToActivate is WorldItem && inventory.IsFull()) { thingsToActivate.Remove(thingToActivate); thingsToActivate.Add(thingToActivate); } else if (!(thingToActivate is CraftingTable)) { //Debug.Log(thingToActivate.name + "activated, removing from reachable activatables"); thingsToActivate.Remove(thingToActivate); } thingToActivate.Activate(); thingToActivate = null; //if(thingToActivateTwo) //{ // thingToActivate = thingToActivateTwo; // thingToActivateTwo = null; //} //thingToActivate = null; } } //uses currently selected item if (Input.GetMouseButtonDown(0) && inventory.selectedItem != null && !Upgrades.Instance.upgradeMenu.activeInHierarchy) { switch (inventory.selectedItem.itemData.itemType) { case ItemType.MeleeWeapon: meleeAttack(); break; case ItemType.RangedWeapon: rangedAttack(); break; case ItemType.Heal: if (Health < maxHealth) { heal(); inventory.RemoveItem(inventory.selectedItem); } break; case ItemType.UnstableStim: if (!usingStimmy) { StartCoroutine(UnstableStimmy()); inventory.RemoveItem(inventory.selectedItem); } break; default: break; } } //drops currently selected item on the ground at the player's feet if (Input.GetKeyDown(KeyCode.Q) && inventory.selectedItem != null && !inventory.selectedItem.itemData.reloading) { inventory.DropItem(); } if (Input.GetKeyDown(KeyCode.R) && inventory.selectedItem != null && inventory.selectedItem.itemData.itemType == ItemType.RangedWeapon && !inventory.selectedItem.itemData.reloading && inventory.selectedItem.itemData.loadedAmmo < inventory.selectedItem.itemData.magSize) { reload(); } #if UNITY_EDITOR //for testing damage and healing if (Input.GetKeyDown(KeyCode.Delete)) { TakeDamage(1); } else if (Input.GetKeyDown(KeyCode.T)) { Debug.Log("Reseting Player Save..."); inventory.Clear(); SetStatsToBase(); InventoryUI.Instance.ResetSlots(); SavePlayer(); InventoryUI.Instance.RefreshUI(); } else if (Input.GetKeyDown(KeyCode.DownArrow)) { Debug.Log("Trying To Save..."); SavePlayer(); } else if (Input.GetKeyDown(KeyCode.UpArrow)) { Debug.Log("Trying To Load..."); LoadPlayer(); } else if (Input.GetKeyDown(KeyCode.Comma) && inventory.selectedItem != null && inventory.selectedItem.itemData.itemType == ItemType.RangedWeapon) { inventory.selectedItem.itemData.hasLaserSight = true; laserLine.gameObject.SetActive(true); } #endif } //if(meleeVisual.activeInHierarchy) //{ // meleeVisual.transform.position = _mainTransform.position + (_mainTransform.forward * inventory.selectedItem.itemData.meleeRange); //} }
void Update() { variate = !variate; deathTimer -= Time.deltaTime; timedUncontrollable -= Time.deltaTime; dashTime -= Time.deltaTime; meleeTime -= Time.deltaTime; animationOverride -= Time.deltaTime; timedInvulnerable -= Time.deltaTime; curA *= 0.95f; if (curA < 0.05f) { if (cr.gameObject.activeSelf) { cr.gameObject.SetActive(false); } } else if (cr.gameObject.activeSelf) { cr.SetAlpha(Mathf.Min(curA, 1)); } else { cr.gameObject.SetActive(true); } if (deathTimer <= 0f) { respawn(); } if (noUpdate) { return; } if (!shadow) { genShadow(); } else { if (shadow.GetComponent <SpriteRenderer>().sprite != sr.sprite) { genShadow(); } shadow.GetComponent <SpriteRenderer>().flipX = sr.flipX; } if (fallTime <= deathFallTime) { fallTime -= Time.deltaTime; gameObject.layer = noclipLayer; pysc.gravityScale = 7f; gameObject.layer = dashLayer; if (fallTime <= 0f) { kill(); } transform.position = new Vector3(transform.position.x, transform.position.y, (transform.position.y + autoOrderOffset) / 100f); return; } if (light.barPercent <= 0f) { kill(); return; } Vector2 redirect = Vector2.right; feetPos = pysc.position + cc.offset; armPos = pysc.position + (Vector2)(fireArm.transform.localPosition); if (isDashing = dashPos.sqrMagnitude > 0.1f) { gameObject.layer = dashLayer; if (shadow.activeSelf && overAir) { shadow.SetActive(false); } } else { gameObject.layer = playerLayer; if (!shadow.activeSelf && overAir) { shadow.SetActive(true); } } float closestA = float.PositiveInfinity; Activatable aInRange = null; foreach (RaycastHit2D rh in Physics2D.CircleCastAll(feetPos, 0.5f, Vector2.down, 0f)) { if (rh.collider.isTrigger) { if (!isDashing && rh.collider.gameObject.GetComponent <Air>()) { fallTime = deathFallTime; if (Mathf.Abs(lastInput.x) >= Mathf.Abs(lastInput.y)) { ani.Play(lastInput.x > 0 ? "RightFall" : "LeftFall", 0); } else { ani.Play(lastInput.y > 0 ? "UpFall" : "DownFall", 0); } return; } else if (rh.collider.gameObject.GetComponent <Activatable>() && rh.distance < closestA) { closestA = rh.distance; aInRange = rh.collider.gameObject.GetComponent <Activatable>(); } if (rh.collider.gameObject.GetComponent <MovementRedirect>()) { redirect = rh.collider.gameObject.GetComponent <MovementRedirect>().dir; } } } if (timedUncontrollable < 0f) { if (controllable) { Vector2 input = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical")); Vector2 rPosFromArm = ((Vector2)(Camera.main.ScreenToWorldPoint(Input.mousePosition)) - armPos).normalized; if (animationOverride <= 0f) { rooted = false; } if (!isDashing) { if (input.sqrMagnitude != 0f && animationOverride <= 0f && !arrowLoaded) { comboCount = 0; rooted = false; lastInput = input; input = input.normalized; input = redirect * input.x + new Vector2(-redirect.y, redirect.x) * input.y; pysc.AddForce((input * charSpeed - pysc.velocity) * pysc.mass, ForceMode2D.Impulse); if (Mathf.Abs(input.x) >= Mathf.Abs(input.y)) { ani.Play(input.x > 0 ? "RightWalk" : "LeftWalk", 0); } else { ani.Play(input.y > 0 ? "UpWalk" : "DownWalk", 0); } } else { brake(); if (!(rooted || arrowLoaded)) { playIdleAnimation(); } } if (Input.GetKeyDown(Settings.keys[Settings.player, Settings.dash]) && !arrowLoaded && dashTime <= 0f) { comboCount = 0; float closest = dashDist; lastInput = rPosFromArm; overAir = false; foreach (RaycastHit2D rh in Physics2D.RaycastAll(feetPos, rPosFromArm, dashDist)) { if (!rh.collider.isTrigger && rh.distance < closest && !(rh.collider.attachedRigidbody && rh.collider.attachedRigidbody.gameObject == gameObject) && rh.collider.gameObject != gameObject) { closest = rh.distance; } if (!overAir && rh.collider.gameObject.GetComponent <Air>()) { overAir = true; } } dashPos = rPosFromArm * closest; if (Mathf.Abs(dashPos.x) > Mathf.Abs(dashPos.y)) { ani.Play(overAir ? dashPos.x > 0 ? "RightDash" : "LeftDash" : dashPos.x > 0 ? "RightRoll" : "LeftRoll", 0); } else { ani.Play(overAir ? dashPos.y > 0 ? "UpDash" : "DownDash" : dashPos.y > 0 ? "UpRoll" : "DownRoll", 0); } dashTime = dashCoolDown; SoundManager.script.playOnListener(SoundManager.script.dash, 0.7f); } if (!arrowLoaded && Input.GetMouseButtonDown(0)) { comboCount++; } if ((light.barPercent > arrowCost || !usingLight) && Input.GetMouseButtonDown(1) && canAfford(arrowCost)) { arrowLoaded = true; comboCount = 0; handAni.Play("boxWindUp", 0); SoundManager.script.playOnListener(SoundManager.script.bowDraw); } if (arrowLoaded && Input.GetMouseButton(1)) { arrowTime += Time.deltaTime; if (Input.GetKeyDown(Settings.keys[Settings.player, Settings.cancel])) { arrowLoaded = false; handAni.Play("NoAnimation", 0); arrowTime = 0f; arrowLoaded = false; } fireArm.transform.localRotation = Quaternion.LookRotation(Vector3.forward, -rPosFromArm); if (Mathf.Abs(rPosFromArm.x) > Mathf.Abs(rPosFromArm.y)) { ani.Play(rPosFromArm.x < 0 ? "LeftFireState" : "RightFireState", 0); if (fireHand.transform.localPosition.z != 0.01f) { fireArm.transform.localPosition = new Vector3(fireArm.transform.localPosition.x, fireArm.transform.localPosition.y, 0.0001f); } } else if (rPosFromArm.y > 0) { ani.Play("UpFireState", 0); if (fireHand.transform.localPosition.z != 0.01f) { fireArm.transform.localPosition = new Vector3(fireArm.transform.localPosition.x, fireArm.transform.localPosition.y, 0.0001f); } } else if (fireHand.transform.localPosition.z != -0.01f) { ani.Play("DownFireState", 0); fireArm.transform.localPosition = new Vector3(fireArm.transform.localPosition.x, fireArm.transform.localPosition.y, -0.0001f); } } else { if (arrowTime >= arrowWindUp) { fire(rPosFromArm); } handAni.Play("NoAnimation", 0); arrowTime = 0f; arrowLoaded = false; } if (!arrowLoaded && meleeTime <= 0f && comboCount > 0) { comboCount--; BasicEnemy be = null; foreach (RaycastHit2D rh in Physics2D.CircleCastAll(pysc.position, meleeRadius, Vector2.down, 0f)) { if (!rh.collider.isTrigger && (be = rh.collider.gameObject.GetComponent <BasicEnemy>()) && Vector2.Dot((rh.point - pysc.position).normalized, rPosFromArm) >= meleeField) { be.damage((int)(meleeDamage / diff), BasicEnemy.MELEE_DAMAGE); corrupt(meleeDamage); SoundManager.script.playOnListener(variate ? SoundManager.script.enemyHit1 : SoundManager.script.enemyHit2, 0.8f); } } SoundManager.script.playOnListener(variate ? SoundManager.script.sword1 : SoundManager.script.sword2, 0.8f); meleeTime = meleeCoolDown; rooted = true; animationOverride = meleeCoolDown; if (Mathf.Abs(rPosFromArm.x) >= Mathf.Abs(rPosFromArm.y)) { if (variate) { ani.Play(rPosFromArm.x > 0 ? "RightAttack1" : "LeftAttack1", 0, 0); } else { ani.Play(rPosFromArm.x > 0 ? "RightAttack2" : "LeftAttack2", 0, 0); } } else if (variate) { ani.Play(rPosFromArm.y > 0 ? "UpAttack" : "DownAttack", 0, 0); } else { ani.Play(rPosFromArm.y > 0 ? "UpAttack2" : "DownAttack2", 0, 0); } lastInput = rPosFromArm; pysc.AddForce(rPosFromArm * meleeAdv); } } else { brake(); } if (Input.GetKeyDown(Settings.keys[Settings.player, Settings.use])) { if (aInRange && aInRange.playerActivatable) { aInRange.activate(this); } else { SoundManager.script.playOnListener(SoundManager.script.lightSwitch, 1f); usingLight = !usingLight; gem.isLight = usingLight; (usingLight ? lightP : darkP).GetComponent <ParticleSystem>().Play(); } } } else { playIdleAnimation(); brake(); } } if ((lastJuicePosition - pysc.position).sqrMagnitude >= sqrUnitPerSound) { lastJuicePosition = pysc.position; if (!isDashing && fallTime > deathFallTime) { SoundManager.script.playOnListener(variate ? SoundManager.script.step1 : SoundManager.script.step2, 0.8f); } } transform.position = new Vector3(transform.position.x, transform.position.y, (transform.position.y + autoOrderOffset) / 100f); }
public PayActionCost(Activatable act, AbilityType m) { MyActivatable = act; Mode = m; }
}//einde move public void CheckForActivables()// om de player een lever of slider te laten activeren (algemeen, om EEN activatable te activeren) { //gaan terug het gridje waar hij opstaat selecteren en overlopen om te zien of er een activatable op staat. Dan kunnen we die ook activeren. //een nieuw gridje aanmaken voor de ruimte van de player Block[,] gridPlayerSpace = GameController.CurrentLevel.GetPartOfGrid(Position,//enkel de ruimte van de player, dus kunnen gewoon de properties gebruiken van player (origineel van entity) Width, Height); //lijst om alle entities die hij vindt in het grid in te steken List <Entity> listEntitiesInGrid = new List <Entity>(); //we gaan nu het gridje doorlopen en de entities in de lijst van entities steken foreach (Block tempBlock in gridPlayerSpace) { foreach (Entity entitieOnBlock in tempBlock.Entities) //lijst van entities die op de Block die we nu aan het bekijken zijn staan, .Entities komt uit Block { bool isAlreadyAddedToEntityList = false; //voorlopig op false zetten foreach (Entity entityInList in listEntitiesInGrid) { if (entityInList == entitieOnBlock) //entity('s) op block gaan checken of die al in de lijst van entities zit (geen 2 keer dezelfde) { isAlreadyAddedToEntityList = true; //zit er al in, dus moet niet meer worden toegevoegd } }//einde foreach, nu weten we welke entities er al in zitten en welke niet //(dit moet buiten de foreach staan want anders gaat hij voor elk item waar het niet mee overeen komt toevoegen, bv bolletje = bolletje checken--> niet toevoegen, bolletje = driehoekje checken --> nee, toevoegen, bolletje = vierkantje checken --> nee, toevoegen (bollejte zit er nu al 3 keer in, niet de bedoeling)) //nu voegen we ook echt die entities toe aan de list if (!isAlreadyAddedToEntityList) //als hij er nog NIET in zit, toevoegen { listEntitiesInGrid.Add(entitieOnBlock); //de entity op de block die we aan het checken zijn, toevoegen aan de lijst van entities die zich op dat grid van de player bevinden } //nu zitten er in de list van entities alle entities die zich bevinden in ons grid van de player } //einde per block alle entities na checken } //einde alle blocken na checken //nu gaan checken of er ergens een activatable in zit en die ook activaten foreach (Entity tempEntityInGrid in listEntitiesInGrid) //we overlopen de (wss 2) elementen die in de lijst zitten { if (tempEntityInGrid is Activatable) //als er de entity een activatable is, moeten we hem casten zodat we hem kunnen activeren (een entity.Activate gaat niet) { Activatable activatableInGrid = (Activatable)tempEntityInGrid; activatableInGrid.Activate(); } } } //einde CheckActivatables
protected virtual void AddActivatable(Activatable activatable) { activatableObjects.Add(activatable); }
protected override void ActivateEnd(Activatable activatable, bool recall = true) { base.ActivateEnd(activatable, recall); }
void Start() { activatable = gameObject.GetComponent <Activatable>(); inputMgr = GameManager.Inst().GetComponent <InputManager>(); }
void Reset() { current = null; currentBiasAngle = float.PositiveInfinity; }
void Awake() { activatable = GetComponentInChildren<Activatable>(); meshRenderer = GetComponentInChildren<MeshRenderer>(); }
protected virtual void ActivateStart(Activatable activatable) { Debug.Log("Process Started Sent"); }
private void Start() { activatable = gameObject.GetComponent <Activatable>(); }
// Use this for initialization void Start() { switchScript = assignedSwitch.GetComponent<Activatable>(); currentlyActivated = activated; if(currentlyActivated) Activate(); }
private void OnCollisionExit2D(Collision2D collision) { standingOver = null; }
public Choice(string choiceText, Activatable choiceActivatable) { this.choiceText = choiceText; this.activatable = choiceActivatable; }
public void SetTooltip(Activatable tooltipObject, string frame) { if (tooltipObject == null && frame != frameName) return; tooltipToDraw = tooltipObject; frameName = frame; }
public void Populate(Choice choice) { choiceText.text = choice.choiceText; activatable = choice.activatable; }