forked from goonstation/goonstation
-
Notifications
You must be signed in to change notification settings - Fork 0
/
syndicate_buylist.dm
1195 lines (1024 loc) · 49.7 KB
/
syndicate_buylist.dm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/**
* Builds the entire syndicate buylist cache, retrieved by uplinks. Ideally only executed once during the pre-round
*/
proc/build_syndi_buylist_cache()
var/list/stuff = concrete_typesof(/datum/syndicate_buylist)
syndi_buylist_cache.Cut()
for(var/SB in stuff)
syndi_buylist_cache += new SB
for (var/datum/syndicate_buylist/LE in syndi_buylist_cache)
if (!LE.cost || !isnum(LE.cost) || LE.cost <= 0)
syndi_buylist_cache.Remove(LE)
syndi_buylist_cache = sortList(syndi_buylist_cache)
// How to add new items? Pick the correct path (nukeops, traitor, surplus) and go from there. Easy.
ABSTRACT_TYPE(/datum/syndicate_buylist)
/datum/syndicate_buylist
/// Name of the buylist entry
var/name = null
/// A typepath for the item that will be spawned when the datum is purchased
var/atom/item = null
/// A typepath for the second, optional, item that will be spawned when the datum is purchased
var/atom/item2 = null
/// A typepath for the third, optional, item that will be spawned when the datum is purchased
var/atom/item3 = null
/// The TC cost of the datum in a buylist. Set to 0 to make it unavailable
var/cost = null
/// The extended description that will go in the "about" section of the item
var/desc = null
/// A list of job names that you want the item to be restricted to, e.g. `list("Clown", "Captain")`
var/list/job = null
/// For items that only can be purchased when you have a specfic objective. Needs to be a type, e.g. `/datum/objective/assassinate`
var/datum/objective/objective = null
/// Is this buylist entry for ejecting TC from an uplink?
var/telecrystal = FALSE
/// If the item should be allowed to be purchased in the VR murderbox
var/vr_allowed = TRUE
/// If the item should show up in surplus crates or not
var/not_in_crates = FALSE
/// The category of the item, currently unused (somewhat used in the Nukeop Commander uplink)
var/category
/// Bitflags for what uplinks can buy this item (see `_std/defines/uplink.dm` for flags)
var/can_buy
/**
* Runs on the purchase of the buylist datum
*
* Arguments:
* `item`, the item you're expecting
* `owner`, the person who bought the item
* `in_surplus_crate`, is TRUE if the item is in a surplus crate, FALSE otherwise.
* `uplink`, the uplink that bought the item
*/
proc/run_on_spawn(obj/item, mob/living/owner, in_surplus_crate = FALSE, obj/item/uplink/uplink)
return
////////////////////////////////////////// Standard items (generic & nukeops uplink) ///////////////////////////////
// Note: traitor uplinks also list these, so you don't have to make two separate entries.
// Note #2: Nuke ops-exclusive item: /datum/syndicate_buylist/traitor + "objective = /datum/objective/specialist/nuclear".
ABSTRACT_TYPE(/datum/syndicate_buylist/generic)
/datum/syndicate_buylist/generic
name = "You shouldn't see me!"
cost = 0
desc = "You shouldn't see me!"
can_buy = UPLINK_TRAITOR | UPLINK_NUKE_OP | UPLINK_SPY | UPLINK_SPY_THIEF
/datum/syndicate_buylist/generic/revolver
name = "Revolver"
item = /obj/item/storage/box/revolver
cost = 6
desc = "The traditional sidearm of a Syndicate field agent. Holds 7 rounds and comes with extra ammo."
can_buy = UPLINK_TRAITOR | UPLINK_NUKE_OP | UPLINK_SPY_THIEF
/datum/syndicate_buylist/generic/pistol
name = "Suppressed .22 Pistol"
item = /obj/item/storage/box/pistol
cost = 3
desc = "A fairly weak yet sneaky pistol, it can still be heard but it won't alert anyone about who fired it."
/datum/syndicate_buylist/generic/shotgun
name = "Shotgun"
item = /obj/item/storage/box/shotgun
cost = 8
desc = "Not exactly stealthy, but it'll certainly make an impression."
not_in_crates = 1
can_buy = UPLINK_TRAITOR | UPLINK_NUKE_OP
/datum/syndicate_buylist/generic/radbow
name = "Rad Poison Crossbow"
item = /obj/item/gun/energy/crossbow
cost = 3
desc = "Crossbow Model C - Now with safer Niobium core. This ranged weapon is great for hitting someone in a dark corridor! They'll never know what hit em! Will slowly recharge between shots."
/datum/syndicate_buylist/generic/garrote
name = "Fibre Wire"
item = /obj/item/garrote
cost = 3
desc = "Commonly used by special forces for silent removal of isolated targets. Ensure you are out of sight, apply to the target's neck from behind with a firm two-hand grip and wait for death to occur."
/datum/syndicate_buylist/generic/empgrenades
name = "EMP Grenades"
item = /obj/item/storage/emp_grenade_pouch
cost = 1
desc = "A pouch of EMP grenades, each capable of causing havoc with the electrical and computer systems found aboard the modern space station. Shorts out power systems, causes feedback in electronic vision devices such as thermals, and causes robots to go haywire."
can_buy = UPLINK_TRAITOR | UPLINK_NUKE_OP | UPLINK_SPY_THIEF
/datum/syndicate_buylist/generic/tacticalgrenades
name = "Tactical Grenades"
item = /obj/item/storage/tactical_grenade_pouch
cost = 2
desc = "A pouch of assorted special-ops grenades."
/datum/syndicate_buylist/generic/voicechanger
name = "Voice Changer"
item = /obj/item/voice_changer
cost = 1
desc = "This voice-modulation device will dynamically disguise your voice to that of whoever is listed on your identification card, via incredibly complex algorithms. Discretely fits inside most masks, and can be removed with wirecutters."
/datum/syndicate_buylist/generic/chamsuit
name = "Chameleon Jumpsuit"
item = /obj/item/clothing/under/chameleon
cost = 1
desc = "A jumpsuit made of advanced fibres that can change colour to suit the needs of the wearer. Do not expose to electromagnetic interference."
/datum/syndicate_buylist/generic/syndicard
name = "Agent Card"
item = /obj/item/card/id/syndicate
cost = 1
desc = "A counterfeit identification card, designed to prevent tracking by the station's AI systems. It features a one-time programmable identification circuit, allowing the entry of a custom false identity. It is also capable of scanning other ID cards and replicating their access credentials."
/datum/syndicate_buylist/generic/emag
name = "Electromagnet Card (EMAG)"
item = /obj/item/card/emag
cost = 6
desc = "A sophisticated tool of sabotage and infiltration. Capable of shorting out or otherwise bypassing security on door locks, robot friend/foe identification systems, shuttle control consoles, and more!"
can_buy = UPLINK_TRAITOR | UPLINK_NUKE_OP | UPLINK_SPY_THIEF
/datum/syndicate_buylist/generic/fimplant
name = "Freedom Implant"
item = /obj/item/implanter/freedom
cost = 1
desc = "An implant that allows instant escape from handcuffs and shackles. Multiple uses possible but not guaranteed."
/datum/syndicate_buylist/generic/spen
name = "Sleepy Pen"
item = /obj/item/pen/sleepypen
cost = 5
desc = "A small pen that has a syringe filled with a powerful sleeping agent inside. Capable of injecting a victim discretely. Refillable once initial contents are used up."
/datum/syndicate_buylist/generic/jammer
name = "Signal Jammer"
item = /obj/item/radiojammer
cost = 3
desc = "Silences radios in an area around you while activated. No one will hear them scream."
/datum/syndicate_buylist/generic/psink
name = "Power Sink"
item = /obj/item/device/powersink
cost = 5
desc = "Lights too bright? Airlocks too automatic? Alarms too functional? Or maybe just nostalgic about the good ol' days before electricity came along? The XL-100 Power Sink addresses all these ills and more. Simply screw to the nearest exposed wiring and flip the switch, and this little wonder will get to work on draining all of that nasty power."
not_in_crates = 1
can_buy = UPLINK_TRAITOR | UPLINK_NUKE_OP
/datum/syndicate_buylist/generic/detomatix
name = "Detomatix Cartridge"
item = /obj/item/disk/data/cartridge/syndicate
cost = 1
desc = "A PDA cartridge allowing remote detonation of other devices. Detonation programs may be accessed through the file manager. Comes complete with readme file."
can_buy = UPLINK_TRAITOR | UPLINK_NUKE_OP | UPLINK_SPY_THIEF
/datum/syndicate_buylist/generic/trickcigs
name = "Trick Cigarettes"
item = /obj/item/cigpacket/syndicate
cost = 1
desc = "A pack of Syndicool Lights exploding trick cigarettes. Due to the use of a military-grade explosive, please do not attempt to smoke these after lighting."
/datum/syndicate_buylist/generic/dnascram
name = "DNA Scrambler"
item = /obj/item/genetics_injector/dna_scrambler
cost = 1
desc = "An injector that gives a new, random identity upon injection."
/datum/syndicate_buylist/generic/derringer
name = "Derringer"
item = /obj/item/gun/kinetic/derringer
cost = 2
desc = "A small pistol that can be hidden inside worn clothes and retrieved using the wink emote. Comes with two shots and does extreme damage at close range."
/datum/syndicate_buylist/generic/stealthstorage
name = "Stealth Storage"
item = /obj/item/storage/box/syndibox
cost = 1
desc = "This little wonder is capable of not only safely storing most small goods, but it can also be tapped against other objects in order to emulate their appearance. Note: May not perform optimally upon close inspection."
/datum/syndicate_buylist/generic/esword
name = "Cyalume Saber"
item = /obj/item/sword
cost = 7
desc = "A powerful melee weapon, crafted using the latest in applied photonics! When inactive, it is small enough to fit in a pocket!"
not_in_crates = 1
can_buy = UPLINK_TRAITOR | UPLINK_NUKE_OP
run_on_spawn(obj/item/sword/stabby, mob/living/owner, in_surplus_crate=FALSE) //Nukies get red ones
if (isnukeop(owner) || isnukeopgunbot(owner))
stabby.light_c.set_color(255, 0, 0)
stabby.bladecolor = "R"
return
/datum/syndicate_buylist/generic/katana
name = "Katana"
item = /obj/item/katana_sheath
cost = 7
desc = "A Japanese sword created in the fire of a dying star. Comes with a sheath for easier storage"
can_buy = UPLINK_TRAITOR | UPLINK_NUKE_OP | UPLINK_SPY_THIEF
/datum/syndicate_buylist/generic/wrestling
name = "Wrestling Belt"
item = /obj/item/storage/belt/wrestling
cost = 7
desc = "A haunted antique wrestling belt, imbued with the spirits of wrestlers past. Wearing it unlocks a number of wrestling moves, which can be accessed in a separate command tab."
/datum/syndicate_buylist/generic/spy_sticker_kit
name = "Spy Sticker Kit"
item = /obj/item/storage/box/spy_sticker_kit
cost = 1
desc = "This kit contains innocuous stickers that you can use to broadcast audio and observe a video feed wirelessly."
/datum/syndicate_buylist/generic/omnitool
name = "Syndicate Omnitool"
item = /obj/item/tool/omnitool/syndicate
cost = 2
desc = "A miniature set of tools that you can hide in your clothing and retrieve with the flex emote. Has knife and weldingtool modes."
/datum/syndicate_buylist/generic/bighat
name = "Syndicate Hat"
item = /obj/item/clothing/head/bighat/syndicate
cost = 12
desc = "Think you're tough shit buddy?"
not_in_crates = 1 //see /datum/syndicate_buylist/surplus/bighat
can_buy = UPLINK_TRAITOR | UPLINK_NUKE_OP | UPLINK_SPY
//////////////////////////////////////////////////// Standard items (traitor uplink) ///////////////////////////////////
ABSTRACT_TYPE(/datum/syndicate_buylist/traitor)
/datum/syndicate_buylist/traitor
name = "You shouldn't see me!"
cost = 0
desc = "You shouldn't see me!"
can_buy = UPLINK_TRAITOR | UPLINK_SPY | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/cloak
name = "Cloaking Device"
item = /obj/item/cloaking_device
cost = 6
//not_in_crates = 1
desc = "Hides you from normal sight. AI and Cyborgs will still see you and so will any human with thermals so be careful how you use it."
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/sponge_capsules
name = "Syndicate Sponge Capsules"
item = /obj/item/spongecaps/syndicate
cost = 3
desc = "A pack of sponge capsules that react with water and produce nasty critters."
/datum/syndicate_buylist/traitor/bomb
name = "Syndicates in Pipebomb"
item = /obj/item/pipebomb/bomb/miniature_syndicate
cost = 3
vr_allowed = 0
desc = "A rather volatile pipe bomb packed with miniature syndicate troops."
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/champrojector
name = "Chameleon Projector"
item = /obj/item/device/chameleon
cost = 5
desc = "Advanced cloaking device that scans an object and, when activated, makes the bearer look like the object. Slows movement while in use."
/datum/syndicate_buylist/traitor/holographic_disguiser
name = "Holographic Disguiser"
item = /obj/item/device/disguiser
cost = 2
desc = "A device capable of disguising your identity temporarily. Beware of flashes and projectiles!"
/datum/syndicate_buylist/traitor/areacloak
name = "Cloaking Field Generator"
item = /obj/item/cloak_gen
cost = 3
desc = "Remote-controlled device that produces an area of effect cloaking field while active. Don't lose the remote!"
/datum/syndicate_buylist/traitor/floorcloset
name = "Floor Closet"
item = /obj/storage/closet/syndi
cost = 1
desc = "This closet was produced using the finest in applied optical illusion technology. When closed, it will dynamically assume the appearance of the floor tile underneath."
/datum/syndicate_buylist/traitor/snidely
name = "Fake Moustache"
item = /obj/item/clothing/mask/moustache
cost = 1
desc = "The ultimate in disguise technology. This will perfectly conceal your identity from any onlookers and leave them stunned at your majestic facial hair."
/datum/syndicate_buylist/traitor/bowling
name = "Bowling Kit"
item = /obj/item/storage/bowling
cost = 7
desc = "Comes with several bowling balls and a suit. You won't be able to pluck up the courage to throw them very hard without wearing the suit!"
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/football
name = "Space-American Football Kit"
item = /obj/item/storage/football
cost = 7
desc = "This kit contains everything you need to become a great football player! Wearing all of the equipment inside will grant you the ability to rush down and tackle foes. You'll also make amazing throws!"
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/mindslave
name = "Mind Slave implant"
item = /obj/item/implanter/mindslave
cost = 3
vr_allowed = 0
desc = "Temporarily place an injected victim under your complete control! Faster and more effective than hypnotism! Warning: Implant effects are NOT indefinite."
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/deluxe_mindslave
name = "Deluxe Mind Slave implant"
item = /obj/item/implanter/super_mindslave
cost = 6
vr_allowed = 0
desc = "Place an injected victim under your complete control! Enhanced neurostimulators make this version last virtually indefinitely!"
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/microbomb
name = "Microbomb Implant"
item = /obj/item/implanter/uplink_microbomb
cost = 1
vr_allowed = 0
desc = "This miniaturized explosive packs a decent punch and will detonate upon the unintentional death of the host. Do not swallow and keep out of reach of children."
/datum/syndicate_buylist/traitor/macrobomb
name = "Macrobomb Implant"
item = /obj/item/implanter/uplink_macrobomb
cost = 12
vr_allowed = 0
desc = "Like the microbomb, but much more powerful. Macrobombs for macrofun!"
/datum/syndicate_buylist/traitor/lightbreaker
name = "Light Breaker"
item = /obj/item/lightbreaker
cost = 4
desc = "A casette player that breaks all lights near you. It also temporarily deafens and staggers all nearby people. Comes with four charges and has a distinctive sound. Can be rewound with a screwdriver."
can_buy = UPLINK_TRAITOR | UPLINK_SPY | UPLINK_SPY_THIEF | UPLINK_HEAD_REV
/datum/syndicate_buylist/traitor/ringtone
name = "SounDreamS PRO cartridge"
item = /obj/item/disk/data/cartridge/ringtone_syndie
cost = 1
desc = "A pirated copy of SounDreamS PRO, a PDA cartridge loaded with dozens of realistic, illegal-sounding sound effects that'll play whenever someone sends a message to your PDA."
can_buy = UPLINK_TRAITOR | UPLINK_SPY | UPLINK_HEAD_REV
/datum/syndicate_buylist/traitor/sonicgrenades
name = "Sonic Grenades"
item = /obj/item/storage/sonic_grenade_pouch
cost = 2
desc = "A pouch filled with five sonic grenades, each one packs enough power to shatter reinforced windows and pop eardrums. No more being cornered by an angry mob! Comes with earplugs."
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/surplus
name = "Surplus Crate"
item = /obj/storage/crate/syndicate_surplus
cost = 12
vr_allowed = 0
desc = "A crate containing 18-24 credits worth of whatever junk we had lying around."
can_buy = UPLINK_TRAITOR
run_on_spawn(var/obj/storage/crate/syndicate_surplus/crate, var/mob/living/owner, in_surplus_crate, obj/item/uplink/uplink)
crate.spawn_items(owner, uplink)
/*
This is basically useless for anyone but miners.
...and it's still useless because they can just mine the stuff themselves.
-Spy
/datum/syndicate_buylist/traitor/loot_crate
name = "Loot Crate"
item = /obj/storage/crate/loot_crate
cost = 8
desc = "A crate containing 18-24 credits worth of 'Materials'."
not_in_crates = 1
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF | UPLINK_HEAD_REV
*/
//////////////////////////////////////////////// Objective-specific items //////////////////////////////////////////////
/datum/syndicate_buylist/traitor/idtracker
name = "Target ID Tracker"
item = /obj/item/pinpointer/idtracker
cost = 1
desc = "Allows you to track the IDs of your assassination targets, but only the ID. If they have changed or destroyed it, the pin pointer will not be useful."
not_in_crates = 1
vr_allowed = 0
objective = /datum/objective/regular/assassinate
can_buy = UPLINK_TRAITOR | UPLINK_SPY
run_on_spawn(var/obj/item/pinpointer/idtracker/tracker, var/mob/living/owner, in_surplus_crate)
tracker.owner = owner
/datum/syndicate_buylist/traitor/idtracker/spy
name = "Target ID Tracker (SPY)"
item = /obj/item/pinpointer/idtracker/spy
cost = 1
desc = "Allows you to track the IDs of all other antagonists, but only the ID. If they have changed or destroyed it, the pin pointer will not be useful."
vr_allowed = 0
not_in_crates = 1
objective = /datum/objective/spy_theft/assasinate
can_buy = UPLINK_TRAITOR | UPLINK_SPY
run_on_spawn(var/obj/item/pinpointer/idtracker/tracker,var/mob/living/owner, in_surplus_crate)
tracker.owner = owner
// Gannets Nuke Ops Class Crates - now found under weapon_vendor.dm
/datum/syndicate_buylist/traitor/classcrate
name = "Class Crate - Generic"
item = /obj/storage/crate/classcrate
cost = 0
desc = "A crate containing a Nuke Ops Class Loadout, this one is generic and you shouldn't see it."
objective = /datum/objective/specialist/nuclear
not_in_crates = 1
can_buy = UPLINK_NUKE_OP
//////////////////////////////////////////////// Job-specific items ////////////////////////////////////////////////////
/datum/syndicate_buylist/traitor/clowncar
name = "Clown Car"
item = /obj/vehicle/clowncar/surplus
cost = 5
vr_allowed = 0
desc = "A funny-looking car designed for circus events. Seats 30, very roomy! Comes with an extra set of clown clothes."
job = list("Clown")
can_buy = UPLINK_TRAITOR | UPLINK_HEAD_REV | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/boomboots
name = "Boom Boots"
item = /obj/item/clothing/shoes/cowboy/boom
cost = 12
vr_allowed = 0
desc = "These big red boots have an explosive step sound. The entire station is sure to want to show you their appreciation."
job = list("Clown")
not_in_crates = 1
can_buy = UPLINK_TRAITOR | UPLINK_HEAD_REV
/datum/syndicate_buylist/traitor/clown_mask
name = "Clown Mask"
item = /obj/item/clothing/mask/gas/syndie_clown
cost = 5
vr_allowed = 0
desc = "A clown mask haunted by the souls of those who honked before. Only true clowns should attempt to wear this. It also functions like a gas mask."
job = list("Clown")
not_in_crates = 1
can_buy = UPLINK_TRAITOR
/datum/syndicate_buylist/traitor/fake_revolver
name = "Funny-looking Revolver"
item = /obj/item/storage/box/fakerevolver
cost = 1
desc = "A revolver with a twist. It will always fire backwards! Watch some vigilante try to get you NOW!"
job = list("Clown")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/chambomb
name = "Chameleon Bomb Case"
item = /obj/item/storage/box/chameleonbomb
cost = 3
vr_allowed = 0
desc = "2 questionable mixtures of a chameleon projector and a bomb. Scan an object to take on its appearance, arm the bomb, and then explode the face(s) of whoever tries to touch it."
job = list("Clown")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/sinjector
name = "Speed Injector"
item = /obj/item/speed_injector
cost = 3
desc = "Disguised as a screwdriver, this stealthy device can be loaded with dna injectors which will be injected into the target instantly and stealthily. The dna injector will be altered when inserted so that there will be a ten second delay before the gene manifests in the victim."
job = list("Geneticist")
not_in_crates = 1
can_buy = UPLINK_TRAITOR | UPLINK_SPY
/datum/syndicate_buylist/traitor/minibible
name = "Miniature Bible"
item = /obj/item/storage/bible/mini
cost = 1
desc = "We understand it can be difficult to carry out some of our missions. Here is some spiritual counsel in a small package."
job = list("Assistant","Technical Assistant","Medical Assistant","Staff Assistant", "Chaplain", "Clown")
vr_allowed = 0
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/scroll
name = "Scroll of Sacred Heart's"
item = /obj/item/device/sacred_heart_scroll
cost = 6
desc = "A scroll from ages past, sure to fill your heart with the lords truth."
job = list("Chaplain")
not_in_crates = 1
vr_allowed = 0
can_buy = UPLINK_TRAITOR | UPLINK_SPY
/datum/syndicate_buylist/traitor/contract
name = "Faustian Bargain Kit"
item = /obj/item/storage/briefcase/satan
cost = 8
desc = "Comes complete with three soul binding contracts, three extra-pointy pens, and one suit provided by Lucifer himself."
job = list("Chaplain")
not_in_crates = 1
vr_allowed = 0
can_buy = UPLINK_TRAITOR | UPLINK_SPY
run_on_spawn(var/obj/item/storage/briefcase/satan/Q,var/mob/living/owner, in_surplus_crate)
if (istype(Q) && owner)
owner.make_merchant() //give them the power to summon more contracts
Q.merchant = owner
owner.mind.diabolical = 1 //can't sell souls to ourselves now can we?
/datum/syndicate_buylist/traitor/mailsuit
name = "Mailman Suit"
item = /obj/item/clothing/under/misc/mail/syndicate
cost = 1
desc = "A mailman's uniform that allows the wearer to use mail chutes as a means of transportation."
job = list("Mailman")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/chargehacker
name = "Mining Charge Hacker"
item = /obj/item/device/chargehacker
cost = 4
desc = "A tool designed to hack mining charges so that they will attach to any surface, disguised as a geological scanner."
not_in_crates = 1
job = list("Miner")
can_buy = UPLINK_TRAITOR
/datum/syndicate_buylist/traitor/kudzuseed
name = "Kudzu Seed"
item = /obj/item/kudzuseed
cost = 4
desc = "Syndikudzu. Interesting. Plant on the floor to grow."
vr_allowed = 0
job = list("Botanist", "Staff Assistant")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/maneater
name = "Maneater Seed"
item = /obj/item/seed/maneater
cost = 1
desc = "A boon for the green-thumbed agent! Simply plant and nurture to raise your own faithful guard-plant! Feed me, Seymour!"
not_in_crates = 1
job = list("Botanist")
can_buy = UPLINK_TRAITOR
/datum/syndicate_buylist/traitor/saw
name = "Chainsaw"
item = /obj/item/saw/syndie
cost = 7
desc = "This old earth beauty is made by hand with strict attention to detail. Unlike today's competing botanical chainsaw, it actually cuts things!"
not_in_crates = 1
job = list("Botanist")
can_buy = UPLINK_TRAITOR
/datum/syndicate_buylist/traitor/hotbox_lighter
name = "Hotbox Lighter"
item = /obj/item/device/light/zippo/syndicate
cost = 1
desc = "The unique fuel mixture gives this lighter a unique flame capable of creating a much denser smoke when burning piles of herbs compared to any normal lighter!"
job = list("Botanist")
can_buy = UPLINK_TRAITOR
/datum/syndicate_buylist/traitor/waspgrenade
name = "Wasp Grenades"
item = /obj/item/storage/box/wasp_grenade_kit
cost = 3
desc = "These wasp grenades contain genetically modified extra double large hornets that will surely inspire awe in all your non-botanical friends."
job = list("Botanist", "Apiculturist")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/wasp_crossbow
name = "Wasp Crossbow"
item = /obj/item/gun/energy/wasp
cost = 6
desc = "Become the member of the Space Cobra Unit you always wanted to be! Spread pain and fear far and wide using this scattershot wasp egg launcher! Through the power of sheer wasp-y fury, this crossbow will slowly recharge between shots and is guaranteed to light up your day with maniacal joy and to bring your enemies no end of sorrow."
not_in_crates = 1 //the value of the item goes down significantly for non-botanists since only botanists are treated kindly by wasps
job = list("Botanist", "Apiculturist")
can_buy = UPLINK_TRAITOR
/datum/syndicate_buylist/traitor/fakegrenade
name = "Fake Cleaner Grenades"
item = /obj/item/storage/box/f_grenade_kit
cost = 2
desc = "This cleaning grenade features over 500% of the legal level of active agent. Cleans dirt off of floors and flesh off of bone! Also contains space lube to create a dazzling shine!"
job = list("Janitor")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF | UPLINK_HEAD_REV
/datum/syndicate_buylist/traitor/compactor
name = "Trash Compactor Cart"
item = /obj/storage/cart/trash/syndicate
cost = 4
desc = "Identical in appearance to an ordinary trash cart, this beauty is capable of compacting (1) laying person placed inside at a time. It was originally supposed to only compact nonliving things, but a serendipitous design mistake resulted in 1500 units with a reversed safety unit."
not_in_crates = 1
vr_allowed = 0
job = list("Janitor")
can_buy = UPLINK_TRAITOR
run_on_spawn(var/obj/storage/cart/trash/syndicate/cart,var/mob/living/owner)
if (owner)
cart.owner_ckey = owner.ckey
/datum/syndicate_buylist/traitor/slip_and_sign
name = "Slip and Sign"
item = /obj/item/caution/traitor
cost = 2
desc = "This Wet Floor Sign spits out organic superlubricant under everyone nearby unless they are wearing galoshes. That'll teach them to ignore the signs. If you are wearing the long janitor gloves you can click with a bucket (or beaker or drinking glass etc.) to replace the payload."
job = list("Janitor")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF | UPLINK_SPY | UPLINK_HEAD_REV
run_on_spawn(obj/item/caution/traitor/sign, mob/living/owner, in_surplus_crate)
if(in_surplus_crate)
new /obj/item/clothing/shoes/galoshes(sign.loc)
new /obj/item/clothing/gloves/long(sign.loc)
/datum/syndicate_buylist/traitor/overcharged_vacuum
name = "Overcharged Vacuum Cleaner"
item = /obj/item/handheld_vacuum/overcharged
cost = 5
desc = "This vacuum cleaner's special attack is way more powerful than the regular thing."
job = list("Janitor")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF | UPLINK_SPY | UPLINK_HEAD_REV
/datum/syndicate_buylist/traitor/syndanalyser
name = "Syndicate Device Analyzer"
item = /obj/item/electronics/scanner/syndicate
cost = 4
vr_allowed = 0
desc = "The shell of a standard Nanotrasen mechanic's analyzer with cutting-edge Syndicate internals. This baby can scan almost anything!"
job = list("Mechanic")
can_buy = UPLINK_TRAITOR
/datum/syndicate_buylist/traitor/stimulants
name = "Stimulants"
item = /obj/item/storage/box/stimulants
cost = 6
desc = "When top agents need energy, they turn to our new line of X-Cite 500 stimulants. This 3-pack of all-natural* and worry-free** blend accelerates perception, endurance, and reaction time to superhuman levels! Shrug off even the cruelest of blows without a scratch! <br><br><font size=-1>*Contains less than 0.5 grams unnatural material per 0.49 gram serving.<br>**May cause dizziness, blurred vision, heart failure, renal compaction, adenoid calcification, or death. Users are recommended to take only a single dose at a time, and let withdrawl symptoms play out naturally.</font>"
job = list("Medical Doctor","Medical Director","Scientist","Geneticist","Pathologist","Research Director")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/syringegun
name = "Syringe Gun"
item = /obj/item/gun/reagent/syringe
cost = 3
desc = "This stainless-steel, revolving wonder fires needles. Perfect for today's safari-loving Syndicate doctor! Loaded by transferring reagents to the gun's internal reservoir."
job = list("Medical Doctor", "Medical Director", "Research Director", "Scientist", "Bartender")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/powergloves
name = "Power Gloves"
item = /obj/item/clothing/gloves/powergloves
cost = 6
desc = "These marvels of modern technology employ nanites and space science to draw energy from nearby cables to zap things. BZZZZT!"
not_in_crates = 1
job = list("Engineer", "Chief Engineer", "Mechanic")
can_buy = UPLINK_TRAITOR
/datum/syndicate_buylist/traitor/pickpocket
name = "Pickpocket Gun"
item = /obj/item/gun/energy/pickpocket
cost = 3
vr_allowed = 0
desc = "A stealthy claw gun capable of stealing and planting items, and severely messing with people."
job = list("Engineer", "Chief Engineer", "Mechanic", "Clown", "Staff Assistant")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/poisonbottle
name = "Poison Bottle"
item = /obj/item/reagent_containers/glass/bottle/poison
cost = 1
desc = "A bottle of poison. Which poison? Who knows."
job = list("Medical Doctor", "Medical Director", "Research Director", "Scientist", "Bartender")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/poisonbundle
name = "Poison Bottle Bundle"
item = /obj/item/storage/box/poison
cost = 7
desc = "A box filled with seven random poison bottles."
job = list("Medical Doctor", "Medical Director", "Research Director", "Scientist", "Bartender")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/chemicompiler
name = "Chemicompiler"
item = /obj/item/device/chemicompiler
cost = 5
not_in_crates = 1
desc = "A handheld version of the Chemicompiler machine in Chemistry."
job = list("Research Director", "Scientist")
can_buy = UPLINK_TRAITOR
/datum/syndicate_buylist/traitor/robosuit
name = "Syndicate Robot Frame"
item = /obj/item/parts/robot_parts/robot_frame/syndicate
cost = 2
desc = "A cyborg shell crafted from the finest recycled steel and reverse-engineered microelectronics. A cyborg crafted from this will see only Syndicate operatives (Such as yourself!) as human. Cyborg also comes preloaded with popular game \"Angry About the Bird\" and is compatible with most headphones."
not_in_crates = 1
vr_allowed = 0
job = list("Roboticist")
can_buy = UPLINK_TRAITOR
/datum/syndicate_buylist/traitor/conversion_chamber
name = "Conversion Chamber"
item = /obj/machinery/recharge_station/syndicate
cost = 8
vr_allowed = 0
desc = "A modified standard-issue cyborg recharging station that will automatically convert any human placed inside into a cyborg. Be aware that cyborgs will follow the active lawset in place on-station."
job = list("Roboticist")
not_in_crates = 1
can_buy = UPLINK_TRAITOR
run_on_spawn(var/obj/item)
new /obj/item/wrench(item.loc) // clarify that we need to wrench it down before use
/datum/syndicate_buylist/traitor/safari
name = "Safari Kit"
item = /obj/item/storage/box/costume/safari
cost = 7
desc = "Almost everything you need to hunt the most dangerous game. Tranquilizer rifle not included."
job = list("Medical Director")
can_buy = UPLINK_TRAITOR
run_on_spawn(obj/item, mob/living/owner, in_surplus_crate)
if(in_surplus_crate)
new /obj/item/gun/kinetic/dart_rifle(item.loc)
new /obj/item/ammo/bullets/tranq_darts(item.loc)
/datum/syndicate_buylist/traitor/pizza_sharpener
name = "Pizza Sharpener"
item = /obj/item/kitchen/utensil/knife/pizza_cutter/traitor
cost = 5
desc = "Have you ever been making a pizza and thought \"this pizza would be better if I could fatally injure someone by throwing it at them\"? Well think no longer! Because you're sharpening pizzas now. You weirdo."
job = list("Chef")
/datum/syndicate_buylist/traitor/syndiesauce
name = "Syndicate Sauce"
item = /obj/item/reagent_containers/food/snacks/condiment/syndisauce
cost = 1
desc = "Our patented secret blend of herbs and spices! Guaranteed to knock even the harshest food critic right off their feet! And into the grave. Because this is poison."
job = list("Chef", "Bartender")
/datum/syndicate_buylist/traitor/donkpockets
name = "Syndicate Donk Pockets"
item = /obj/item/storage/box/donkpocket_w_kit
cost = 2
desc = "Ready to eat, no microwave required! The pocket-sandwich station personnel crave, now with added medical agents to heal you up in a pinch! Zero grams trans-fat per serving*!<br><br><font size=1>*Made with partially-hydrogenated wizard blood.</font>"
job = list("Chef")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/butcherknife
name = "Butcher's Knife"
item = /obj/item/knife/butcher
cost = 7
desc = "An extremely sharp knife with a weighted handle for accurate throwing. Caution: May cause extreme bleeding if the cutting edge comes into contact with human flesh."
not_in_crates = 1
job = list("Chef")
can_buy = UPLINK_TRAITOR
/datum/syndicate_buylist/traitor/hotdog_cart
name = "Syndicate Hot Dog Cart"
item = /obj/storage/cart/hotdog/syndicate
cost = 4
desc = "A sinister hotdog cart which traps people inside and squishes them into, you guessed it, hot dogs."
not_in_crates = TRUE
vr_allowed = FALSE //i don't know why this is here but it's on the trash compactor cart so w/e
job = list("Chef", "Sous-Chef", "Waiter")
can_buy = UPLINK_TRAITOR
run_on_spawn(var/obj/storage/cart/hotdog/syndicate/cart, var/mob/living/owner)
if (owner)
cart.owner_ckey = owner.ckey
/datum/syndicate_buylist/traitor/moonshine
name = "Jug of Moonshine"
item = /obj/item/reagent_containers/food/drinks/moonshine
cost = 2
desc = "A jug full of incredibly potent alcohol. Not recommended for human consumption."
job = list("Bartender")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/shotglass
name = "Extra Large Shot Glasses"
item = /obj/item/storage/box/glassbox/syndie
cost = 2
desc = "A box of shot glasses that hold WAAAY more that normal. Cheat at drinking games!"
job = list("Bartender")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/vuvuzelagun
name = "Vuvuzela Gun"
item = /obj/item/gun/energy/vuvuzela_gun
cost = 3
desc = "<b>BZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ</b>"
job = list("Assistant","Technical Assistant","Medical Assistant","Staff Assistant", "Clown")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/moustache_grenade
name = "Moustache Grenade"
item = /obj/item/old_grenade/moustache
cost = 1
desc = "A disturbingly hairy grenade."
job = list("Assistant","Technical Assistant","Medical Assistant","Staff Assistant", "Clown")
/datum/syndicate_buylist/traitor/hotdog_bomb
name = "Hotdog Bomb"
item = /obj/item/gimmickbomb/hotdog
cost = 1
desc = "Turn your worst enemies into hotdogs."
job = list("Chef", "Sous-Chef", "Waiter", "Clown")
/datum/syndicate_buylist/traitor/chemgrenades
name = "Chem Grenade Starter Kit"
item = /obj/item/storage/box/grenade_starter_kit
cost = 2
desc = "Tired of destroying your own face with acid reactions? Want to make the janitor feel incompetent? This kit gets you started with three grenades. Just add beakers and screw!"
job = list("Scientist","Research Director")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/ammo_38AP // 2 TC for 1 speedloader was very poor value compared to other guns and traitor items in general (Convair880).
name = ".38 AP ammo box"
item = /obj/item/storage/box/ammo38AP
cost = 2
desc = "Armor-piercing ammo for a .38 Special revolver (not included)."
job = list("Detective")
can_buy = UPLINK_TRAITOR
/datum/syndicate_buylist/traitor/traitorthermalscanner
name = "Advanced Optical Thermal Scanner"
item = /obj/item/clothing/glasses/thermal/traitor
cost = 3
desc = "An advanced optical thermal scanner capable of seeing living entities through walls and smoke."
job = list("Detective")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/cargo_transporter
name = "Syndicate Cargo Transporter"
item = /obj/item/cargotele/traitor
cost = 3
vr_allowed = 0
desc = "A modified cargo transporter which teleports containers to a random spot in space and welds them shut."
job = list("Quartermaster","Miner","Engineer")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/telegun
name = "Teleport Gun"
item = /obj/item/gun/energy/teleport
cost = 7
vr_allowed = 0
desc = "An experimental hybrid between a hand teleporter and a directed-energy weapon. Probably a very bad idea. Note -- Only works in conjunction with a stationary teleporter."
job = list("Research Director")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/portapuke
name = "Port-a-Puke"
item = /obj/machinery/portapuke
cost = 7
desc = "An experimental torture chamber that will make any human placed inside puke until they die!"
job = list("Janitor")
/datum/syndicate_buylist/traitor/monkey_barrel
name = "Barrel-O-Monkeys"
item = /obj/storage/monkey_barrel
cost = 6
vr_allowed = 0
desc = "A barrel of bloodthirsty apes. Careful!"
job = list("Staff Assistant","Test Subject","Geneticist","Pathologist")
/datum/syndicate_buylist/traitor/mindslave_module
name = "Mindslave Cloning Module"
item = /obj/item/cloneModule/mindslave_module
cost = 6
vr_allowed = 0
desc = "An add on to the genetics cloning pod that make anyone cloned loyal to whoever installed it."
job = list("Geneticist", "Medical Doctor", "Medical Director")
/datum/syndicate_buylist/traitor/deluxe_mindslave_module
name = "Deluxe Mindslave Cloning Module Kit"
item = /obj/item/storage/box/mindslave_module_kit
cost = 10 // Always leave them 1tc so they can buy the moustache. Style is key.
vr_allowed = 0
desc = "A Deluxe Mindslave Cloning Kit. Contains a mindslave cloning module and a cloning lab in a box!"
job = list("Geneticist", "Medical Doctor", "Medical Director")
/datum/syndicate_buylist/traitor/buddy_ammofab
name = "Guardbuddy Ammo Replicator"
item = /obj/item/device/guardbot_module/ammofab
cost = 1
vr_allowed = 0
desc = "A device that allows PR-6S Guardbuddy units to use their internal charge to replenish kinetic ammunition."
job = list("Research Director")
/datum/syndicate_buylist/traitor/wiretap
name = "Wiretap Radio Upgrade"
item = /obj/item/device/radio_upgrade
cost = 3
desc = "A small device that may be installed in a headset to grant access to all station channels, along with one reserved for Syndicate operatives."
vr_allowed = 0
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF
/datum/syndicate_buylist/traitor/tape
name = "Ducktape"
item = /obj/item/handcuffs/tape_roll
cost = 1
desc = "A roll of duct tape for makeshift handcuffs. Lets you restrain someone 10 times before being used up."
/////////////////////////////////////////// Surplus-exclusive items //////////////////////////////////////////////////
ABSTRACT_TYPE(/datum/syndicate_buylist/surplus)
/datum/syndicate_buylist/surplus
name = "You shouldn't see me!"
cost = 0
desc = "You shouldn't see me!"
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF | UPLINK_HEAD_REV | UPLINK_NUKE_OP
/datum/syndicate_buylist/surplus/dagger
name = "Syndicate Dagger"
item = /obj/item/dagger/syndicate
cost = 2
desc = "An ornamental dagger for stabbing people with."
/datum/syndicate_buylist/surplus/advanced_laser
name = "Laser Rifle"
item = /obj/item/gun/energy/plasma_gun
cost = 6
desc = "An experimental laser design with a self-charging cerenkite battery."
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF | UPLINK_NUKE_OP
/datum/syndicate_buylist/surplus/breachingT
name = "Thermite Breaching Charge"
item = /obj/item/breaching_charge/thermite
cost = 1
desc = "A self-contained thermite breaching charge, useful for destroying walls."
/datum/syndicate_buylist/surplus/breaching
name = "Breaching Charge"
item = /obj/item/breaching_charge
cost = 1
desc = "A self-contained explosive breaching charge, useful for destroying walls."
/datum/syndicate_buylist/surplus/flaregun
name = "Flare Gun"
item = /obj/item/storage/box/flaregun // Gave this thing a box of spare ammo. Having only one shot was kinda lackluster (Convair880).
cost = 2
desc = "A signal flaregun for emergency use. Or for setting jerks on fire"
/datum/syndicate_buylist/surplus/rifle
name = "Old Hunting Rifle"
item = /obj/item/gun/kinetic/hunting_rifle
cost = 3
desc = "An old hunting rifle, comes with only four bullets. Use them wisely."
can_buy = UPLINK_TRAITOR | UPLINK_NUKE_OP
spy
cost = 5
not_in_crates = TRUE
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF | UPLINK_NUKE_OP
/datum/syndicate_buylist/surplus/bananagrenades
name = "Banana Grenades"
item = /obj/item/storage/banana_grenade_pouch
cost = 2
desc = "Honk."
can_buy = UPLINK_TRAITOR | UPLINK_HEAD_REV | UPLINK_NUKE_OP
/datum/syndicate_buylist/surplus/turboflash_box
name = "Flash/cell assembly box"
item = /obj/item/storage/box/turbo_flash_kit
cost = 1
desc = "A box full of common stun weapons with power cells hastily wired into them. Looks dangerous."
/datum/syndicate_buylist/surplus/syndicate_armor
name = "Syndicate Command Armor"
item = /obj/item/clothing/suit/space/industrial/syndicate
cost = 5
desc = "A set of syndicate command armor. I guess the last owner must have died."
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF | UPLINK_NUKE_OP
/datum/syndicate_buylist/surplus/egun_upgrade
name = "Energy Gun Upgrade Pack"
item = /obj/item/ammo/power_cell/self_charging/disruptor
cost = 2
desc = "An advanced self-charging power cell, the ideal upgrade for an energy gun!"
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF | UPLINK_NUKE_OP