// ==> This file will deal with shopping #include "../mud.h" #include "../character.h" #include "../account.h" #include "../storage.h" #include "../auxiliary.h" #include "../handler.h" #include "../socket.h" #include "../utils.h" #include "../save.h" #include "../object.h" #include "../set_val/set_val.h" #include "../scripts/scripts.h" #include "../scripts/pychar.h" #include "../room.h" #include "../items/items.h" #include "../items/worn.h" #include "money.h" #include "shops.h" COMMAND(cmd_list) { ROOM_DATA *room = charGetRoom(ch); if(bitIsOneSet(roomGetBits(room), "tailorshop")) { send_to_char(ch, "{nA tailor informs you that he dyes to make the following colors:\r\n"); send_to_char(ch, "{cred, blue, green, white{n\r\n"); send_to_char(ch, "{nA tailor informs you that he has the following materials to use:\r\n"); send_to_char(ch, "{ccotton, denim{n\r\n"); send_to_char(ch, "{nA tailor informs you that he can make the following items:\r\n"); send_to_char(ch, "{cshirt, pants{n\r\n\n\r"); send_to_char(ch, "{nTo get a quote use the following syntax:\r\n"); send_to_char(ch, "{cprice (color) (material) (type){n\r\n"); send_to_char(ch, "{nTo order clothing use the following syntax:\r\n"); send_to_char(ch, "{cbuy (color) (material) (type){n\r\n"); }else{ send_to_char(ch, "{nYou must stand within a shop to see what goods are listed for sale."); return; } } COMMAND(cmd_price) { ROOM_DATA *room = charGetRoom(ch); if(bitIsOneSet(roomGetBits(room), "tailorshop")){ char *color = NULL; char *material = NULL; char *purchase = NULL; int dyecost; int matcost; int clothcost; if(!parse_args(ch, TRUE, cmd, arg, "word word word", &color, &material, &purchase)) return; if(!strcmp(color, "white")){ dyecost = 0; }else if(!strcmp(color, "red")){ dyecost = 5; }else if(!strcmp(color, "blue")){ dyecost = 5; }else if(!strcmp(color, "green")){ dyecost = 5; }else{ send_to_char(ch, "{nA tailor states that %s is not a color of dye he uses.\r\n", color); return; } if(!strcmp(material, "cotton")){ matcost = 0; }else if(!strcmp(material, "denim")){ matcost = 10; }else{ send_to_char(ch, "{nA tailor states that %s is not a material he uses.\r\n", material); return; } if(!strcmp(purchase, "shirt")){ clothcost = 150; int purchase_cost; purchase_cost = (dyecost + matcost + clothcost); send_to_char(ch, "{nA tailor elaborates, informing you that such a shirt would cost you" "{c%d{n gold%s.\r\n", purchase_cost, (purchase_cost == 1 ? "" : "s")); }else if(!strcmp(purchase, "pants")){ clothcost = 100; int purchase_cost; purchase_cost = (dyecost + matcost + clothcost); send_to_char(ch, "{nA tailor elaborates, informing you that such trousers would cost you" " {c%d{n gold%s.\r\n", purchase_cost, (purchase_cost == 1 ? "" : "s")); }else{ send_to_char(ch, "{nA tailor states that %s is not type of clothing he makes.\r\n", purchase); return; } }else{ send_to_char(ch, "{gYou must stand within a shop to check prices."); return; } } COMMAND(cmd_buy) { ROOM_DATA *room = charGetRoom(ch); if(bitIsOneSet(roomGetBits(room), "tailorshop")) { char *color = NULL; char *material = NULL; char *purchase = NULL; char *colordesc = NULL; char *materialdesc = NULL; char *purchasedesc = NULL; int dyecost; int matcost; int clothcost; if(!parse_args(ch, TRUE, cmd, arg, "word word word", &color, &material, &purchase)) return; if(!strcmp(color, "white")){ colordesc = "This garment has been crafted using a brightly bleached, white"; dyecost = 0; }else if(!strcmp(color, "red")){ colordesc = "This garment has been crafted using a vibrantly dyed, red"; dyecost = 5; }else if(!strcmp(color, "blue")){ colordesc = "This garment has been crafted using a deep blue"; dyecost = 5; }else if(!strcmp(color, "green")){ colordesc = "This garment has been crafted using a boldly dyed, green"; dyecost = 5; }else{ send_to_char(ch, "{nA tailor states that %s is not a color of dye he uses.\r\n", color); return; } if(!strcmp(material, "cotton")){ materialdesc = "cotton. Its stitching and lines are simple and clean. The tag inside the collar states that it was manufactured by a city tailor.."; matcost = 0; }else if(!strcmp(material, "denim")){ materialdesc = "denim. Its stitching and lines are simple and clean. The tag inside the collar states that it was manufactured by a city tailor.."; matcost = 0; }else{ send_to_char(ch, "{nA tailor states that %s is not a material he uses.\r\n", material); return; } if(!strcmp(purchase, "shirt")){ clothcost = 150; int purchase_cost; purchase_cost = (dyecost + matcost + clothcost); int char_cash; char_cash = (charGetMoney(ch)); if(char_cash < purchase_cost) { send_to_char(ch, "{nYou don't have enough cash on hand to buy that.\r\n"); return; }else{ int newcash; newcash = (char_cash - purchase_cost); charSetMoney(ch, newcash); purchasedesc = "A simple tee-shirt has short sleeves, a v-neck and no collar."; char posbuf[SMALL_BUFFER]; sprintf(posbuf, "{n%s %s %s", purchasedesc, colordesc, materialdesc); OBJ_DATA *obj = newObj(); objSetName (obj, "a tee shirt"); objSetKeywords (obj, "shirt, tee"); objSetType (obj, "worn"); wornSetType (obj, "shirt"); objSetRdesc (obj, "A tee shirt lies, crumpled here."); objSetMultiName (obj, "%d tee shirts"); objSetMultiRdesc (obj, "%d tee shirts lay here, crumpled."); objSetDesc (obj, posbuf); send_to_char(ch, "A tailor gives you a tee shirt.\r\n"); obj_to_game(obj); obj_to_char(obj, ch); } }else if(!strcmp(purchase, "pants")){ clothcost = 100; int purchase_cost; purchase_cost = (dyecost + matcost + clothcost); int char_cash; char_cash = (charGetMoney(ch)); if(char_cash < purchase_cost) { send_to_char(ch, "{nYou don't have enough cash on hand to buy that.\r\n"); return; }else{ int newcash; newcash = (char_cash - purchase_cost); charSetMoney(ch, newcash); purchasedesc = "A pair of pants has been made with a button fly, tapered legs and belt loops."; char posbuf[SMALL_BUFFER]; sprintf(posbuf, "{n%s %s %s", purchasedesc, colordesc, materialdesc); OBJ_DATA *obj = newObj(); objSetName (obj, "a pair of pants"); objSetKeywords (obj, "pants, trousers"); objSetType (obj, "worn"); wornSetType (obj, "pants"); objSetRdesc (obj, "A pair of pants lies here, crumpled up."); objSetMultiName (obj, "%d pairs of pants"); objSetMultiRdesc (obj, "%d pairs of pants lay here in a crumpled pile."); objSetDesc (obj, posbuf); send_to_char(ch, "A tailor gives you a pair of pants.\r\n"); obj_to_game(obj); obj_to_char(obj, ch); } }else{ send_to_char(ch, "{nA tailor states that %s is not type of clothing he makes.\r\n", purchase); return; } }else{ send_to_char(ch, "{nYou must stand within a shop to buy anything.\r\n"); return; } } /************************************************************************ Below here are all of the init_ functions for this file. *************************************************************************/ void init_shops(void) { add_cmd("list", "list", cmd_list, POS_UNCONCIOUS, POS_FLYING, "player", TRUE, FALSE); add_cmd("buy", "buy", cmd_buy, POS_UNCONCIOUS, POS_FLYING, "player", TRUE, FALSE); add_cmd("price", "price", cmd_price, POS_UNCONCIOUS, POS_FLYING, "player", TRUE, FALSE); bitvectorAddBit("room_bits", "tailorshop"); }