Source

zorkish / commands / DropCommand.hpp

/*
 * DropCommand.hpp
 *
 *  Created on: 11/09/2012
 *      Author: rhys
 */

#ifndef DROPCOMMAND_HPP_
#define DROPCOMMAND_HPP_

#include "../Command.hpp"

class DropCommand : public Command {
public:
    virtual ~DropCommand() = default;

    virtual std::string run(std::string params, World&, Player& player) {
        if (params.empty()) {
            return "You must specify an item.";
        }

        std::stringstream ss;
        auto it = player.inv.take(params);
        if (it) {
            ss << "You drop " << it->short_name() << ".";
            player.current_location()->inv.add(std::move(it));
        } else {
            ss << "You're not carrying a " << params << ".";
        }

        return ss.str();
    }
};

#endif /* DROPCOMMAND_HPP_ */
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.