mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-30 00:35:45 +01:00
Merge branch 'master' of https://github.com/Yawn-Wider/YWPolarisVore into August2020UpstreamPull
August2020UpstreamPull
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
/obj/item/toy/tennis
|
||||
name = "tennis ball"
|
||||
desc = "A classic tennis ball; a hollow rubber sphere covered in felt. This one has seen better days, and seems to have lost most of its bounce."
|
||||
icon = 'icons/obj/balls_vr.dmi'
|
||||
icon_state = "tennis_classic"
|
||||
item_icons = list(
|
||||
slot_l_hand_str = 'icons/mob/items/righthand_balls_vr.dmi',
|
||||
slot_r_hand_str = 'icons/mob/items/lefthand_balls_vr.dmi',
|
||||
slot_wear_mask_str = 'icons/mob/mouthball_vr.dmi',
|
||||
)
|
||||
item_state = "tennis_classic"
|
||||
slot_flags = SLOT_MASK
|
||||
throw_range = 14
|
||||
w_class = ITEMSIZE_SMALL
|
||||
|
||||
/obj/item/toy/tennis/red
|
||||
name = "red tennis ball"
|
||||
desc = "A red tennis ball. It goes twice as fast!"
|
||||
icon_state = "tennis_red"
|
||||
item_state = "tennis_red"
|
||||
throw_speed = 8 //base throw_speed is 4, and that's already super fast
|
||||
|
||||
/obj/item/toy/tennis/yellow
|
||||
name = "yellow tennis ball"
|
||||
desc = "A yellow tennis ball. Or is it orange? Orangey-yellow?"
|
||||
icon_state = "tennis_yellow"
|
||||
item_state = "tennis_yellow"
|
||||
|
||||
/obj/item/toy/tennis/green
|
||||
name = "green tennis ball"
|
||||
desc = "A bright green tennis ball. Tastes faintly of lime... or maybe soap."
|
||||
icon_state = "tennis_green"
|
||||
item_state = "tennis_green"
|
||||
|
||||
/obj/item/toy/tennis/cyan
|
||||
name = "cyan tennis ball"
|
||||
desc = "A cyan tennis ball. What a curious color choice."
|
||||
icon_state = "tennis_cyan"
|
||||
item_state = "tennis_cyan"
|
||||
|
||||
/obj/item/toy/tennis/blue
|
||||
name = "blue tennis ball"
|
||||
desc = "A blue tennis ball. Who makes blue tennis balls anyway?"
|
||||
icon_state = "tennis_blue"
|
||||
item_state = "tennis_blue"
|
||||
|
||||
/obj/item/toy/tennis/purple
|
||||
name = "purple tennis ball"
|
||||
desc = "A purple tennis ball. Now you've seen everything. Purple, seriously?"
|
||||
icon_state = "tennis_purple"
|
||||
item_state = "tennis_purple"
|
||||
@@ -519,7 +519,10 @@ var/list/civilian_cartridges = list(
|
||||
if(bl.z != cl.z)
|
||||
continue
|
||||
var/direction = get_dir(src,B)
|
||||
CartData[++CartData.len] = list("x" = bl.x, "y" = bl.y, "dir" = uppertext(dir2text(direction)), "status" = B.reagents.total_volume/100)
|
||||
var/status = "No Bucket"
|
||||
if(B.mybucket)
|
||||
status = B.mybucket.reagents.total_volume / 100
|
||||
CartData[++CartData.len] = list("x" = bl.x, "y" = bl.y, "dir" = uppertext(dir2text(direction)), "status" = status)
|
||||
if(!CartData.len)
|
||||
CartData[++CartData.len] = list("x" = 0, "y" = 0, dir=null, status = null)
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
origin_tech = list(TECH_ILLEGAL = 4, TECH_MAGNET = 4)
|
||||
var/can_use = 1
|
||||
var/obj/effect/dummy/chameleon/active_dummy = null
|
||||
var/saved_item = /obj/item/weapon/cigbutt
|
||||
var/saved_item = /obj/item/trash/cigbutt
|
||||
var/saved_icon = 'icons/obj/clothing/masks.dmi'
|
||||
var/saved_icon_state = "cigbutt"
|
||||
var/saved_overlays
|
||||
|
||||
@@ -271,8 +271,8 @@
|
||||
|
||||
//Checks for various conditions to see if the mob is revivable
|
||||
/obj/item/weapon/shockpaddles/proc/can_defib(mob/living/carbon/human/H) //This is checked before doing the defib operation
|
||||
if((H.species.flags & NO_SCAN))
|
||||
return "buzzes, \"Unrecogized physiology. Operation aborted.\""
|
||||
if((H.species.flags & NO_DEFIB))
|
||||
return "buzzes, \"Incompatible physiology. Operation aborted.\""
|
||||
else if(H.isSynthetic() && !use_on_synthetic)
|
||||
return "buzzes, \"Synthetic Body. Operation aborted.\""
|
||||
else if(!H.isSynthetic() && use_on_synthetic)
|
||||
@@ -338,14 +338,14 @@
|
||||
if(!heart)
|
||||
return TRUE
|
||||
|
||||
var/blood_volume = round((H.vessel.get_reagent_amount("blood")/H.species.blood_volume)*100)
|
||||
var/blood_volume = H.vessel.get_reagent_amount("blood")
|
||||
if(!heart || heart.is_broken())
|
||||
blood_volume *= 0.3
|
||||
else if(heart.is_bruised())
|
||||
blood_volume *= 0.7
|
||||
else if(heart.damage > 1)
|
||||
blood_volume *= 0.8
|
||||
return blood_volume < BLOOD_VOLUME_SURVIVE
|
||||
return blood_volume < H.species.blood_volume*H.species.blood_level_fatal
|
||||
|
||||
/obj/item/weapon/shockpaddles/proc/check_charge(var/charge_amt)
|
||||
return 0
|
||||
|
||||
@@ -138,7 +138,7 @@
|
||||
for(var/mob/living/carbon/M in oviewers(4, T))
|
||||
if(M.get_ear_protection() >= 2)
|
||||
continue
|
||||
M.sleeping = 0
|
||||
M.SetSleeping(0)
|
||||
M.stuttering += 20
|
||||
M.ear_deaf += 30
|
||||
M.Weaken(3)
|
||||
|
||||
@@ -155,8 +155,8 @@ var/global/list/default_medbay_channels = list(
|
||||
data["freq"] = format_frequency(frequency)
|
||||
data["rawfreq"] = num2text(frequency)
|
||||
|
||||
data["mic_cut"] = (wires.IsIndexCut(WIRE_TRANSMIT) || wires.IsIndexCut(WIRE_SIGNAL))
|
||||
data["spk_cut"] = (wires.IsIndexCut(WIRE_RECEIVE) || wires.IsIndexCut(WIRE_SIGNAL))
|
||||
data["mic_cut"] = (wires.is_cut(WIRE_RADIO_TRANSMIT) || wires.is_cut(WIRE_RADIO_SIGNAL))
|
||||
data["spk_cut"] = (wires.is_cut(WIRE_RADIO_RECEIVER) || wires.is_cut(WIRE_RADIO_SIGNAL))
|
||||
|
||||
var/list/chanlist = list_channels(user)
|
||||
if(islist(chanlist) && chanlist.len)
|
||||
@@ -215,12 +215,6 @@ var/global/list/default_medbay_channels = list(
|
||||
/mob/observer/dead/has_internal_radio_channel_access(var/list/req_one_accesses)
|
||||
return can_admin_interact()
|
||||
|
||||
/obj/item/device/radio/proc/text_wires()
|
||||
if (b_stat)
|
||||
return wires.GetInteractWindow()
|
||||
return
|
||||
|
||||
|
||||
/obj/item/device/radio/proc/text_sec_channel(var/chan_name, var/chan_stat)
|
||||
var/list = !!(chan_stat&FREQ_LISTENING)!=0
|
||||
return {"
|
||||
@@ -229,10 +223,10 @@ var/global/list/default_medbay_channels = list(
|
||||
"}
|
||||
|
||||
/obj/item/device/radio/proc/ToggleBroadcast()
|
||||
broadcasting = !broadcasting && !(wires.IsIndexCut(WIRE_TRANSMIT) || wires.IsIndexCut(WIRE_SIGNAL))
|
||||
broadcasting = !broadcasting && !(wires.is_cut(WIRE_RADIO_TRANSMIT) || wires.is_cut(WIRE_RADIO_SIGNAL))
|
||||
|
||||
/obj/item/device/radio/proc/ToggleReception()
|
||||
listening = !listening && !(wires.IsIndexCut(WIRE_RECEIVE) || wires.IsIndexCut(WIRE_SIGNAL))
|
||||
listening = !listening && !(wires.is_cut(WIRE_RADIO_RECEIVER) || wires.is_cut(WIRE_RADIO_SIGNAL))
|
||||
|
||||
/obj/item/device/radio/CanUseTopic()
|
||||
if(!on)
|
||||
@@ -337,7 +331,7 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer)
|
||||
|
||||
// Uncommenting this. To the above comment:
|
||||
// The permacell radios aren't suppose to be able to transmit, this isn't a bug and this "fix" is just making radio wires useless. -Giacom
|
||||
if(wires.IsIndexCut(WIRE_TRANSMIT)) // The device has to have all its wires and shit intact
|
||||
if(wires.is_cut(WIRE_RADIO_TRANSMIT)) // The device has to have all its wires and shit intact
|
||||
return FALSE
|
||||
|
||||
if(!radio_connection)
|
||||
@@ -541,7 +535,7 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer)
|
||||
// check if this radio can receive on the given frequency, and if so,
|
||||
// what the range is in which mobs will hear the radio
|
||||
// returns: -1 if can't receive, range otherwise
|
||||
if(wires.IsIndexCut(WIRE_RECEIVE))
|
||||
if(wires.is_cut(WIRE_RADIO_RECEIVER))
|
||||
return -1
|
||||
if(!listening)
|
||||
return -1
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
/obj/item/device/bluespaceradio/cryogaia_prelinked
|
||||
name = "bluespace radio (Cryogaia)"
|
||||
handset = /obj/item/device/radio/bluespacehandset/linked/cryogaia_prelinked
|
||||
|
||||
/obj/item/device/radio/bluespacehandset/linked/cryogaia_prelinked
|
||||
bs_tx_preload_id = "cryogaia_rx" //Transmit to a receiver
|
||||
bs_rx_preload_id = "cryogaia_tx" //Recveive from a transmitter
|
||||
@@ -128,7 +128,7 @@
|
||||
//Only care about megabroadcasts or things that are targeted at us
|
||||
if(!(0 in level))
|
||||
return -1
|
||||
if(wires.IsIndexCut(WIRE_RECEIVE))
|
||||
if(wires.is_cut(WIRE_RADIO_RECEIVER))
|
||||
return -1
|
||||
if(!listening)
|
||||
return -1
|
||||
|
||||
@@ -272,9 +272,11 @@ HALOGEN COUNTER - Radcount on mobs
|
||||
var/blood_volume = H.vessel.get_reagent_amount("blood")
|
||||
var/blood_percent = round((blood_volume / H.species.blood_volume)*100)
|
||||
var/blood_type = H.dna.b_type
|
||||
if(blood_percent <= BLOOD_VOLUME_BAD)
|
||||
if(blood_volume <= H.species.blood_volume*H.species.blood_level_danger)
|
||||
dat += "<span class='danger'><i>Warning: Blood Level CRITICAL: [blood_percent]% [blood_volume]cl. Type: [blood_type]</i></span><br>"
|
||||
else if(blood_percent <= BLOOD_VOLUME_SAFE)
|
||||
else if(blood_volume <= H.species.blood_volume*H.species.blood_level_warning)
|
||||
dat += "<span class='danger'><i>Warning: Blood Level VERY LOW: [blood_percent]% [blood_volume]cl. Type: [blood_type]</i></span><br>"
|
||||
else if(blood_volume <= H.species.blood_volume*H.species.blood_level_safe)
|
||||
dat += "<span class='danger'>Warning: Blood Level LOW: [blood_percent]% [blood_volume]cl. Type: [blood_type]</span><br>"
|
||||
else
|
||||
dat += "<span class='notice'>Blood Level Normal: [blood_percent]% [blood_volume]cl. Type: [blood_type]</span><br>"
|
||||
|
||||
@@ -326,7 +326,7 @@
|
||||
var/televored = FALSE
|
||||
if(isbelly(real_dest))
|
||||
var/obj/belly/B = real_dest
|
||||
if(!target.can_be_drop_prey && B.owner != user)
|
||||
if(!(target.can_be_drop_prey) && B.owner != user)
|
||||
to_chat(target,"<span class='warning'>\The [src] narrowly avoids teleporting you right into \a [lowertext(real_dest.name)]!</span>")
|
||||
real_dest = dT //Nevermind!
|
||||
else
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
|
||||
#define JAR_NOTHING 0
|
||||
#define JAR_MONEY 1
|
||||
#define JAR_ANIMAL 2
|
||||
#define JAR_SPIDER 3
|
||||
|
||||
/obj/item/glass_jar
|
||||
name = "glass jar"
|
||||
desc = "A small empty jar."
|
||||
@@ -27,7 +33,7 @@
|
||||
var/mob/L = A
|
||||
user.visible_message("<span class='notice'>[user] scoops [L] into \the [src].</span>", "<span class='notice'>You scoop [L] into \the [src].</span>")
|
||||
L.loc = src
|
||||
contains = 2
|
||||
contains = JAR_ANIMAL
|
||||
update_icon()
|
||||
return
|
||||
else if(istype(A, /obj/effect/spider/spiderling))
|
||||
@@ -35,40 +41,40 @@
|
||||
user.visible_message("<span class='notice'>[user] scoops [S] into \the [src].</span>", "<span class='notice'>You scoop [S] into \the [src].</span>")
|
||||
S.loc = src
|
||||
STOP_PROCESSING(SSobj, S) // No growing inside jars
|
||||
contains = 3
|
||||
contains = JAR_SPIDER
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/glass_jar/attack_self(var/mob/user)
|
||||
switch(contains)
|
||||
if(1)
|
||||
if(JAR_MONEY)
|
||||
for(var/obj/O in src)
|
||||
O.loc = user.loc
|
||||
to_chat(user, "<span class='notice'>You take money out of \the [src].</span>")
|
||||
contains = 0
|
||||
contains = JAR_NOTHING
|
||||
update_icon()
|
||||
return
|
||||
if(2)
|
||||
if(JAR_ANIMAL)
|
||||
for(var/mob/M in src)
|
||||
M.loc = user.loc
|
||||
user.visible_message("<span class='notice'>[user] releases [M] from \the [src].</span>", "<span class='notice'>You release [M] from \the [src].</span>")
|
||||
contains = 0
|
||||
contains = JAR_NOTHING
|
||||
update_icon()
|
||||
return
|
||||
if(3)
|
||||
if(JAR_SPIDER)
|
||||
for(var/obj/effect/spider/spiderling/S in src)
|
||||
S.loc = user.loc
|
||||
user.visible_message("<span class='notice'>[user] releases [S] from \the [src].</span>", "<span class='notice'>You release [S] from \the [src].</span>")
|
||||
START_PROCESSING(SSobj, S) // They can grow after being let out though
|
||||
contains = 0
|
||||
contains = JAR_NOTHING
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/glass_jar/attackby(var/obj/item/W, var/mob/user)
|
||||
if(istype(W, /obj/item/weapon/spacecash))
|
||||
if(contains == 0)
|
||||
contains = 1
|
||||
if(contains != 1)
|
||||
if(contains == JAR_NOTHING)
|
||||
contains = JAR_MONEY
|
||||
if(contains != JAR_MONEY)
|
||||
return
|
||||
var/obj/item/weapon/spacecash/S = W
|
||||
user.visible_message("<span class='notice'>[user] puts [S.worth] [S.worth > 1 ? "thalers" : "thaler"] into \the [src].</span>")
|
||||
@@ -80,10 +86,10 @@
|
||||
underlays.Cut()
|
||||
overlays.Cut()
|
||||
switch(contains)
|
||||
if(0)
|
||||
if(JAR_NOTHING)
|
||||
name = initial(name)
|
||||
desc = initial(desc)
|
||||
if(1)
|
||||
if(JAR_MONEY)
|
||||
name = "tip jar"
|
||||
desc = "A small jar with money inside."
|
||||
for(var/obj/item/weapon/spacecash/S in src)
|
||||
@@ -92,7 +98,7 @@
|
||||
money.pixel_y = rand(-6, 6)
|
||||
money.transform *= 0.6
|
||||
underlays += money
|
||||
if(2)
|
||||
if(JAR_ANIMAL)
|
||||
for(var/mob/M in src)
|
||||
var/image/victim = image(M.icon, M.icon_state)
|
||||
victim.pixel_y = 6
|
||||
@@ -105,10 +111,109 @@
|
||||
underlays += victim
|
||||
name = "glass jar with [M]"
|
||||
desc = "A small jar with [M] inside."
|
||||
if(3)
|
||||
if(JAR_SPIDER)
|
||||
for(var/obj/effect/spider/spiderling/S in src)
|
||||
var/image/victim = image(S.icon, S.icon_state)
|
||||
underlays += victim
|
||||
name = "glass jar with [S]"
|
||||
desc = "A small jar with [S] inside."
|
||||
return
|
||||
return
|
||||
|
||||
/obj/item/glass_jar/fish
|
||||
name = "glass tank"
|
||||
desc = "A large glass tank."
|
||||
|
||||
var/filled = FALSE
|
||||
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
|
||||
accept_mobs = list(/mob/living/simple_mob/animal/passive/lizard, /mob/living/simple_mob/animal/passive/mouse, /mob/living/simple_mob/animal/sif/leech, /mob/living/simple_mob/animal/sif/frostfly, /mob/living/simple_mob/animal/sif/glitterfly, /mob/living/simple_mob/animal/passive/fish)
|
||||
|
||||
/obj/item/glass_jar/fish/plastic
|
||||
name = "plastic tank"
|
||||
desc = "A large plastic tank."
|
||||
matter = list("plastic" = 4000)
|
||||
|
||||
/obj/item/glass_jar/fish/update_icon() // Also updates name and desc
|
||||
underlays.Cut()
|
||||
overlays.Cut()
|
||||
|
||||
if(filled)
|
||||
underlays += image(icon, "[icon_state]_water")
|
||||
|
||||
switch(contains)
|
||||
if(JAR_NOTHING)
|
||||
name = initial(name)
|
||||
desc = initial(desc)
|
||||
if(JAR_MONEY)
|
||||
name = "tip tank"
|
||||
desc = "A large [name] with money inside."
|
||||
for(var/obj/item/weapon/spacecash/S in src)
|
||||
var/image/money = image(S.icon, S.icon_state)
|
||||
money.pixel_x = rand(-2, 3)
|
||||
money.pixel_y = rand(-6, 6)
|
||||
money.transform *= 0.6
|
||||
underlays += money
|
||||
if(JAR_ANIMAL)
|
||||
for(var/mob/M in src)
|
||||
var/image/victim = image(M.icon, M.icon_state)
|
||||
var/initial_x_scale = M.icon_scale_x
|
||||
var/initial_y_scale = M.icon_scale_y
|
||||
M.adjust_scale(0.7)
|
||||
victim.appearance = M.appearance
|
||||
M.adjust_scale(initial_x_scale, initial_y_scale)
|
||||
victim.pixel_y = 4
|
||||
underlays += victim
|
||||
name = "[name] with [M]"
|
||||
desc = "A large [name] with [M] inside."
|
||||
if(JAR_SPIDER)
|
||||
for(var/obj/effect/spider/spiderling/S in src)
|
||||
var/image/victim = image(S.icon, S.icon_state)
|
||||
underlays += victim
|
||||
name = "[name] with [S]"
|
||||
desc = "A large tank with [S] inside."
|
||||
|
||||
if(filled)
|
||||
desc = "[desc] It contains water."
|
||||
|
||||
return
|
||||
|
||||
/obj/item/glass_jar/fish/afterattack(var/atom/A, var/mob/user, var/proximity)
|
||||
if(!filled)
|
||||
if(istype(A, /obj/structure/sink) || istype(A, /turf/simulated/floor/water))
|
||||
if(contains && user.a_intent == "help")
|
||||
to_chat(user, "<span class='warning'>That probably isn't the best idea.</span>")
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You fill \the [src] with water!</span>")
|
||||
filled = TRUE
|
||||
update_icon()
|
||||
return
|
||||
|
||||
return ..()
|
||||
|
||||
/obj/item/glass_jar/fish/attack_self(var/mob/user)
|
||||
if(filled)
|
||||
if(contains == JAR_ANIMAL)
|
||||
if(user.a_intent == "help")
|
||||
to_chat(user, "<span class='notice'>Maybe you shouldn't empty the water...</span>")
|
||||
return
|
||||
|
||||
else
|
||||
filled = FALSE
|
||||
user.visible_message("<span class='warning'>[user] dumps out \the [src]'s water!</span>")
|
||||
update_icon()
|
||||
return
|
||||
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] dumps \the [src]'s water.</span>")
|
||||
filled = FALSE
|
||||
update_icon()
|
||||
return
|
||||
|
||||
return ..()
|
||||
|
||||
#undef JAR_NOTHING
|
||||
#undef JAR_MONEY
|
||||
#undef JAR_ANIMAL
|
||||
#undef JAR_SPIDER
|
||||
|
||||
@@ -25,7 +25,9 @@
|
||||
user.visible_message("<span class='notice'>[user] presses a button on [src]!</span>")
|
||||
desc = desc + " This one seems to be used-up."
|
||||
spent = TRUE
|
||||
user.visible_message("<span class='notice'>A small bluespace rift opens just above your head and spits out a pizza box!</span>")
|
||||
user.visible_message("<span class='notice'>A small bluespace rift opens just above [user]'s head and spits out a pizza box!</span>",
|
||||
"<span class='notice'>A small bluespace rift opens just above your head and spits out a pizza box!</span>",
|
||||
"<span class='notice'>You hear a fwoosh followed by a thump.</span>")
|
||||
if(special_delivery)
|
||||
command_announcement.Announce("SPECIAL DELIVERY PIZZA ORDER #[rand(1000,9999)]-[rand(100,999)] HAS BEEN RECIEVED. SHIPMENT DISPATCHED VIA EXTRA-POWERFUL BALLISTIC LAUNCHERS FOR IMMEDIATE DELIVERY! THANK YOU AND ENJOY YOUR PIZZA!", "WE ALWAYS DELIVER!")
|
||||
new /obj/effect/falling_effect/pizza_delivery/special(user.loc)
|
||||
@@ -59,4 +61,4 @@
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/effect/falling_effect/pizza_delivery/special
|
||||
crushing = TRUE
|
||||
crushing = TRUE
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
R.add_language(LANGUAGE_ECUREUILIAN, 1)
|
||||
R.add_language(LANGUAGE_DAEMON, 1)
|
||||
R.add_language(LANGUAGE_ENOCHIAN, 1)
|
||||
R.add_language(LANGUAGE_SLAVIC, 1)
|
||||
R.add_language(LANGUAGE_SLAVIC, 1)
|
||||
R.add_language(LANGUAGE_DRUDAKAR, 1)
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
@@ -1445,3 +1445,77 @@
|
||||
force = 1
|
||||
throwforce = 1
|
||||
drop_sound = 'sound/items/drop/box.ogg'
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Chess Pieces //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
/obj/item/toy/chess
|
||||
name = "chess piece"
|
||||
desc = "This should never display."
|
||||
icon = 'icons/obj/chess.dmi'
|
||||
w_class = ITEMSIZE_SMALL
|
||||
force = 1
|
||||
throwforce = 1
|
||||
drop_sound = 'sound/items/drop/glass.ogg'
|
||||
|
||||
/obj/item/toy/chess/pawn_white
|
||||
name = "blue pawn"
|
||||
desc = "A large pawn piece for playing chess. It's made of a blue-colored glass."
|
||||
description_info = "Pawns can move forward one square, if that square is unoccupied. If the pawn has not yet moved, it has the option of moving two squares forward provided both squares in front of the pawn are unoccupied. A pawn cannot move backward. They can only capture an enemy piece on either of the two tiles diagonally in front of them, but not the tile directly in front of them."
|
||||
icon_state = "w-pawn"
|
||||
/obj/item/toy/chess/pawn_black
|
||||
name = "purple pawn"
|
||||
desc = "A large pawn piece for playing chess. It's made of a purple-colored glass."
|
||||
description_info = "Pawns can move forward one square, if that square is unoccupied. If the pawn has not yet moved, it has the option of moving two squares forward provided both squares in front of the pawn are unoccupied. A pawn cannot move backward. They can only capture an enemy piece on either of the two tiles diagonally in front of them, but not the tile directly in front of them."
|
||||
icon_state = "b-pawn"
|
||||
/obj/item/toy/chess/rook_white
|
||||
name = "blue rook"
|
||||
desc = "A large rook piece for playing chess. It's made of a blue-colored glass."
|
||||
description_info = "The Rook can move any number of vacant squares vertically or horizontally."
|
||||
icon_state = "w-rook"
|
||||
/obj/item/toy/chess/rook_black
|
||||
name = "purple rook"
|
||||
desc = "A large rook piece for playing chess. It's made of a purple-colored glass."
|
||||
description_info = "The Rook can move any number of vacant squares vertically or horizontally."
|
||||
icon_state = "b-rook"
|
||||
/obj/item/toy/chess/knight_white
|
||||
name = "blue knight"
|
||||
desc = "A large knight piece for playing chess. It's made of a blue-colored glass. Sadly, you can't ride it."
|
||||
description_info = "The Knight can either move two squares horizontally and one square vertically or two squares vertically and one square horizontally. The knight's movement can also be viewed as an 'L' laid out at any horizontal or vertical angle."
|
||||
icon_state = "w-knight"
|
||||
/obj/item/toy/chess/knight_black
|
||||
name = "purple knight"
|
||||
desc = "A large knight piece for playing chess. It's made of a purple-colored glass. 'Just a flesh wound.'"
|
||||
description_info = "The Knight can either move two squares horizontally and one square vertically or two squares vertically and one square horizontally. The knight's movement can also be viewed as an 'L' laid out at any horizontal or vertical angle."
|
||||
icon_state = "b-knight"
|
||||
/obj/item/toy/chess/bishop_white
|
||||
name = "blue bishop"
|
||||
desc = "A large bishop piece for playing chess. It's made of a blue-colored glass."
|
||||
description_info = "The Bishop can move any number of vacant squares in any diagonal direction."
|
||||
icon_state = "w-bishop"
|
||||
/obj/item/toy/chess/bishop_black
|
||||
name = "purple bishop"
|
||||
desc = "A large bishop piece for playing chess. It's made of a purple-colored glass."
|
||||
description_info = "The Bishop can move any number of vacant squares in any diagonal direction."
|
||||
icon_state = "b-bishop"
|
||||
/obj/item/toy/chess/queen_white
|
||||
name = "blue queen"
|
||||
desc = "A large queen piece for playing chess. It's made of a blue-colored glass."
|
||||
description_info = "The Queen can move any number of vacant squares diagonally, horizontally, or vertically."
|
||||
icon_state = "w-queen"
|
||||
/obj/item/toy/chess/queen_black
|
||||
name = "purple queen"
|
||||
desc = "A large queen piece for playing chess. It's made of a purple-colored glass."
|
||||
description_info = "The Queen can move any number of vacant squares diagonally, horizontally, or vertically."
|
||||
icon_state = "b-queen"
|
||||
/obj/item/toy/chess/king_white
|
||||
name = "blue king"
|
||||
desc = "A large king piece for playing chess. It's made of a blue-colored glass."
|
||||
description_info = "The King can move exactly one square horizontally, vertically, or diagonally. If your opponent captures this piece, you lose."
|
||||
icon_state = "w-king"
|
||||
/obj/item/toy/chess/king_black
|
||||
name = "purple king"
|
||||
desc = "A large king piece for playing chess. It's made of a purple-colored glass."
|
||||
description_info = "The King can move exactly one square horizontally, vertically, or diagonally. If your opponent captures this piece, you lose."
|
||||
icon_state = "b-king"
|
||||
@@ -14,6 +14,14 @@
|
||||
drop_sound = 'sound/voice/weh.ogg'
|
||||
attack_verb = list("raided", "kobolded", "weh'd")
|
||||
|
||||
/obj/item/toy/plushie/lizardplushie/resh
|
||||
name = "security unathi plushie"
|
||||
desc = "An adorable stuffed toy that resembles an unathi wearing a head of security uniform. Perfect example of a monitor lizard."
|
||||
icon = 'icons/obj/toy_vr.dmi'
|
||||
icon_state = "marketable_resh"
|
||||
pokephrase = "Halt! Sssecurity!" //"Butts!" would be too obvious
|
||||
attack_verb = list("valided", "justiced", "batoned")
|
||||
|
||||
/obj/item/toy/plushie/slimeplushie
|
||||
name = "slime plushie"
|
||||
desc = "An adorable stuffed toy that resembles a slime. It is practically just a hacky sack."
|
||||
|
||||
@@ -7,6 +7,20 @@
|
||||
w_class = ITEMSIZE_SMALL
|
||||
desc = "This is rubbish."
|
||||
drop_sound = 'sound/items/drop/wrapper.ogg'
|
||||
var/age = 0
|
||||
|
||||
/obj/item/trash/New(var/newloc, var/_age)
|
||||
..(newloc)
|
||||
if(!isnull(_age))
|
||||
age = _age
|
||||
|
||||
/obj/item/trash/Initialize()
|
||||
SSpersistence.track_value(src, /datum/persistent/filth/trash)
|
||||
. = ..()
|
||||
|
||||
/obj/item/trash/Destroy()
|
||||
SSpersistence.forget_value(src, /datum/persistent/filth/trash)
|
||||
. = ..()
|
||||
|
||||
/obj/item/trash/raisins
|
||||
name = "\improper 4no raisins"
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
var/datum/pipe_recipe/recipe = null // pipe recipie selected for display/construction //YW edit, added = null
|
||||
var/static/datum/pipe_recipe/first_atmos
|
||||
var/static/datum/pipe_recipe/first_disposal
|
||||
var/static/datum/asset/iconsheet/pipes/icon_assets
|
||||
var/static/datum/asset/spritesheet/pipes/icon_assets
|
||||
var/static/list/pipe_layers = list(
|
||||
"Regular" = PIPING_LAYER_REGULAR,
|
||||
"Supply" = PIPING_LAYER_SUPPLY,
|
||||
@@ -80,7 +80,7 @@
|
||||
/obj/item/weapon/pipe_dispenser/interact(mob/user)
|
||||
SetupPipes()
|
||||
if(!icon_assets)
|
||||
icon_assets = get_asset_datum(/datum/asset/iconsheet/pipes)
|
||||
icon_assets = get_asset_datum(/datum/asset/spritesheet/pipes)
|
||||
icon_assets.send(user)
|
||||
|
||||
var/list/lines = list()
|
||||
@@ -370,7 +370,7 @@
|
||||
if(_dir == p_dir && flipped == p_flipped)
|
||||
attrs += " class=\"linkOn\""
|
||||
if(icon_state)
|
||||
var/img_tag = icon_assets.icon_tag(icon_state, _dir)
|
||||
var/img_tag = icon_assets.icon_tag("[dirtext]-[icon_state]")
|
||||
return "<a href=\"?src=\ref[src];dir=[dirtext];flipped=[flipped]\" title=\"[title]\"[attrs]>[img_tag]</a>"
|
||||
else
|
||||
return "<a href=\"?src=\ref[src];dir=[dirtext];flipped=[flipped]\" title=\"[title]\"[attrs]>[noimg]</a>"
|
||||
|
||||
@@ -150,7 +150,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
|
||||
/obj/item/clothing/mask/smokable/examine(mob/user)
|
||||
. = ..()
|
||||
|
||||
|
||||
if(!is_pipe)
|
||||
var/smoke_percent = round((smoketime / max_smoketime) * 100)
|
||||
switch(smoke_percent)
|
||||
@@ -283,7 +283,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
w_class = ITEMSIZE_TINY
|
||||
slot_flags = SLOT_EARS | SLOT_MASK
|
||||
attack_verb = list("burnt", "singed")
|
||||
type_butt = /obj/item/weapon/cigbutt
|
||||
type_butt = /obj/item/trash/cigbutt
|
||||
chem_volume = 15
|
||||
max_smoketime = 300
|
||||
smoketime = 300
|
||||
@@ -341,7 +341,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
name = "premium cigar"
|
||||
desc = "A brown roll of tobacco and... well, you're not quite sure. This thing's huge!"
|
||||
icon_state = "cigar2"
|
||||
type_butt = /obj/item/weapon/cigbutt/cigarbutt
|
||||
type_butt = /obj/item/trash/cigbutt/cigarbutt
|
||||
throw_speed = 0.5
|
||||
item_state = "cigar"
|
||||
max_smoketime = 1500
|
||||
@@ -369,7 +369,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
chem_volume = 30
|
||||
nicotine_amt = 10
|
||||
|
||||
/obj/item/weapon/cigbutt
|
||||
/obj/item/trash/cigbutt
|
||||
name = "cigarette butt"
|
||||
desc = "A manky old cigarette butt."
|
||||
icon = 'icons/obj/clothing/masks.dmi'
|
||||
@@ -379,12 +379,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
slot_flags = SLOT_EARS
|
||||
throwforce = 1
|
||||
|
||||
/obj/item/weapon/cigbutt/Initialize()
|
||||
/obj/item/trash/cigbutt/Initialize()
|
||||
. = ..()
|
||||
randpixel_xy()
|
||||
transform = turn(transform,rand(0,360))
|
||||
|
||||
/obj/item/weapon/cigbutt/cigarbutt
|
||||
/obj/item/trash/cigbutt/cigarbutt
|
||||
name = "cigar butt"
|
||||
desc = "A manky old cigar butt."
|
||||
icon_state = "cigarbutt"
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
|
||||
/obj/item/weapon/circuitboard/security/New()
|
||||
..()
|
||||
network = using_map.station_networks
|
||||
|
||||
/obj/item/weapon/circuitboard/security/tv
|
||||
name = T_BOARD("security camera monitor - television")
|
||||
@@ -45,7 +44,7 @@
|
||||
|
||||
/obj/item/weapon/circuitboard/security/construct(var/obj/machinery/computer/security/C)
|
||||
if (..(C))
|
||||
C.network = network.Copy()
|
||||
C.set_network(network.Copy())
|
||||
|
||||
/obj/item/weapon/circuitboard/security/deconstruct(var/obj/machinery/computer/security/C)
|
||||
if (..(C))
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
/obj/item/weapon/book/manual/engineering_construction
|
||||
name = "Station Repairs and Construction"
|
||||
icon_state ="bookEngineering"
|
||||
item_state = "book3"
|
||||
author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
|
||||
title = "Station Repairs and Construction"
|
||||
|
||||
@@ -30,6 +31,7 @@
|
||||
/obj/item/weapon/book/manual/engineering_particle_accelerator
|
||||
name = "Particle Accelerator User's Guide"
|
||||
icon_state ="bookParticleAccelerator"
|
||||
item_state = "book15"
|
||||
author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
|
||||
title = "Particle Accelerator User's Guide"
|
||||
|
||||
@@ -77,6 +79,7 @@
|
||||
/obj/item/weapon/book/manual/supermatter_engine
|
||||
name = "Supermatter Engine Operating Manual"
|
||||
icon_state = "bookSupermatter"
|
||||
item_state = "book15"
|
||||
author = "Central Engineering Division"
|
||||
title = "Supermatter Engine Operating Manual"
|
||||
|
||||
@@ -160,6 +163,7 @@
|
||||
/obj/item/weapon/book/manual/tesla_engine
|
||||
name = "Tesla Operating Manual"
|
||||
icon_state ="bookTesla"
|
||||
item_state = "book15"
|
||||
author = "Engineering Encyclopedia"
|
||||
title = "Tesla Engine User's Guide"
|
||||
dat = {"<html>
|
||||
@@ -229,7 +233,8 @@
|
||||
/obj/item/weapon/book/manual/rust_engine
|
||||
name = "R-UST Operating Manual"
|
||||
icon_state = "bookSupermatter"
|
||||
author = "Yumi Kruik"
|
||||
item_state = "book15"
|
||||
author = "Cindy Crawfish"
|
||||
title = "R-UST Operating Manual"
|
||||
|
||||
//R-UST guide Re-Writen by Gozulio to reflect how the R-UST actually operates.
|
||||
@@ -280,6 +285,7 @@
|
||||
/obj/item/weapon/book/manual/engineering_hacking
|
||||
name = "Hacking"
|
||||
icon_state ="bookHacking"
|
||||
item_state = "book2"
|
||||
author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
|
||||
title = "Hacking"
|
||||
|
||||
@@ -302,6 +308,7 @@
|
||||
/obj/item/weapon/book/manual/engineering_singularity_safety
|
||||
name = "Singularity Safety in Special Circumstances"
|
||||
icon_state ="bookEngineeringSingularitySafety"
|
||||
item_state = "book15"
|
||||
author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
|
||||
title = "Singularity Safety in Special Circumstances"
|
||||
|
||||
@@ -354,6 +361,7 @@
|
||||
/obj/item/weapon/book/manual/hydroponics_pod_people
|
||||
name = "The Diona Harvest - From Seed to Market"
|
||||
icon_state ="bookHydroponicsPodPeople"
|
||||
item_state = "book5"
|
||||
author = "Farmer John"
|
||||
title = "The Diona Harvest - From Seed to Market"
|
||||
|
||||
@@ -392,6 +400,7 @@
|
||||
/obj/item/weapon/book/manual/medical_cloning
|
||||
name = "Cloning Techniques of the 26th Century"
|
||||
icon_state ="bookCloning"
|
||||
item_state = "book9"
|
||||
author = "Medical Journal, volume 3" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
|
||||
title = "Cloning Techniques of the 26th Century"
|
||||
|
||||
@@ -485,6 +494,7 @@
|
||||
/obj/item/weapon/book/manual/ripley_build_and_repair
|
||||
name = "APLU \"Ripley\" Construction and Operation Manual"
|
||||
icon_state ="book"
|
||||
item_state = "book"
|
||||
author = "Randall Varn, Einstein Engines Senior Mechanic" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
|
||||
title = "APLU \"Ripley\" Construction and Operation Manual"
|
||||
|
||||
@@ -562,6 +572,7 @@
|
||||
/obj/item/weapon/book/manual/research_and_development
|
||||
name = "Research and Development 101"
|
||||
icon_state = "rdbook"
|
||||
item_state = "book7"
|
||||
author = "Dr. L. Ight"
|
||||
title = "Research and Development 101"
|
||||
|
||||
@@ -631,6 +642,7 @@
|
||||
/obj/item/weapon/book/manual/robotics_cyborgs
|
||||
name = "Cyborgs for Dummies"
|
||||
icon_state = "borgbook"
|
||||
item_state = "book1"
|
||||
author = "XISC"
|
||||
title = "Cyborgs for Dummies"
|
||||
|
||||
@@ -837,6 +849,7 @@
|
||||
name = "Corporate Regulations"
|
||||
desc = "A set of corporate guidelines for keeping law and order on privately-owned space stations."
|
||||
icon_state = "bookSpaceLaw"
|
||||
item_state = "book13"
|
||||
author = "The Company"
|
||||
title = "Corporate Regulations"
|
||||
|
||||
@@ -861,6 +874,7 @@
|
||||
name = "Medical Diagnostics Manual"
|
||||
desc = "First, do no harm. A detailed medical practitioner's guide."
|
||||
icon_state = "bookMedical"
|
||||
item_state = "book12"
|
||||
author = "Medical Department"
|
||||
title = "Medical Diagnostics Manual"
|
||||
|
||||
@@ -908,6 +922,7 @@
|
||||
/obj/item/weapon/book/manual/engineering_guide
|
||||
name = "Engineering Textbook"
|
||||
icon_state ="bookEngineering2"
|
||||
item_state = "book3"
|
||||
author = "Engineering Encyclopedia"
|
||||
title = "Engineering Textbook"
|
||||
|
||||
@@ -929,6 +944,7 @@
|
||||
/obj/item/weapon/book/manual/chef_recipes
|
||||
name = "Chef Recipes"
|
||||
icon_state = "cooked_book"
|
||||
item_state = "book16"
|
||||
author = "Victoria Ponsonby"
|
||||
title = "Chef Recipes"
|
||||
|
||||
@@ -989,6 +1005,7 @@
|
||||
name = "Barman Recipes"
|
||||
desc = "For the enterprising drink server."
|
||||
icon_state = "barbook"
|
||||
item_state = "book14"
|
||||
author = "Sir John Rose"
|
||||
title = "Barman Recipes"
|
||||
|
||||
@@ -1044,6 +1061,7 @@
|
||||
/obj/item/weapon/book/manual/detective
|
||||
name = "The Film Noir: Proper Procedures for Investigations"
|
||||
icon_state ="bookDetective"
|
||||
item_state = "book8"
|
||||
author = "The Company"
|
||||
title = "The Film Noir: Proper Procedures for Investigations"
|
||||
|
||||
@@ -1087,6 +1105,7 @@
|
||||
/obj/item/weapon/book/manual/nuclear
|
||||
name = "Fission Mailed: Nuclear Sabotage 101"
|
||||
icon_state ="bookNuclear"
|
||||
item_state = "book8"
|
||||
author = "Syndicate"
|
||||
title = "Fission Mailed: Nuclear Sabotage 101"
|
||||
|
||||
@@ -1138,6 +1157,7 @@
|
||||
/obj/item/weapon/book/manual/atmospipes
|
||||
name = "Pipes and You: Getting To Know Your Scary Tools"
|
||||
icon_state = "pipingbook"
|
||||
item_state = "book3"
|
||||
author = "Maria Crash, Senior Atmospherics Technician"
|
||||
title = "Pipes and You: Getting To Know Your Scary Tools"
|
||||
dat = {"<html>
|
||||
@@ -1246,6 +1266,7 @@
|
||||
/obj/item/weapon/book/manual/evaguide
|
||||
name = "EVA Gear and You: Not Spending All Day Inside, 2nd Edition"
|
||||
icon_state = "evabook"
|
||||
item_state = "book14"
|
||||
author = "Maria Crash, Senior Atmospherics Technician"
|
||||
title = "EVA Gear and You: Not Spending All Day Inside, 2nd Edition"
|
||||
dat = {"<html>
|
||||
|
||||
@@ -46,7 +46,7 @@ var/global/list/ashtray_cache = list()
|
||||
/obj/item/weapon/material/ashtray/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if (health <= 0)
|
||||
return
|
||||
if (istype(W,/obj/item/weapon/cigbutt) || istype(W,/obj/item/clothing/mask/smokable/cigarette) || istype(W, /obj/item/weapon/flame/match))
|
||||
if (istype(W,/obj/item/trash/cigbutt) || istype(W,/obj/item/clothing/mask/smokable/cigarette) || istype(W, /obj/item/weapon/flame/match))
|
||||
if (contents.len >= max_butts)
|
||||
to_chat(user, "\The [src] is full.")
|
||||
return
|
||||
|
||||
@@ -12,13 +12,13 @@ obj/item/weapon/chainsaw
|
||||
var/active_force = 55
|
||||
var/inactive_force = 10
|
||||
|
||||
obj/item/weapon/chainsaw/New()
|
||||
obj/item/weapon/chainsaw/Initialize() //YW edit - replaced New with Initialize so chainsaws can be mapped in
|
||||
. = ..()
|
||||
var/datum/reagents/R = new/datum/reagents(max_fuel)
|
||||
reagents = R
|
||||
R.my_atom = src
|
||||
R.add_reagent("fuel", max_fuel)
|
||||
START_PROCESSING(SSobj, src)
|
||||
..()
|
||||
|
||||
obj/item/weapon/chainsaw/Destroy()
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
desc = "A scroll for moving around."
|
||||
icon = 'icons/obj/wizard.dmi'
|
||||
icon_state = "scroll"
|
||||
item_icons = list(
|
||||
slot_l_hand_str = 'icons/mob/items/lefthand_books.dmi',
|
||||
slot_r_hand_str = 'icons/mob/items/righthand_books.dmi'
|
||||
)
|
||||
var/uses = 4.0
|
||||
w_class = ITEMSIZE_TINY
|
||||
item_state = "paper"
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
base_block_chance = 40
|
||||
slot_flags = SLOT_BACK
|
||||
var/brightness_on
|
||||
brightness_on = 4
|
||||
brightness_on = 6
|
||||
var/on = 0
|
||||
var/light_applied
|
||||
//var/light_overlay
|
||||
|
||||
@@ -13,10 +13,6 @@
|
||||
mob_can_equip(var/mob/living/carbon/human/H, slot, disable_warning = 0)
|
||||
if(..())
|
||||
if(istype(H) && istype(H.tail_style, taurtype))
|
||||
if(H.size_multiplier >= RESIZE_BIG) //Are they a macro?
|
||||
slowdown = 0
|
||||
else
|
||||
slowdown = initial(slowdown)
|
||||
return 1
|
||||
else
|
||||
to_chat(H, "<span class='warning'>[no_message]</span>")
|
||||
@@ -44,66 +40,20 @@
|
||||
|
||||
mob_can_equip(var/mob/living/carbon/human/H, slot, disable_warning = 0)
|
||||
if(..())
|
||||
var/datum/sprite_accessory/tail/taur/TT = H.tail_style
|
||||
if(istype(H) && istype(TT, /datum/sprite_accessory/tail/taur/horse))
|
||||
item_state = "[icon_base]_Horse"
|
||||
if(H.size_multiplier >= RESIZE_BIG) //Are they a macro?
|
||||
slowdown = 0
|
||||
else
|
||||
slowdown = initial(slowdown)
|
||||
return 1
|
||||
if(istype(H) && istype(TT, /datum/sprite_accessory/tail/taur/wolf))
|
||||
item_state = "[icon_base]_Wolf"
|
||||
if(H.size_multiplier >= RESIZE_BIG) //Are they a macro?
|
||||
slowdown = 0
|
||||
else
|
||||
slowdown = initial(slowdown)
|
||||
return 1
|
||||
if(istype(H) && istype(TT, /datum/sprite_accessory/tail/taur/cow))
|
||||
item_state = "[icon_base]_Cow"
|
||||
if(H.size_multiplier >= RESIZE_BIG) //Are they a macro?
|
||||
slowdown = 0
|
||||
else
|
||||
slowdown = initial(slowdown)
|
||||
return 1
|
||||
if(istype(H) && istype(TT, /datum/sprite_accessory/tail/taur/lizard))
|
||||
item_state = "[icon_base]_Lizard"
|
||||
if(H.size_multiplier >= RESIZE_BIG) //Are they a macro?
|
||||
slowdown = 0
|
||||
else
|
||||
slowdown = initial(slowdown)
|
||||
return 1
|
||||
if(istype(H) && istype(TT, /datum/sprite_accessory/tail/taur/feline))
|
||||
item_state = "[icon_base]_Feline"
|
||||
if(H.size_multiplier >= RESIZE_BIG) //Are they a macro?
|
||||
slowdown = 0
|
||||
else
|
||||
slowdown = initial(slowdown)
|
||||
return 1
|
||||
if(istype(H) && istype(TT, /datum/sprite_accessory/tail/taur/drake))
|
||||
item_state = "[icon_base]_Drake"
|
||||
if(H.size_multiplier >= RESIZE_BIG) //Are they a macro?
|
||||
slowdown = 0
|
||||
else
|
||||
slowdown = initial(slowdown)
|
||||
return 1
|
||||
if(istype(H) && istype(TT, /datum/sprite_accessory/tail/taur/otie))
|
||||
item_state = "[icon_base]_Otie"
|
||||
if(H.size_multiplier >= RESIZE_BIG) //Are they a macro?
|
||||
slowdown = 0
|
||||
else
|
||||
slowdown = initial(slowdown)
|
||||
return 1
|
||||
if(istype(H) && istype(TT, /datum/sprite_accessory/tail/taur/deer))
|
||||
item_state = "[icon_base]_Deer"
|
||||
if(H.size_multiplier >= RESIZE_BIG) //Are they a macro?
|
||||
slowdown = 0
|
||||
else
|
||||
slowdown = initial(slowdown)
|
||||
return 1
|
||||
if(!istype(H))//Error, non HUMAN.
|
||||
log_runtime("[H] was not a valid human!")
|
||||
return
|
||||
|
||||
if(H.size_multiplier >= RESIZE_BIG) //Are they a macro? If yes, they get no slowdown.
|
||||
slowdown = 0
|
||||
else
|
||||
to_chat(H, "<span class='warning'>[no_message]</span>")
|
||||
return 0
|
||||
slowdown = initial(slowdown)
|
||||
|
||||
var/datum/sprite_accessory/tail/taur/TT = H.tail_style
|
||||
item_state = "[icon_base]_[TT.icon_sprite_tag]" //icon_sprite_tag is something like "deer"
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/storage/backpack/saddlebag_common/robust //Shared bag for other taurs with sturdy backs
|
||||
name = "Robust Saddlebags"
|
||||
@@ -116,7 +66,7 @@
|
||||
|
||||
/obj/item/weapon/storage/backpack/saddlebag_common/vest //Shared bag for other taurs with sturdy backs
|
||||
name = "Taur Duty Vest"
|
||||
desc = "An armored vest with the armor modules replaced with various handy compartments with decent storage capacity. Useless for protection though."
|
||||
desc = "An armored vest with the armor modules replaced with various handy compartments with decent storage capacity. Useless for protection though. Holds less than a saddle."
|
||||
icon = 'icons/obj/clothing/backpack_vr.dmi'
|
||||
icon_override = 'icons/mob/back_vr.dmi'
|
||||
item_state = "taurvest"
|
||||
@@ -145,6 +95,7 @@
|
||||
icon_override = 'icons/mob/back_vr.dmi'
|
||||
item_state = "satchel-explorer"
|
||||
icon_state = "satchel-explorer"
|
||||
|
||||
/obj/item/weapon/storage/backpack/explorer
|
||||
name = "explorer backpack"
|
||||
desc = "A backpack for carrying a large number of supplies easily."
|
||||
@@ -152,6 +103,7 @@
|
||||
icon_override = 'icons/mob/back_vr.dmi'
|
||||
item_state = "explorerpack"
|
||||
icon_state = "explorerpack"
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel/roboticist
|
||||
name = "roboticist satchel"
|
||||
desc = "A satchel for carrying a large number of spare parts easily."
|
||||
@@ -159,6 +111,7 @@
|
||||
icon_override = 'icons/mob/back_vr.dmi'
|
||||
item_state = "satchel-robo"
|
||||
icon_state = "satchel-robo"
|
||||
|
||||
/obj/item/weapon/storage/backpack/roboticist
|
||||
name = "roboticist backpack"
|
||||
desc = "A backpack for carrying a large number of spare parts easily."
|
||||
@@ -166,6 +119,7 @@
|
||||
icon_override = 'icons/mob/back_vr.dmi'
|
||||
item_state = "backpack-robo"
|
||||
icon_state = "backpack-robo"
|
||||
|
||||
/obj/item/weapon/storage/backpack/vietnam
|
||||
name = "vietnam backpack"
|
||||
desc = "There are tangos in the trees! We need napalm right now! Why is my gun jammed?"
|
||||
@@ -173,6 +127,7 @@
|
||||
icon_override = 'icons/mob/back_vr.dmi'
|
||||
item_state = "nambackpack"
|
||||
icon_state = "nambackpack"
|
||||
|
||||
/obj/item/weapon/storage/backpack/russian
|
||||
name = "russian backpack"
|
||||
desc = "Useful for carrying large quantities of vodka."
|
||||
@@ -180,6 +135,7 @@
|
||||
icon_override = 'icons/mob/back_vr.dmi'
|
||||
item_state = "ru_rucksack"
|
||||
icon_state = "ru_rucksack"
|
||||
|
||||
/obj/item/weapon/storage/backpack/korean
|
||||
name = "korean backpack"
|
||||
desc = "Insert witty description here."
|
||||
|
||||
@@ -2,6 +2,11 @@
|
||||
name = "bible"
|
||||
desc = "Apply to head repeatedly."
|
||||
icon_state ="bible"
|
||||
item_state = "bible"
|
||||
item_icons = list(
|
||||
slot_l_hand_str = 'icons/mob/items/lefthand_books.dmi',
|
||||
slot_r_hand_str = 'icons/mob/items/righthand_books.dmi'
|
||||
)
|
||||
throw_speed = 1
|
||||
throw_range = 5
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
|
||||
@@ -209,7 +209,7 @@
|
||||
throwforce = 2
|
||||
slot_flags = SLOT_BELT
|
||||
storage_slots = 6
|
||||
can_hold = list(/obj/item/clothing/mask/smokable/cigarette, /obj/item/weapon/flame/lighter, /obj/item/weapon/cigbutt)
|
||||
can_hold = list(/obj/item/clothing/mask/smokable/cigarette, /obj/item/weapon/flame/lighter, /obj/item/trash/cigbutt)
|
||||
icon_type = "cigarette"
|
||||
starts_with = list(/obj/item/clothing/mask/smokable/cigarette = 6)
|
||||
var/brand = "\improper Trans-Stellar Duty-free"
|
||||
@@ -316,7 +316,7 @@
|
||||
throwforce = 2
|
||||
slot_flags = SLOT_BELT
|
||||
storage_slots = 7
|
||||
can_hold = list(/obj/item/clothing/mask/smokable/cigarette/cigar, /obj/item/weapon/cigbutt/cigarbutt)
|
||||
can_hold = list(/obj/item/clothing/mask/smokable/cigarette/cigar, /obj/item/trash/cigbutt/cigarbutt)
|
||||
icon_type = "cigar"
|
||||
starts_with = list(/obj/item/clothing/mask/smokable/cigarette/cigar = 7)
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
/obj/item/weapon/storage/firstaid/regular
|
||||
starts_with = list(
|
||||
/obj/item/stack/medical/bruise_pack,
|
||||
/obj/item/device/healthanalyzer, /*YW EDIT*/
|
||||
/obj/item/stack/medical/bruise_pack,
|
||||
/obj/item/stack/medical/bruise_pack,
|
||||
/obj/item/stack/medical/bruise_pack,
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/tape_roll/proc/stick(var/obj/item/weapon/W, mob/user)
|
||||
if(!istype(W, /obj/item/weapon/paper))
|
||||
if(!istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/paper/sticky) || !user.unEquip(W))
|
||||
return
|
||||
user.drop_from_inventory(W)
|
||||
var/obj/item/weapon/ducttape/tape = new(get_turf(src))
|
||||
|
||||
Reference in New Issue
Block a user