mirror of
https://github.com/Yawn-Wider/YWPolarisVore.git
synced 2026-08-30 08:32:39 +01:00
Merge branch 'master' into master
This commit is contained in:
@@ -3,17 +3,40 @@
|
||||
set name = "AOOC"
|
||||
set desc = "Antagonist OOC"
|
||||
|
||||
if(!check_rights(R_ADMIN|R_MOD)) return
|
||||
var/is_admin = check_rights(R_ADMIN|R_MOD, show_msg = 0)
|
||||
var/is_antag = usr.mind && usr.mind.special_role
|
||||
|
||||
if(!is_antag && !is_admin) // Non-antagonists and non-admins have no business using this.
|
||||
to_chat(usr, "<span class='warning'>Sorry, but only certain antagonists or administrators can use this verb.</span>")
|
||||
return
|
||||
|
||||
else if(is_antag && !is_admin) // Is an antag, and not an admin, meaning we need to check if their antag type allows AOOC.
|
||||
var/datum/antagonist/A = get_antag_data(usr.mind.special_role)
|
||||
if(!A || !A.can_use_aooc)
|
||||
to_chat(usr, "<span class='warning'>Sorry, but your antagonist type is not allowed to speak in AOOC.</span>")
|
||||
return
|
||||
|
||||
msg = sanitize(msg)
|
||||
if(!msg) return
|
||||
if(!msg)
|
||||
return
|
||||
|
||||
// Name shown to admins.
|
||||
var/display_name = src.key
|
||||
if(holder && holder.fakekey)
|
||||
display_name = holder.fakekey
|
||||
if(holder)
|
||||
if(holder.fakekey)
|
||||
display_name = usr.client.holder.fakekey
|
||||
|
||||
// Name shown to other players. Admins whom are not also antags have their rank displayed.
|
||||
var/player_display = (is_admin && !is_antag) ? "[display_name]([usr.client.holder.rank])" : display_name
|
||||
|
||||
for(var/mob/M in mob_list)
|
||||
if((M.mind && M.mind.special_role && M.client) || check_rights((R_ADMIN|R_MOD), 0, M))
|
||||
M << "<font color='#960018'><span class='ooc'>" + create_text_tag("aooc", "Antag-OOC:", M.client) + " <EM>[display_name]:</EM> <span class='message'>[msg]</span></span></font>"
|
||||
if(check_rights(R_ADMIN|R_MOD, 0, M)) // Staff can see AOOC unconditionally, and with more details.
|
||||
to_chat(M, "<span class='ooc'><span class='aooc'>[create_text_tag("aooc", "Antag-OOC:", M.client)] <EM>[get_options_bar(src, 0, 1, 1)]([admin_jump_link(usr, M.client.holder)]):</EM> <span class='message'>[msg]</span></span></span>")
|
||||
else if(M.client) // Players can only see AOOC if observing, or if they are an antag type allowed to use AOOC.
|
||||
var/datum/antagonist/A = null
|
||||
if(M.mind) // Observers don't have minds, but they should still see AOOC.
|
||||
A = get_antag_data(M.mind.special_role)
|
||||
if((M.mind && M.mind.special_role && A && A.can_use_aooc) || isobserver(M)) // Antags must have their type be allowed to AOOC to see AOOC. This prevents, say, ERT from seeing AOOC.
|
||||
to_chat(M, "<span class='ooc'><span class='aooc'>[create_text_tag("aooc", "Antag-OOC:", M.client)] <EM>[player_display]:</EM> <span class='message'>[msg]</span></span></span>")
|
||||
|
||||
log_ooc("(ANTAG) [key] : [msg]")
|
||||
@@ -391,4 +391,38 @@
|
||||
|
||||
/datum/gear/suit/miscellaneous/peacoat/New()
|
||||
..()
|
||||
gear_tweaks = list(gear_tweak_free_color_choice)
|
||||
gear_tweaks = list(gear_tweak_free_color_choice)
|
||||
|
||||
/datum/gear/suit/snowsuit
|
||||
display_name = "snowsuit"
|
||||
path = /obj/item/clothing/suit/storage/snowsuit
|
||||
|
||||
/datum/gear/suit/snowsuit/command
|
||||
display_name = "snowsuit, command"
|
||||
path = /obj/item/clothing/suit/storage/snowsuit/command
|
||||
allowed_roles = list("Colony Director","Research Director","Head of Personnel","Head of Security","Chief Engineer","Command Secretary")
|
||||
|
||||
/datum/gear/suit/snowsuit/security
|
||||
display_name = "snowsuit, security"
|
||||
path = /obj/item/clothing/suit/storage/snowsuit/security
|
||||
allowed_roles = list("Security Officer", "Head of Security", "Warden", "Detective")
|
||||
|
||||
/datum/gear/suit/snowsuit/medical
|
||||
display_name = "snowsuit, medical"
|
||||
path = /obj/item/clothing/suit/storage/snowsuit/medical
|
||||
allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist")
|
||||
|
||||
/datum/gear/suit/snowsuit/science
|
||||
display_name = "snowsuit, science"
|
||||
path = /obj/item/clothing/suit/storage/snowsuit/science
|
||||
allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobiologist")
|
||||
|
||||
/datum/gear/suit/snowsuit/engineering
|
||||
display_name = "snowsuit, engineering"
|
||||
path = /obj/item/clothing/suit/storage/snowsuit/engineering
|
||||
allowed_roles = list("Chief Engineer","Atmospheric Technician", "Station Engineer")
|
||||
|
||||
/datum/gear/suit/snowsuit/cargo
|
||||
display_name = "snowsuit, supply"
|
||||
path = /obj/item/clothing/suit/storage/snowsuit/cargo
|
||||
allowed_roles = list("Quartermaster","shaft Miner","Cargo Technician","Head of Personnel")
|
||||
@@ -13,7 +13,7 @@
|
||||
offline_slowdown = 10
|
||||
vision_restriction = 1
|
||||
offline_vision_restriction = 2
|
||||
|
||||
siemens_coefficient = 0.75
|
||||
chest_type = /obj/item/clothing/suit/space/rig/breacher
|
||||
helm_type = /obj/item/clothing/head/helmet/space/rig/breacher
|
||||
boot_type = /obj/item/clothing/shoes/magboots/rig/breacher
|
||||
@@ -25,6 +25,7 @@
|
||||
icon_state = "breacher_rig"
|
||||
armor = list(melee = 90, bullet = 90, laser = 90, energy = 90, bomb = 90, bio = 100, rad = 80) //Takes TEN TIMES as much damage to stop someone in a breacher. In exchange, it's slow.
|
||||
vision_restriction = 0
|
||||
siemens_coefficient = 0.2
|
||||
|
||||
/obj/item/clothing/head/helmet/space/rig/breacher
|
||||
species_restricted = list("Unathi")
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
helm_type = /obj/item/clothing/head/helmet/space/rig/ert
|
||||
|
||||
req_access = list(access_cent_specops)
|
||||
siemens_coefficient= 0.5
|
||||
|
||||
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 100, rad = 100)
|
||||
allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank, /obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/crowbar, \
|
||||
@@ -30,7 +31,7 @@
|
||||
suit_type = "ERT engineer"
|
||||
icon_state = "ert_engineer_rig"
|
||||
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 100, rad = 100)
|
||||
siemens_coefficient = 0
|
||||
glove_type = /obj/item/clothing/gloves/gauntlets/rig/eva
|
||||
|
||||
initial_modules = list(
|
||||
/obj/item/rig_module/ai_container,
|
||||
@@ -71,6 +72,8 @@
|
||||
suit_type = "heavy asset protection"
|
||||
icon_state = "asset_protection_rig"
|
||||
armor = list(melee = 60, bullet = 50, laser = 50,energy = 40, bomb = 40, bio = 100, rad = 100)
|
||||
siemens_coefficient= 0.3
|
||||
glove_type = /obj/item/clothing/gloves/gauntlets/rig/eva
|
||||
|
||||
initial_modules = list(
|
||||
/obj/item/rig_module/ai_container,
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
slowdown = 1
|
||||
offline_slowdown = 3
|
||||
offline_vision_restriction = 1
|
||||
|
||||
siemens_coefficient = 0.3
|
||||
glove_type = /obj/item/clothing/gloves/gauntlets/rig/eva
|
||||
helm_type = /obj/item/clothing/head/helmet/space/rig/merc
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/handcuffs)
|
||||
|
||||
|
||||
@@ -65,6 +65,7 @@
|
||||
offline_slowdown = 10
|
||||
offline_vision_restriction = 2
|
||||
emp_protection = -20
|
||||
siemens_coefficient= 0.75
|
||||
|
||||
helm_type = /obj/item/clothing/head/helmet/space/rig/industrial
|
||||
|
||||
@@ -92,6 +93,7 @@
|
||||
slowdown = 0
|
||||
offline_slowdown = 1
|
||||
offline_vision_restriction = 1
|
||||
siemens_coefficient= 0.75
|
||||
|
||||
helm_type = /obj/item/clothing/head/helmet/space/rig/eva
|
||||
glove_type = /obj/item/clothing/gloves/gauntlets/rig/eva
|
||||
@@ -128,6 +130,7 @@
|
||||
slowdown = 0
|
||||
offline_slowdown = 0
|
||||
offline_vision_restriction = 0
|
||||
siemens_coefficient= 0.75
|
||||
|
||||
helm_type = /obj/item/clothing/head/helmet/space/rig/ce
|
||||
glove_type = /obj/item/clothing/gloves/gauntlets/rig/ce
|
||||
@@ -163,6 +166,7 @@
|
||||
armor = list(melee = 45, bullet = 5, laser = 45, energy = 80, bomb = 60, bio = 100, rad = 100)
|
||||
slowdown = 1
|
||||
offline_vision_restriction = 1
|
||||
siemens_coefficient= 0.75
|
||||
|
||||
helm_type = /obj/item/clothing/head/helmet/space/rig/hazmat
|
||||
|
||||
@@ -190,6 +194,7 @@
|
||||
armor = list(melee = 30, bullet = 15, laser = 20, energy = 60, bomb = 30, bio = 100, rad = 100)
|
||||
slowdown = 1
|
||||
offline_vision_restriction = 1
|
||||
siemens_coefficient= 0.75
|
||||
|
||||
helm_type = /obj/item/clothing/head/helmet/space/rig/medical
|
||||
|
||||
@@ -219,6 +224,7 @@
|
||||
slowdown = 1
|
||||
offline_slowdown = 3
|
||||
offline_vision_restriction = 1
|
||||
siemens_coefficient= 0.7
|
||||
|
||||
helm_type = /obj/item/clothing/head/helmet/space/rig/hazard
|
||||
|
||||
|
||||
@@ -951,3 +951,38 @@ obj/item/clothing/suit/storage/toggle/peacoat
|
||||
body_parts_covered = UPPER_TORSO|ARMS
|
||||
flags_inv = HIDEHOLSTER
|
||||
|
||||
/obj/item/clothing/suit/storage/snowsuit
|
||||
name = "snowsuit"
|
||||
desc = "A suit made to keep you nice and toasty on cold winter days. Or at least alive."
|
||||
icon_state = "snowsuit"
|
||||
item_state_slots = list(slot_r_hand_str = "labcoat", slot_l_hand_str = "labcoat")
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
||||
flags_inv = HIDEHOLSTER
|
||||
cold_protection = UPPER_TORSO|LOWER_TORSO|ARMS
|
||||
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||
allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight,/obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask)
|
||||
|
||||
/obj/item/clothing/suit/storage/snowsuit/command
|
||||
name = "command snowsuit"
|
||||
icon_state = "snowsuit_command"
|
||||
|
||||
/obj/item/clothing/suit/storage/snowsuit/security
|
||||
name = "security snowsuit"
|
||||
icon_state = "snowsuit_security"
|
||||
|
||||
/obj/item/clothing/suit/storage/snowsuit/medical
|
||||
name = "medical snowsuit"
|
||||
icon_state = "snowsuit_medical"
|
||||
|
||||
/obj/item/clothing/suit/storage/snowsuit/engineering
|
||||
name = "engineering snowsuit"
|
||||
icon_state = "snowsuit_engineering"
|
||||
|
||||
/obj/item/clothing/suit/storage/snowsuit/cargo
|
||||
name = "cargo snowsuit"
|
||||
icon_state = "snowsuit_cargo"
|
||||
|
||||
/obj/item/clothing/suit/storage/snowsuit/science
|
||||
name = "science snowsuit"
|
||||
icon_state = "snowsuit_science"
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
if(stat!=DEAD) //If not dead.
|
||||
death(1) //Brains can die again. AND THEY SHOULD AHA HA HA HA HA HA
|
||||
ghostize() //Ghostize checks for key so nothing else is necessary.
|
||||
..()
|
||||
return ..()
|
||||
|
||||
say_understands(var/other)//Goddamn is this hackish, but this say code is so odd
|
||||
if (istype(other, /mob/living/silicon/ai))
|
||||
|
||||
@@ -313,4 +313,104 @@
|
||||
name = "mobility module"
|
||||
desc = "By retracting limbs and tucking in its head, a combat android can roll at high speeds."
|
||||
icon = 'icons/obj/decals.dmi'
|
||||
icon_state = "shock"
|
||||
icon_state = "shock"
|
||||
|
||||
/obj/item/weapon/inflatable_dispenser
|
||||
name = "inflatables dispenser"
|
||||
desc = "Hand-held device which allows rapid deployment and removal of inflatables."
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon_state = "inf_deployer"
|
||||
w_class = ITEMSIZE_LARGE
|
||||
|
||||
var/stored_walls = 5
|
||||
var/stored_doors = 2
|
||||
var/max_walls = 5
|
||||
var/max_doors = 2
|
||||
var/mode = 0 // 0 - Walls 1 - Doors
|
||||
|
||||
/obj/item/weapon/inflatable_dispenser/robot
|
||||
w_class = ITEMSIZE_HUGE
|
||||
stored_walls = 10
|
||||
stored_doors = 5
|
||||
max_walls = 10
|
||||
max_doors = 5
|
||||
|
||||
/obj/item/weapon/inflatable_dispenser/examine(var/mob/user)
|
||||
if(!..(user))
|
||||
return
|
||||
to_chat(user, "It has [stored_walls] wall segment\s and [stored_doors] door segment\s stored.")
|
||||
to_chat(user, "It is set to deploy [mode ? "doors" : "walls"]")
|
||||
|
||||
/obj/item/weapon/inflatable_dispenser/attack_self()
|
||||
mode = !mode
|
||||
to_chat(usr, "You set \the [src] to deploy [mode ? "doors" : "walls"].")
|
||||
|
||||
/obj/item/weapon/inflatable_dispenser/afterattack(var/atom/A, var/mob/user)
|
||||
..(A, user)
|
||||
if(!user)
|
||||
return
|
||||
if(!user.Adjacent(A))
|
||||
to_chat(user, "You can't reach!")
|
||||
return
|
||||
if(istype(A, /turf))
|
||||
try_deploy_inflatable(A, user)
|
||||
if(istype(A, /obj/item/inflatable) || istype(A, /obj/structure/inflatable))
|
||||
pick_up(A, user)
|
||||
|
||||
/obj/item/weapon/inflatable_dispenser/proc/try_deploy_inflatable(var/turf/T, var/mob/living/user)
|
||||
if(mode) // Door deployment
|
||||
if(!stored_doors)
|
||||
to_chat(user, "\The [src] is out of doors!")
|
||||
return
|
||||
|
||||
if(T && istype(T))
|
||||
new /obj/structure/inflatable/door(T)
|
||||
stored_doors--
|
||||
|
||||
else // Wall deployment
|
||||
if(!stored_walls)
|
||||
to_chat(user, "\The [src] is out of walls!")
|
||||
return
|
||||
|
||||
if(T && istype(T))
|
||||
new /obj/structure/inflatable(T)
|
||||
stored_walls--
|
||||
|
||||
playsound(T, 'sound/items/zip.ogg', 75, 1)
|
||||
to_chat(user, "You deploy the inflatable [mode ? "door" : "wall"]!")
|
||||
|
||||
/obj/item/weapon/inflatable_dispenser/proc/pick_up(var/obj/A, var/mob/living/user)
|
||||
if(istype(A, /obj/structure/inflatable))
|
||||
if(!istype(A, /obj/structure/inflatable/door))
|
||||
if(stored_walls >= max_walls)
|
||||
to_chat(user, "\The [src] is full.")
|
||||
return
|
||||
stored_walls++
|
||||
qdel(A)
|
||||
else
|
||||
if(stored_doors >= max_doors)
|
||||
to_chat(user, "\The [src] is full.")
|
||||
return
|
||||
stored_doors++
|
||||
qdel(A)
|
||||
playsound(loc, 'sound/machines/hiss.ogg', 75, 1)
|
||||
visible_message("\The [user] deflates \the [A] with \the [src]!")
|
||||
return
|
||||
if(istype(A, /obj/item/inflatable))
|
||||
if(!istype(A, /obj/item/inflatable/door))
|
||||
if(stored_walls >= max_walls)
|
||||
to_chat(user, "\The [src] is full.")
|
||||
return
|
||||
stored_walls++
|
||||
qdel(A)
|
||||
else
|
||||
if(stored_doors >= max_doors)
|
||||
to_chat(usr, "\The [src] is full!")
|
||||
return
|
||||
stored_doors++
|
||||
qdel(A)
|
||||
visible_message("\The [user] picks up \the [A] with \the [src]!")
|
||||
return
|
||||
|
||||
to_chat(user, "You fail to pick up \the [A] with \the [src]")
|
||||
return
|
||||
@@ -400,6 +400,7 @@ var/global/list/robot_modules = list(
|
||||
src.modules += new /obj/item/device/lightreplacer(src)
|
||||
src.modules += new /obj/item/device/pipe_painter(src)
|
||||
src.modules += new /obj/item/device/floor_painter(src)
|
||||
src.modules += new /obj/item/weapon/inflatable_dispenser/robot(src)
|
||||
src.emag = new /obj/item/weapon/melee/baton/robot/arm(src)
|
||||
src.modules += new /obj/item/device/geiger(src)
|
||||
src.modules += new /obj/item/weapon/rcd/borg(src)
|
||||
@@ -408,7 +409,8 @@ var/global/list/robot_modules = list(
|
||||
|
||||
var/datum/matter_synth/metal = new /datum/matter_synth/metal(40000)
|
||||
var/datum/matter_synth/glass = new /datum/matter_synth/glass(40000)
|
||||
var/datum/matter_synth/plasteel = new /datum/matter_synth/plasteel()
|
||||
var/datum/matter_synth/plasteel = new /datum/matter_synth/plasteel(20000)
|
||||
|
||||
var/datum/matter_synth/wire = new /datum/matter_synth/wire()
|
||||
synths += metal
|
||||
synths += glass
|
||||
@@ -436,12 +438,12 @@ var/global/list/robot_modules = list(
|
||||
C.synths = list(wire)
|
||||
src.modules += C
|
||||
|
||||
var/obj/item/stack/tile/floor/cyborg/F = new /obj/item/stack/tile/floor/cyborg(src)
|
||||
F.synths = list(metal)
|
||||
src.modules += F
|
||||
var/obj/item/stack/material/cyborg/plasteel/P = new (src)
|
||||
P.synths = list(plasteel)
|
||||
src.modules += P
|
||||
|
||||
var/obj/item/stack/material/cyborg/plasteel/S = new (src)
|
||||
S.synths = list(plasteel)
|
||||
var/obj/item/stack/tile/floor/cyborg/S = new /obj/item/stack/tile/floor/cyborg(src)
|
||||
S.synths = list(metal)
|
||||
src.modules += S
|
||||
|
||||
var/obj/item/stack/material/cyborg/glass/reinforced/RG = new (src)
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
/obj/item/ammo_magazine
|
||||
name = "magazine"
|
||||
desc = "A magazine for some kind of gun."
|
||||
icon_state = "357"
|
||||
icon_state = ".357"
|
||||
icon = 'icons/obj/ammo.dmi'
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
@@ -78,7 +78,7 @@
|
||||
|
||||
var/list/stored_ammo = list()
|
||||
var/mag_type = SPEEDLOADER //ammo_magazines can only be used with compatible guns. This is not a bitflag, the load_method var on guns is.
|
||||
var/caliber = "357"
|
||||
var/caliber = ".357"
|
||||
var/max_ammo = 7
|
||||
|
||||
var/ammo_type = /obj/item/ammo_casing //ammo type that is initially loaded
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
name = "speedloader (.357)"
|
||||
desc = "A speedloader for .357 revolvers."
|
||||
icon_state = "38"
|
||||
caliber = "357"
|
||||
caliber = ".357"
|
||||
ammo_type = /obj/item/ammo_casing/a357
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 1260)
|
||||
max_ammo = 6
|
||||
@@ -381,28 +381,28 @@
|
||||
/obj/item/ammo_magazine/m556saw/empty
|
||||
initial_ammo = 0
|
||||
|
||||
///////// .50 AE /////////
|
||||
///////// .44 Magnum /////////
|
||||
|
||||
/obj/item/ammo_magazine/m50
|
||||
name = "magazine (.50 AE)"
|
||||
icon_state = "50ae"
|
||||
/obj/item/ammo_magazine/m44
|
||||
name = "magazine (.44)"
|
||||
icon_state = ".44"
|
||||
origin_tech = list(TECH_COMBAT = 2)
|
||||
mag_type = MAGAZINE
|
||||
caliber = ".50AE"
|
||||
caliber = ".44"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 1260)
|
||||
ammo_type = /obj/item/ammo_casing/a50ae
|
||||
ammo_type = /obj/item/ammo_casing/a44
|
||||
max_ammo = 7
|
||||
multiple_sprites = 1
|
||||
|
||||
/obj/item/ammo_magazine/m50/empty
|
||||
/obj/item/ammo_magazine/m44/empty
|
||||
initial_ammo = 0
|
||||
|
||||
/obj/item/ammo_magazine/clip/c50
|
||||
name = "ammo clip (.50 AE)"
|
||||
/obj/item/ammo_magazine/clip/c44
|
||||
name = "ammo clip (.44)"
|
||||
icon_state = "clip_pistol"
|
||||
desc = "A stripper clip for reloading .50 Action Express rounds into magazines."
|
||||
caliber = ".50AE"
|
||||
ammo_type = /obj/item/ammo_casing/a50ae
|
||||
desc = "A stripper clip for reloading .44 rounds into magazines."
|
||||
caliber = ".44"
|
||||
ammo_type = /obj/item/ammo_casing/a44
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 1620) // metal costs are very roughly based around one .50 casing = 180 metal
|
||||
max_ammo = 9
|
||||
multiple_sprites = 1
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
/obj/item/ammo_casing/a357
|
||||
desc = "A .357 bullet casing."
|
||||
caliber = "357"
|
||||
caliber = ".357"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/strong
|
||||
|
||||
/*
|
||||
@@ -54,9 +54,9 @@
|
||||
* .50 Action Express
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/a50ae
|
||||
desc = "A .50AE bullet casing."
|
||||
caliber = ".50AE"
|
||||
/obj/item/ammo_casing/a44
|
||||
desc = "A .44 bullet casing."
|
||||
caliber = ".44"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/strong
|
||||
|
||||
/*
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 1000)
|
||||
recoil = 1
|
||||
|
||||
var/caliber = "357" //determines which casings will fit
|
||||
var/caliber = ".357" //determines which casings will fit
|
||||
var/handle_casings = EJECT_CASINGS //determines how spent casings should be handled
|
||||
var/load_method = SINGLE_CASING|SPEEDLOADER //1 = Single shells, 2 = box or quick loader, 3 = magazine
|
||||
var/obj/item/ammo_casing/chambered = null
|
||||
|
||||
@@ -116,15 +116,15 @@
|
||||
|
||||
/obj/item/weapon/gun/projectile/deagle
|
||||
name = "desert eagle"
|
||||
desc = "A robust handgun that uses .50 AE rounds."
|
||||
desc = "The perfect handgun for shooters with a need to hit targets through a wall and behind a fridge in your neighbor's house. Uses .44 rounds."
|
||||
icon_state = "deagle"
|
||||
item_state = "deagle"
|
||||
force = 14.0
|
||||
caliber = ".50AE"
|
||||
caliber = ".44"
|
||||
load_method = MAGAZINE
|
||||
fire_sound = 'sound/weapons/deagle.ogg'
|
||||
magazine_type = /obj/item/ammo_magazine/m50
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m50)
|
||||
magazine_type = /obj/item/ammo_magazine/m44
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m44)
|
||||
|
||||
/obj/item/weapon/gun/projectile/deagle/update_icon()
|
||||
..()
|
||||
@@ -134,12 +134,12 @@
|
||||
icon_state = "[initial(icon_state)]-e"
|
||||
|
||||
/obj/item/weapon/gun/projectile/deagle/gold
|
||||
desc = "A gold plated gun folded over a million times by superior martian gunsmiths. Uses .50 AE rounds."
|
||||
desc = "A gold plated gun folded over a million times by superior martian gunsmiths. Uses .44 rounds."
|
||||
icon_state = "deagleg"
|
||||
item_state = "deagleg"
|
||||
|
||||
/obj/item/weapon/gun/projectile/deagle/camo
|
||||
desc = "A Deagle brand Deagle for operators operating operationally. Uses .50 AE rounds."
|
||||
desc = "A Deagle brand Deagle for operators operating operationally. Uses .44 rounds."
|
||||
icon_state = "deaglecamo"
|
||||
item_state = "deagleg"
|
||||
|
||||
@@ -259,14 +259,14 @@
|
||||
/obj/item/ammo_casing/a9mmf = "9mm",
|
||||
/obj/item/ammo_casing/a45f = ".45",
|
||||
/obj/item/ammo_casing/a10mm = "10mm",
|
||||
/obj/item/ammo_casing/a12g = "12 gauge",
|
||||
/obj/item/ammo_casing/a12g = "12 gauge",
|
||||
/obj/item/ammo_casing/a12g/pellet = "12 gauge",
|
||||
/obj/item/ammo_casing/a12g/pellet = "12 gauge",
|
||||
/obj/item/ammo_casing/a12g/pellet = "12 gauge",
|
||||
/obj/item/ammo_casing/a12g/beanbag = "12 gauge",
|
||||
/obj/item/ammo_casing/a12g/stunshell = "12 gauge",
|
||||
/obj/item/ammo_casing/a12g/flash = "12 gauge",
|
||||
/obj/item/ammo_casing/a12g = "12g",
|
||||
/obj/item/ammo_casing/a12g = "12g",
|
||||
/obj/item/ammo_casing/a12g/pellet = "12g",
|
||||
/obj/item/ammo_casing/a12g/pellet = "12g",
|
||||
/obj/item/ammo_casing/a12g/pellet = "12g",
|
||||
/obj/item/ammo_casing/a12g/beanbag = "12g",
|
||||
/obj/item/ammo_casing/a12g/stunshell = "12g",
|
||||
/obj/item/ammo_casing/a12g/flash = "12g",
|
||||
/obj/item/ammo_casing/a762 = "7.62mm",
|
||||
/obj/item/ammo_casing/a556 = "5.56mm"
|
||||
)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
desc = "The Lumoco Arms HE Colt is a choice revolver for when you absolutely, positively need to put a hole in the other guy. Uses .357 rounds."
|
||||
icon_state = "revolver"
|
||||
item_state = "revolver"
|
||||
caliber = "357"
|
||||
caliber = ".357"
|
||||
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
|
||||
handle_casings = CYCLE_CASINGS
|
||||
max_shells = 6
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
break_to_parts()
|
||||
return
|
||||
|
||||
if(istype(W, /obj/item/weapon/melee/arm_blade))
|
||||
if(istype(W, /obj/item/weapon/melee/changeling/arm_blade))
|
||||
user.visible_message("<span class='danger'>\The [src] was sliced apart by [user]!</span>")
|
||||
break_to_parts()
|
||||
return
|
||||
|
||||
@@ -15,10 +15,10 @@
|
||||
|
||||
/obj/machinery/artifact_harvester/New()
|
||||
..()
|
||||
//connect to a nearby scanner pad
|
||||
owned_scanner = locate(/obj/machinery/artifact_scanpad) in get_step(src, dir)
|
||||
if(!owned_scanner)
|
||||
owned_scanner = locate(/obj/machinery/artifact_scanpad) in orange(1, src)
|
||||
spawn(50) //Delay so the scan pad has time to actually spawn in
|
||||
owned_scanner = locate(/obj/machinery/artifact_scanpad) in get_step(src, dir) //connect to a nearby scanner pad
|
||||
if(!owned_scanner)
|
||||
owned_scanner = locate(/obj/machinery/artifact_scanpad) in orange(1, src)
|
||||
|
||||
/obj/machinery/artifact_harvester/attackby(var/obj/I as obj, var/mob/user as mob)
|
||||
if(istype(I,/obj/item/weapon/anobattery))
|
||||
|
||||
Reference in New Issue
Block a user