public void interact(GameAgent interactor)
    {
        source.PlayOneShot(chestOpeningSFX);
        int    randomItemIndex  = Settings.globalRNG.Next(itemOptions.Length);
        int    randomItemAmount = Settings.globalRNG.Next(1, 5);
        string itemChoice       = itemOptions[randomItemIndex];
        Item   toAdd;

        switch (itemChoice)
        {
        case "health":
            toAdd = new HealthPot(randomItemAmount); break;

        case "mana":
            toAdd = new ManaPot(randomItemAmount); break;

        case "helmet":
            toAdd = new Helmet(); break;

        case "armor":
            toAdd = new Armor(); break;

        case "gloves":
            toAdd = new Glove(); break;

        case "boot":
            toAdd = new Boot(); break;

        default:
            toAdd = null; break;
        }
        if (toAdd == null)
        {
            return;
        }

        interactor.inventory.AddItem(toAdd);
        UI_TextAlert.DisplayText("Received " + toAdd.Amount + " " + toAdd.Name + "(s)!");
        GameManager.kill(this, 0.5f);
    }
Ejemplo n.º 2
0
 void Awake()
 {
     alert    = GetComponent <Text>();
     instance = this;
 }
Ejemplo n.º 3
0
    void Init()
    {
        map_manager        = GetComponent <MapManager>();
        enemySpawner       = GetComponent <EnemySpawner>();
        environmentSpawner = GetComponent <EnvironmentSpawner>();
        tileSelector       = GameObject.FindGameObjectWithTag("Selector").GetComponent <TileSelector>();

        map_manager.Init(this);
        tileSelector.Init(map_manager);
        environmentSpawner.Init(map_manager);

        turn_manager = GetComponent <TurnManager>();
        turn_manager.Init(this);

        map_manager.spawnChests(randomChest);
        List <Client> players         = Network.getPeers();
        List <Pos>    spawn_locations = map_manager.findSpawnpoints(players.Count);

        Pos level_end = spawn_locations[0];

        map_manager.instantiate_environment(endportal, level_end, false);

        Debug.Log("Spawned " + players.Count + " players");
        // spawn players
        for (int i = 0; i < players.Count; i++)
        {
            if (players[i].playerObject == null)
            {
                Debug.Log(spawn_locations[i + 1] + "," + players.Count);
                Player instance = map_manager.instantiate(playerPrefab, spawn_locations[i + 1], null, players[i].nickname).GetComponent <Player>();
                instance.SetCharacterClass(players[i].classname);
                players[i].playerObject = instance;
                if (players[i].ID == NetworkManager.clientID)
                {
                    localPlayer = instance;
                }
            }
            else
            {
                Debug.Log("Respawning player");
                map_manager.re_instantiate(players[i].playerObject.gameObject, spawn_locations[i + 1]);
            }
        }
        // spawn enemies
        if (level % 3 != 0)
        {
            enemySpawner.Init(map_manager);
        }
        else
        {
            map_manager.SPAWN_ILMI_DEVOURER_OF_WORLDS(ilmiPrefab, level / 3);
            UI_TextAlert.DisplayText("A cold chill goes across your spine...", 1000);
        }

        tileSelector.setPlayer(localPlayer);
        Camera.main.GetComponent <CameraControl>().SetTarget(localPlayer.gameObject);
        UI_BattleMenu.SetActButtons(localPlayer.getActionNames());

        turn_manager.StartLoop();
        Network.submitCommand(new ReadyCommand(NetworkManager.clientID));
    }