void OnTriggerStay2D(Collider2D collider2D) { if (collider2D.CompareTag(Tags.RepairableObject)) { currentObjectToRepair = collider2D.GetComponent <RepairableObject>(); } }
public ShipState GetShipState() { ShipState shipState; shipState.repairableObjectCount = 0; shipState.repairableObjectDestroyedCount = 0; shipState.repairableObjectMidLifeCount = 0; shipState.repairableObjectFullLifeCount = 0; for (int i = 0; i < objectsList.list.Count; i++) { shipState.repairableObjectCount++; RepairableObject repairableObject = objectsList.list[i]; if (repairableObject.IsDestoyed()) { ++shipState.repairableObjectDestroyedCount; } else if (repairableObject.IsAtFullHealth()) { ++shipState.repairableObjectFullLifeCount; } else { ++shipState.repairableObjectMidLifeCount; } } return(shipState); }
//Busca el objetivo destruible más cercano void GetRepairableTargetForPatrol() { GameObject farestTarget = RepairableManager.repairableManagerInstance.GetFarestObjectInFloor(transform.position); if (farestTarget != null) { target = farestTarget.GetComponent <RepairableObject>(); } }
//Busca el objetivo destruible más cercano void GetRepairableTarget() { GameObject closestTarget = RepairableManager.repairableManagerInstance.GetClosestObjectInFloor(transform.position); if (closestTarget != null) { target = closestTarget.GetComponent <RepairableObject>(); } }
private void Start() { // Get random from availables selectedObject = Instantiate(availableObjects[Random.Range(0, availableObjects.Count)]); selectedObject.transform.position = transform.position; selectedObject.transform.parent = this.transform; manager.RepairObjectCount++; selectedObject.manager = manager; }
/// <summary> /// Handle when a room is destroyed by reducing health, unsubbing from that room, and reducing the rooms drain /// </summary> /// <param name="damage"></param> /// <param name="rObject"></param> private void HandleRoomDestroyed(float damage, float originalDrain, RepairableObject rObject) { rObject.PartBroken -= AccumulateDrain; rObject.PartRepaired -= RemoveDrain; rObject.HealShip -= IncreaseHealthAndScore; ReduceHealth(damage); //quarter the drain for balance, rounding up RemoveDrain(Mathf.CeilToInt(originalDrain / 4)); }
public void setObjectToRepair(RepairableObject newObject) { objectToRepair = newObject; objectSprite.sprite = objectToRepair.images[0]; text.text = "<color=#18247C>" + objectToRepair.name + "</color>"; currentLetter = 0; count = newObject.name.Length; blockInput = false; textTween.restart(); }
public RepairSet CreateRepairSetLocal() { int difficulty = DifficultyManager.Singleton.Difficulty; //Instantiate repairset GameObject rsObject = Instantiate(repairSetPrefab, repairSetHolder); RepairSet repairSet = rsObject.GetComponent <RepairSet>(); //Instantiate repairable object GameObject repairable = Instantiate(repairablePrefabs[Random.Range(0, repairablePrefabs.Length)], rsObject.transform); RepairableObject repairableObject = repairable.GetComponent <RepairableObject>(); //Instantiate components int nComponents = componentsPerLevel[difficulty]; SocketComponent[] components = new SocketComponent[nComponents]; GameObject[] prefabSelection = Utils.RandomSelection <GameObject>(componentPrefabs, nComponents); for (int i = 0; i < nComponents; ++i) { GameObject g = Instantiate(prefabSelection[i], rsObject.transform); components[i] = g.GetComponent <SocketComponent>(); //Place components in a circle around the repairable g.transform.localPosition = Quaternion.Euler(0f, 360 * i / nComponents, 0f) * (Vector3.left * componentRadius) + Vector3.up * .3f; } //Instantiate sockets int nSockets = socketsPerLevel[difficulty]; Socket[] sockets = new Socket[nSockets]; prefabSelection = Utils.RandomSelection <GameObject>(socketPrefabs, nSockets); string instructions = ""; for (int i = 0; i < nSockets; ++i) { GameObject g = Instantiate(prefabSelection[i]); sockets[i] = g.GetComponent <Socket>(); sockets[i].CorrectComponent = components[i].componentType; string ComponentString = LanguageManager.Singleton.components.TranslateToAlien(components[i].componentType); string SocketString = LanguageManager.Singleton.sockets.TranslateToAlien(sockets[i].SocketType); instructions += ComponentString + " -> " + SocketString + "\n"; } TextBoxController.ChangeText(instructions); //Attach sockets repairableObject.AddRandomSockets(sockets); //Set references repairSet.SetReferences(repairableObject, sockets, components); return(repairSet); }
public void RemoveFromList(RepairableObject repairableObject) { if (list == null) { list = new List <RepairableObject>(); } if (list.Contains(repairableObject)) { list.Remove(repairableObject); } }
public void AddToList(RepairableObject repairableObject) { if (list == null) { list = new List <RepairableObject>(); } if (!list.Contains(repairableObject)) { list.Add(repairableObject); } }
void OnTriggerExit2D(Collider2D collider2D) { if (collider2D.CompareTag(Tags.Ladder)) { bIsInsideStairCollider = false; } if (collider2D.CompareTag(Tags.RepairableObject)) { currentObjectToRepair = null; } }
public override bool Diposide(PickableObject pickableObject) { if (ownPickableObject == null) { RepairableObject repairableObject = (RepairableObject)pickableObject; if (repairableObject) { FMODUnity.RuntimeManager.PlayOneShot(diagEvent, transform.position); ownPickableObject = pickableObject; ownPickableObject.transform.SetParent(transform); PrintRecipe(pickableObject); return(true); } } return(false); }
void OnTriggerEnter2D(Collider2D collider2D) { if (collider2D.CompareTag(Tags.Ladder)) { bIsInsideStairCollider = true; } if (collider2D.CompareTag(Tags.RepairableObject)) { currentObjectToRepair = collider2D.GetComponent <RepairableObject>(); } if (collider2D.CompareTag(Tags.EnemySword)) { TakeDamage(); } }
public override bool Diposide(PickableObject pickableObject) { repairableObject = (RepairableObject)pickableObject; if (repairableObject) { ownPickableObject = pickableObject; FMODUnity.RuntimeManager.PlayOneShot(pickableObject.eventdrop, transform.position); GameManager.Instance.State[(int)repairableObject.state]++; repairableObject.transform.SetParent(transform); //Destroy(pickableObject.gameObject); return(true); } return(false); }
private void Start() { for (int i = 0; i < possibleAttackPositions.Length; i++) { Collider[] damagedObjects = Physics.OverlapSphere(possibleAttackPositions[i].worldPositon, explosionRadius, interactableLayerMask); foreach (Collider damageableObject in damagedObjects) { RepairableObject newRepairable = damageableObject.GetComponent <RepairableObject>(); if (newRepairable != null) { possibleAttackPositions[i].repairables.Add(newRepairable); } } //Debug.Log("I :" + i); for (int j = 0; j < Grid.instance.gridSizeX; j++) { //Debug.Log("J :" +j); for (int k = 0; k < Grid.instance.gridSizeY; k++) { //Debug.Log("K :" +k); if ((Vector3.Distance(Grid.instance.grid[j, k].worldPosition, possibleAttackPositions[i].worldPositon) <= explosionRadius)) { if (Grid.instance.grid[j, k].isFlamable) { possibleAttackPositions[i].nodes.Add(Grid.instance.grid[j, k]); } } } } } //shipCurrenHealth = shipMaxHealth; StartCoroutine("eventSystem"); AdjustUI(); }
public void SetReferences(RepairableObject rep, Socket[] soc, SocketComponent[] com) { repairable = rep; sockets = soc; components = com; }
public void SetCurrentRepairableObject(RepairableObject r) { curRepairableObject = r; }