Procházet zdrojové kódy

[added] new shopping cart for personal items. Only applied to items with new variable names in supermarket cosmetics section

Kevin_Smarts před 8 měsíci
rodič
revize
b85d53142c
4 změnil soubory, kde provedl 354 přidání a 22 odebrání
  1. 2 0
      glife.qproj
  2. 148 0
      locations/item_cart.qsrc
  3. 198 0
      locations/item_stock_db.qsrc
  4. 6 22
      locations/shop.qsrc

+ 2 - 0
glife.qproj

@@ -1242,6 +1242,8 @@
 		<Location name="sexorg"/>
 		<Location name="$stock_item_info"/>
 		<Location name="$stock_item"/>
+		<Location name="item_cart"/>
+		<Location name="item_stock_db"/>
 		<Location name="$single_stock_item"/>
 		<Location name="$buy_item"/>
 		<Location name="$buy_single_item"/>

+ 148 - 0
locations/item_cart.qsrc

@@ -0,0 +1,148 @@
+# item_cart
+
+if $ARGS[0] = 'shoppping_aisle':
+    $curr_aisle = $ARGS[1]
+	gs 'item_stock_db', $ARGS[1]
+	gs 'item_cart', 'header'
+	'<center><table><<$Headerstring>><TR><border=1>'
+
+	i = 1
+	:loopshopping_cart
+		gs 'themes', 'clothing', 1
+		$item_line = '<TR bgcolor='+$bgcolor+'>'
+		$item_line += '<TD align="left"><<$item_curr_aisle[''<<i>>'']>><\TD>'
+		dynamic '$cart_tmp = $item_curr_aisle[''<<i>>'']'
+		$item_line += '<TD><<mc_inventory[''<<$cart_tmp>>'']>><\TD>'
+		$item_line += '<TD><<quantity_curr_aisle[''<<i>>'']>><\TD>'
+		$item_line += '<TD><<cost_curr_aisle[''<<i>>'']>><\TD>'
+		if cart_curr_quantity['<<i>>'] < 10:
+			$item_line += '<TD><\TD>'
+		else
+			$item_line += '<TD><a href="exec:gt ''item_cart'', ''remove10'', <<i>>">remove</a><\TD>'
+		end
+		if cart_curr_quantity['<<i>>'] < 1:
+			$item_line += '<TD><\TD>'
+		else
+			$item_line += '<TD><a href="exec:gt ''item_cart'', ''remove'', <<i>>">remove</a><\TD>'
+		end
+		$item_line += '<TD><<cart_curr_quantity[''<<i>>'']>><\TD>'
+		if max_curr_aisle['<<i>>'] > cart_curr_quantity['<<i>>']:
+			$item_line += '<TD><a href="exec:gt ''item_cart'', ''add'', <<i>>">add</a><\TD>'
+		else
+			$item_line += '<TD>Max<\TD>'
+		end
+		if max_curr_aisle['<<i>>'] > cart_curr_quantity['<<i>>'] + 10:
+			$item_line += '<TD><a href="exec:gt ''item_cart'', ''add10'', <<i>>">add</a><\TD>'
+		else
+			$item_line += '<TD><\TD>'
+		end
+		$item_line
+		i += 1
+	if i < item_idx:jump 'loopshopping_cart'
+	'</table></center>'
+	gs 'item_cart', 'cart_total'
+end
+
+if $ARGS[0] = 'header':
+	gs 'themes', 'clothing', 1
+	$Headerstring = '<TH bgcolor='+$bgcolor+'>Item</TH><TH bgcolor='+$bgcolor+'>You own</TH><TH bgcolor='+$bgcolor+'>Units/pack</TH><TH bgcolor='+$bgcolor+'>Cost in <b>₽</b></TH><TH bgcolor='+$bgcolor+'>Remove 10</TH><TH bgcolor='+$bgcolor+'>Remove 1 pack</TH><TH bgcolor='+$bgcolor+'>In cart</TH><TH bgcolor='+$bgcolor+'>Add one pack</TH><TH bgcolor='+$bgcolor+'>Add 10</TH>'
+end
+
+if $ARGS[0] = 'remove':
+	cart_tally -= cost_curr_aisle['<<ARGS[1]>>']
+	cart_curr_quantity['<<ARGS[1]>>'] -= 1
+	gt $loc_s, $args_s
+end
+
+if $ARGS[0] = 'remove10':
+	cart_tally -= cost_curr_aisle['<<ARGS[1]>>']*10
+	cart_curr_quantity['<<ARGS[1]>>'] -= 10
+	gt $loc_s, $args_s
+end
+
+if $ARGS[0] = 'add':
+	cart_tally += cost_curr_aisle['<<ARGS[1]>>']
+	cart_curr_quantity['<<ARGS[1]>>'] += 1
+	gt $loc_s, $args_s
+end
+
+if $ARGS[0] = 'add10':
+	cart_tally += cost_curr_aisle['<<ARGS[1]>>']*10
+	cart_curr_quantity['<<ARGS[1]>>'] += 10
+	gt $loc_s, $args_s
+end
+
+if $ARGS[0] = 'cart_total':
+	'<center><table><TD bgcolor='+$bgcolor+'><b>Total cost of items in cart: <<cart_tally>>₽</b><\TD></table></center>'
+	'<center><table><TR><border=30>'
+	if cart_tally > karta + bankDebtLimit and cart_tally > money:
+		$item_line[2] = '<TD>You cannot afford this<\TD><TD><\TD>'
+	elseif cart_tally = 0:
+		$item_line[2] = '<TD><\TD><TD><\TD>'
+	else
+		if cart_tally <= money:
+			$item_line[2] = '<TD bgcolor='+$bgcolor+'><a href="exec:gt ''item_cart'', ''cash'', <<i>>">Buy (cash)</a><\TD>'
+		else
+			$item_line[2] = '<TD bgcolor='+$bgcolor+'>Not enough cash<\TD>'
+		end
+		if cart_tally <= karta + bankDebtLimit:
+			$item_line[2] += '<TD bgcolor='+$bgcolor+'><a href="exec:gt ''item_cart'', ''card'', <<i>>">Buy (card)</a><\TD>'
+		else
+			$item_line[2] += '<TD bgcolor='+$bgcolor+'>Not enough on card<\TD>'
+		end
+	end
+	$item_line[2] += '<TD bgcolor='+$bgcolor+'><a href="exec:gt ''item_cart'', ''cancel'', <<i>>">cancel</a><\TD>'
+	$item_line[2]
+	'</table></center>'
+end
+!!{
+if $ARGS[0] = 'shoppping_cart':
+    cart_idx = 0
+	cart_shoppingCost = 0
+    :cart_checkout
+        if tmp_$var_$curr_aisle['cart_idx']['cart_idx'] > 0:
+            basket total += tmp_$curr_aisle['cart_idx'] * cost_$curr_aisle['cart_idx']                           
+        end
+   if idx < arrsize($item_$curr_aisle): idx += 1 & jump 'cart_checkout'
+	'<center>Total cost of shopping:' + cart_tally + '<b>₽</b></center>'
+end
+}
+
+if $ARGS[0] = 'cash':
+	i = 1
+	:loopshopping_cash
+		$cart_tmp1 = $item_curr_aisle['<<i>>']
+		dynamic 'mc_inventory[''<<$cart_tmp1>>''] += cart_curr_quantity[''<<i>>'']'
+		i += 1
+	if i < item_idx:jump 'loopshopping_cash'
+	money -= cart_tally
+	gs 'item_cart', 'shopping_var_clear'
+	gt $loc_s, $args_s
+end
+
+if $ARGS[0] = 'card':
+	i = 1
+	:loopshopping_card
+		$cart_tmp1 = $item_curr_aisle['<<i>>']
+		dynamic 'mc_inventory[''<<$cart_tmp1>>''] += cart_curr_quantity[''<<i>>'']'
+		i += 1
+	if i < item_idx:jump 'loopshopping_card'
+	karta -= cart_tally
+	gs 'item_cart', 'shopping_var_clear'
+	gt $loc_s, $args_s
+end
+
+if $ARGS[0] = 'cancel':
+	gs 'item_cart', 'shopping_var_clear'
+	gt $loc_s, $args_s
+end
+
+if $ARGS[0] = 'shopping_var_clear':
+    !! clean up all transient variables/arrays.
+    killvar 'cart_tally'
+    killvar 'cart_curr_quantity'
+end
+
+
+--- item_cart ---------------------------------
+

