예제 #1
0
파일: makePop.cs 프로젝트: weedle/TSSE2016
 // makes necessary changes to the hidden pop-up menu
 public void setUpMenu()
 {
     ShipDefinitions.ShipEntity entityUpdated = gameObject.transform.parent.GetComponent <ShipBasic>().entity;
     print("loaded ship: " + ShipDefinitions.shipToString(entityUpdated));
     entityUpdated = ShipDefinitions.loadShip(entityUpdated.uniqueId);
     popUp.GetComponent <ShipModSlotHandler>().setShip(entityUpdated);
 }
예제 #2
0
    public void OnDrop(PointerEventData eventData)
    {
        Debug.Log("onDrop is called");
        if (!draggedObject)
        {                                               // check if slot has an item already
            GameObject obj = GameObject.Instantiate(dragHandler.draggedObject.gameObject);
            obj.GetComponent <IconHandler>().setNum(1); // check if slot has an item already
            obj.transform.SetParent(transform);
            dragHandler.draggedObject.GetComponent <IconHandler>()
            .decOne();
            ItemAbstract item = ItemDefinitions.stringToItem(
                draggedObject.GetComponent <ItemBasic>().itemString);
            transform.parent.GetComponent <ShipModSlotHandler>().setShipItem(item);
            //dragHandler.draggedObject.transform.SetParent(transform);

            print("obj: " + draggedObject.GetComponent <ItemBasic>().itemString);
            print("item: " + item.getType());
            ShipDefinitions.ShipEntity entity = ShipDefinitions.loadShip(transform.parent.GetComponent <ShipModSlotHandler>().thisEntity.uniqueId);
            print("ship: " + entity.uniqueId);
            print("currentItems: " + ItemDefinitions.itemsToString(entity.items));
            entity.items.Add(item);
            print("newCurrentItems: " + ItemDefinitions.itemsToString(entity.items));
            ShipDefinitions.saveShip(entity);
        }
    }
예제 #3
0
 // if an item is selected, keep track of it
 public void shipSelected(GameObject obj)
 {
     print("selected ship!");
     selectedShip = obj;
     ShipDefinitions.ShipEntity updatedEntity =
         ShipDefinitions.loadShip(obj.GetComponent <ShipBasic>().entity.uniqueId);
     shipInfoHandler.GetComponent <ShipyardInfoViewHandler>()
     .setShipInfo(updatedEntity);
 }
