mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-21 11:07:12 +01:00
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise
This commit is contained in:
@@ -179,11 +179,6 @@
|
||||
(the writing trails off, as if the writer was interrupted)<br>
|
||||
"}
|
||||
|
||||
/obj/item/paper/terrorspiders9
|
||||
name = "paper - 'Research Notes'"
|
||||
info = "<b>The notes appear gibberish to you. Perhaps a destructive analyzer in R&D could make sense of them.</b>"
|
||||
origin_tech = "combat=4;materials=4;engineering=4;biotech=4"
|
||||
|
||||
/obj/item/gun/energy/laser/awaymission_aeg
|
||||
name = "Wireless Energy Gun"
|
||||
desc = "An energy gun that recharges wirelessly during away missions. Does not work on the main station."
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
var/toggle_cooldown = null
|
||||
var/cooldown = 0
|
||||
var/species_disguise = null
|
||||
var/magical = FALSE
|
||||
|
||||
//BS12: Species-restricted clothing check.
|
||||
/obj/item/clothing/mob_can_equip(M as mob, slot)
|
||||
|
||||
@@ -125,6 +125,8 @@
|
||||
icon_state = "wizzclown"
|
||||
item_state = "wizzclown"
|
||||
flags = BLOCK_GAS_SMOKE_EFFECT | AIRTIGHT | BLOCKHAIR
|
||||
flags_inv = HIDEEARS | HIDEEYES
|
||||
magical = TRUE
|
||||
|
||||
/obj/item/clothing/mask/gas/virusclown_hat
|
||||
name = "clown wig and mask"
|
||||
@@ -203,7 +205,7 @@
|
||||
var/safety = 1
|
||||
actions_types = list(/datum/action/item_action/halt, /datum/action/item_action/adjust, /datum/action/item_action/selectphrase)
|
||||
var/phrase_list = list(
|
||||
|
||||
|
||||
"halt" = "HALT! HALT! HALT! HALT!",
|
||||
"bobby" = "Stop in the name of the Law.",
|
||||
"compliance" = "Compliance is in your best interest.",
|
||||
@@ -272,11 +274,11 @@
|
||||
else if(actiontype == /datum/action/item_action/selectphrase)
|
||||
var/key = phrase_list[phrase]
|
||||
var/message = phrase_list[key]
|
||||
|
||||
|
||||
if (!safety)
|
||||
to_chat(user, "<span class='notice'>You set the restrictor to: FUCK YOUR CUNT YOU SHIT EATING COCKSUCKER MAN EAT A DONG FUCKING ASS RAMMING SHIT FUCK EAT PENISES IN YOUR FUCK FACE AND SHIT OUT ABORTIONS OF FUCK AND DO SHIT IN YOUR ASS YOU COCK FUCK SHIT MONKEY FUCK ASS WANKER FROM THE DEPTHS OF SHIT.</span>")
|
||||
return
|
||||
|
||||
|
||||
switch(aggressiveness)
|
||||
if(1)
|
||||
phrase = (phrase < 6) ? (phrase + 1) : 1
|
||||
|
||||
@@ -79,6 +79,7 @@ obj/item/clothing/shoes/magboots/syndie/advance //For the Syndicate Strike Team
|
||||
magboot_state = "wizmag"
|
||||
slowdown_active = SHOES_SLOWDOWN //wiz hardsuit already slows you down, no need to double it
|
||||
magpulse_name = "gripping ability"
|
||||
magical = TRUE
|
||||
|
||||
/obj/item/clothing/shoes/magboots/wizard/attack_self(mob/user)
|
||||
if(user)
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
icon_state = "wizard"
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
magical = TRUE
|
||||
|
||||
/obj/item/clothing/shoes/sandal/marisa
|
||||
desc = "A pair of magic, black shoes."
|
||||
@@ -81,6 +82,11 @@
|
||||
var/footstep = 1 //used for squeeks whilst walking
|
||||
shoe_sound = "clownstep"
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes/magical
|
||||
name = "magical clown shoes"
|
||||
desc = "Standard-issue shoes of the wizarding class clown. Damn they're huge! And powerful! Somehow."
|
||||
magical = TRUE
|
||||
|
||||
/obj/item/clothing/shoes/jackboots
|
||||
name = "jackboots"
|
||||
desc = "Nanotrasen-issue Security combat boots for combat scenarios or combat situations. All combat, all the time."
|
||||
|
||||
@@ -339,7 +339,7 @@
|
||||
linkedsuit = loc
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/syndi/attack_self(mob/user)
|
||||
|
||||
|
||||
if(!linkedsuit)
|
||||
to_chat(user, "<span class='notice'>You must attach the helmet to a syndicate hardsuit to toggle combat mode!</span>")
|
||||
return
|
||||
@@ -479,15 +479,15 @@
|
||||
icon_state = "hardsuit0-wiz"
|
||||
item_state = "wiz_helm"
|
||||
item_color = "wiz"
|
||||
unacidable = 1 //No longer shall our kind be foiled by lone chemists with spray bottles!
|
||||
unacidable = TRUE //No longer shall our kind be foiled by lone chemists with spray bottles!
|
||||
armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50)
|
||||
heat_protection = HEAD //Uncomment to enable firesuit protection
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
unacidable = 1
|
||||
species_fit = list("Grey")
|
||||
sprite_sheets = list(
|
||||
"Grey" = 'icons/mob/species/grey/helmet.dmi'
|
||||
)
|
||||
magical = TRUE
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/wizard
|
||||
icon_state = "hardsuit-wiz"
|
||||
@@ -495,13 +495,13 @@
|
||||
desc = "A bizarre gem-encrusted suit that radiates magical energies."
|
||||
item_state = "wiz_hardsuit"
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
unacidable = 1
|
||||
unacidable = TRUE
|
||||
armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50)
|
||||
allowed = list(/obj/item/teleportation_scroll,/obj/item/tank)
|
||||
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
unacidable = 1
|
||||
sprite_sheets = null
|
||||
magical = TRUE
|
||||
|
||||
//Medical hardsuit
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/medical
|
||||
|
||||
@@ -403,8 +403,10 @@
|
||||
/obj/item/clothing/suit/space/eva/plasmaman/wizard
|
||||
name = "robed plasmaman suit"
|
||||
icon_state = "plasmamanWizardBlue_suit"
|
||||
magical = TRUE
|
||||
|
||||
/obj/item/clothing/head/helmet/space/eva/plasmaman/wizard
|
||||
name = "wizard hat"
|
||||
icon_state = "plasmamanWizardBlue_helmet0"
|
||||
base_state = "plasmamanWizardBlue_helmet"
|
||||
magical = TRUE
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
//Not given any special protective value since the magic robes are full-body protection --NEO
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
magical = TRUE
|
||||
|
||||
/obj/item/clothing/head/wizard/red
|
||||
name = "red wizard hat"
|
||||
@@ -35,6 +36,7 @@
|
||||
gas_transfer_coefficient = 1
|
||||
permeability_coefficient = 1
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
magical = FALSE
|
||||
|
||||
/obj/item/clothing/head/wizard/marisa
|
||||
name = "Witch Hat"
|
||||
@@ -67,6 +69,7 @@
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
burn_state = FIRE_PROOF
|
||||
magical = TRUE
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/red
|
||||
name = "red wizard robe"
|
||||
@@ -120,6 +123,7 @@
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
unacidable = 0
|
||||
burn_state = FLAMMABLE
|
||||
magical = FALSE
|
||||
|
||||
/obj/item/clothing/head/wizard/marisa/fake
|
||||
name = "Witch Hat"
|
||||
@@ -130,6 +134,7 @@
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
unacidable = 0
|
||||
burn_state = FLAMMABLE
|
||||
magical = FALSE
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/marisa/fake
|
||||
name = "Witch Robe"
|
||||
@@ -140,4 +145,5 @@
|
||||
permeability_coefficient = 1
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
unacidable = 0
|
||||
burn_state = FLAMMABLE
|
||||
burn_state = FLAMMABLE
|
||||
magical = FALSE
|
||||
@@ -37,36 +37,20 @@ var/global/list/unused_trade_stations = list("sol")
|
||||
var/mob/C = pick_n_take(candidates)
|
||||
if(C)
|
||||
GLOB.respawnable_list -= C.client
|
||||
var/mob/living/carbon/human/M = create_trader(picked_loc)
|
||||
M.ckey = C.ckey
|
||||
var/mob/living/carbon/human/M = new /mob/living/carbon/human(picked_loc)
|
||||
M.ckey = C.ckey // must be before equipOutfit, or that will runtime due to lack of mind
|
||||
M.equipOutfit(/datum/outfit/admin/sol_trader)
|
||||
M.dna.species.after_equip_job(null, M)
|
||||
M.mind.objectives += trader_objectives
|
||||
greet_trader(M)
|
||||
success_spawn = 1
|
||||
if(!success_spawn)
|
||||
unused_trade_stations += station // Return the station to the list of usable stations.
|
||||
|
||||
/datum/event/traders/proc/create_trader(var/turf/picked_loc)
|
||||
var/mob/living/carbon/human/M
|
||||
switch(station)
|
||||
if("sol")
|
||||
M = new /mob/living/carbon/human(picked_loc)
|
||||
M.equip_to_slot_or_del(new /obj/item/radio/headset(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/cargotech(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/storage/backpack/industrial(M), slot_back)
|
||||
var/obj/item/card/id/supply/W = new(M)
|
||||
W.name = "[M.real_name]'s ID Card (Sol Trader)"
|
||||
W.assignment = "Sol Trader"
|
||||
W.registered_name = M.real_name
|
||||
W.access = list(access_trade_sol, access_maint_tunnels, access_external_airlocks)
|
||||
M.equip_to_slot_or_del(W, slot_wear_id)
|
||||
return M
|
||||
|
||||
/datum/event/traders/proc/greet_trader(var/mob/living/carbon/human/M)
|
||||
to_chat(M, "<span class='boldnotice'>You are a trader!</span>")
|
||||
to_chat(M, "<span class='notice'>You are currently docked at [get_area(M)].</span>")
|
||||
to_chat(M, "<span class='notice'>You are about to trade with [station_name()].</span>")
|
||||
to_chat(M, "<span class='notice'>Negotiate an agreement, and request docking.</span>")
|
||||
spawn(25)
|
||||
show_objectives(M.mind)
|
||||
|
||||
|
||||
@@ -21,6 +21,15 @@
|
||||
add_random_traits()
|
||||
add_random_plant_type(35)
|
||||
|
||||
/obj/item/seeds/random/labelled
|
||||
name = "pack of exotic strange seeds"
|
||||
|
||||
/obj/item/seeds/random/labelled/New()
|
||||
. = ..()
|
||||
add_random_traits(1, 2)
|
||||
add_random_plant_type(100)
|
||||
desc = "Label: \n" + get_analyzer_text()
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/random
|
||||
seed = /obj/item/seeds/random
|
||||
name = "strange plant"
|
||||
@@ -32,4 +41,5 @@
|
||||
. = ..()
|
||||
wine_power = rand(0.1,1.5)
|
||||
if(prob(1))
|
||||
wine_power = 2.0
|
||||
wine_power = 2.0
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ var/list/image/ghost_darkness_images = list() //this is a list of images for thi
|
||||
var/image/ghostimage = null //this mobs ghost image, for deleting and stuff
|
||||
var/ghostvision = 1 //is the ghost able to see things humans can't?
|
||||
var/seedarkness = 1
|
||||
var/data_hud_seen = 0 //this should one of the defines in __DEFINES/hud.dm
|
||||
var/data_hud_seen = FALSE //this should one of the defines in __DEFINES/hud.dm
|
||||
|
||||
/mob/dead/observer/New(var/mob/body=null, var/flags=1)
|
||||
sight |= SEE_TURFS | SEE_MOBS | SEE_OBJS | SEE_SELF
|
||||
@@ -297,30 +297,43 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
/mob/dead/observer/proc/show_me_the_hud(hud_index)
|
||||
var/datum/atom_hud/H = huds[hud_index]
|
||||
H.add_hud_to(src)
|
||||
data_hud_seen = hud_index
|
||||
|
||||
/mob/dead/observer/proc/remove_the_hud(hud_index) //remove old huds
|
||||
var/datum/atom_hud/H = huds[hud_index]
|
||||
H.remove_hud_from(src)
|
||||
|
||||
/mob/dead/observer/verb/toggle_medHUD()
|
||||
set category = "Ghost"
|
||||
set name = "Toggle Medic/Sec/DiagHUD"
|
||||
set desc = "Toggles the medical HUD."
|
||||
set name = "Toggle Medic/Sec/Diag/All HUDs"
|
||||
set desc = "Toggles the HUDs."
|
||||
if(!client)
|
||||
return
|
||||
if(data_hud_seen) //remove old huds
|
||||
var/datum/atom_hud/H = huds[data_hud_seen]
|
||||
H.remove_hud_from(src)
|
||||
|
||||
switch(data_hud_seen) //give new huds
|
||||
if(0)
|
||||
if(FALSE)
|
||||
data_hud_seen = DATA_HUD_SECURITY_ADVANCED
|
||||
show_me_the_hud(DATA_HUD_SECURITY_ADVANCED)
|
||||
to_chat(src, "<span class='notice'>Security HUD set.</span>")
|
||||
if(DATA_HUD_SECURITY_ADVANCED)
|
||||
data_hud_seen = DATA_HUD_MEDICAL_ADVANCED
|
||||
remove_the_hud(DATA_HUD_SECURITY_ADVANCED)
|
||||
show_me_the_hud(DATA_HUD_MEDICAL_ADVANCED)
|
||||
to_chat(src, "<span class='notice'>Medical HUD set.</span>")
|
||||
if(DATA_HUD_MEDICAL_ADVANCED)
|
||||
data_hud_seen = DATA_HUD_DIAGNOSTIC
|
||||
remove_the_hud(DATA_HUD_MEDICAL_ADVANCED)
|
||||
show_me_the_hud(DATA_HUD_DIAGNOSTIC)
|
||||
to_chat(src, "<span class='notice'>Diagnostic HUD set.</span>")
|
||||
if(DATA_HUD_DIAGNOSTIC)
|
||||
data_hud_seen = 0
|
||||
data_hud_seen = data_hud_seen + DATA_HUD_SECURITY_ADVANCED + DATA_HUD_MEDICAL_ADVANCED
|
||||
show_me_the_hud(DATA_HUD_SECURITY_ADVANCED)
|
||||
show_me_the_hud(DATA_HUD_MEDICAL_ADVANCED)
|
||||
to_chat(src, "<span class='notice'>All HUDs enabled.</span>")
|
||||
else
|
||||
data_hud_seen = FALSE
|
||||
remove_the_hud(DATA_HUD_DIAGNOSTIC)
|
||||
remove_the_hud(DATA_HUD_SECURITY_ADVANCED)
|
||||
remove_the_hud(DATA_HUD_MEDICAL_ADVANCED)
|
||||
to_chat(src, "<span class='notice'>HUDs disabled.</span>")
|
||||
|
||||
|
||||
|
||||
@@ -147,7 +147,7 @@ var/global/list/damage_icon_parts = list()
|
||||
E.update_icon()
|
||||
if(E.damage_state == "00")
|
||||
continue
|
||||
|
||||
|
||||
var/icon/DI
|
||||
var/cache_index = "[E.damage_state]/[E.icon_name]/[dna.species.blood_color]/[dna.species.name]"
|
||||
|
||||
@@ -437,7 +437,7 @@ var/global/list/damage_icon_parts = list()
|
||||
else
|
||||
//warning("Invalid f_style for [species.name]: [f_style]")
|
||||
|
||||
|
||||
|
||||
|
||||
/mob/living/carbon/human/update_mutations(var/update_icons=1)
|
||||
remove_overlay(MUTATIONS_LAYER)
|
||||
@@ -681,6 +681,8 @@ var/global/list/damage_icon_parts = list()
|
||||
overlays_standing[GLASSES_LAYER] = new_glasses
|
||||
apply_overlay(GLASSES_LAYER)
|
||||
|
||||
update_misc_effects()
|
||||
|
||||
/mob/living/carbon/human/update_inv_ears(var/update_icons=1)
|
||||
remove_overlay(EARS_LAYER)
|
||||
if(client && hud_used)
|
||||
@@ -1035,7 +1037,7 @@ var/global/list/damage_icon_parts = list()
|
||||
/mob/living/carbon/human/proc/update_tail_layer(var/update_icons=1)
|
||||
remove_overlay(TAIL_UNDERLIMBS_LAYER) // SEW direction icons, overlayed by LIMBS_LAYER.
|
||||
remove_overlay(TAIL_LAYER) /* This will be one of two things:
|
||||
If the species' tail is overlapped by limbs, this will be only the N direction icon so tails
|
||||
If the species' tail is overlapped by limbs, this will be only the N direction icon so tails
|
||||
can still appear on the outside of uniforms and such.
|
||||
Otherwise, since the user's tail isn't overlapped by limbs, it will be a full icon with all directions. */
|
||||
|
||||
@@ -1110,7 +1112,7 @@ var/global/list/damage_icon_parts = list()
|
||||
/mob/living/carbon/human/proc/start_tail_wagging(var/update_icons=1)
|
||||
remove_overlay(TAIL_UNDERLIMBS_LAYER) // SEW direction icons, overlayed by LIMBS_LAYER.
|
||||
remove_overlay(TAIL_LAYER) /* This will be one of two things:
|
||||
If the species' tail is overlapped by limbs, this will be only the N direction icon so tails
|
||||
If the species' tail is overlapped by limbs, this will be only the N direction icon so tails
|
||||
can still appear on the outside of uniforms and such.
|
||||
Otherwise, since the user's tail isn't overlapped by limbs, it will be a full icon with all directions. */
|
||||
|
||||
|
||||
@@ -158,11 +158,6 @@
|
||||
|
||||
data["shuttle"] = shuttle
|
||||
|
||||
if(trade_dockrequest_timelimit > world.time)
|
||||
data["dock_request"] = 1
|
||||
else
|
||||
data["dock_request"] = 0
|
||||
|
||||
return data
|
||||
|
||||
/datum/computer_file/program/comm/Topic(href, href_list)
|
||||
@@ -386,16 +381,5 @@
|
||||
else
|
||||
to_chat(usr, "<span class='danger'>Nano-Mob Hunter GO! game server is offline for extended maintenance. Contact your Central Command administrators for more info if desired.</span>")
|
||||
|
||||
if("AcceptDocking")
|
||||
to_chat(usr, "Docking request accepted!")
|
||||
trade_dock_timelimit = world.time + 1200
|
||||
trade_dockrequest_timelimit = 0
|
||||
event_announcement.Announce("Docking request for trading ship approved, please dock at port bay 4.", "Docking Request")
|
||||
if("DenyDocking")
|
||||
to_chat(usr, "Docking requeset denied!")
|
||||
trade_dock_timelimit = 0
|
||||
trade_dockrequest_timelimit = 0
|
||||
event_announcement.Announce("Docking request for trading ship denied.", "Docking request")
|
||||
|
||||
SSnanoui.update_uis(src)
|
||||
return 1
|
||||
@@ -702,3 +702,15 @@
|
||||
contact_poison = null
|
||||
add_attack_logs(src, user, "Picked up [src], the paper poisoned by [contact_poison_poisoner]")
|
||||
..()
|
||||
|
||||
/obj/item/paper/researchnotes
|
||||
name = "paper - 'Research Notes'"
|
||||
info = "<b>The notes appear gibberish to you. Perhaps a destructive analyzer in R&D could make sense of them.</b>"
|
||||
origin_tech = "combat=4;materials=4;engineering=4;biotech=4"
|
||||
|
||||
/obj/item/paper/researchnotes/New()
|
||||
var/list/possible_techs = list("materials", "engineering", "plasmatech", "powerstorage", "bluespace", "biotech", "combat", "magnets", "programming", "syndicate")
|
||||
var/mytech = pick(possible_techs)
|
||||
var/mylevel = rand(7, 9)
|
||||
origin_tech = "[mytech]=[mylevel]"
|
||||
name = "research notes - [mytech] [mylevel]"
|
||||
@@ -379,7 +379,7 @@
|
||||
|
||||
/obj/item/ammo_casing/cap
|
||||
desc = "A cap for children toys."
|
||||
caliber = "caps"
|
||||
caliber = "cap"
|
||||
projectile_type = /obj/item/projectile/bullet/cap
|
||||
|
||||
/obj/item/ammo_casing/laser
|
||||
|
||||
@@ -30,13 +30,13 @@
|
||||
/obj/item/ammo_casing/magic/spellblade
|
||||
projectile_type = /obj/item/projectile/magic/spellblade
|
||||
|
||||
/obj/item/ammo_casing/magic/slipping
|
||||
projectile_type = /obj/item/projectile/magic/slipping
|
||||
|
||||
/obj/item/ammo_casing/magic/chaos/newshot()
|
||||
projectile_type = pick(typesof(/obj/item/projectile/magic))
|
||||
..()
|
||||
|
||||
/obj/item/ammo_casing/magic/honk
|
||||
projectile_type = /obj/item/projectile/bullet/honker
|
||||
|
||||
/obj/item/ammo_casing/forcebolt
|
||||
projectile_type = /obj/item/projectile/forcebolt
|
||||
|
||||
|
||||
@@ -140,6 +140,15 @@
|
||||
overlays += image(icon = icon, icon_state = iconF, pixel_x = flight_x_offset, pixel_y = flight_y_offset)
|
||||
|
||||
|
||||
/obj/item/gun/energy/kinetic_accelerator/experimental
|
||||
name = "experimental kinetic accelerator"
|
||||
desc = "A modified, far more dangerous version of the proto-kinetic accelerator, with half the cooldown and twice the modkit space of the standard version."
|
||||
icon_state = "kineticgun_h"
|
||||
item_state = "kineticgun_h"
|
||||
origin_tech = "combat=5;powerstorage=3;engineering=5"
|
||||
overheat_time = 8
|
||||
max_mod_capacity = 200
|
||||
|
||||
//Casing
|
||||
/obj/item/ammo_casing/energy/kinetic
|
||||
projectile_type = /obj/item/projectile/kinetic
|
||||
|
||||
@@ -52,14 +52,19 @@
|
||||
no_den_usage = 1
|
||||
fire_sound = 'sound/magic/Staff_Door.ogg'
|
||||
|
||||
/obj/item/gun/magic/staff/honk
|
||||
/obj/item/gun/magic/staff/slipping
|
||||
name = "staff of slipping"
|
||||
desc = "An artefact that spits... bananas?"
|
||||
ammo_type = /obj/item/ammo_casing/magic/slipping
|
||||
icon_state = "staffofslipping"
|
||||
item_state = "staffofslipping"
|
||||
max_charges = 10
|
||||
recharge_rate = 2
|
||||
fire_sound = 'sound/items/bikehorn.ogg'
|
||||
|
||||
/obj/item/gun/magic/staff/slipping/honkmother
|
||||
name = "staff of the honkmother"
|
||||
desc = "Honk"
|
||||
ammo_type = /obj/item/ammo_casing/magic/honk
|
||||
icon_state = "honker"
|
||||
item_state = "honker"
|
||||
max_charges = 4
|
||||
recharge_rate = 8
|
||||
desc = "An ancient artefact, sought after by clowns everywhere."
|
||||
fire_sound = 'sound/items/Airhorn.ogg'
|
||||
|
||||
/obj/item/gun/magic/staff/focus
|
||||
|
||||
@@ -209,23 +209,6 @@
|
||||
weaken = 4
|
||||
stun = 4
|
||||
|
||||
/obj/item/projectile/bullet/honker
|
||||
name = "banana"
|
||||
damage = 0
|
||||
weaken = 5
|
||||
stun = 5
|
||||
forcedodge = 1
|
||||
nodamage = 1
|
||||
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
|
||||
hitsound = 'sound/items/bikehorn.ogg'
|
||||
icon = 'icons/obj/hydroponics/harvest.dmi'
|
||||
icon_state = "banana"
|
||||
range = 200
|
||||
|
||||
/obj/item/projectile/bullet/honker/New()
|
||||
..()
|
||||
SpinAnimation()
|
||||
|
||||
/obj/item/projectile/bullet/mime
|
||||
damage = 0
|
||||
stun = 5
|
||||
|
||||
@@ -301,3 +301,32 @@
|
||||
flag = "magic"
|
||||
dismemberment = 50
|
||||
nodamage = 0
|
||||
|
||||
/obj/item/projectile/magic/slipping
|
||||
name = "magical banana"
|
||||
icon = 'icons/obj/hydroponics/harvest.dmi'
|
||||
icon_state = "banana"
|
||||
var/slip_stun = 5
|
||||
var/slip_weaken = 5
|
||||
hitsound = 'sound/items/bikehorn.ogg'
|
||||
|
||||
/obj/item/projectile/magic/slipping/New()
|
||||
..()
|
||||
SpinAnimation()
|
||||
|
||||
/obj/item/projectile/magic/slipping/on_hit(var/atom/target, var/blocked = 0)
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/H = target
|
||||
H.slip(src, slip_stun, slip_weaken, 0, FALSE, TRUE) //Slips even with noslips/magboots on. NO ESCAPE!
|
||||
else if(isrobot(target)) //You think you're safe, cyborg? FOOL!
|
||||
var/mob/living/silicon/robot/R = target
|
||||
if(!R.incapacitated())
|
||||
to_chat(target, "<span class='warning'>You get splatted by [src], HONKING your sensors!</span>")
|
||||
R.Stun(slip_stun)
|
||||
else if(ismob(target))
|
||||
var/mob/M = target
|
||||
if(!M.stunned)
|
||||
to_chat(target, "<span class='notice'>You get splatted by [src].</span>")
|
||||
M.Weaken(slip_weaken)
|
||||
M.Stun(slip_stun)
|
||||
. = ..()
|
||||
@@ -206,6 +206,16 @@
|
||||
desc = "A bottle of the ever-changing quantum hair dye."
|
||||
list_reagents = list("hair_dye" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/reagent/omnizine
|
||||
name = "Omnizine Bottle"
|
||||
desc = "A reagent bottle. Contains Omnizine."
|
||||
list_reagents = list("omnizine" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/reagent/strange_reagent
|
||||
name = "Strange Reagent Bottle"
|
||||
desc = "A bottle of glowing fluid."
|
||||
list_reagents = list("strange_reagent" = 30)
|
||||
|
||||
////////////////////Traitor Poison Bottle//////////////////////////////
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/traitor
|
||||
@@ -326,6 +336,18 @@
|
||||
icon_state = "round_bottle"
|
||||
spawned_disease = /datum/disease/tuberculosis
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/regeneration
|
||||
name = "Regeneration culture bottle"
|
||||
desc = "A small bottle. Contains a sample of a virus that heals toxin damage."
|
||||
icon_state = "round_bottle"
|
||||
spawned_disease = /datum/disease/advance/heal
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/sensory_restoration
|
||||
name = "Sensory Restoration culture bottle"
|
||||
desc = "A small bottle. Contains a sample of a virus that heals sensory damage."
|
||||
icon_state = "round_bottle"
|
||||
spawned_disease = /datum/disease/advance/sensory_restoration
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/tuberculosiscure
|
||||
name = "BVAK bottle"
|
||||
desc = "A small bottle containing Bio Virus Antidote Kit."
|
||||
|
||||
@@ -877,46 +877,16 @@
|
||||
possible_destinations = "sit_arrivals;sit_engshuttle;sit_away"
|
||||
|
||||
|
||||
var/global/trade_dock_timelimit = 0
|
||||
var/global/trade_dockrequest_timelimit = 0
|
||||
|
||||
/obj/machinery/computer/shuttle/trade
|
||||
name = "Freighter Console"
|
||||
docking_request = 1
|
||||
var/possible_destinations_dock
|
||||
var/possible_destinations_nodock
|
||||
var/docking_request_message = "A trading ship has submitted a request to dock for trading. This request can be accepted or denied using a communications console."
|
||||
|
||||
/obj/machinery/computer/shuttle/trade/attack_hand(mob/user)
|
||||
if(world.time < trade_dock_timelimit)
|
||||
possible_destinations = possible_destinations_dock
|
||||
else
|
||||
possible_destinations = possible_destinations_nodock
|
||||
|
||||
docking_request = (world.time > trade_dockrequest_timelimit && world.time > trade_dock_timelimit)
|
||||
..(user)
|
||||
|
||||
/obj/machinery/computer/shuttle/trade/Topic(href, href_list)
|
||||
if(..())
|
||||
return 1
|
||||
if(href_list["request"])
|
||||
if(world.time < trade_dockrequest_timelimit || world.time < trade_dock_timelimit)
|
||||
return
|
||||
to_chat(usr, "<span class='notice'>Request sent.</span>")
|
||||
event_announcement.Announce(docking_request_message, "Docking Request")
|
||||
trade_dockrequest_timelimit = world.time + 1200 // They have 2 minutes to approve the request.
|
||||
return 1
|
||||
|
||||
/obj/machinery/computer/shuttle/trade/sol
|
||||
req_access = list(access_trade_sol)
|
||||
possible_destinations_dock = "trade_sol_base;trade_sol_offstation;trade_dock"
|
||||
possible_destinations_nodock = "trade_sol_base;trade_sol_offstation"
|
||||
possible_destinations = "trade_sol_base;trade_dock"
|
||||
shuttleId = "trade_sol"
|
||||
docking_request_message = "A trading ship of Sol origin has requested docking aboard the NSS Cyberiad for trading. This request can be accepted or denied using a communications console."
|
||||
|
||||
//#undef DOCKING_PORT_HIGHLIGHT
|
||||
|
||||
|
||||
/turf/proc/copyTurf(turf/T)
|
||||
if(T.type != type)
|
||||
var/obj/O
|
||||
|
||||
Reference in New Issue
Block a user