Exemplo n.º 1
0
        public void AddParts(Parts newPart)
        {
            newPart.RegesterEvents(OnPartChangeEvent, OnPartRemoveEvent, GetPartAtPosition);

            if (newPart.AssignedPos == false)
            {
                newPart.AssignPosition(BuildShip(newPart));
            }
            SetPartToPosition(newPart);

            _createVisuels(newPart);
            _shipParts.Add(newPart);

            RecalculateShipStats();
        }
Exemplo n.º 2
0
    public void CreateTestShip(bool isPlayer)
    {
        if (isPlayer == true && currentPlayerShip != null)
        {
            Destroy(currentPlayerShip);
        }

        GameObject currentShip = (GameObject)Instantiate(shipPrefab, Vector3.zero, Quaternion.identity);

        if (isPlayer)
        {
            currentPlayerShip = currentShip;
        }
        else
        {
            currentShip.transform.position = new Vector2(Random.Range(-100, 100), Random.Range(-100, 100));
            currentShip.transform.rotation = Quaternion.Euler(0, 0, Random.Range(0, 360));
        }

        ShipManager newShipManager = currentShip.GetComponent <ShipManager>();

        List <ShipData.Parts> newShipParts = new List <ShipData.Parts>();

        //add a shield
        ShipData.Parts shield = new ShipData.Parts(10, ShipData.Parts.partTypes.shield, 10, 100);
        shield.AssignPosition(new ShipData.intPos2(0, 0));
        newShipParts.Add(shield);

        //add an engine (south)
        ShipData.Parts engine = new ShipData.Parts(10, ShipData.Parts.partTypes.engine, 10, 100);
        engine.AssignPosition(new ShipData.intPos2(0, -1));
        newShipParts.Add(engine);

        //add a gun (north)
        ShipData.Parts weapon = new ShipData.Parts(10, ShipData.Parts.partTypes.weapon, 10, 100);
        weapon.AssignPosition(new ShipData.intPos2(0, 1));
        newShipParts.Add(weapon);

        newShipManager.SetupShip(isPlayer, newShipParts);
    }