/* * guilds.h * Header file for guilds * ____ _ * | _ \ ___ __ _| |_ __ ___ ___ * | |_) / _ \/ _` | | '_ ` _ \/ __| * | _ < __/ (_| | | | | | | \__ \ * |_| \_\___|\__,_|_|_| |_| |_|___/ * * Permission to use, modify and distribute is granted via the * Creative Commons - Attribution - Non Commercial - Share Alike 3.0 License * http://creativecommons.org/licenses/by-nc-sa/3.0/ * * Copyright (C) 2007-2009 Jason Mitchell, Randi Mitchell * Contributions by Tim Callahan, Jonathan Hseu * Based on Mordor (C) Brooke Paul, Brett J. Vickers, John P. Freeman * */ #ifndef GUILDS_H_ #define GUILDS_H_ class GuildCreation { public: GuildCreation(); bool addSupporter(Player* supporter); bool removeSupporter(bstring supporterName); void renameSupporter(bstring oldName, bstring newName); bool saveToXml(xmlNodePtr rootNode) const; public: bstring name; bstring leader; bstring leaderIp; int status; int numSupporters; // first = name // second = ip std::map<bstring, bstring> supporters; }; class Guild { public: Guild(); Guild(xmlNodePtr curNode); void recalcLevel(); int averageLevel(); bool addMember(bstring memberName); bool delMember(bstring memberName); bool isMember(bstring memberName); void renameMember(bstring oldName, bstring newName); void parseGuildMembers(xmlNodePtr cur); bool saveToXml(xmlNodePtr rootNode) const; static bool requireInside(Player* player, Room* room); public: bstring name; unsigned short num; bstring leader; long level; // Sum of everyone's level in the guild int numMembers; // Number of members in the guild long pkillsIn; long pkillsWon; Money bank; long points; // Points from quests/etc std::list<bstring> members; }; #endif /*GUILDS_H_*/