예제 #4
0
    public void Level1Setup()
    {
        PlayerPrefs.SetString("TSSE[Level][Current]", "Level1");

        LevelDefinitions.Level level1 = new LevelDefinitions.Level();
        level1.uniqueId = "Level1";


        List <ShipDefinitions.ShipEntity> enemies = new List <ShipDefinitions.ShipEntity>();

        // Adding default enemies for sake of testing
        ShipDefinitions.ShipEntity enemy1 = new ShipDefinitions.ShipEntity(ShipDefinitions.EngineType.Engine1, ShipDefinitions.WeaponType.Flame,
                                                                           ShipDefinitions.ShipType.Ruby, new List <ItemAbstract>(), ShipDefinitions.Faction.Enemy, "Enemy1");
        ShipDefinitions.ShipEntity enemy2 = new ShipDefinitions.ShipEntity(ShipDefinitions.EngineType.Engine1, ShipDefinitions.WeaponType.Flame,
                                                                           ShipDefinitions.ShipType.Ruby, new List <ItemAbstract>(), ShipDefinitions.Faction.Enemy, "Enemy2");
        ShipDefinitions.ShipEntity enemy3 = new ShipDefinitions.ShipEntity(ShipDefinitions.EngineType.Engine1, ShipDefinitions.WeaponType.Flame,
                                                                           ShipDefinitions.ShipType.Ruby, new List <ItemAbstract>(), ShipDefinitions.Faction.Enemy, "Enemy3");


        ShipDefinitions.ShipEntity enemy4 = new ShipDefinitions.ShipEntity(ShipDefinitions.EngineType.Engine2, ShipDefinitions.WeaponType.Crown,
                                                                           ShipDefinitions.ShipType.Ruby, new List <ItemAbstract>(), ShipDefinitions.Faction.Enemy, "Enemy4");
        ShipDefinitions.ShipEntity enemy5 = new ShipDefinitions.ShipEntity(ShipDefinitions.EngineType.Engine2, ShipDefinitions.WeaponType.Crown,
                                                                           ShipDefinitions.ShipType.Ruby, new List <ItemAbstract>(), ShipDefinitions.Faction.Enemy, "Enemy5");
        ShipDefinitions.ShipEntity enemy6 = new ShipDefinitions.ShipEntity(ShipDefinitions.EngineType.Engine2, ShipDefinitions.WeaponType.Crown,
                                                                           ShipDefinitions.ShipType.Ruby, new List <ItemAbstract>(), ShipDefinitions.Faction.Enemy, "Enemy6");

        enemies.Add(enemy1);
        enemies.Add(enemy2);
        enemies.Add(enemy3);
        enemies.Add(enemy4);
        enemies.Add(enemy5);
        enemies.Add(enemy6);

        level1.ships = enemies;

        level1.shipSpawningTokens           = new Dictionary <string, string>();
        level1.shipSpawningTokens["Enemy1"] = "wave0";
        level1.shipSpawningTokens["Enemy2"] = "wave0";
        level1.shipSpawningTokens["Enemy3"] = "wave0";
        level1.shipSpawningTokens["Enemy4"] = "wave1";
        level1.shipSpawningTokens["Enemy5"] = "wave1";
        level1.shipSpawningTokens["Enemy6"] = "wave1";

        level1.shipSpawningTokens["PlayerShip0"] = "center";
        level1.shipSpawningTokens["PlayerShip1"] = "center";
        level1.shipSpawningTokens["PlayerShip2"] = "center";
        level1.shipSpawningTokens["PlayerShip3"] = "center";
        level1.shipSpawningTokens["PlayerShip4"] = "center";
        level1.shipSpawningTokens["PlayerShip5"] = "center";

        PlayerPrefs.SetString("TSSE[Level][Current]", level1.uniqueId);

        LevelDefinitions.saveLevel(level1);
    }
예제 #5
0
    public void resetShip()
    {
        ShipDefinitions.ShipEntity entity
               = GetComponentInParent <ShipBasic>().entity;
        entity = ShipDefinitions.loadShip(entity.uniqueId);
        entity.items.Clear();
        ShipDefinitions.saveShip(entity);

        // I am so sorry
        GameObject.Find("ship-info-textbox").GetComponent <ShipyardInfoViewHandler>()
        .updateEntity();
    }
예제 #6
0
    public void spawnShip(Vector2 spawningPt, ShipDefinitions.ShipEntity entity)
    {
        GameObject ship;

        if (entity.faction == ShipDefinitions.Faction.Enemy)
        {
            if (entity.shipType == ShipDefinitions.ShipType.Ruby)
            {
                ship = getShipRubyPirate();
            }
            else if (entity.shipType == ShipDefinitions.ShipType.Peacock)
            {
                ship = getShipPeacockPirate();
            }
            else
            {
                return;
            }
        }
        else
        {
            if (entity.shipType == ShipDefinitions.ShipType.Ruby)
            {
                ship = getShipRuby();
            }
            else if (entity.shipType == ShipDefinitions.ShipType.Peacock)
            {
                ship = getShipPeacock();
            }
            else
            {
                return;
            }
        }

        ShipIntf shipIntf = ship.GetComponent <ShipIntf>();

        shipIntf.setEngineType(entity.engType);
        shipIntf.setWeaponType(entity.weapType);
        shipIntf.setShipType(entity.shipType);
        shipIntf.setFaction(entity.faction);

        ship.GetComponent <MainShip>().setItems(entity.items);
        //ship.AddComponent<AIController>();

        spawnShip(spawningPt, ship);
    }