+ 198 - 0
locations/item_stock_db.qsrc

@@ -0,0 +1,198 @@
+# item_stock_db
+
+!! Date Created: 21st Aug, 2023
+!! Modified date: 
+!! Version: .01 - initial release
+!! Author: Myles Croft
+!! Description: Part of the variable migration, centralising all item variables into one database
+!! to make management of items easier to change, add or remove automatically within the code base.
+!! Each section refers to shop aisle.
+
+!! Item template to C&P
+!! item_idx = ''
+!! $item_curr_aisle['<<item_idx>>'] = '' 
+!! $var_curr_aisle['<<item_idx>>'] = ''
+!! $desc_curr_aisle['<<item_idx>>'] = ''
+!! quantity_curr_aisle['<<item_idx>>'] = ''
+!! max_curr_aisle['<<item_idx>>'] = ''
+!! cost_curr_aisle['<<item_idx>>'] = ''
+!! $img_curr_aisle['<<item_idx>>'] = ''
+
+
+
+if $ARGS[0] = 'beauty':
+    !! Stock Item construct
+    !! Var facing name
+    item_idx = 1
+    $item_curr_aisle['<<item_idx>>'] = 'Cosmetics' 
+    !! Var internal
+    $var_curr_aisle['<<item_idx>>'] = 'Cosmetics'
+    !! Item help
+    $desc_curr_aisle['<<item_idx>>'] = 'A collection of lotions, powders and potions that make you look Fabulous. This isn''t witchcraft honest!'
+    !! Item quantity 
+    quantity_curr_aisle['<<item_idx>>'] = '50'
+	!! maximum that Sveta can own - 0 for unlimited
+	max_curr_aisle['<<item_idx>>'] = '0'
+    !! Item price
+    cost_curr_aisle['<<item_idx>>'] = '1300'
+    !! Path to product image - if set
+    $img_curr_aisle['<<item_idx>>'] = ''
+
+
+    item_idx = 2
+    $item_curr_aisle['<<item_idx>>'] = 'Moisturiser' 
+    $var_curr_aisle['<<item_idx>>'] = 'Moisturiser'
+    $desc_curr_aisle['<<item_idx>>'] = 'Cream that pampers and improves your skin condition.'
+    quantity_curr_aisle['<<item_idx>>'] = '30'
+	max_curr_aisle['<<item_idx>>'] = '0'
+    cost_curr_aisle['<<item_idx>>'] = '2100'
+    $img_curr_aisle['<<item_idx>>'] = ''
+
+
+    item_idx = 3
+    $item_curr_aisle['3'] = 'Lipbalm' 
+    $var_curr_aisle['<<item_idx>>'] = 'lipbalm'
+    $desc_curr_aisle['<<item_idx>>'] = 'To improve your looks and give your lips that extra oomph.'
+    quantity_curr_aisle['<<item_idx>>'] = '30'
+	max_curr_aisle['<<item_idx>>'] = '0'
+    cost_curr_aisle['<<item_idx>>'] = '127'
+    $img_curr_aisle['<<item_idx>>'] = ''
+
+    item_idx = 4
+    $item_curr_aisle['4'] = 'Plain false lashes' 
+    $var_curr_aisle['<<item_idx>>'] = 'eyelash_fake'
+    $desc_curr_aisle['<<item_idx>>'] = 'Cheap eyelashes that to your eyelashes simple volume.'
+    quantity_curr_aisle['<<item_idx>>'] = '10'
+	max_curr_aisle['<<item_idx>>'] = '0'
+    cost_curr_aisle['<<item_idx>>'] = '1500'
+    $img_curr_aisle['<<item_idx>>'] = ''
+
+    item_idx = 5
+    $item_curr_aisle['5'] = 'Mink false lashes'
+    $var_curr_aisle['<<item_idx>>'] = 'eyelash_mink'
+    $desc_curr_aisle['<<item_idx>>'] = 'Luxurious eyelashes that make your eyes pop, screams glamour baby.'
+    quantity_curr_aisle['<<item_idx>>'] = '3'
+	max_curr_aisle['<<item_idx>>'] = '0'
+    cost_curr_aisle['<<item_idx>>'] = '900'
+    $img_curr_aisle['<<item_idx>>'] = ''
+
+    item_idx = 6
+    $item_curr_aisle['6'] = 'Razors' 
+    $var_curr_aisle['<<item_idx>>'] = 'razor'
+    $desc_curr_aisle['<<item_idx>>'] = 'A basic necessity for all body health care.'
+    quantity_curr_aisle['<<item_idx>>'] = '25'
+	max_curr_aisle['<<item_idx>>'] = '0'
+    cost_curr_aisle['<<item_idx>>'] = '350'
+    $img_curr_aisle['<<item_idx>>'] = ''
+
+    item_idx = 7
+    $item_curr_aisle['7'] = 'Sunblock'
+    $var_curr_aisle['<<item_idx>>'] = 'suncream'
+    $desc_curr_aisle['<<item_idx>>'] = 'Keeps the nasty sun from damaging your skin.'
+    quantity_curr_aisle['<<item_idx>>'] = '20'
+	max_curr_aisle['<<item_idx>>'] = '0'
+    cost_curr_aisle['<<item_idx>>'] = '500'
+    $img_curr_aisle['<<item_idx>>'] = ''
+
+    item_idx = 8
+    $item_curr_aisle['8'] = 'Deodorant' 
+    $var_curr_aisle['<<item_idx>>'] = 'deodorant'
+    $desc_curr_aisle['<<item_idx>>'] = 'Helps prevents the obnoxious sweat pits condition.'
+    quantity_curr_aisle['<<item_idx>>'] = '40'
+	max_curr_aisle['<<item_idx>>'] = '0'
+    cost_curr_aisle['<<item_idx>>'] = '200'
+    $img_curr_aisle['<<item_idx>>'] = ''
+
+    item_idx = 9
+    $item_curr_aisle['9'] = 'Tampons' 
+    $var_curr_aisle['<<item_idx>>'] = 'tampons'
+    $desc_curr_aisle['<<item_idx>>'] = 'A discrete version that helps with that time of the month.'
+    quantity_curr_aisle['<<item_idx>>'] = '20'
+	max_curr_aisle['<<item_idx>>'] = '0'
+    cost_curr_aisle['<<item_idx>>'] = '400'
+    $img_curr_aisle['<<item_idx>>'] = ''
+
+    item_idx = 10 
+    $item_curr_aisle['10'] = 'Sanitary napkins' 
+    $var_curr_aisle['<<item_idx>>'] = 'sanitary_pads'
+    $desc_curr_aisle['<<item_idx>>'] = 'Cheap product that helps with that time of month.'
+    quantity_curr_aisle['<<item_idx>>'] = '20'
+	max_curr_aisle['<<item_idx>>'] = '0'
+    cost_curr_aisle['<<item_idx>>'] = '100'
+    $img_curr_aisle['<<item_idx>>'] = ''
+
+    item_idx = 11
+    $item_curr_aisle['11'] = 'Shampoo' 
+    $var_curr_aisle['<<item_idx>>'] = 'shampoo'
+    $desc_curr_aisle['<<item_idx>>'] = 'To your keep your hair luxurious and shiny.'
+    quantity_curr_aisle['<<item_idx>>'] = '30'
+	max_curr_aisle['<<item_idx>>'] = '0'
+    cost_curr_aisle['<<item_idx>>'] = '250'
+    $img_curr_aisle['<<item_idx>>'] = ''
+
+    item_idx = 12
+    $item_curr_aisle['12'] = 'Hair scrunchies' 
+    $var_curr_aisle['<<item_idx>>'] = 'scrunchies'
+    $desc_curr_aisle['<<item_idx>>'] = 'Simple hair bands to do pony tails, pigtails and other styles.'
+    quantity_curr_aisle['<<item_idx>>'] = '10'
+	max_curr_aisle['<<item_idx>>'] = '0'
+    cost_curr_aisle['<<item_idx>>'] = '80'
+    $img_curr_aisle['<<item_idx>>'] = ''
+
+    item_idx = 13
+    $item_curr_aisle['13'] = 'Hair pins' 
+    $var_curr_aisle['<<item_idx>>'] = 'bobbypins'
+    $desc_curr_aisle['<<item_idx>>'] = 'The old classic bobby pins for when you want to go the extra mile with hairstyles.'
+    quantity_curr_aisle['<<item_idx>>'] = '10'
+	max_curr_aisle['<<item_idx>>'] = '0'
+    cost_curr_aisle['<<item_idx>>'] = '100'
+    $img_curr_aisle['<<item_idx>>'] = ''
+
+    item_idx = 14
+    $item_curr_aisle['14'] = 'Cosmetic Wipes'
+    $var_curr_aisle['<<item_idx>>'] = 'makeup_wipes'
+    $desc_curr_aisle['<<item_idx>>'] = 'Wipe away those sins and remove your make up.'
+    quantity_curr_aisle['<<item_idx>>'] = '10'
+	max_curr_aisle['<<item_idx>>'] = '0'
+    cost_curr_aisle['<<item_idx>>'] = '50'
+    $img_curr_aisle['<<item_idx>>'] = ''
+
+    item_idx = 15
+    $item_curr_aisle['15'] = 'Portable makeup'
+    $var_curr_aisle['<<item_idx>>'] = 'travel_makeup'
+    $desc_curr_aisle['<<item_idx>>'] = 'For those moments when you need touch up your make up.'
+    quantity_curr_aisle['<<item_idx>>'] = '10'
+	max_curr_aisle['<<item_idx>>'] = '0'
+    cost_curr_aisle['<<item_idx>>'] = '700'
+    $img_curr_aisle['<<item_idx>>'] = ''
+
+    item_idx = 16
+    $item_curr_aisle['16'] = 'Mouthwash'
+    $var_curr_aisle['<<item_idx>>'] = 'mouthwash'
+    $desc_curr_aisle['<<item_idx>>'] = 'Keeps your breath fresh and minty!'
+    quantity_curr_aisle['<<item_idx>>'] = '20'
+	max_curr_aisle['<<item_idx>>'] = '0'
+    cost_curr_aisle['<<item_idx>>'] = '150'
+    $img_curr_aisle['<<item_idx>>'] = ''
+
+    item_idx = 17
+    $item_curr_aisle['17'] = 'Comb'
+    $var_curr_aisle['<<item_idx>>'] = 'comb'
+    $desc_curr_aisle['<<item_idx>>'] = 'Prevents you getting entangled in your hair, and other hair disasters.'
+    quantity_curr_aisle['<<item_idx>>'] = '1'
+	max_curr_aisle['<<item_idx>>'] = '0'
+    cost_curr_aisle['<<item_idx>>'] = '150'
+    $img_curr_aisle['<<item_idx>>'] = ''
+
+    item_idx = 18
+    $item_curr_aisle['18'] = 'Compact Mirror'
+    $var_curr_aisle['<<item_idx>>'] = 'travel_mirror'
+    $desc_curr_aisle['<<item_idx>>'] = 'For when you need touch up your make up, spy or send an SOS.'
+    quantity_curr_aisle['<<item_idx>>'] = '1'
+	max_curr_aisle['<<item_idx>>'] = '0'
+    cost_curr_aisle['<<item_idx>>'] = '1150'
+    $img_curr_aisle['<<item_idx>>'] = ''
+end
+
+--- item_stock_db ---------------------------------
+

