mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
Antag Uplink Expansion
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
/datum/uplink_item/abstract/announcements/fake_centcom
|
||||
name = "Command Update Announcement"
|
||||
desc = "Causes a falsified Command Update. Triggers immediately after supplying additional data."
|
||||
item_cost = 40
|
||||
item_cost = 20
|
||||
|
||||
/datum/uplink_item/abstract/announcements/fake_centcom/extra_args(var/mob/user)
|
||||
var/title = sanitize(input("Enter your announcement title.", "Announcement Title") as null|text)
|
||||
@@ -41,7 +41,7 @@
|
||||
/datum/uplink_item/abstract/announcements/fake_crew_arrival
|
||||
name = "Crew Arrival Announcement/Records"
|
||||
desc = "Creates a fake crew arrival announcement as well as fake crew records, using your current appearance (including held items!) and worn id card. Trigger with care!"
|
||||
item_cost = 30
|
||||
item_cost = 15
|
||||
|
||||
/datum/uplink_item/abstract/announcements/fake_crew_arrival/get_goods(var/obj/item/device/uplink/U, var/loc, var/mob/user, var/list/args)
|
||||
if(!user)
|
||||
|
||||
@@ -13,3 +13,18 @@
|
||||
name = "Heavy Armor Vest"
|
||||
item_cost = 40
|
||||
path = /obj/item/clothing/suit/storage/vest/heavy/merc
|
||||
|
||||
/datum/uplink_item/item/armor/gorlexsuit
|
||||
name = "Mercenary Voidsuit"
|
||||
item_cost = 40
|
||||
path = /obj/item/weapon/storage/box/syndie_kit/voidsuit
|
||||
|
||||
/datum/uplink_item/item/armor/gorlexsuit_fire
|
||||
name = "Mercenary Voidsuit (Fire)"
|
||||
item_cost = 40
|
||||
path = /obj/item/weapon/storage/box/syndie_kit/voidsuit/fire
|
||||
|
||||
/datum/uplink_item/item/armor/combat
|
||||
name = "Combat Platecarrier Set"
|
||||
item_cost = 60
|
||||
path = /obj/item/clothing/suit/armor/pcarrier/merc
|
||||
|
||||
@@ -25,51 +25,51 @@
|
||||
path = /obj/item/weapon/storage/box/syndie_kit/imp_uplink
|
||||
|
||||
/datum/uplink_item/item/implants/imp_shades
|
||||
name = "Integrated Thermal-Shades Implant (Organic)"
|
||||
name = "Integrated Thermal-Shades Implant"
|
||||
item_cost = 80
|
||||
path = /obj/item/weapon/storage/box/syndie_kit/imp_aug
|
||||
|
||||
/datum/uplink_item/item/implants/imp_taser
|
||||
name = "Integrated Taser Implant (Organic)"
|
||||
name = "Integrated Taser Implant"
|
||||
item_cost = 30
|
||||
path = /obj/item/weapon/storage/box/syndie_kit/imp_aug/taser
|
||||
|
||||
/datum/uplink_item/item/implants/imp_laser
|
||||
name = "Integrated Laser Implant (Organic)"
|
||||
name = "Integrated Laser Implant"
|
||||
item_cost = 50
|
||||
path = /obj/item/weapon/storage/box/syndie_kit/imp_aug/laser
|
||||
|
||||
/datum/uplink_item/item/implants/imp_dart
|
||||
name = "Integrated Dart Implant (Organic)"
|
||||
name = "Integrated Dart Implant"
|
||||
item_cost = 60
|
||||
path = /obj/item/weapon/storage/box/syndie_kit/imp_aug/dart
|
||||
|
||||
/datum/uplink_item/item/implants/imp_toolkit
|
||||
name = "Integrated Toolkit Implant (Organic)"
|
||||
name = "Integrated Toolkit Implant"
|
||||
item_cost = 80
|
||||
path = /obj/item/weapon/storage/box/syndie_kit/imp_aug/toolkit
|
||||
|
||||
/datum/uplink_item/item/implants/imp_medkit
|
||||
name = "Integrated Medkit Implant (Organic)"
|
||||
name = "Integrated Medkit Implant"
|
||||
item_cost = 60
|
||||
path = /obj/item/weapon/storage/box/syndie_kit/imp_aug/medkit
|
||||
|
||||
/datum/uplink_item/item/implants/imp_analyzer
|
||||
name = "Integrated Research Scanner Implant (Organic)"
|
||||
name = "Integrated Research Scanner Implant"
|
||||
item_cost = 20
|
||||
path = /obj/item/weapon/storage/box/syndie_kit/imp_aug/analyzer
|
||||
|
||||
/datum/uplink_item/item/implants/imp_sword
|
||||
name = "Integrated Sword Implant (Organic)"
|
||||
name = "Integrated Sword Implant"
|
||||
item_cost = 40
|
||||
path = /obj/item/weapon/storage/box/syndie_kit/imp_aug/sword
|
||||
|
||||
/datum/uplink_item/item/implants/imp_sprinter
|
||||
name = "Integrated Sprinter Implant (Organic)"
|
||||
name = "Integrated Sprinter Implant"
|
||||
item_cost = 40
|
||||
path = /obj/item/weapon/storage/box/syndie_kit/imp_aug/sprinter
|
||||
|
||||
/datum/uplink_item/item/implants/imp_sprinter
|
||||
name = "Integrated Surge Implant (Organic)"
|
||||
name = "Integrated Surge Implant"
|
||||
item_cost = 40
|
||||
path = /obj/item/weapon/storage/box/syndie_kit/imp_aug/surge
|
||||
|
||||
@@ -24,11 +24,23 @@
|
||||
item_cost = 10
|
||||
path = /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting
|
||||
|
||||
/datum/uplink_item/item/medical/clotting_case
|
||||
name = "Clotting Medicine case"
|
||||
item_cost = 20
|
||||
desc = "A case of three myelamine injectors. Can rapidly remove and stow up to six injectors."
|
||||
path = /obj/item/weapon/storage/quickdraw/syringe_case/clotting
|
||||
|
||||
/datum/uplink_item/item/medical/bonemeds
|
||||
name = "Bone Repair injector"
|
||||
item_cost = 10
|
||||
path = /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed
|
||||
|
||||
/datum/uplink_item/item/medical/bonemeds_case
|
||||
name = "Bone Repair case"
|
||||
item_cost = 20
|
||||
desc = "A case of three osteodaxon injectors. Can rapidly remove and stow up to six injectors."
|
||||
path = /obj/item/weapon/storage/quickdraw/syringe_case/bonemed
|
||||
|
||||
/datum/uplink_item/item/medical/ambrosiadeusseeds
|
||||
name = "Box of 7x ambrosia deus seed packets"
|
||||
item_cost = 10
|
||||
|
||||
48
code/datums/uplink/resources.dm
Normal file
48
code/datums/uplink/resources.dm
Normal file
@@ -0,0 +1,48 @@
|
||||
|
||||
/datum/uplink_item/crated/resources
|
||||
name = "Resource Crate"
|
||||
desc = "A crate routed from an in-system trading post, containing various valuable materials."
|
||||
item_cost = 60
|
||||
category = /datum/uplink_category/services
|
||||
|
||||
paths = list(\
|
||||
/obj/fiftyspawner/uranium,\
|
||||
/obj/fiftyspawner/phoron,\
|
||||
/obj/fiftyspawner/gold,\
|
||||
/obj/fiftyspawner/silver,\
|
||||
/obj/fiftyspawner/osmium,\
|
||||
/obj/fiftyspawner/plasteel\
|
||||
)
|
||||
|
||||
/datum/uplink_item/crated/seeds
|
||||
name = "Exotic Plantlife Crate"
|
||||
desc = "A crate routed from an in-system trading post, containing various exotic plants."
|
||||
item_cost = 20
|
||||
category = /datum/uplink_category/services
|
||||
|
||||
paths = list(\
|
||||
/obj/item/seeds/random,\
|
||||
/obj/item/seeds/random,\
|
||||
/obj/item/seeds/random,\
|
||||
/obj/item/seeds/random,\
|
||||
/obj/item/seeds/random,\
|
||||
/obj/item/seeds/random,\
|
||||
/obj/item/seeds/random,\
|
||||
/obj/item/seeds/random\
|
||||
)
|
||||
|
||||
/datum/uplink_item/crated/spare_organs
|
||||
name = "Spare Organ Crate"
|
||||
desc = "A crate stolen from a medical relief ship, containing various bioprinted organs."
|
||||
item_cost = 20
|
||||
category = /datum/uplink_category/services
|
||||
crate_path = /obj/structure/closet/crate/freezer
|
||||
|
||||
paths = list(\
|
||||
/obj/item/organ/internal/eyes/replicant,\
|
||||
/obj/item/organ/internal/heart/replicant,\
|
||||
/obj/item/organ/internal/kidneys/replicant,\
|
||||
/obj/item/organ/internal/liver/replicant,\
|
||||
/obj/item/organ/internal/lungs/replicant,\
|
||||
/obj/item/organ/internal/voicebox/replicant\
|
||||
)
|
||||
@@ -37,4 +37,16 @@
|
||||
/datum/uplink_item/item/stealth_items/makeover
|
||||
name = "Makeover Kit"
|
||||
item_cost = 5
|
||||
path = /obj/item/weapon/makeover
|
||||
path = /obj/item/weapon/makeover
|
||||
|
||||
/datum/uplink_item/item/stealth_items/thievesgloves
|
||||
name = "Thieve's Gloves"
|
||||
desc = "A pair of sterile gloves that allow the wearer to inspect the backpacks of other players, and swap pocket items."
|
||||
item_cost = 30
|
||||
path = /obj/item/clothing/gloves/sterile/thieves
|
||||
|
||||
/datum/uplink_item/item/stealth_items/deadringer
|
||||
name = "Stealth Watch"
|
||||
desc = "A strange watch which can be used to create a fake corpse if you are injured when it is active, as it projects a cloaking field around your person."
|
||||
item_cost = 50
|
||||
path = /obj/item/weapon/deadringer
|
||||
|
||||
@@ -33,3 +33,51 @@
|
||||
name = "Random Toxin - Beaker"
|
||||
item_cost = 10
|
||||
path = /obj/item/weapon/storage/box/syndie_kit/toxin
|
||||
|
||||
/datum/uplink_item/item/stealthy_weapons/penblade
|
||||
name = "Energy Penblade, Black"
|
||||
desc = "A concealed energy dagger with the functional casing of a pen. Makes an impressive throwing weapon."
|
||||
item_cost = 20
|
||||
path = /obj/item/weapon/pen/blade
|
||||
|
||||
/datum/uplink_item/item/stealthy_weapons/penblade_red
|
||||
name = "Energy Penblade, Red"
|
||||
desc = "A concealed energy dagger with the functional casing of a pen. Makes an impressive throwing weapon."
|
||||
item_cost = 20
|
||||
path = /obj/item/weapon/pen/blade/red
|
||||
|
||||
/datum/uplink_item/item/stealthy_weapons/penblade_blue
|
||||
name = "Energy Penblade, Blue"
|
||||
desc = "A concealed energy dagger with the functional casing of a pen. Makes an impressive throwing weapon."
|
||||
item_cost = 20
|
||||
path = /obj/item/weapon/pen/blade/blue
|
||||
|
||||
/datum/uplink_item/item/stealthy_weapons/penblade_fancy
|
||||
name = "Energy Penblade, Fountain"
|
||||
desc = "A concealed energy dagger with the functional casing of a pen. Makes an impressive throwing weapon."
|
||||
item_cost = 20
|
||||
path = /obj/item/weapon/pen/blade/fountain
|
||||
|
||||
/datum/uplink_item/item/stealthy_weapons/angrybuzzer
|
||||
name = "Morphium Shock Ring"
|
||||
desc = "An enigmatic ring used to create powerful electric shocks when punching. Can be used as a brute-force method of defibrillation."
|
||||
item_cost = 40
|
||||
path = /obj/item/clothing/gloves/ring/buzzer
|
||||
|
||||
/datum/uplink_item/item/stealthy_weapons/huntingtrap
|
||||
name = "Camonetted Beartraps"
|
||||
desc = "A box of unique beartraps which will partially cloak when deployed, allowing for more effective hunting."
|
||||
item_cost = 30
|
||||
path = /obj/item/weapon/storage/box/syndie_kit/deadliest_game
|
||||
|
||||
/datum/uplink_item/item/stealthy_weapons/virus
|
||||
name = "Virus Cultures"
|
||||
desc = "A box of three unique virus cultures. As dangerous to you as anyone else if handled improperly."
|
||||
item_cost = 40
|
||||
path = /obj/item/weapon/storage/box/syndie_kit/viral
|
||||
|
||||
/datum/uplink_item/item/stealthy_weapons/syringe_case
|
||||
name = "Quickdraw Syringe Case"
|
||||
desc = "A small box capable of holding six syringes for rapid deployment. Fits in your pocket."
|
||||
item_cost = 20
|
||||
path = /obj/item/weapon/storage/quickdraw/syringe_case
|
||||
|
||||
@@ -91,6 +91,12 @@
|
||||
item_cost = 30
|
||||
path = /obj/item/weapon/card/emag
|
||||
|
||||
/datum/uplink_item/item/tools/graviton
|
||||
name = "Graviton Goggles"
|
||||
desc = "An obvious, if useful pair of advanced imaging goggles that allow you to see objects and turfs through walls."
|
||||
item_cost = 15
|
||||
path = /obj/item/clothing/glasses/graviton
|
||||
|
||||
/datum/uplink_item/item/tools/thermal
|
||||
name = "Thermal Imaging Glasses"
|
||||
item_cost = 30
|
||||
@@ -111,6 +117,11 @@
|
||||
item_cost = 60
|
||||
path = /obj/item/weapon/storage/box/syndie_kit/demolitions_heavy
|
||||
|
||||
/datum/uplink_item/item/tools/integratedcircuitprinter
|
||||
name = "Integrated Circuit Printer (Upgraded)"
|
||||
item_cost = 10
|
||||
path = /obj/item/device/integrated_circuit_printer/upgraded
|
||||
|
||||
/*
|
||||
/datum/uplink_item/item/tools/packagebomb/huge
|
||||
name = "Package Bomb (Huge)
|
||||
|
||||
@@ -52,4 +52,4 @@ datum/uplink_category/ammunition
|
||||
name = "Telecrystals"
|
||||
|
||||
/datum/uplink_category/backup
|
||||
name = "Backup"
|
||||
name = "Backup"
|
||||
|
||||
@@ -162,6 +162,36 @@ datum/uplink_item/dd_SortValue()
|
||||
|
||||
return "[bicon(default_abstract_uplink_icon)]"
|
||||
|
||||
/*
|
||||
* Crated goods.
|
||||
*/
|
||||
|
||||
/datum/uplink_item/crated
|
||||
var/crate_path = /obj/structure/largecrate
|
||||
var/list/paths = list() // List of paths to be spawned into the crate.
|
||||
|
||||
/datum/uplink_item/crated/get_goods(var/obj/item/device/uplink/U, var/loc)
|
||||
var/obj/L = new crate_path(get_turf(loc))
|
||||
|
||||
L.adjust_scale(rand(9, 12) / 10, rand(9, 12) / 10) // Some variation in the crate / locker size.
|
||||
|
||||
for(var/path in paths)
|
||||
var/obj/O = new path(L)
|
||||
O.forceMove(L)
|
||||
|
||||
return L
|
||||
|
||||
/datum/uplink_item/crated/description()
|
||||
if(!desc)
|
||||
// Fallback description
|
||||
var/obj/temp = crate_path
|
||||
desc = initial(temp.desc)
|
||||
return ..()
|
||||
|
||||
/datum/uplink_item/crated/log_icon()
|
||||
var/obj/I = crate_path
|
||||
return "\icon[I]"
|
||||
|
||||
/****************
|
||||
* Support procs *
|
||||
****************/
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
|
||||
/datum/uplink_item/item/visible_weapons/riggedlaser
|
||||
name = "Exosuit Rigged Laser"
|
||||
item_cost = 60
|
||||
item_cost = 30
|
||||
path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/riggedlaser
|
||||
|
||||
/datum/uplink_item/item/visible_weapons/revolver
|
||||
@@ -146,7 +146,7 @@
|
||||
|
||||
/datum/uplink_item/item/visible_weapons/egun
|
||||
name = "Energy Gun"
|
||||
item_cost = 60
|
||||
item_cost = 30
|
||||
path = /obj/item/weapon/gun/energy/gun
|
||||
|
||||
/datum/uplink_item/item/visible_weapons/lasercannon
|
||||
@@ -171,5 +171,17 @@
|
||||
|
||||
/datum/uplink_item/item/visible_weapons/xray
|
||||
name = "Xray Gun"
|
||||
item_cost = 85
|
||||
item_cost = 60
|
||||
path = /obj/item/weapon/gun/energy/xray
|
||||
|
||||
/datum/uplink_item/item/visible_weapons/flamethrower
|
||||
name = "Heavy Flamethrower"
|
||||
desc = "A large flamethrower that runs on pressurized, gaseous phoron and electric charge."
|
||||
item_cost = 60
|
||||
path = /obj/item/weapon/storage/secure/briefcase/flamer
|
||||
|
||||
/datum/uplink_item/item/visible_weapons/concussion_grenades
|
||||
name = "Concussion Grenades (8)"
|
||||
desc = "A box of eight concussion grenades."
|
||||
item_cost = 30
|
||||
path = /obj/item/weapon/storage/box/syndie_kit/concussion_grenade
|
||||
|
||||
@@ -634,6 +634,8 @@ modules/mob/mob_movement.dm if you move you will be zoomed out
|
||||
modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
|
||||
*/
|
||||
//Looking through a scope or binoculars should /not/ improve your periphereal vision. Still, increase viewsize a tiny bit so that sniping isn't as restricted to NSEW
|
||||
/obj/item/var/ignore_visor_zoom_restriction = FALSE
|
||||
|
||||
/obj/item/proc/zoom(var/tileoffset = 14,var/viewsize = 9) //tileoffset is client view offset in the direction the user is facing. viewsize is how far out this thing zooms. 7 is normal view
|
||||
|
||||
var/devicename
|
||||
@@ -682,7 +684,8 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
|
||||
H.client.pixel_y = 0
|
||||
|
||||
H.visible_message("[usr] peers through the [zoomdevicename ? "[zoomdevicename] of the [src.name]" : "[src.name]"].")
|
||||
H.looking_elsewhere = TRUE
|
||||
if(!ignore_visor_zoom_restriction)
|
||||
H.looking_elsewhere = TRUE
|
||||
H.handle_vision()
|
||||
|
||||
else
|
||||
|
||||
@@ -75,12 +75,12 @@
|
||||
|
||||
var/obj/item/organ/external/E = setup_augment_slots(H, NewOrgan)
|
||||
to_chat(H, "<span class='notice'>You feel a tingling sensation in your [part].</span>")
|
||||
if(E && istype(E) && !(H.internal_organs_by_name[NewOrgan.organ_tag]))
|
||||
NewOrgan.forceMove(H)
|
||||
NewOrgan.owner = H
|
||||
if(E && istype(E) && !(H.internal_organs_by_name[NewOrgan.organ_tag]) && NewOrgan.check_verb_compatability())
|
||||
spawn(rand(1 SECONDS, 30 SECONDS))
|
||||
to_chat(H, "<span class='alien'>You feel a pressure in your [E] as the tingling fades, the lump caused by the implant now gone.</span>")
|
||||
|
||||
NewOrgan.forceMove(H)
|
||||
NewOrgan.owner = H
|
||||
if(E.internal_organs == null)
|
||||
E.internal_organs = list()
|
||||
E.internal_organs |= NewOrgan
|
||||
|
||||
@@ -186,15 +186,22 @@
|
||||
var/mutable_appearance/blade_overlay = mutable_appearance(icon, "[icon_state]_blade")
|
||||
if(lcolor)
|
||||
blade_overlay.color = lcolor
|
||||
color = lcolor
|
||||
cut_overlays() //So that it doesn't keep stacking overlays non-stop on top of each other
|
||||
if(active)
|
||||
add_overlay(blade_overlay)
|
||||
item_state = "[icon_state]_blade"
|
||||
set_light(lrange, lpower, lcolor)
|
||||
else
|
||||
color = "FFFFFF"
|
||||
set_light(0)
|
||||
item_state = "[icon_state]"
|
||||
|
||||
if(istype(usr,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = usr
|
||||
H.update_inv_l_hand()
|
||||
H.update_inv_r_hand()
|
||||
|
||||
/obj/item/weapon/shield/energy/AltClick(mob/living/user)
|
||||
if(!in_range(src, user)) //Basic checks to prevent abuse
|
||||
return
|
||||
@@ -204,7 +211,7 @@
|
||||
if(alert("Are you sure you want to recolor your shield?", "Confirm Recolor", "Yes", "No") == "Yes")
|
||||
var/energy_color_input = input(usr,"","Choose Energy Color",lcolor) as color|null
|
||||
if(energy_color_input)
|
||||
lcolor = sanitize_hexcolor(energy_color_input, desired_format=6, include_crunch=1)
|
||||
lcolor = sanitize_hexcolor(energy_color_input)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/shield/energy/examine(mob/user)
|
||||
|
||||
@@ -78,4 +78,22 @@
|
||||
/obj/item/weapon/reagent_containers/syringe,
|
||||
/obj/item/weapon/reagent_containers/syringe,
|
||||
/obj/item/weapon/reagent_containers/syringe
|
||||
)
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/quickdraw/syringe_case/clotting
|
||||
desc = "A small case for safely carrying sharps around. This one is deluxe!"
|
||||
max_w_class = ITEMSIZE_SMALL
|
||||
starts_with = list(
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting,
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting,
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/quickdraw/syringe_case/bonemed
|
||||
desc = "A small case for safely carrying sharps around. This one is deluxe!"
|
||||
max_w_class = ITEMSIZE_SMALL
|
||||
starts_with = list(
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed,
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed,
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed
|
||||
)
|
||||
|
||||
@@ -266,6 +266,37 @@
|
||||
/obj/item/weapon/tool/screwdriver
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/voidsuit
|
||||
starts_with = list(
|
||||
/obj/item/clothing/suit/space/void/merc,
|
||||
/obj/item/clothing/head/helmet/space/void/merc,
|
||||
/obj/item/clothing/shoes/magboots,
|
||||
/obj/item/weapon/tank/jetpack/oxygen
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/voidsuit/fire
|
||||
starts_with = list(
|
||||
/obj/item/clothing/suit/space/void/merc/fire,
|
||||
/obj/item/clothing/head/helmet/space/void/merc/fire,
|
||||
/obj/item/clothing/shoes/magboots,
|
||||
/obj/item/weapon/tank/jetpack/oxygen
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/concussion_grenade
|
||||
starts_with = list(
|
||||
/obj/item/weapon/grenade/concussion = 8
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/deadliest_game
|
||||
starts_with = list(
|
||||
/obj/item/weapon/beartrap/hunting = 4
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/viral
|
||||
starts_with = list(
|
||||
/obj/item/weapon/virusdish/random = 3
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/secure/briefcase/rifle
|
||||
name = "secure briefcase"
|
||||
starts_with = list(
|
||||
@@ -275,6 +306,15 @@
|
||||
/obj/item/ammo_casing/a145 = 4
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/secure/briefcase/flamer
|
||||
name = "secure briefcase"
|
||||
starts_with = list(
|
||||
/obj/item/weapon/gun/magnetic/gasthrower,
|
||||
/obj/item/weapon/cell/super,
|
||||
/obj/item/weapon/stock_parts/capacitor/adv,
|
||||
/obj/item/weapon/tank/phoron/pressurized = 2
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/secure/briefcase/fuelrod
|
||||
name = "heavy briefcase"
|
||||
desc = "A heavy, locked briefcase."
|
||||
|
||||
@@ -113,6 +113,19 @@
|
||||
air_contents.adjust_gas("phoron", (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C))
|
||||
return
|
||||
|
||||
/obj/item/weapon/tank/phoron/pressurized
|
||||
name = "fuel can"
|
||||
icon_state = "phoron_vox"
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
|
||||
/obj/item/weapon/tank/phoron/pressurized/Initialize()
|
||||
..()
|
||||
|
||||
adjust_scale(0.8)
|
||||
|
||||
air_contents.adjust_gas("phoron", (7*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C))
|
||||
return
|
||||
|
||||
/*
|
||||
* Emergency Oxygen
|
||||
*/
|
||||
|
||||
@@ -105,6 +105,7 @@
|
||||
L.Stun(stun_length)
|
||||
to_chat(L, "<span class='danger'>The steel jaws of \the [src] bite into you, trapping you in place!</span>")
|
||||
deployed = 0
|
||||
anchored = FALSE
|
||||
can_buckle = initial(can_buckle)
|
||||
|
||||
/obj/item/weapon/beartrap/Crossed(atom/movable/AM as mob|obj)
|
||||
|
||||
157
code/modules/clothing/gloves/antagonist.dm
Normal file
157
code/modules/clothing/gloves/antagonist.dm
Normal file
@@ -0,0 +1,157 @@
|
||||
/*
|
||||
* Antagonist-specific gloves, such as traitor or ling-only types.
|
||||
*/
|
||||
|
||||
// Thief - Traitor / Merc
|
||||
/obj/item/clothing/gloves/sterile/thieves
|
||||
name = "sterile gloves"
|
||||
desc = "Sterile gloves."
|
||||
description_antag = "These gloves are uniquely suited for stealing, as well as breaking and entering. They have minor insulation.\
|
||||
Attempting to 'help' someone will open their backpack, if it exists, or their belt if they have no backpack, allowing you to deposit\
|
||||
items into the inventories. Be careful about making too much noise.\
|
||||
Disarm intent will swap the items in your LEFT pockets. Grab will swap RIGHT pockets."
|
||||
icon_state = "latex"
|
||||
item_state_slots = list(slot_r_hand_str = "white", slot_l_hand_str = "white")
|
||||
siemens_coefficient = 0.5 // Not perfect, but slightly more protective than nothing.
|
||||
permeability_coefficient = 0.01
|
||||
germ_level = 0
|
||||
fingerprint_chance = 10 // They're thieves' gloves. What do you think?
|
||||
|
||||
/obj/item/clothing/gloves/sterile/thieves/proc/pickpocket(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/proximity)
|
||||
if(!proximity || !user || !target)
|
||||
return 0
|
||||
|
||||
if(!istype(target))
|
||||
return 0
|
||||
|
||||
if(user.a_intent != I_HURT && (turn(target.dir, 180) == get_dir(user, target)))
|
||||
to_chat(target, "<span class='warning'>[user] rifles in your pockets!</span>")
|
||||
|
||||
if(user.a_intent == I_HELP)
|
||||
if(istype(target.back,/obj/item/weapon/storage) && do_after(user, 3 SECONDS, target))
|
||||
var/obj/item/weapon/storage/Backpack = target.back
|
||||
Backpack.open(user)
|
||||
else if(istype(target.belt, /obj/item/weapon/storage) && do_after(user, 5 SECONDS, target))
|
||||
var/obj/item/weapon/storage/Belt = target.belt
|
||||
Belt.open(user)
|
||||
return 1
|
||||
|
||||
if(user.a_intent == I_DISARM)
|
||||
var/obj/item/LTarg = target.l_store
|
||||
var/obj/item/LUser = user.l_store
|
||||
|
||||
if(do_after(user, 1 SECOND, target))
|
||||
if(istype(LTarg) && do_after(user, 1 SECOND, target))
|
||||
target.drop_from_inventory(LTarg)
|
||||
target.l_store = null
|
||||
user.l_store = LTarg
|
||||
LTarg.forceMove(user)
|
||||
LTarg.equipped(user, slot_l_store)
|
||||
else
|
||||
target.drop_from_inventory(LTarg)
|
||||
|
||||
if(istype(LUser) && do_after(user, 1 SECOND, target))
|
||||
user.drop_from_inventory(LUser)
|
||||
target.l_store = LUser
|
||||
LUser.forceMove(target)
|
||||
LUser.equipped(target, slot_l_store)
|
||||
else if(istype(LUser) && LUser != user.l_store) // We've taken something, so drop the one that's in bluespace.
|
||||
user.drop_from_inventory(LUser)
|
||||
|
||||
return 1
|
||||
|
||||
if(user.a_intent == I_GRAB)
|
||||
var/obj/item/RTarg = target.r_store
|
||||
var/obj/item/RUser = user.r_store
|
||||
|
||||
if(do_after(user, 1 SECOND, target))
|
||||
if(istype(RTarg) && do_after(user, 1 SECOND, target))
|
||||
target.drop_from_inventory(RTarg)
|
||||
target.r_store = null
|
||||
user.r_store = RTarg
|
||||
RTarg.forceMove(user)
|
||||
RTarg.equipped(user, slot_r_store)
|
||||
else
|
||||
target.drop_from_inventory(RTarg)
|
||||
|
||||
if(istype(RUser) && do_after(user, 1 SECOND, target))
|
||||
user.drop_from_inventory(RUser)
|
||||
target.r_store = RUser
|
||||
RUser.forceMove(target)
|
||||
RUser.equipped(target, slot_r_store)
|
||||
else if(istype(RUser) && RUser != user.r_store) // We've taken something, so drop the one that's in bluespace.
|
||||
user.drop_from_inventory(RUser)
|
||||
|
||||
return 1
|
||||
|
||||
/obj/item/clothing/gloves/sterile/thieves/Touch(var/atom/A, var/proximity)
|
||||
if(proximity && istype(usr, /mob/living/carbon/human) && do_after(usr, 1 SECOND, A))
|
||||
return pickpocket(usr, A, proximity)
|
||||
return 0
|
||||
|
||||
// Buzzer Ring - Traitor, Merc.
|
||||
/obj/item/clothing/gloves/ring/buzzer
|
||||
name = "ring"
|
||||
desc = "A plain metal band."
|
||||
description_antag = "This morphium-alloy ring continually generates an electric field, capable of electrocuting a target while not injuring the wearer.\
|
||||
The device is also capable of 'frankenstein'-ing a corpse, long after normal technology would be able to save them. The body will still be tied to the\
|
||||
normal damage limits for survival, however, so care must be taken."
|
||||
icon_state = "material"
|
||||
var/battery_type = /obj/item/weapon/cell/device/weapon/recharge
|
||||
var/obj/item/weapon/cell/battery = null
|
||||
|
||||
/obj/item/clothing/gloves/ring/buzzer/get_cell()
|
||||
return battery
|
||||
|
||||
/obj/item/clothing/gloves/ring/buzzer/Initialize()
|
||||
..()
|
||||
if(!battery)
|
||||
battery = new battery_type(src)
|
||||
|
||||
/obj/item/clothing/gloves/ring/buzzer/Touch(var/atom/A, var/proximity)
|
||||
if(proximity && istype(usr, /mob/living/carbon/human))
|
||||
return zap(usr, A, proximity)
|
||||
return 0
|
||||
|
||||
/obj/item/clothing/gloves/ring/buzzer/proc/zap(var/mob/living/carbon/human/user, var/atom/movable/target, var/proximity)
|
||||
. = FALSE
|
||||
if(user.a_intent == I_HURT && battery.percent() >= 50)
|
||||
if(isliving(target))
|
||||
var/mob/living/L = target
|
||||
|
||||
if(ishuman(L) && battery.percent() >= 90) // Silent text-wise, for maximum potential for gimmicks.
|
||||
var/mob/living/carbon/human/H = L
|
||||
|
||||
if(H.stat == DEAD)
|
||||
. = TRUE
|
||||
|
||||
do_defib(H)
|
||||
|
||||
to_chat(L, "<span class='warning'>You feel a powerful shock!</span>")
|
||||
if(!.)
|
||||
playsound(L, 'sound/effects/sparks7.ogg', 40, 1)
|
||||
L.electrocute_act(battery.percent() * 0.25, src)
|
||||
battery.emp_act(2)
|
||||
return .
|
||||
|
||||
return 0
|
||||
|
||||
/obj/item/clothing/gloves/ring/buzzer/proc/do_defib(var/mob/living/carbon/human/H = null)
|
||||
if(!istype(H))
|
||||
return 0
|
||||
|
||||
dead_mob_list.Remove(H)
|
||||
if((H in living_mob_list) || (H in dead_mob_list))
|
||||
WARNING("Mob [H] was ring-defibbed but already in the living or dead list still!")
|
||||
living_mob_list += H
|
||||
|
||||
H.timeofdeath = 0
|
||||
H.stat = UNCONSCIOUS
|
||||
H.failed_last_breath = 0
|
||||
H.reload_fullscreen()
|
||||
|
||||
H.emote("gasp")
|
||||
H.Weaken(rand(10,25))
|
||||
H.updatehealth()
|
||||
|
||||
battery.emp_act(1)
|
||||
@@ -17,6 +17,9 @@
|
||||
/datum/modifier/fire/tick()
|
||||
holder.inflict_heat_damage(damage_per_tick)
|
||||
|
||||
/datum/modifier/fire/weak
|
||||
damage_per_tick = 1
|
||||
|
||||
/*
|
||||
* Modifier used by projectiles, like the flamethrower, that rely heavily on fire_stacks to persist.
|
||||
*/
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
organ_verbs = list(/mob/living/carbon/human/proc/augment_menu) // Verbs added by the organ when present in the body.
|
||||
target_parent_classes = list() // Is the parent supposed to be organic, robotic, assisted?
|
||||
forgiving_class = FALSE // Will the organ give its verbs when it isn't a perfect match? I.E., assisted in organic, synthetic in organic.
|
||||
forgiving_class = TRUE // Will the organ give its verbs when it isn't a perfect match? I.E., assisted in organic, synthetic in organic.
|
||||
|
||||
var/obj/item/integrated_object // Objects held by the organ, used for re-usable, deployable things.
|
||||
var/integrated_object_type // Object type the organ will spawn.
|
||||
|
||||
@@ -48,6 +48,11 @@
|
||||
var/selectedColor = 1
|
||||
var/colors = list("black","blue","red")
|
||||
|
||||
/obj/item/weapon/pen/AltClick(mob/user)
|
||||
to_chat(user, "<span class='notice'>Click.</span>")
|
||||
playsound(loc, 'sound/items/penclick.ogg', 50, 1)
|
||||
return
|
||||
|
||||
/obj/item/weapon/pen/multi/attack_self(mob/user)
|
||||
if(++selectedColor > 3)
|
||||
selectedColor = 1
|
||||
@@ -92,6 +97,98 @@
|
||||
var/trans = reagents.trans_to_mob(M, 30, CHEM_BLOOD)
|
||||
add_attack_logs(user,M,"Injected with [src.name] containing [contained], trasferred [trans] units")
|
||||
|
||||
/*
|
||||
* Blade pens.
|
||||
*/
|
||||
|
||||
/obj/item/weapon/pen/blade
|
||||
desc = "It's a normal black ink pen."
|
||||
description_antag = "This pen can be transformed into a dangerous melee and thrown assassination weapon with an Alt-Click.\
|
||||
When active, it cannot be caught safely."
|
||||
name = "pen"
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
icon_state = "pen"
|
||||
item_state = "pen"
|
||||
slot_flags = SLOT_BELT | SLOT_EARS
|
||||
throwforce = 3
|
||||
w_class = ITEMSIZE_TINY
|
||||
throw_speed = 7
|
||||
throw_range = 15
|
||||
armor_penetration = 20
|
||||
|
||||
var/active = 0
|
||||
var/active_embed_chance = 0
|
||||
var/active_force = 15
|
||||
var/active_throwforce = 30
|
||||
var/active_w_class = ITEMSIZE_NORMAL
|
||||
var/active_icon_state
|
||||
var/default_icon_state
|
||||
|
||||
/obj/item/weapon/pen/blade/Initialize()
|
||||
..()
|
||||
active_icon_state = "[icon_state]-x"
|
||||
default_icon_state = icon_state
|
||||
|
||||
/obj/item/weapon/pen/blade/AltClick(mob/user)
|
||||
..()
|
||||
if(active)
|
||||
deactivate(user)
|
||||
else
|
||||
activate(user)
|
||||
|
||||
to_chat(user, "<span class='notice'>You [active ? "de" : ""]activate \the [src]'s blade.</span>")
|
||||
|
||||
/obj/item/weapon/pen/blade/proc/activate(mob/living/user)
|
||||
if(active)
|
||||
return
|
||||
active = 1
|
||||
icon_state = active_icon_state
|
||||
embed_chance = active_embed_chance
|
||||
force = active_force
|
||||
throwforce = active_throwforce
|
||||
sharp = 1
|
||||
edge = 1
|
||||
w_class = active_w_class
|
||||
playsound(user, 'sound/weapons/saberon.ogg', 15, 1)
|
||||
damtype = SEARING
|
||||
catchable = FALSE
|
||||
|
||||
attack_verb |= list(\
|
||||
"slashed",\
|
||||
"cut",\
|
||||
"shredded",\
|
||||
"stabbed"\
|
||||
)
|
||||
|
||||
/obj/item/weapon/pen/blade/proc/deactivate(mob/living/user)
|
||||
if(!active)
|
||||
return
|
||||
playsound(user, 'sound/weapons/saberoff.ogg', 15, 1)
|
||||
active = 0
|
||||
icon_state = default_icon_state
|
||||
embed_chance = initial(embed_chance)
|
||||
force = initial(force)
|
||||
throwforce = initial(throwforce)
|
||||
sharp = initial(sharp)
|
||||
edge = initial(edge)
|
||||
w_class = initial(w_class)
|
||||
damtype = BRUTE
|
||||
catchable = TRUE
|
||||
|
||||
/obj/item/weapon/pen/blade/blue
|
||||
desc = "It's a normal blue ink pen."
|
||||
icon_state = "pen_blue"
|
||||
colour = "blue"
|
||||
|
||||
/obj/item/weapon/pen/blade/red
|
||||
desc = "It's a normal red ink pen."
|
||||
icon_state = "pen_red"
|
||||
colour = "red"
|
||||
|
||||
/obj/item/weapon/pen/blade/fountain
|
||||
desc = "A well made fountain pen."
|
||||
icon_state = "pen_fountain"
|
||||
|
||||
/*
|
||||
* Sleepy Pens
|
||||
*/
|
||||
|
||||
@@ -76,12 +76,17 @@
|
||||
var/start_nutrition = H.nutrition
|
||||
var/end_nutrition = 0
|
||||
|
||||
H.nutrition -= rechargeamt / 10
|
||||
H.nutrition -= rechargeamt / 15
|
||||
|
||||
end_nutrition = H.nutrition
|
||||
|
||||
if(start_nutrition - max(0, end_nutrition) < rechargeamt / 10)
|
||||
H.remove_blood((rechargeamt / 10) - (start_nutrition - max(0, end_nutrition)))
|
||||
if(start_nutrition - max(0, end_nutrition) < rechargeamt / 15)
|
||||
|
||||
if(H.isSynthetic())
|
||||
H.adjustToxLoss((rechargeamt / 15) - (start_nutrition - max(0, end_nutrition)))
|
||||
|
||||
else
|
||||
H.remove_blood((rechargeamt / 15) - (start_nutrition - max(0, end_nutrition)))
|
||||
|
||||
power_supply.give(rechargeamt) //... to recharge 1/5th the battery
|
||||
update_icon()
|
||||
|
||||
77
code/modules/projectiles/guns/magnetic/gasthrower.dm
Normal file
77
code/modules/projectiles/guns/magnetic/gasthrower.dm
Normal file
@@ -0,0 +1,77 @@
|
||||
/obj/item/weapon/gun/magnetic/gasthrower
|
||||
name = "phoronthrower"
|
||||
desc = "A modernized flamethrower utilizing pressurized phoron gas as both a propellant and combustion medium."
|
||||
description_fluff = "A weapon designed to effectively combat the threat posed by Almachi soldiers without the danger of other forms of flamethrower."
|
||||
icon_state = "gasthrower"
|
||||
item_state = "bore"
|
||||
wielded_item_state = "bore-wielded"
|
||||
icon = 'icons/obj/railgun.dmi'
|
||||
one_handed_penalty = 20
|
||||
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 4, TECH_ILLEGAL = 2, TECH_PHORON = 4)
|
||||
w_class = ITEMSIZE_LARGE
|
||||
|
||||
burst = 3
|
||||
burst_delay = 1
|
||||
|
||||
fire_sound = 'sound/weapons/towelwipe.ogg'
|
||||
|
||||
removable_components = TRUE
|
||||
gun_unreliable = 0
|
||||
|
||||
load_type = /obj/item/weapon/tank
|
||||
projectile_type = /obj/item/projectile/scatter/flamethrower
|
||||
|
||||
power_cost = 250
|
||||
|
||||
/obj/item/weapon/gun/magnetic/gasthrower/check_ammo()
|
||||
if(!loaded || !istype(loaded, load_type))
|
||||
return 0
|
||||
|
||||
var/obj/item/weapon/tank/Tank = loaded
|
||||
|
||||
Tank.air_contents.update_values() // Safety
|
||||
|
||||
var/turf/T = get_turf(src)
|
||||
|
||||
var/phoron_amt = Tank.air_contents.gas["phoron"]
|
||||
var/co2_amt = Tank.air_contents.gas["carbon_dioxide"]
|
||||
var/oxy_amt = Tank.air_contents.gas["oxygen"]
|
||||
var/n2o_amt = Tank.air_contents.gas["sleeping_agent"]
|
||||
|
||||
if(isnull(co2_amt))
|
||||
co2_amt = 0
|
||||
|
||||
if(isnull(oxy_amt))
|
||||
oxy_amt = 0
|
||||
|
||||
if(isnull(n2o_amt))
|
||||
n2o_amt = 0
|
||||
|
||||
var/phoron_mix_proper = TRUE
|
||||
if(!phoron_amt || phoron_amt < max(0.25, 3 + co2_amt - oxy_amt - (n2o_amt / 2)))
|
||||
phoron_mix_proper = FALSE
|
||||
|
||||
if(Tank.air_contents.return_pressure() >= T.air.return_pressure() && phoron_mix_proper)
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/gun/magnetic/gasthrower/use_ammo()
|
||||
var/obj/item/weapon/tank/Tank = loaded
|
||||
|
||||
var/moles_to_pull = 0.25
|
||||
|
||||
Tank.air_contents.remove(moles_to_pull)
|
||||
|
||||
/obj/item/weapon/gun/magnetic/gasthrower/show_ammo(var/mob/user)
|
||||
..()
|
||||
|
||||
if(loaded)
|
||||
var/obj/item/weapon/tank/T = loaded
|
||||
to_chat(user, "<span class='notice'>\The [T]'s pressure meter shows: [T.air_contents.return_pressure()] kpa.</span>")
|
||||
|
||||
switch(check_ammo())
|
||||
if(TRUE)
|
||||
to_chat(user, "<span class='notice'>\The [src]'s display registers a proper fuel mixture.</span>")
|
||||
if(FALSE)
|
||||
to_chat(user, "<span class='warning'>\The [src]'s display registers an improper fuel mixture.</span>")
|
||||
@@ -18,6 +18,7 @@
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a145
|
||||
accuracy = -75
|
||||
scoped_accuracy = 75
|
||||
ignore_visor_zoom_restriction = TRUE // Ignore the restriction on vision modifiers when using this gun's scope.
|
||||
// one_handed_penalty = 90
|
||||
var/bolt_open = 0
|
||||
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
var/spread_submunition_damage = FALSE // Do we assign damage to our sub projectiles based on our main projectile damage?
|
||||
|
||||
var/damage = 10
|
||||
var/damage_type = BRUTE //BRUTE, BURN, TOX, OXY, CLONE, HALLOSS, ELECTROCUTE, BIOACID are the only things that should be in here
|
||||
var/damage_type = BRUTE //BRUTE, BURN, TOX, OXY, CLONE, HALLOSS, ELECTROCUTE, BIOACID, SEARING are the only things that should be in here
|
||||
var/SA_bonus_damage = 0 // Some bullets inflict extra damage on simple animals.
|
||||
var/SA_vulnerability = null // What kind of simple animal the above bonus damage should be applied to. Set to null to apply to all SAs.
|
||||
var/nodamage = 0 //Determines if the projectile will skip any damage inflictions
|
||||
|
||||
@@ -266,6 +266,14 @@
|
||||
flammability = 2
|
||||
range = 6
|
||||
|
||||
/obj/item/projectile/bullet/incendiary/flamethrower/tiny
|
||||
damage = 2
|
||||
incendiary = 0
|
||||
modifier_type_to_apply = /datum/modifier/fire/weak
|
||||
modifier_duration = 20 SECONDS
|
||||
range = 7
|
||||
agony = 3
|
||||
|
||||
/* Practice rounds and blanks */
|
||||
|
||||
/obj/item/projectile/bullet/practice
|
||||
|
||||
@@ -60,3 +60,13 @@
|
||||
submunitions = list(
|
||||
/obj/item/projectile/bullet/shotgun/ion = 3
|
||||
)
|
||||
|
||||
/obj/item/projectile/scatter/flamethrower
|
||||
damage = 5
|
||||
submunition_spread_max = 100
|
||||
submunition_spread_min = 30
|
||||
force_max_submunition_spread = TRUE
|
||||
|
||||
submunitions = list(
|
||||
/obj/item/projectile/bullet/incendiary/flamethrower/tiny = 7
|
||||
)
|
||||
|
||||
58
html/changelogs/mechoid - antaguplink.yml
Normal file
58
html/changelogs/mechoid - antaguplink.yml
Normal file
@@ -0,0 +1,58 @@
|
||||
################################
|
||||
# Example Changelog File
|
||||
#
|
||||
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
|
||||
#
|
||||
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
|
||||
# When it is, any changes listed below will disappear.
|
||||
#
|
||||
# Valid Prefixes:
|
||||
# bugfix
|
||||
# wip (For works in progress)
|
||||
# tweak
|
||||
# soundadd
|
||||
# sounddel
|
||||
# rscadd (general adding of nice things)
|
||||
# rscdel (general deleting of nice things)
|
||||
# imageadd
|
||||
# imagedel
|
||||
# maptweak
|
||||
# spellcheck (typo fixes)
|
||||
# experiment
|
||||
#################################
|
||||
|
||||
# Your name.
|
||||
author: Mechoid
|
||||
|
||||
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
|
||||
delete-after: True
|
||||
|
||||
# Any changes you've made. See valid prefix list above.
|
||||
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
|
||||
# SCREW THIS UP AND IT WON'T WORK.
|
||||
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
|
||||
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
|
||||
changes:
|
||||
- rscadd: "Energy Daggerpens (20): Disguised energy-knives, which do 15 searing on melee, or 30 when thrown."
|
||||
- rscadd: "Thieves gloves (30): Special gloves that allow you to peep in others' backpacks and belts, and plant items in their bags / pockets."
|
||||
- rscadd: "Buzzer Ring (30): Makes your first two punches electrically charged, first with 25 damage in a shock, then approximately 12.5 damage in the second. If the charge is over 90%, you can force-defib a corpse, even if it's a mindless one. Damage rules still apply, however time-of-death does not."
|
||||
- rscadd: "Resource Crate (60): A crate of uranium, phoron, gold, silver, osmium, and plasteel."
|
||||
- rscadd: "Exotic Plantlife Crate (20): A crate of numerous random seeds."
|
||||
- rscadd: "Spare Organ Crate (20): A crate of bioprinted organs."
|
||||
- rscadd: "Graviton goggles (15): A pair of combined meson/material goggles."
|
||||
- rscadd: "Integrated Circuit Printer (10): An upgraded circuit printer used to make integrated machine."
|
||||
- rscadd: "Flamethrower (60): A large, flame-based weapon."
|
||||
- rscadd: "8 Concussion Grenades (30): A box of eight concussion grenades."
|
||||
- rscadd: "4 Hunting Traps (30): A box of four hunting-traps, similar to those found in the explorer vendor."
|
||||
- rscadd: "3 Virus Samples (40): A box of three unique virus samples."
|
||||
- rscadd: "Quickdraw Syringe Case (20): A case that can hold six syringes, and rapidly deploy them. Fits in your pocket."
|
||||
- rscadd: "Clotting Injector Case (20): A case like above which starts with 3 clotting med injectors instead."
|
||||
- rscadd: "Bonemed Injector Case (20): The same as above, but with bonemeds."
|
||||
- tweak: "Announcement costs lowered to be more equivalent."
|
||||
- tweak: "Egun changed from 60 to 30 TC. It is nowhere near as powerful as a lascannon."
|
||||
- tweak: "Exosuit rigged laser from 60 to 30 TC."
|
||||
- tweak: "Xray gun from 85 to 60 TC."
|
||||
- tweak: "Augments can now be used by everyone, as robot-specific ones will require FBP organ revamp."
|
||||
- tweak: "Anti-Materiel Rifle can once again be used with thermals."
|
||||
- tweak: "Augment guns use slightly less blood / system instability to charge, so it doesn't kill you dead in moments."
|
||||
- bugfix: "Energy Shields work again, and can be colored."
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 21 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 7.9 KiB |
@@ -424,7 +424,11 @@
|
||||
#include "code\datums\uplink\hardsuit_modules.dm"
|
||||
#include "code\datums\uplink\implants.dm"
|
||||
#include "code\datums\uplink\medical.dm"
|
||||
<<<<<<< HEAD:vorestation.dme
|
||||
#include "code\datums\uplink\medical_vr.dm"
|
||||
=======
|
||||
#include "code\datums\uplink\resources.dm"
|
||||
>>>>>>> c7ba2a8... Antag Uplink Expansion (#6788):polaris.dme
|
||||
#include "code\datums\uplink\stealth_items.dm"
|
||||
#include "code\datums\uplink\stealthy_weapons.dm"
|
||||
#include "code\datums\uplink\telecrystals.dm"
|
||||
@@ -1721,7 +1725,11 @@
|
||||
#include "code\modules\clothing\glasses\glasses.dm"
|
||||
#include "code\modules\clothing\glasses\glasses_vr.dm"
|
||||
#include "code\modules\clothing\glasses\hud.dm"
|
||||
<<<<<<< HEAD:vorestation.dme
|
||||
#include "code\modules\clothing\glasses\hud_vr.dm"
|
||||
=======
|
||||
#include "code\modules\clothing\gloves\antagonist.dm"
|
||||
>>>>>>> c7ba2a8... Antag Uplink Expansion (#6788):polaris.dme
|
||||
#include "code\modules\clothing\gloves\arm_guards.dm"
|
||||
#include "code\modules\clothing\gloves\arm_guards_vr.dm"
|
||||
#include "code\modules\clothing\gloves\boxing.dm"
|
||||
@@ -3007,6 +3015,7 @@
|
||||
#include "code\modules\projectiles\guns\launcher\rocket.dm"
|
||||
#include "code\modules\projectiles\guns\launcher\syringe_gun.dm"
|
||||
#include "code\modules\projectiles\guns\magnetic\bore.dm"
|
||||
#include "code\modules\projectiles\guns\magnetic\gasthrower.dm"
|
||||
#include "code\modules\projectiles\guns\magnetic\magnetic.dm"
|
||||
#include "code\modules\projectiles\guns\magnetic\magnetic_construction.dm"
|
||||
#include "code\modules\projectiles\guns\magnetic\magnetic_railgun.dm"
|
||||
|
||||
Reference in New Issue
Block a user