예제 #7
0
    public void setShipInfo(ShipDefinitions.ShipEntity entity)
    {
        thisEntity = entity;
        UnityEngine.UI.Text textThing = transform.GetChild(0).GetComponent <UnityEngine.UI.Text>();
        string info = "Current Ship: " + entity.uniqueId + "\n";

        info += "Ship type: " + entity.shipType.ToString() + "\n";
        info += "Engine type: " + entity.engType.ToString() + "\n";
        info += "Weapon type: " + entity.weapType.ToString() + "\n";
        info += "Items: ";
        if (entity.items != null)
        {
            foreach (ItemAbstract item in entity.items)
            {
                if (item.getType() == "Error")
                {
                    continue;
                }
                info += item.toString() + " ";
            }
        }
        textThing.text = info;
    }
예제 #8
0
    public void setShip(ShipDefinitions.ShipEntity entity)
    {
        print("setting ship");
        //clearItemsInSlots();
        thisEntity = entity;
        setShipImage(entity.shipType);

        /*
         * int index = 0;
         * foreach(ItemAbstract item in entity.items)
         * {
         *  if (item.getType() == "Error")
         *      continue;
         *  print(index + " " + item.toString());
         *  setShipItem(index, item);
         *  GameObject.Find("Inventory").GetComponent<Inventory>()
         *      .removeItem(item);
         *  index++;
         *  if (index > totalSlots)
         *      return;
         * }
         */
    }
예제 #9
0
    // add the ship
    public void addShip(ShipDefinitions.ShipEntity entity)
    {
        print("adding ship: " + entity.uniqueId);
        // We haven't returned earlier, so this must be a new item
        // So, we create a new thing and add to the listview
        // We have an example item in the PrefabHost
        GameObject newShip;

        if (shipyard)
        {
            newShip = GameObject.Find("GameLogic").
                      GetComponent <PrefabHost>().getShipyardDisplayObject();
            newShip.GetComponent <ShipBasic>().entity = entity;
            switch (entity.shipType)
            {
            case ShipDefinitions.ShipType.Ruby:
                newShip.transform.GetChild(1).GetComponent <makePop>().popUp = slotsTwo;
                break;

            case ShipDefinitions.ShipType.Peacock:
                newShip.transform.GetChild(1).GetComponent <makePop>().popUp = slotsFour;
                break;
            }
        }
        else
        {
            newShip = GameObject.Find("GameLogic").
                      GetComponent <PrefabHost>().getShipDisplayObject();
            newShip.GetComponent <ShipBasic>().entity = entity;
        }
        GameObject newEngine = null;


        switch (entity.shipType)
        {
        case ShipDefinitions.ShipType.Ruby:
            newShip.transform.GetChild(0).GetComponent <UnityEngine.UI.Image>()
            .sprite = GameObject.Find("GameLogic").GetComponent <ImageHost>().shipRuby;
            break;

        case ShipDefinitions.ShipType.Peacock:
            newShip.transform.GetChild(0).GetComponent <UnityEngine.UI.Image>()
            .sprite = GameObject.Find("GameLogic").GetComponent <ImageHost>().shipPeacock;
            break;

        case ShipDefinitions.ShipType.None:
            return;
        }

        /*
         * switch(entity.engType)
         * {
         *  case ShipDefinitions.EngineType.Engine1:
         *      newEngine = GameObject.Find("GameLogic").GetComponent<PrefabHost>().getEngine1HD();
         *
         *      newEngine.transform.SetParent(newShip.transform, false);
         *      newEngine.transform.localPosition = new Vector3(184, 80, 0);
         *      newEngine.transform.localScale = new Vector3(100, 100, 0);
         *
         *      newEngine.transform.GetComponent<SpriteRenderer>().enabled = true;
         *      newEngine.transform.GetComponent<Animator>().Play("Active");
         *      break;
         *  case ShipDefinitions.EngineType.Engine2:
         *      newEngine = GameObject.Find("GameLogic").GetComponent<PrefabHost>().getEngine2HD();
         *
         *      newEngine.transform.SetParent(newShip.transform, false);
         *      newEngine.transform.localPosition = new Vector3(184, 47, 0);
         *      newEngine.transform.localScale = new Vector3(100, 100, 0);
         *
         *      newEngine.transform.GetComponent<SpriteRenderer>().enabled = true;
         *      newEngine.transform.GetComponent<Animator>().Play("Active");
         *      break;
         * }
         */
        // Add to listview
        newShip.transform.SetParent(transform.GetChild(0).transform, false);

        // This is so we call itemSelected if we click an item here
        newShip.GetComponent <UnityEngine.UI.Button>()
        .onClick.AddListener(delegate() { shipSelected(newShip); });

        GetComponent <UnityEngine.UI.ScrollRect>().verticalNormalizedPosition = 1;
    }
