@@ -121,7 +121,7 @@ var/list/global_sidormat_list = list(
121
121
new / datum / data/ stalker_equipment(" Berill-5M" , " Áåðèëë-5Ì" , / obj / item/ clothing/ suit/ berill, 50000 , EXPERIENCED ,faction = " Loners" ),
122
122
new / datum / data/ stalker_equipment(" Wind of Freedom" , " Âåòåð Ñâîáîäû" , / obj / item/ clothing/ suit/ hooded/ kombez/ veter, 25000 , ROOKIE , faction = " Freedom" ),
123
123
new / datum / data/ stalker_equipment(" Guardian of Freedom" , " Ñòðàæ Ñâîáîäû" , / obj / item/ clothing/ suit/ strazh, 40000 , EXPERIENCED ,faction = " Freedom" ),
124
- new / datum / data/ stalker_equipment(" PZ-1 " , " ÏÇ-1" , / obj / item/ clothing/ suit/ hooded/ kombez/ monolith, 25000 , ROOKIE , faction = " Monolith" ),
124
+ new / datum / data/ stalker_equipment(" PZ-1 " , " ÏÇ-1" , / obj / item/ clothing/ suit/ hooded/ kombez/ monolith, 25000 , ROOKIE , faction = " Monolith" , sale_price = 8000 ),
125
125
new / datum / data/ stalker_equipment(" Monolith scientific suit " , " Íàó÷íûé êîìáèíåçîí ìîíîëèòà" , / obj / item/ clothing/ suit/ hooded/ sealed/ monolith, 60000 , ROOKIE , faction = " Monolith" ),
126
126
new / datum / data/ stalker_equipment(" PS5-M" , " ÏÑ5-Ì" , / obj / item/ clothing/ suit/ hooded/ kombez/ ps5m, 25000 , ROOKIE , faction = " Duty" ),
127
127
new / datum / data/ stalker_equipment(" Heavy merc armor" , " Òÿæåëàÿ áðîíÿ íà¸ìíèêîâ" , / obj / item/ clothing/ suit/ assaultmerc, 50000 , EXPERIENCED ,faction = " Mercenaries" ),
@@ -175,6 +175,7 @@ var/list/global_sidormat_list = list(
175
175
176
176
" Misc" = list (
177
177
// /////////////////////////////// Äðóãîå /////////////////////////////////////////////
178
+ new / datum / data/ stalker_equipment/ stalker_pda(" PDA" , " ÊÏÊ" , / obj / item/ device/ stalker_pda, 4000 , ROOKIE ),
178
179
new / datum / data/ stalker_equipment(" Repair-kit for suits and helmets" , " Ðåì. êîìïëåêò äëя áðîíåêîñòþìîâ è øëåìîâ" , / obj / item/ device/ repair_kit/ clothing, 10000 , ROOKIE ),
179
180
new / datum / data/ stalker_equipment(" Repair-kit for guns" , " Ðåì. êîìïëåêò äëя îãíåñòðåëüíîãî îðóæèя" , / obj / item/ device/ repair_kit/ gun, 4000 , ROOKIE ),
180
181
new / datum / data/ stalker_equipment(" Guitar" , " Ãèòàðà" , / obj / item/ device/ instrument/ guitar, 3000 , ROOKIE ),
@@ -258,15 +259,15 @@ var/list/global_sidormat_list = list(
258
259
new / datum / data/ stalker_equipment(" Ñëþäà" , " Ñëþäà" , / obj / item/ weapon/ artifact/ mica, 30000 , ROOKIE , sale_price = 15000 ),
259
260
new / datum / data/ stalker_equipment(" Ñâåòëяê" , " Ñâåòëяê" , / obj / item/ weapon/ artifact/ firefly, 60000 , ROOKIE , sale_price = 30000 ),
260
261
// /////////////////////////////// Ìóñîð //////////////////////////////////////////////
261
- new / datum / data/ stalker_equipment(" Konserva" , " Êîíñåðâåà " , / obj / item/ trash/ konserva, 400 , ROOKIE ),
262
- new / datum / data/ stalker_equipment(" Konserva" , " Êîíñåðâåà " , / obj / item/ trash/ konserva/ MREkonserva1, 200 , ROOKIE ),
263
- new / datum / data/ stalker_equipment(" Konserva" , " Êîíñåðâåà " , / obj / item/ trash/ konserva/ MREkonserva2, 200 , ROOKIE ),
264
- new / datum / data/ stalker_equipment(" Konserva" , " Êîíñåðâåà " , / obj / item/ trash/ konserva/ MREkonserva3, 200 , ROOKIE ),
265
- new / datum / data/ stalker_equipment(" Konserva" , " Êîíñåðâåà " , / obj / item/ trash/ konserva/ bobi, 400 , ROOKIE ),
266
- new / datum / data/ stalker_equipment(" Konserva" , " Êîíñåðâåà " , / obj / item/ trash/ konserva/ fish, 500 , ROOKIE ),
267
- new / datum / data/ stalker_equipment(" Konserva" , " Êîíñåðâåà " , / obj / item/ trash/ konserva/ govyadina, 400 , ROOKIE ),
268
- new / datum / data/ stalker_equipment(" Konserva" , " Êîíñåðâåà " , / obj / item/ trash/ konserva/ shproti, 600 , ROOKIE ),
269
- new / datum / data/ stalker_equipment(" Konserva" , " Êîíñåðâåà " , / obj / item/ trash/ konserva/ soup, 500 , ROOKIE ),
262
+ new / datum / data/ stalker_equipment(" Konserva" , " Êîíñåðâà " , / obj / item/ trash/ konserva, 400 , ROOKIE ),
263
+ new / datum / data/ stalker_equipment(" Konserva" , " Êîíñåðâà " , / obj / item/ trash/ konserva/ MREkonserva1, 200 , ROOKIE ),
264
+ new / datum / data/ stalker_equipment(" Konserva" , " Êîíñåðâà " , / obj / item/ trash/ konserva/ MREkonserva2, 200 , ROOKIE ),
265
+ new / datum / data/ stalker_equipment(" Konserva" , " Êîíñåðâà " , / obj / item/ trash/ konserva/ MREkonserva3, 200 , ROOKIE ),
266
+ new / datum / data/ stalker_equipment(" Konserva" , " Êîíñåðâà " , / obj / item/ trash/ konserva/ bobi, 400 , ROOKIE ),
267
+ new / datum / data/ stalker_equipment(" Konserva" , " Êîíñåðâà " , / obj / item/ trash/ konserva/ fish, 500 , ROOKIE ),
268
+ new / datum / data/ stalker_equipment(" Konserva" , " Êîíñåðâà " , / obj / item/ trash/ konserva/ govyadina, 400 , ROOKIE ),
269
+ new / datum / data/ stalker_equipment(" Konserva" , " Êîíñåðâà " , / obj / item/ trash/ konserva/ shproti, 600 , ROOKIE ),
270
+ new / datum / data/ stalker_equipment(" Konserva" , " Êîíñåðâà " , / obj / item/ trash/ konserva/ soup, 500 , ROOKIE ),
270
271
// /////////////////////////////////////////////////////////////////////////////////////////
271
272
new / datum / data/ stalker_equipment(" 50 RU" , " 50 RU" , / obj / item/ stack/ spacecash/ c50, 50 , ROOKIE , sale_price = 50 ),
272
273
new / datum / data/ stalker_equipment(" 100 RU" , " 100 RU" , / obj / item/ stack/ spacecash/ c100, 100 , ROOKIE , sale_price = 100 ),
@@ -289,7 +290,7 @@ var/list/global_sidormat_list = list(
289
290
var /itemloc2 = null
290
291
var /balance = 0
291
292
var /rating = 0
292
- var /switches = 0
293
+ var /switches = BUY_STUFF
293
294
var /real_assorment = list ()
294
295
var /list /special_factions = list (" Loners" , " Bandits" )
295
296
var /path_ending = null
@@ -332,6 +333,34 @@ var/list/global_sidormat_list = list(
332
333
high_tier_sidormatitems += src
333
334
real_sidormat_items += src
334
335
336
+ / datum / data/ stalker_equipment/ proc / GetCost()
337
+ return src . sale_price
338
+
339
+ / datum / data/ stalker_equipment/ stalker_pda/ GetCost(var /obj /item/device/stalker_pda/KPK )
340
+ var /cost_ = src . sale_price
341
+ if (KPK . owner && (KPK . owner. stat == DEAD ))
342
+ var /rank_ = Clamp(KPK . profile. fields[" rating" ], ROOKIE , ZONE_LEGEND )
343
+ cost_ += GetCostBasedOnReputation(KPK . profile. fields[" reputation" ])
344
+ cost_ += rank_* 2
345
+ return cost_
346
+
347
+ / proc / GetCostBasedOnReputation(var /rep_ )
348
+ switch (rep_)
349
+ if (AMAZING to INFINITY )
350
+ return ((NEUTRAL - rep_) * 20 )
351
+ if (VERYGOOD to AMAZING )
352
+ return ((NEUTRAL - rep_) * 10 )
353
+ if (GOOD to VERYGOOD )
354
+ return ((NEUTRAL - rep_) * 5 )
355
+ if (BAD to GOOD )
356
+ return 0
357
+ if (VERYBAD to BAD )
358
+ return ((NEUTRAL - rep_) * 5 )
359
+ if (DISGUSTING to VERYBAD )
360
+ return ((NEUTRAL - rep_) * 10 )
361
+ if (- INFINITY to DISGUSTING )
362
+ return ((NEUTRAL - rep_) * 20 )
363
+
335
364
/ obj / machinery/ stalker/ sidormat/ New()
336
365
itemloc = locate (x - 1 , y, z)
337
366
itemloc2 = locate (x + 1 , y, z)
@@ -386,7 +415,7 @@ var/list/global_sidormat_list = list(
386
415
dat += " <div class='statusDisplay'>"
387
416
dat += " Balance: [ num2text(balance, 8 )] RU<br>"
388
417
dat += " <br><br>INSTRUCTION: Put habar for sale on the <b>left</b> table.<br>" // Çàáèðàòü äåíüãè è êóïëåííûå âåùè - íà <b>ïðàâîì</b>.
389
- if (! (switches & SHOW_FACTION_EQUIPMENT ))
418
+ if (! (switches & BUY_STUFF ))
390
419
dat += " <A href='?src=\ref [ src ] ;choice=take'><b>Sell habar</b></A><br>"
391
420
if (door_device && sk. fields[" degree" ])
392
421
dat += " <A href='?src=\ref [ src ] ;basement_toggle=1'><b>Toggle basement door</b></A><br>"
@@ -398,7 +427,7 @@ var/list/global_sidormat_list = list(
398
427
continue
399
428
dat += " <tr><td><center><big><b>[ L] </b></big></center></td><td></td><td></td></tr>"
400
429
for (var /datum /data/stalker_equipment/prize in global_sidormat_list[L])
401
- if ((KPK . eng_faction_s == prize. faction && (KPK . eng_faction_s in special_factions || (switches & SHOW_FACTION_EQUIPMENT ))) || prize. faction == " Everyone" )
430
+ if ((sk . fields[ " faction_s " ] == prize. faction && ((sk . fields[ " faction_s " ] in special_factions) || (switches & SHOW_FACTION_EQUIPMENT ))) || prize. faction == " Everyone" )
402
431
// if(rating >= prize.rating)
403
432
if (get_assortment_level(H) >= prize. assortment_level)
404
433
dat += " <tr><td>[ prize. name] </td><td> [ prize. cost] </td><td><A href='?src= \ref [ src ] ;purchase= \ref [ prize] '>Buy</A></td></tr>"
@@ -413,7 +442,7 @@ var/list/global_sidormat_list = list(
413
442
dat += " <div class='statusDisplay'>"
414
443
dat += " Íà ñ÷åòó: [ num2text(balance, 8 )] RU<br>"
415
444
dat += " <br><br>ÈÍÑÒÐÓÊÖÈß: Õàáàð ñêëàäûâàòü - íà <b>ëåâîì</b> ñòîëå.<br>" // Çàáèðàòü äåíüãè è êóïëåííûå âåùè - íà <b>ïðàâîì</b>.
416
- if (! (switches & SHOW_FACTION_EQUIPMENT ))
445
+ if (! (switches & BUY_STUFF ))
417
446
dat += " <A href='?src=\ref [ src ] ;choice=take'><b>Ñáûòü õàáàð</b></A><br>"
418
447
if (door_device && sk. fields[" degree" ])
419
448
dat += " <A href='?src=\ref [ src ] ;basement_toggle=1'><b>Îòêðûòü/Çàêðûòü õðàíèëèùå</b></A><br>"
@@ -425,7 +454,7 @@ var/list/global_sidormat_list = list(
425
454
continue
426
455
dat += " <tr><td><center><b>[ L] </b></center></td><td></td><td></td></tr>"
427
456
for (var /datum /data/stalker_equipment/prize in global_sidormat_list[L])
428
- if ((KPK . eng_faction_s == prize. faction && (KPK . eng_faction_s in special_factions || (switches & SHOW_FACTION_EQUIPMENT ))) || prize. faction == " Everyone" )
457
+ if ((sk . fields[ " faction_s " ] == prize. faction && ((sk . fields[ " faction_s " ] in special_factions) || (switches & SHOW_FACTION_EQUIPMENT ))) || prize. faction == " Everyone" )
429
458
// if(rating >= prize.rating)
430
459
if (get_assortment_level(H) >= prize. assortment_level)
431
460
dat += " <tr><td>[ prize. name_ru] </td><td> [ prize. cost] </td><td><A href='?src= \ref [ src ] ;purchase= \ref [ prize] '>Êóïèòü</A></td></tr>"
@@ -518,7 +547,7 @@ var/list/global_sidormat_list = list(
518
547
say (" No access." )
519
548
return
520
549
521
- var /list /ontable = GetItemsOnTable()
550
+ var /list /atom/movable/ ontable = GetItemsOnTable()
522
551
var /total_cost = GetOnTableCost(ontable)
523
552
524
553
if (total_cost < 100 )
@@ -528,10 +557,10 @@ var/list/global_sidormat_list = list(
528
557
if (I. loc != itemloc)
529
558
continue
530
559
531
- sk. fields[" money" ] += GetCost(I. type )
560
+ sk. fields[" money" ] += GetCost(I)
532
561
balance = sk. fields[" money" ]
533
562
534
- say (" [ I] was sold for [ GetCost(I. type )] ." )
563
+ say (" [ I] was sold for [ GetCost(I)] ." )
535
564
536
565
PlaceInPool (I)
537
566
CHECK_TICK
@@ -545,7 +574,7 @@ var/list/global_sidormat_list = list(
545
574
/ obj / machinery/ stalker/ sidormat/ proc / GetItemsOnTable()
546
575
var /list /ontable = list ()
547
576
for (var /atom/movable /AM in itemloc)
548
- if (! GetCost(AM . type) )
577
+ if (GetCost(AM ) <= 0 )
549
578
continue
550
579
551
580
if (istype(AM , / obj / item/ clothing))
@@ -576,16 +605,16 @@ var/list/global_sidormat_list = list(
576
605
// var/list/ontable = GetItemsOnTable()
577
606
var /total_cost = 0
578
607
579
- for (var /atom /item_on_table in ontable)
580
- var /cost = GetCost(item_on_table. type )
608
+ for (var /atom/movable / item_on_table in ontable)
609
+ var /cost = GetCost(item_on_table)
581
610
if (cost)
582
611
total_cost += cost
583
612
return total_cost
584
613
585
- / obj / machinery/ stalker/ sidormat/ proc / GetCost(itemtype )
614
+ / obj / machinery/ stalker/ sidormat/ proc / GetCost(var / obj /item/ I )
586
615
for (var /datum /data/stalker_equipment/se in real_sidormat_items)
587
- if (itemtype == se. equipment_path)
588
- return se. sale_price
616
+ if (I . type == se. equipment_path)
617
+ return se. GetCost(I)
589
618
return 0
590
619
591
620
/ obj / machinery/ stalker/ sidormat/ ex_act(severity, target)
0 commit comments