More bay merge fixes (#1243)

- Fixes #1227 
- Fixes #1236 
- Re-add lamarr.
- Fix bootknife thing
- Fix a couple of things related to borgs
- Re-add our tator items
- Adding back all the hardsuit modules back to robotics
- Fixing a couple of missing sprites, like fireaxe cabinet
- Fixed missing computer sprites when no power
This commit is contained in:
Alberyk
2016-12-18 22:13:42 +02:00
committed by skull132
parent 535919aaa7
commit 2c6dad2dd3
22 changed files with 427 additions and 103 deletions
+9 -9
View File
@@ -10,10 +10,15 @@
item_cost = 1
path = /obj/item/ammo_magazine/mc9mm
/datum/uplink_item/item/ammo/a10mm
name = "10mm"
item_cost = 1
path = /obj/item/ammo_magazine/a10mm
/datum/uplink_item/item/ammo/tommygunmag
name = "Tommygun Magazine (.45)"
item_cost = 2
path = /obj/item/ammo_magazine/tommymag
/datum/uplink_item/item/ammo/tommygundrum
name = "Tommygun Drum Magazine (.45)"
item_cost = 4
path = /obj/item/ammo_magazine/tommydrum
/datum/uplink_item/item/ammo/darts
name = "Darts"
@@ -25,11 +30,6 @@
item_cost = 2
path = /obj/item/ammo_magazine/a357
/datum/uplink_item/item/ammo/a762
name = "7.62mm"
item_cost = 3
path = /obj/item/ammo_magazine/a762
/datum/uplink_item/item/ammo/sniperammo
name = "14.5mm"
item_cost = 4
+5
View File
@@ -18,3 +18,8 @@
name = "5xEMP Grenades"
item_cost = 6
path = /obj/item/weapon/storage/box/emps
/datum/uplink_item/item/grenades/manhack
name = "Manhack Delivery Grenade"
item_cost = 3
path = /obj/item/weapon/grenade/spawnergrenade/manhacks
@@ -14,6 +14,11 @@
item_cost = 6
path = /obj/item/weapon/gun/energy/crossbow
/datum/uplink_item/item/visible_weapons/forcegloves
name = "Force Gloves"
item_cost = 8
path = /obj/item/clothing/gloves/force/syndicate
/datum/uplink_item/item/visible_weapons/energy_sword
name = "Energy Sword"
item_cost = 8
@@ -34,16 +39,10 @@
item_cost = 12
path = /obj/item/weapon/gun/projectile/revolver
//These are for traitors (or other antags, perhaps) to have the option of purchasing some merc gear.
/datum/uplink_item/item/visible_weapons/submachinegun
name = "Submachine Gun"
item_cost = 12
path = /obj/item/weapon/gun/projectile/automatic/c20r
/datum/uplink_item/item/visible_weapons/assaultrifle
name = "Assault Rifle"
name = "Tommy Gun"
item_cost = 14
path = /obj/item/weapon/gun/projectile/automatic/rifle/sts35
path = /obj/item/weapon/gun/projectile/automatic/tommygun
/datum/uplink_item/item/visible_weapons/heavysniper
name = "Anti-materiel Rifle"
+5
View File
@@ -18,3 +18,8 @@
name = "Combat medical kit"
item_cost = 12
path = /obj/item/weapon/storage/firstaid/combat
/datum/uplink_item/item/medical/combathypo
name = "Combat hypospray"
item_cost = 6
path = /obj/item/weapon/reagent_containers/hypospray/combat
@@ -16,7 +16,7 @@
/datum/uplink_item/item/stealthy_weapons/concealed_cane
name = "Concealed Cane Sword"
item_cost = 2
item_cost = 9
path = /obj/item/weapon/cane/concealed
/datum/uplink_item/item/stealthy_weapons/random_toxin
-10
View File
@@ -122,16 +122,6 @@
else
..()
/obj/item/weapon/cane/concealed/update_icon()
if(concealed_blade)
name = initial(name)
icon_state = initial(icon_state)
item_state = initial(icon_state)
else
name = "cane shaft"
icon_state = "nullrod"
item_state = "foldcane"
/obj/item/weapon/disk
name = "disk"
icon = 'icons/obj/items.dmi'
@@ -328,6 +328,7 @@
/obj/item/weapon/storage/backpack/duffel/tox
name = "scientist's duffel bag"
desc = "Handy when it comes to storing volatile materials of the anomalous persuasion."
icon_state = "duffel-toxins"
/obj/item/weapon/storage/backpack/duffel/sec
name = "security duffel bag"
+262
View File
@@ -0,0 +1,262 @@
/obj/structure/lamarr
name = "lab cage"
icon = 'icons/obj/stationobjs.dmi'
icon_state = "labcage1"
desc = "A glass lab container for storing interesting creatures."
density = 1
anchored = 1
unacidable = 1//Dissolving the case would also delete Lamarr
var/health = 30
var/occupied = 1
var/destroyed = 0
/obj/structure/lamarr/ex_act(severity)
switch(severity)
if (1)
new /obj/item/weapon/material/shard( src.loc )
Break()
qdel(src)
if (2)
if (prob(50))
src.health -= 15
src.healthcheck()
if (3)
if (prob(50))
src.health -= 5
src.healthcheck()
/obj/structure/lamarr/bullet_act(var/obj/item/projectile/Proj)
health -= Proj.damage
..()
src.healthcheck()
return
/obj/structure/lamarr/proc/healthcheck()
if (src.health <= 0)
if (!( src.destroyed ))
src.density = 0
src.destroyed = 1
new /obj/item/weapon/material/shard( src.loc )
playsound(src, "shatter", 70, 1)
Break()
else
playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1)
return
/obj/structure/lamarr/update_icon()
if(src.destroyed)
src.icon_state = "labcageb[src.occupied]"
else
src.icon_state = "labcage[src.occupied]"
return
/obj/structure/lamarr/attackby(obj/item/weapon/W as obj, mob/user as mob)
src.health -= W.force
src.healthcheck()
..()
return
/obj/structure/lamarr/attack_hand(mob/user as mob)
if (src.destroyed)
return
else
usr << "<span class='warning'>You kick the lab cage.</span>"
for(var/mob/O in oviewers())
if ((O.client && !( O.blinded )))
O << "<span class='warning'>[] kicks the lab cage.</span>"
src.health -= 2
healthcheck()
return
/obj/structure/lamarr/proc/Break()
if(occupied)
new /obj/item/clothing/mask/lamarr(src.loc)
occupied = 0
update_icon()
return
var/const/MIN_ACTIVE_TIME = 200 //time between being dropped and going idle
var/const/MAX_ACTIVE_TIME = 400
/obj/item/clothing/mask/lamarr
name = "Lamarr"
desc = "The worst she might do is attempt to... couple with your head."//hope we don't get sued over a harmless reference, rite?
gender = FEMALE
icon = 'icons/mob/alien.dmi'
icon_state = "facehugger"
item_state = "facehugger"
w_class = 3 //note: can be picked up by aliens unlike most other items of w_class below 4
flags = PROXMOVE
body_parts_covered = FACE|EYES
throw_range = 5
var/stat = CONSCIOUS //UNCONSCIOUS is the idle state in this case
var/strength = 5
var/attached = 0
var/sterile = 1
/obj/item/clothing/mask/lamarr/New()//to prevent deleting it if aliums are disabled
return
/obj/item/clothing/mask/lamarr/attack_hand(user as mob)
if((stat == CONSCIOUS))
if(Attach(user))
return
..()
/obj/item/clothing/mask/lamarr/apply_hit_effect(mob/living/target, mob/living/user, var/hit_zone)
. = ..()
user.drop_from_inventory(src)
if(hit_zone == "head")
Attach(target)
/obj/item/clothing/mask/lamarr/examine(mob/user)
..(user)
switch(stat)
if(DEAD,UNCONSCIOUS)
user << "<span class='warning'>[src] is not moving.</span>"
if(CONSCIOUS)
user << "<span class='warning'>[src] seems to be active.</span>"
if (sterile)
user << "<span class='warning'> It looks like the proboscis has been removed.</span>"
return
/obj/item/clothing/mask/lamarr/attackby(obj/item/I, mob/user)
if(I.force)
user.do_attack_animation(src)
Die()
return
/obj/item/clothing/mask/lamarr/bullet_act()
Die()
return
/obj/item/clothing/mask/lamarr/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
if(exposed_temperature > T0C+80)
Die()
return
/obj/item/clothing/mask/lamarr/equipped(mob/M)
..()
Attach(M)
/obj/item/clothing/mask/lamarr/Crossed(atom/target)
HasProximity(target)
return
/obj/item/clothing/mask/lamarr/on_found(mob/finder as mob)
if(stat == CONSCIOUS)
HasProximity(finder)
return 1
return
/obj/item/clothing/mask/lamarr/HasProximity(atom/movable/AM as mob|obj)
if(CanHug(AM))
Attach(AM)
/obj/item/clothing/mask/lamarr/throw_at(atom/target, range, speed)
..()
if(stat == CONSCIOUS)
icon_state = "[initial(icon_state)]_thrown"
spawn(15)
if(icon_state == "[initial(icon_state)]_thrown")
icon_state = "[initial(icon_state)]"
/obj/item/clothing/mask/lamarr/proc/Attach(M as mob)
if((!iscarbon(M)))
return
if(attached)
return
var/mob/living/L = M //just so I don't need to use :
if(loc == L) return
if(stat != CONSCIOUS) return
if(!sterile) L.take_organ_damage(strength,0) //done here so that even borgs and humans in helmets take damage
L.visible_message("<span class='danger'>\[src] leaps at [L]'s face!</span>")
if(ishuman(L))
var/mob/living/carbon/human/H = L
if(H.head && H.head.flags & AIRTIGHT)
H.visible_message("<span class='danger'>\The [src] smashes against [H]'s [H.head]!</span>")
Die()
return
if(iscarbon(M))
var/mob/living/carbon/target = L
if(target.wear_mask)
if(prob(20)) return
var/obj/item/clothing/W = target.wear_mask
if(!W.canremove) return
target.drop_from_inventory(W)
target.visible_message("<span class='danger'>\The [src] tears [W] off of [target]'s face!</span>")
target.equip_to_slot(src, slot_wear_mask)
target.contents += src // Monkey sanity check - Snapshot
GoIdle() //so it doesn't jump the people that tear it off
return
/obj/item/clothing/mask/lamarr/proc/GoActive()
if(stat == DEAD || stat == CONSCIOUS)
return
stat = CONSCIOUS
icon_state = "[initial(icon_state)]"
return
/obj/item/clothing/mask/lamarr/proc/GoIdle(var/min_time=MIN_ACTIVE_TIME, var/max_time=MAX_ACTIVE_TIME)
if(stat == DEAD || stat == UNCONSCIOUS)
return
/* RemoveActiveIndicators() */
stat = UNCONSCIOUS
icon_state = "[initial(icon_state)]_inactive"
spawn(rand(min_time,max_time))
GoActive()
return
/obj/item/clothing/mask/lamarr/proc/Die()
if(stat == DEAD)
return
/* RemoveActiveIndicators() */
icon_state = "[initial(icon_state)]_dead"
stat = DEAD
src.visible_message("<span class='danger'>\The [src] curls up into a ball!</span>")
return
/proc/CanHug(var/mob/M)
if(!iscarbon(M))
return 0
var/mob/living/carbon/C = M
if(istype(C) && locate(/obj/item/organ/xenos/hivenode) in C.internal_organs)
return 0
if(ishuman(C))
var/mob/living/carbon/human/H = C
if(H.head && (H.head.body_parts_covered & FACE) && !(H.head.item_flags & FLEXIBLEMATERIAL))
return 0
return 1
+1 -54
View File
@@ -389,6 +389,7 @@ var/global/list/gear_datums = list()
path = /obj/item/clothing/under/color/blackf
slot = slot_w_uniform
cost = 1
/datum/gear/blackfjumpsuit
display_name = "jumpsuit, rainbow"
path = /obj/item/clothing/under/rainbow
@@ -419,13 +420,6 @@ var/global/list/gear_datums = list()
slot = slot_w_uniform
cost = 1
/datum/gear/roboticist_skirt
display_name = "skirt, roboticist"
path = /obj/item/clothing/under/rank/roboticist/skirt
slot = slot_w_uniform
cost = 1
allowed_roles = list("Roboticist")
/datum/gear/amishsuit
display_name = "suit, amish"
path = /obj/item/clothing/under/sl_suit
@@ -611,46 +605,6 @@ var/global/list/gear_datums = list()
cost = 1
allowed_roles = list("Scientist","Chief Medical Officer","Medical Doctor","Geneticist","Paramedic","Nursing Intern","Xenobiologist","Roboticist","Research Director","Detective",)
// Resomi junk
/datum/gear/resomi_grey
display_name = "Resomi uniform, grey"
path = /obj/item/clothing/under/resomi
cost = 1
slot = slot_w_uniform
/datum/gear/resomi_rainbow
display_name = "Resomi uniform, rainbow"
path = /obj/item/clothing/under/resomi/rainbow
cost = 1
slot = slot_w_uniform
/datum/gear/resomi_white
display_name = "Resomi uniform, white"
path = /obj/item/clothing/under/resomi/white
cost = 1
slot = slot_w_uniform
/datum/gear/resomi_eng
display_name = "Resomi uniform, Engineering"
path = /obj/item/clothing/under/resomi/yellow
cost = 1
slot = slot_w_uniform
allowed_roles = list("Chief Engineer","Station Engineer","Atmospherics Technician")
/datum/gear/resomi_sec
display_name = "Resomi uniform, Security"
path = /obj/item/clothing/under/resomi/red
cost = 1
slot = slot_w_uniform
allowed_roles = list("Security Officer","Head of Security","Warden")
/datum/gear/resomi_med
display_name = "Resomi uniform, Medical"
path = /obj/item/clothing/under/resomi/medical
cost = 1
slot = slot_w_uniform
// Attachments
/datum/gear/armband_cargo
display_name = "armband, cargo"
@@ -1272,7 +1226,6 @@ var/global/list/gear_datums = list()
sort_category = "utility"
cost = 2
/datum/gear/wallet
display_name = "wallet"
path = /obj/item/weapon/storage/wallet
@@ -1418,7 +1371,6 @@ var/global/list/gear_datums = list()
sort_category = "misc"
cost = 1
/datum/gear/cape
display_name = "tunnel cloak"
path = /obj/item/weapon/storage/backpack/cloak
@@ -1437,11 +1389,6 @@ var/global/list/gear_datums = list()
sort_category = "misc"
cost = 1
/*/datum/gear/combitool
display_name = "combi-tool"
path = /obj/item/weapon/combitool
cost = 3*/
// Stuff worn on the ears. Items here go in the "ears" sort_category but they must not use
// the slot_r_ear or slot_l_ear as the slot, or else players will spawn with no headset.
/datum/gear/earmuffs
+2 -5
View File
@@ -420,7 +420,7 @@ BLIND // can't see anything
/obj/item/clothing/shoes/proc/draw_knife()
set name = "Draw Boot Knife"
set desc = "Pull out your boot knife."
set category = "IC"
set category = "Object"
set src in usr
if(usr.stat || usr.restrained() || usr.incapacitated())
@@ -443,10 +443,7 @@ BLIND // can't see anything
/obj/item/clothing/shoes/attackby(var/obj/item/I, var/mob/user)
if(can_hold_knife && istype(I, /obj/item/weapon/material/shard) || \
istype(I, /obj/item/weapon/material/butterfly) || \
istype(I, /obj/item/weapon/material/kitchen/utensil) || \
istype(I, /obj/item/weapon/material/hatchet/tacknife))
if(can_hold_knife && is_type_in_list(I, list(/obj/item/weapon/material/shard, /obj/item/weapon/material/butterfly, /obj/item/weapon/material/kitchen/utensil, /obj/item/weapon/material/hatchet/tacknife, /obj/item/weapon/material/sword/trench)))
if(holding)
user << "<span class='warning'>\The [src] is already holding \a [holding].</span>"
return
+4 -2
View File
@@ -21,7 +21,8 @@
force = 3
armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0)
item_flags = NOSLIP
siemens_coefficient = 0.6
siemens_coefficient = 0.5
can_hold_knife = 1
/obj/item/clothing/shoes/combat //Basically SWAT shoes combined with galoshes.
name = "combat boots"
@@ -30,7 +31,8 @@
force = 5
armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0)
item_flags = NOSLIP
siemens_coefficient = 0.6
siemens_coefficient = 0.5
can_hold_knife = 1
cold_protection = FEET
min_cold_protection_temperature = SHOE_MIN_COLD_PROTECTION_TEMPERATURE
@@ -656,11 +656,7 @@ var/global/list/robot_modules = list(
LANGUAGE_SKRELLIAN = 0,
LANGUAGE_GUTTER = 1
)
sprites = list(
"Dread" = "securityrobot",
)
var/id
/obj/item/weapon/robot_module/syndicate/New(var/mob/living/silicon/robot/R)
loc = R
src.modules += new /obj/item/device/flash(src)
@@ -689,7 +685,7 @@ var/global/list/robot_modules = list(
id = null
return ..()
*/
/obj/item/weapon/robot_module/security/combat
/obj/item/weapon/robot_module/combat
name = "combat robot module"
channels = list("Security" = 1)
networks = list(NETWORK_SECURITY)
+120 -1
View File
@@ -608,4 +608,123 @@
build_type = MECHFAB
materials = list(DEFAULT_WALL_MATERIAL = 750, "glass" = 750)
build_path = /obj/item/device/flash/synthetic
category = "Misc"
category = "Misc"
//hardsuits modules
/datum/design/hardsuitmodules
build_type = MECHFAB
category = "Hardsuit Modules"
time = 10
/datum/design/hardsuitmodules/iss_module
name = "IIS module"
desc = "An integrated intelligence system module suitable for most hardsuits."
id = "iis_module"
req_tech = list(TECH_DATA = 4, TECH_MATERIAL = 3)
materials = list("glass" = 7500, DEFAULT_WALL_MATERIAL = 5000)
build_path = /obj/item/rig_module/ai_container
/datum/design/hardsuitmodules/sink_module
name = "hardsuit power sink"
desc = "An heavy-duty power sink suitable for hardsuits."
id = "power_sink_module"
req_tech = list(TECH_POWER = 4, TECH_MATERIAL = 3, TECH_ENGINEERING = 4, TECH_ILLEGAL = 3)
materials = list(DEFAULT_WALL_MATERIAL = 10000, "gold"= 2000, "silver"= 3000, "glass"= 2000)
build_path = /obj/item/rig_module/power_sink
/datum/design/hardsuitmodules/meson_module
name = "hardsuit meson scanner"
desc = "A layered, translucent visor system for a hardsuit."
id = "meson_module"
req_tech = list(TECH_MAGNET = 4, TECH_MATERIAL = 2, TECH_ENGINEERING = 3)
materials = list("glass"= 5000, DEFAULT_WALL_MATERIAL= 1500)
build_path = /obj/item/rig_module/vision/meson
/datum/design/hardsuitmodules/sechud_module
name = "hardsuit meson scanner"
desc = "A simple tactical information system for a hardsuit."
id = "sechud_module"
req_tech = list(TECH_BIO = 3, TECH_MATERIAL = 2, TECH_MAGNET = 3)
materials = list("glass" = 5000, DEFAULT_WALL_MATERIAL =1500)
build_path = /obj/item/rig_module/vision/sechud
/datum/design/hardsuitmodules/medhud_module
name = "hardsuit medical hud"
desc = "A simple medical status indicator for a hardsuit."
id = "medhu_module"
req_tech = list(TECH_BIO = 3, TECH_MATERIAL = 2, TECH_MAGNET = 3)
materials = list("glass"= 5000, DEFAULT_WALL_MATERIAL =1500)
build_path = /obj/item/rig_module/vision/medhud
/datum/design/hardsuitmodules/nvg_module
name = "hardsuit night vision interface"
desc = "A multi input night vision system for a hardsuit."
id = "nvg_module"
req_tech = list(TECH_BIO = 4, TECH_MATERIAL = 3, TECH_MAGNET = 4)
materials = list("glass" = 5000, DEFAULT_WALL_MATERIAL = 1500, "uranium" = 5000)
build_path = /obj/item/rig_module/vision/nvg
/datum/design/hardsuitmodules/healthscanner_module
name = "hardsuit night vision interface"
desc = "A hardsuit-mounted health scanner."
id = "healthscanner_module"
req_tech = list(TECH_BIO = 3, TECH_MATERIAL = 3, TECH_MAGNET = 2)
materials = list("glass" = 5250, DEFAULT_WALL_MATERIAL = 2500)
build_path = /obj/item/rig_module/device/healthscanner
/datum/design/hardsuitmodules/chem_module
name = "mounted chemical injector"
desc = "A complex web of tubing and a large needle suitable for hardsuit use."
id = "chem_module"
req_tech = list(TECH_BIO = 5, TECH_MATERIAL = 4, TECH_DATA = 3, TECH_PHORON = 2)
materials = list("glass" = 9250, DEFAULT_WALL_MATERIAL = 10000, "gold" = 2500, "silver" = 4250, "phoron" = 5500)
build_path = /obj/item/rig_module/chem_dispenser/injector
/datum/design/hardsuitmodules/plasmacutter_module
name = "hardsuit plasma cutter"
desc = "A self-sustaining plasma arc capable of cutting through walls."
id = "plasmacutter_module"
req_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 3, TECH_PHORON = 4)
materials = list("glass" = 5250, DEFAULT_WALL_MATERIAL = 30000, "silver" = 5250, "phoron" = 7250)
build_path = /obj/item/rig_module/device/plasmacutter
/datum/design/hardsuitmodules/jet_module
name = "hardsuit maneuvering jets"
desc = "A compact gas thruster system for a hardsuit."
id = "jet_module"
req_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 3, TECH_POWER = 2)
materials = list("glass" = 4250, DEFAULT_WALL_MATERIAL = 15000, "silver" = 4250,"uranium" = 5250)
build_path = /obj/item/rig_module/maneuvering_jets
/datum/design/hardsuitmodules/drill_module
name = "hardsuit drill mount"
desc = "A very heavy diamond-tipped drill."
id = "drill_module"
req_tech = list(TECH_ENGINEERING = 5, TECH_MATERIAL = 5, TECH_POWER = 4, TECH_MAGNET = 4)
materials = list("glass" = 2250, DEFAULT_WALL_MATERIAL = 55000, "silver" = 5250, "diamond" = 3750)
build_path = /obj/item/rig_module/device/drill
/datum/design/hardsuitmodules/rcd_module
name = "RCD mount"
desc = "A cell-powered rapid construction device for a hardsuit."
id = "rcd_module"
req_tech = list(TECH_ENGINEERING = 6, TECH_MATERIAL = 5, TECH_POWER = 5, TECH_BLUESPACE = 4)
materials = list(DEFAULT_WALL_MATERIAL= 30000, "phoron" = 12500, "silver" = 10000, "gold" = 10000)
build_path = /obj/item/rig_module/device/rcd
/datum/design/hardsuitmodules/taser_module
name = "mounted taser"
desc = "A palm-mounted nonlethal energy projector."
id = "taser_module"
req_tech = list(TECH_MATERIAL = 2, TECH_POWER = 3, TECH_COMBAT = 3, TECH_MAGNET = 2)
materials = list(DEFAULT_WALL_MATERIAL = 7000, "glass" = 5250)
build_path = /obj/item/rig_module/mounted/taser
/datum/design/hardsuitmodules/egun_module
name = "mounted taser"
desc = "A forearm-mounted energy projector."
id = "egun_module"
req_tech = list(TECH_MATERIAL = 3, TECH_POWER = 4, TECH_COMBAT = 4, TECH_MAGNET = 3)
materials = list(DEFAULT_WALL_MATERIAL= 7000, "glass"= 2250, "uranium"= 3250, "gold"= 2500)
build_path = /obj/item/rig_module/mounted/egun