예제 #10
0
 // reduce quantity if present, otherwise remove item
 public void removeShip(ShipDefinitions.ShipEntity entity)
 {
 }
예제 #11
0
 // reduce quantity, remove from list if none are left
 public void removeShip(ShipDefinitions.ShipEntity entity)
 {
     inventoryDisplay.GetComponent <ShipListHandler>().
     removeShip(entity);
 }
예제 #12
0
 public void addShip(ShipDefinitions.ShipEntity entity)
 {
     shipDisplay.GetComponent <ShipListHandler>().
     addShip(entity);
 }
예제 #13
0
 public void updateEntity()
 {
     thisEntity = ShipDefinitions.loadShip(thisEntity.uniqueId);
     setShipInfo(thisEntity);
 }
예제 #14
0
    // Use this for initialization
    void Start()
    {
        shipInfo = new ShipDefinitions.ShipEntity[6];

        ships    = new GameObject[6];
        ships[0] = ship1;
        ships[1] = ship2;
        ships[2] = ship3;
        ships[3] = ship4;
        ships[4] = ship5;
        ships[5] = ship6;

        weapons    = new GameObject[6];
        weapons[0] = weapon1;
        weapons[1] = weapon2;
        weapons[2] = weapon3;
        weapons[3] = weapon4;
        weapons[4] = weapon5;
        weapons[5] = weapon6;

        engines    = new GameObject[6];
        engines[0] = engine1;
        engines[1] = engine2;
        engines[2] = engine3;
        engines[3] = engine4;
        engines[4] = engine5;
        engines[5] = engine6;

        // initialize info
        for (int i = 0; i < 6; i++)
        {
            ShipDefinitions.ShipEntity entity = new ShipDefinitions.ShipEntity();
            entity.engType  = ShipDefinitions.EngineType.None;
            entity.weapType = ShipDefinitions.WeaponType.None;
            entity.shipType = ShipDefinitions.ShipType.None;
            entity.faction  = ShipDefinitions.Faction.PlayerAffil;
            entity.uniqueId = "PlayerShip" + i.ToString();
            entity.items    = new List <ItemAbstract>();
            shipInfo[i]     = entity;
        }

        shipInfo[0].items.Add(ItemAbstract.newItem(WeaponItem.WeaponType.CrownModAmmoCap, 1));

        // add listener so we change current selected ship
        // when the dropdown changes
        dropdown.onValueChanged.AddListener(delegate {
            handleDropDownChange(dropdown);
        });

        // add moar listeners
        addButtonListener(shipButton1);
        addButtonListener(shipButton2);
        addButtonListener(crownButton);
        addButtonListener(laserButton);
        addButtonListener(missileButton);
        addButtonListener(flameButton);
        addButtonListener(engineButton1);
        addButtonListener(engineButton2);

        // start with all buttons unhighlighted
        // (nothing equipped)
        unhighlightButton(shipButton1);
        unhighlightButton(shipButton2);
        unhighlightButton(crownButton);
        unhighlightButton(laserButton);
        unhighlightButton(missileButton);
        unhighlightButton(flameButton);

        // add listener
        buttonContinue.onClick.AddListener(delegate
        {
            tryToContinue(buttonContinue);
        });
    }