+ 6 - 22
locations/shop.qsrc

@@ -370,10 +370,13 @@ if $ARGS[0] = 'dog_items':
 end
 
 if $shoplocation= 'cosmetics':
+	$loc_s = 'shop'
+	$args_s = 'cosmetics'
 	*clr & cla
 
-	'<center><b><font color="maroon">Cosmetics Department</font></b></center>'
-	'<center><img <<$set_imgh>> src="images/locations/shared/store/shop2.jpg"></center>'
+	gs 'themes', 'clothing', 1
+	'<center><table><TD bgcolor='+$bgcolor+'><b>Cosmetics Department</font></b><\TD></table></center>'
+	$backimage= 'images/locations/shared/store/shop2.jpg'
 
 	if hour < 8 or hour > 20:
 		'The cosmetics department is currently closed.'
@@ -389,26 +392,7 @@ if $shoplocation= 'cosmetics':
 	else
 		''
 	end
-	*pl '<center><table align="center" width=80%>'
-	*p func ('$stock_item', 50, 'Cosmetics', 1300, 'mc_inventory[''cosmetics'']', $curloc)
-	*p func ('$stock_item', 30, 'Moisturizer', 2100, 'mc_inventory[''moisturiser'']', $curloc)
-	*P func ('$stock_item', 30, 'Lip balm', 127, 'mc_inventory[''lipbalm'']', $curloc)
-	*p func ('$stock_item', 10, 'Plain false lashes', 1500, 'mc_inventory[''eyelash_fake'']',$curloc)
-	*p func ('$stock_item', 3, 'Mink false lashes', 900, 'mc_inventory[''eyelash_mink'']',$curloc)
-	*p func ('$stock_item', 25, 'Razors (number of shaves)', 350, 'mc_inventory[''razor'']', $curloc)
-	*p func ('$stock_item', 20, 'Sunblock', 500, 'mc_inventory[''suncream'']', $curloc)
-	*p func ('$stock_item', 40, 'Deodorant', 200, 'mc_inventory[''deodorant'']', $curloc)
-	*p func ('$stock_item', 20, 'Tampons', 200, 'mc_inventory[''tampons'']', $curloc)
-	*p func ('$stock_item', 20, 'Sanitary napkins', 100, 'mc_inventory[''sanitary_pads'']', $curloc)
-	*p func ('$stock_item', 30, 'Shampoo', 250, 'mc_inventory[''shampoo'']', $curloc)
-	*p func ('$stock_item', 10, 'Hair scrunchies', 80, 'mc_inventory[''scrunchies'']', $curloc)
-	*p func ('$stock_item', 12, 'Hair pins', 100, 'mc_inventory[''kirbygrips'']', $curloc)
-	*p func ('$stock_item', 10, 'Wipes', 50, 'mc_inventory[''makeup_wipes'']', $curloc, '', iif(bag > 0, 0, 1), 'You need a handbag')
-	*p func ('$stock_item', 10, 'Portable makeup', 700, 'mc_inventory[''travel_makeup'']', $curloc, '', iif(bag > 0, 0, 1), 'You need a handbag')
-	*p func ('$stock_item', 20, 'Mouthwash', 150, 'mc_inventory[''mouthwash'']', $curloc, '', iif(bag > 0, 0, 1), 'You need a handbag')
-	*p func ('$single_stock_item', 1, 'Comb', 150, 'mc_inventory[''comb'']', $curloc, '', iif(bag > 0, 0, 1), 'You need a handbag')
-	*p func ('$single_stock_item', 1, 'Compact Mirror', 1150, 'mc_inventory[''travel_mirror'']', $curloc, '', iif(bag > 0, 0, 1), 'You need a handbag')
-	*p '</table></center>'
+	gs 'item_cart', 'shoppping_aisle', 'beauty'
 	gs 'stat'
 	gs 'themes', 'indoors'