Example #1
0
    public List <SpawnedObject> getSpawnedObjects(Area area)
    {
        List <SpawnedObject> spawnDataList = new List <SpawnedObject> ();

        foreach (GameObject obj in spawnedObjects)
        {
            if (obj == null)
            {
                continue;                         //skip destroyed objects
            }
            Enemy enemy = obj.GetComponent <Enemy>();
            if (enemy != null)
            {
                spawnDataList.Add(enemy.getSpawnedObjectInformation(area));
            }

            ItemDropObject itemDrop = obj.GetComponent <ItemDropObject>();
            if (itemDrop != null)
            {
                GameObject item = itemDrop.item;
                if (item != null)
                {
                    spawnDataList.Add(item.GetComponent <Item>().getSpawnedObjectInformation(area, itemDrop.transform));
                }
            }
        }

        return(spawnDataList);
    }
Example #2
0
    public GameObject spawnObject(Vector3 position)
    {
        GameObject obj = null;

        if (objectToSpawn != null)
        {
            Enemy newEnemy = objectToSpawn.GetComponent <Enemy> ();
            if (newEnemy != null)
            {
                Enemy      originalEnemy = objectToSpawn.GetComponent <Enemy>();
                GameObject newObject     = (GameObject)GameObject.Instantiate(objectToSpawn.gameObject, position, Quaternion.identity);
                newEnemy = newObject.GetComponent <Enemy>();
                newEnemy.setBadass(badass);
                obj = newObject;
            }

            Item newItem = objectToSpawn.GetComponent <Item> ();
            if (newItem != null)
            {
                ItemDropObject drop      = LoadResources.Instance.CommonItemDrop.GetComponent <ItemDropObject>();
                GameObject     newDrop   = (GameObject)GameObject.Instantiate(drop.gameObject, position, Quaternion.identity);
                GameObject     newObject = (GameObject)GameObject.Instantiate(objectToSpawn, position, Quaternion.identity);
                newObject.SetActive(false);
                newItem      = newObject.GetComponent <Item>();
                newItem.name = objectName;
                if (!version.Equals(string.Empty) && newObject.GetComponent <Weapon>() != null)
                {
                    newObject.GetComponent <Weapon>().version = version;
                }
                newDrop.GetComponent <ItemDropObject>().item = newObject;
                obj = newDrop;
            }

            //Byte is a special name reserved for spawning experience bytes
            if (objectName == "Byte")
            {
                obj = (GameObject)GameObject.Instantiate(objectToSpawn, position, Quaternion.identity);
            }
        }
        else
        {
            Debug.LogError("Object to spawn was null!");
        }

        return(obj);
    }
Example #3
0
    public void executeSpawnCommand(SpawnCommand sc)
    {
        questArea = true;

        System.Random rand = new System.Random();
        if (!isCity)
        {
            rooms[rand.Next(rooms.Count)].generateQuestMaterial(sc);
        }
        else
        {
            if (sc.objectName == "Byte")
            {
                GameObject temp = (GameObject)GameObject.Instantiate(Utility.GetByteObject(), Player.playerPos.position, Quaternion.identity);
            }
            else
            {
                GameObject objectToSpawn = (GameObject)sc.getObjectToSpawn();
                Item       newItem       = objectToSpawn.GetComponent <Item> ();
                if (newItem != null)
                {
                    ItemDropObject drop      = LoadResources.Instance.CommonItemDrop.GetComponent <ItemDropObject>();
                    GameObject     newDrop   = (GameObject)GameObject.Instantiate(drop.gameObject, Player.playerPos.position + Vector3.up * 3f, Quaternion.identity);
                    GameObject     newObject = (GameObject)GameObject.Instantiate(objectToSpawn, Player.playerPos.position + Vector3.up * 3f, Quaternion.identity);
                    newObject.SetActive(false);
                    newItem      = newObject.GetComponent <Item>();
                    newItem.name = sc.objectName;
                    if (!sc.version.Equals(string.Empty) && newObject.GetComponent <Weapon>() != null)
                    {
                        newObject.GetComponent <Weapon>().version = sc.version;
                    }
                    newDrop.GetComponent <ItemDropObject>().item = newObject;
                }
            }
        }
    }