예제 #15
0
    // react on dropdown change
    // to show current equipped things on that ship
    void handleDropDownChange(UnityEngine.UI.Dropdown dropdownTarget)
    {
        selectedShip = dropdownTarget.value;

        ShipDefinitions.ShipEntity selectInfo = shipInfo[dropdownTarget.value];
        if (selectInfo.shipType != ShipDefinitions.ShipType.Peacock)
        {
            unhighlightButton(
                GameObject.Find("buttonShipLvl2")
                .GetComponent <UnityEngine.UI.Button>());
        }
        else
        {
            highlightButton(
                GameObject.Find("buttonShipLvl2")
                .GetComponent <UnityEngine.UI.Button>());
        }

        if (selectInfo.shipType != ShipDefinitions.ShipType.Ruby)
        {
            unhighlightButton(
                GameObject.Find("buttonShipLvl1")
                .GetComponent <UnityEngine.UI.Button>());
        }
        else
        {
            highlightButton(
                GameObject.Find("buttonShipLvl1")
                .GetComponent <UnityEngine.UI.Button>());
        }

        if (selectInfo.engType != ShipDefinitions.EngineType.Engine2)
        {
            unhighlightButton(
                GameObject.Find("buttonEngineLvl2")
                .GetComponent <UnityEngine.UI.Button>());
        }
        else
        {
            highlightButton(
                GameObject.Find("buttonEngineLvl2")
                .GetComponent <UnityEngine.UI.Button>());
        }

        if (selectInfo.engType != ShipDefinitions.EngineType.Engine1)
        {
            unhighlightButton(
                GameObject.Find("buttonEngineLvl1")
                .GetComponent <UnityEngine.UI.Button>());
        }
        else
        {
            highlightButton(
                GameObject.Find("buttonEngineLvl1")
                .GetComponent <UnityEngine.UI.Button>());
        }

        if (selectInfo.weapType != ShipDefinitions.WeaponType.Crown)
        {
            unhighlightButton(
                GameObject.Find("buttonCrown")
                .GetComponent <UnityEngine.UI.Button>());
        }
        else
        {
            highlightButton(
                GameObject.Find("buttonCrown")
                .GetComponent <UnityEngine.UI.Button>());
        }

        if (selectInfo.weapType != ShipDefinitions.WeaponType.Missile)
        {
            unhighlightButton(
                GameObject.Find("buttonMissile")
                .GetComponent <UnityEngine.UI.Button>());
        }
        else
        {
            highlightButton(
                GameObject.Find("buttonMissile")
                .GetComponent <UnityEngine.UI.Button>());
        }

        if (selectInfo.weapType != ShipDefinitions.WeaponType.Laser)
        {
            unhighlightButton(
                GameObject.Find("buttonLaser")
                .GetComponent <UnityEngine.UI.Button>());
        }
        else
        {
            highlightButton(
                GameObject.Find("buttonLaser")
                .GetComponent <UnityEngine.UI.Button>());
        }

        if (selectInfo.weapType != ShipDefinitions.WeaponType.Flame)
        {
            unhighlightButton(
                GameObject.Find("buttonFlame")
                .GetComponent <UnityEngine.UI.Button>());
        }
        else
        {
            highlightButton(
                GameObject.Find("buttonFlame")
                .GetComponent <UnityEngine.UI.Button>());
        }
    }
