Example #1
0
 void OnTriggerStay2D(Collider2D collider2D)
 {
     if (collider2D.CompareTag(Tags.RepairableObject))
     {
         currentObjectToRepair = collider2D.GetComponent <RepairableObject>();
     }
 }
Example #2
0
    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);
    }
Example #3
0
    //Busca el objetivo destruible más cercano
    void GetRepairableTargetForPatrol()
    {
        GameObject farestTarget = RepairableManager.repairableManagerInstance.GetFarestObjectInFloor(transform.position);

        if (farestTarget != null)
        {
            target = farestTarget.GetComponent <RepairableObject>();
        }
    }
Example #4
0
    //Busca el objetivo destruible más cercano
    void GetRepairableTarget()
    {
        GameObject closestTarget = RepairableManager.repairableManagerInstance.GetClosestObjectInFloor(transform.position);

        if (closestTarget != null)
        {
            target = closestTarget.GetComponent <RepairableObject>();
        }
    }
Example #5
0
 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;
 }
Example #6
0
 /// <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));
 }
Example #7
0
 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();
 }
Example #8
0
    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);
    }
Example #9
0
    public void RemoveFromList(RepairableObject repairableObject)
    {
        if (list == null)
        {
            list = new List <RepairableObject>();
        }

        if (list.Contains(repairableObject))
        {
            list.Remove(repairableObject);
        }
    }
Example #10
0
    public void AddToList(RepairableObject repairableObject)
    {
        if (list == null)
        {
            list = new List <RepairableObject>();
        }

        if (!list.Contains(repairableObject))
        {
            list.Add(repairableObject);
        }
    }
Example #11
0
    void OnTriggerExit2D(Collider2D collider2D)
    {
        if (collider2D.CompareTag(Tags.Ladder))
        {
            bIsInsideStairCollider = false;
        }

        if (collider2D.CompareTag(Tags.RepairableObject))
        {
            currentObjectToRepair = null;
        }
    }
Example #12
0
 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);
 }
Example #13
0
    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();
        }
    }
Example #14
0
    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);
    }
Example #15
0
    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();
    }
Example #16
0
 public void SetReferences(RepairableObject rep, Socket[] soc, SocketComponent[] com)
 {
     repairable = rep;
     sockets    = soc;
     components = com;
 }
Example #17
0
 public void SetCurrentRepairableObject(RepairableObject r)
 {
     curRepairableObject = r;
 }