Example #4
0
    public void load(int file)
    {
        CityHelp.helpMode = -3;
        Debug.Log("LOADING : " + file);
        SavePackage package;

        try {
            FileStream fs;
            if (file == 1)
            {
                fs = new FileStream(saveGameFile1, FileMode.Open);
            }
            else if (file == 2)
            {
                fs = new FileStream(saveGameFile2, FileMode.Open);
            }
            else if (file == 4)
            {
                fs = new FileStream(tmpSaveGameFile, FileMode.Open);
            }
            else
            {
                fs = new FileStream(saveGameFile3, FileMode.Open);
            }
            package = SavePackage.ParseFrom(fs);
            fs.Flush();
            fs.Close();
        } catch (IOException excep) {
            IOException dummy = excep;
            log("IO ERROR: COULD NOT LOAD GAME DATA");
            return;
        }

        //WORLD GENERATION
        currentMap = new Map(package.Seed);

        //QUESTS
        List <QuestSave> questSaves = new List <QuestSave> ();

        questSaves.AddRange(package.QuestDataList);
        questListener = new QuestListener(questSaves);

        //CONVERSATIONS
        List <ConversationSave> conversationSaves = new List <ConversationSave> ();

        conversationSaves.AddRange(package.ConversationDataList);
        LoadResources.Instance.setConversationData(conversationSaves);

        //PLAYER STATUS
        player.transform.position = new Vector3(0.0f, player.transform.position.y, 0.0f);         //global shift
        currentArea = currentMap.getArea(package.Player.PlayerPosition.AreaX, package.Player.PlayerPosition.AreaY);
        player.GetComponentInChildren <Player> ().setPlayerStatus(package.Player);
        currentArea.getGroup().generateAreas();

        Transform camera = getCamera();

        camera.position = new Vector3(package.Player.PlayerPosition.LocalX, camera.position.y, package.Player.PlayerPosition.LocalY);
        Quaternion rotation = camera.rotation;

        rotation.eulerAngles = new Vector3(0.0f, package.Player.Rotation, 0.0f);
        camera.rotation      = rotation;

        //SPAWNED OBJECTS
        List <SpawnedObject> spawnedObjects = new List <SpawnedObject> ();

        spawnedObjects.AddRange(package.SpawnedObjectsList);
        foreach (SpawnedObject o in spawnedObjects)
        {
            GlobalPosition pos  = o.ObjectPosition;
            Area           area = currentMap.getArea(pos.AreaX, pos.AreaY);
            GameObject     obj;

            WorldMap.AddStarAt(pos.AreaX, pos.AreaY, o.Description);

            if (o.HasEnemyAttributes)
            {
                obj = (GameObject)getEnemyFromProtobuf(o.ObjectData);
                obj = (GameObject)GameObject.Instantiate(obj);
                obj.GetComponent <Enemy>().name = o.ObjectData.Name;
                //TODO set enemy health
            }
            else
            {
                obj = (GameObject)getItemFromProtobuf(o.ObjectData);
                ItemDropObject drop      = LoadResources.Instance.CommonItemDrop.GetComponent <ItemDropObject>();
                GameObject     newDrop   = (GameObject)GameObject.Instantiate(drop.gameObject);
                GameObject     newObject = (GameObject)GameObject.Instantiate(obj);
                newObject.SetActive(false);
                newObject.GetComponent <Item>().name = o.ObjectData.Type;

                if (o.ObjectData.HasItemInformation && o.ObjectData.ItemInformation.HasSaveVersion && newObject.GetComponent <Weapon>() != null)
                {
                    newObject.GetComponent <Weapon>().version = o.ObjectData.ItemInformation.SaveVersion;
                }

                newDrop.GetComponent <ItemDropObject>().item = newObject;
                obj = newDrop;
            }

            obj.transform.position = new Vector3(pos.LocalX, obj.transform.position.y, pos.LocalY);

            if (area.basicRoom != null)
            {
                area.basicRoom.addSpawnedObject(obj);
            }

            if (area != currentArea)
            {
                obj.SetActive(false);
            }
        }
    }