예제 #16
0
    public void saveStuff()
    {
        List <ShipDefinitions.ShipEntity> list = new List <ShipDefinitions.ShipEntity>();

        list.AddRange(shipInfo);

        // Adding default enemies for sake of testing
        ShipDefinitions.ShipEntity enemy1 = new ShipDefinitions.ShipEntity(ShipDefinitions.EngineType.Engine1, ShipDefinitions.WeaponType.Flame,
                                                                           ShipDefinitions.ShipType.Ruby, new List <ItemAbstract>(), ShipDefinitions.Faction.Enemy, "Enemy1");
        ShipDefinitions.ShipEntity enemy2 = new ShipDefinitions.ShipEntity(ShipDefinitions.EngineType.Engine1, ShipDefinitions.WeaponType.Crown,
                                                                           ShipDefinitions.ShipType.Ruby, new List <ItemAbstract>(), ShipDefinitions.Faction.Enemy, "Enemy2");
        ShipDefinitions.ShipEntity enemy3 = new ShipDefinitions.ShipEntity(ShipDefinitions.EngineType.Engine1, ShipDefinitions.WeaponType.Flame,
                                                                           ShipDefinitions.ShipType.Ruby, new List <ItemAbstract>(), ShipDefinitions.Faction.Enemy, "Enemy3");


        ShipDefinitions.ShipEntity enemy4 = new ShipDefinitions.ShipEntity(ShipDefinitions.EngineType.Engine2, ShipDefinitions.WeaponType.Laser,
                                                                           ShipDefinitions.ShipType.Ruby, new List <ItemAbstract>(), ShipDefinitions.Faction.Enemy, "Enemy4");
        ShipDefinitions.ShipEntity enemy5 = new ShipDefinitions.ShipEntity(ShipDefinitions.EngineType.Engine2, ShipDefinitions.WeaponType.Crown,
                                                                           ShipDefinitions.ShipType.Ruby, new List <ItemAbstract>(), ShipDefinitions.Faction.Enemy, "Enemy5");
        ShipDefinitions.ShipEntity enemy6 = new ShipDefinitions.ShipEntity(ShipDefinitions.EngineType.Engine2, ShipDefinitions.WeaponType.Missile,
                                                                           ShipDefinitions.ShipType.Ruby, new List <ItemAbstract>(), ShipDefinitions.Faction.Enemy, "Enemy6");
        list.Add(enemy1);
        list.Add(enemy2);
        list.Add(enemy3);
        list.Add(enemy4);
        list.Add(enemy5);
        list.Add(enemy6);

        /*
         * LevelDefinitions.Level level = new LevelDefinitions.Level();
         *
         * level.uniqueId = "awyesfirstlevel";
         * level.ships = list;
         * level.type = LevelDefinitions.LevelType.Wave;
         * level.shipSpawningTokens = new Dictionary<string, string>();
         *
         * foreach(ShipDefinitions.ShipEntity playership in shipInfo)
         * {
         *  level.shipSpawningTokens[playership.uniqueId] = "center";
         * }
         * level.shipSpawningTokens["Enemy1"] = "wave0";
         * level.shipSpawningTokens["Enemy2"] = "wave0";
         * level.shipSpawningTokens["Enemy3"] = "wave0";
         * level.shipSpawningTokens["Enemy4"] = "wave1";
         * level.shipSpawningTokens["Enemy5"] = "wave1";
         * level.shipSpawningTokens["Enemy6"] = "wave1";
         *
         * /*
         * level.ships[0].items.Add(ItemAbstract.newItem(WeaponItem.WeaponType.CrownModDamage, 3));
         * level.ships[0].items.Add(ItemAbstract.newItem(WeaponItem.WeaponType.CrownModRechargeRate, 3));
         * level.ships[0].items.Add(ItemAbstract.newItem(WeaponItem.WeaponType.CrownModRange, 3));
         * level.ships[1].items.Add(ItemAbstract.newItem(WeaponItem.WeaponType.CrownModDamage, 3));
         * level.ships[1].items.Add(ItemAbstract.newItem(WeaponItem.WeaponType.CrownModRechargeRate, 3));
         * level.ships[1].items.Add(ItemAbstract.newItem(WeaponItem.WeaponType.CrownModRange, 3));
         * level.ships[2].items.Add(ItemAbstract.newItem(WeaponItem.WeaponType.CrownModDamage, 3));
         * level.ships[2].items.Add(ItemAbstract.newItem(WeaponItem.WeaponType.CrownModRechargeRate, 3));
         * level.ships[2].items.Add(ItemAbstract.newItem(WeaponItem.WeaponType.CrownModRange, 3));
         *
         * PlayerPrefs.SetString("TSSE[Level][Current]", "awyesfirstlevel");
         *
         * LevelDefinitions.saveLevel(level);
         */
    }