Merge branch 'master' into upstream-merge-30113
This commit is contained in:
@@ -1 +0,0 @@
|
||||
garbage
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/effect/fun_balloon
|
||||
name = "fun balloon"
|
||||
desc = "This is going to be a laugh riot."
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "syndballoon"
|
||||
anchored = TRUE
|
||||
var/popped = FALSE
|
||||
@@ -86,7 +86,7 @@
|
||||
/obj/effect/station_crash
|
||||
name = "station crash"
|
||||
desc = "With no survivors!"
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "syndballoon"
|
||||
anchored = TRUE
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
/obj/effect/shuttle_build
|
||||
name = "shuttle_build"
|
||||
desc = "Some assembly required"
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "syndballoon"
|
||||
anchored = TRUE
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
QDEL_NULL(cstatclick)
|
||||
QDEL_NULL(rstatclick)
|
||||
return ..()
|
||||
|
||||
|
||||
/datum/admin_help_tickets/proc/TicketByID(id)
|
||||
var/list/lists = list(active_tickets, closed_tickets, resolved_tickets)
|
||||
for(var/I in lists)
|
||||
@@ -185,8 +185,6 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
|
||||
TimeoutVerb()
|
||||
|
||||
var/parsed_message = keywords_lookup(msg)
|
||||
|
||||
statclick = new(null, src)
|
||||
_interactions = list()
|
||||
|
||||
@@ -194,7 +192,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
AddInteraction("<font color='blue'>[key_name_admin(usr)] PM'd [LinkedReplyName()]</font>")
|
||||
message_admins("<font color='blue'>Ticket [TicketHref("#[id]")] created</font>")
|
||||
else
|
||||
MessageNoRecipient(msg, parsed_message)
|
||||
MessageNoRecipient(msg)
|
||||
|
||||
//send it to irc if nobody is on and tell us how many were on
|
||||
var/admin_number_present = send2irc_adminless_only(initiator_ckey, "Ticket #[id]: [name]")
|
||||
@@ -249,13 +247,13 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
|
||||
//message from the initiator without a target, all admins will see this
|
||||
//won't bug irc
|
||||
/datum/admin_help/proc/MessageNoRecipient(msg, parsed_msg)
|
||||
/datum/admin_help/proc/MessageNoRecipient(msg)
|
||||
var/ref_src = "\ref[src]"
|
||||
//Message to be sent to all admins
|
||||
var/admin_msg = "<span class='adminnotice'><span class='adminhelp'>Ticket [TicketHref("#[id]", ref_src)]</span><b>: [LinkedReplyName(ref_src)] [FullMonty(ref_src)]:</b> [parsed_msg]</span>"
|
||||
var/admin_msg = "<span class='adminnotice'><span class='adminhelp'>Ticket [TicketHref("#[id]", ref_src)]</span><b>: [LinkedReplyName(ref_src)] [FullMonty(ref_src)]:</b> [keywords_lookup(msg)]</span>"
|
||||
|
||||
AddInteraction("<font color='red'>[LinkedReplyName(ref_src)]: [msg]</font>")
|
||||
|
||||
|
||||
//send this msg to all admins
|
||||
for(var/client/X in GLOB.admins)
|
||||
if(X.prefs.toggles & SOUND_ADMINHELP)
|
||||
|
||||
@@ -9,6 +9,11 @@
|
||||
freq = pick(0.5, 0.7, 0.8, 0.85, 0.9, 0.95, 1.1, 1.2, 1.4, 1.6, 2.0, 2.5)
|
||||
to_chat(src, "You feel the Honkmother messing with your song...")
|
||||
|
||||
var/vol = input(usr, "What volume would you like the sound to play at?",, 100) as null|num
|
||||
if(!vol)
|
||||
return
|
||||
vol = Clamp(vol, 1, 100)
|
||||
|
||||
var/sound/admin_sound = new()
|
||||
admin_sound.file = S
|
||||
admin_sound.priority = 250
|
||||
@@ -17,7 +22,8 @@
|
||||
admin_sound.wait = 1
|
||||
admin_sound.repeat = 0
|
||||
admin_sound.status = SOUND_STREAM
|
||||
|
||||
admin_sound.volume = vol
|
||||
|
||||
var/res = alert(usr, "Show the title of this song to the players?",, "No", "Yes", "Cancel")
|
||||
switch(res)
|
||||
if("Yes")
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm (rejected hunks)
|
||||
@@ -8,7 +8,7 @@
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
throw_speed = 2
|
||||
throw_range = 4
|
||||
- flags = CONDUCT
|
||||
+ flags_1 = CONDUCT_1
|
||||
var/status = FALSE //0 - not readied //1 - bomb finished with welder
|
||||
var/obj/item/device/assembly_holder/bombassembly = null //The first part of the bomb is an assembly holder, holding an igniter+some device
|
||||
var/obj/item/tank/bombtank = null //the second part of the bomb is a plasma tank
|
||||
@@ -224,7 +224,7 @@
|
||||
/obj/item/device/assembly/flash/shield
|
||||
name = "strobe shield"
|
||||
desc = "A shield with a built in, high intensity light capable of blinding and disorienting suspects. Takes regular handheld flashes as bulbs."
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "flashshield"
|
||||
item_state = "flashshield"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi'
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm (rejected hunks)
|
||||
@@ -734,7 +734,7 @@
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/airalarm/deconstruct(disassembled = TRUE)
|
||||
- if(!(flags & NODECONSTRUCT))
|
||||
+ if(!(flags_1 & NODECONSTRUCT_1))
|
||||
new /obj/item/stack/sheet/metal(loc, 2)
|
||||
var/obj/item/I = new /obj/item/electronics/airalarm(loc)
|
||||
if(!disassembled)
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
/obj/item/twohanded/ctf
|
||||
name = "banner"
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "banner"
|
||||
item_state = "banner"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/banners_lefthand.dmi'
|
||||
@@ -100,7 +100,7 @@
|
||||
|
||||
/obj/effect/ctf/flag_reset
|
||||
name = "banner landmark"
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "banner"
|
||||
desc = "This is where a banner with Nanotrasen's logo on it would go."
|
||||
layer = LOW_ITEM_LAYER
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
diff a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm (rejected hunks)
|
||||
@@ -473,14 +473,14 @@
|
||||
W.registered_name = H.real_name
|
||||
W.update_label(W.registered_name, W.assignment)
|
||||
|
||||
- // The shielded hardsuit is already NODROP
|
||||
+ // The shielded hardsuit is already NODROP_1
|
||||
no_drops += H.get_item_by_slot(slot_gloves)
|
||||
no_drops += H.get_item_by_slot(slot_shoes)
|
||||
no_drops += H.get_item_by_slot(slot_w_uniform)
|
||||
no_drops += H.get_item_by_slot(slot_ears)
|
||||
for(var/i in no_drops)
|
||||
var/obj/item/I = i
|
||||
- I.flags |= NODROP
|
||||
+ I.flags_1 |= NODROP_1
|
||||
|
||||
/datum/outfit/ctf/instagib
|
||||
r_hand = /obj/item/gun/energy/laser/instakill
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/cargo/console.dm b/code/modules/cargo/console.dm (rejected hunks)
|
||||
@@ -145,7 +145,7 @@
|
||||
|
||||
var/reason = ""
|
||||
if(requestonly)
|
||||
- reason = stripped_input("Reason:", name, "") as text|null
|
||||
+ reason = stripped_input("Reason:", name, "")
|
||||
if(isnull(reason) || ..())
|
||||
return
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm (rejected hunks)
|
||||
@@ -73,7 +73,7 @@
|
||||
return
|
||||
|
||||
//Logs all hrefs, except chat pings
|
||||
- if(href_list["proc"] != "ping")
|
||||
+ if(!(href_list["_src_"] == "chat" && href_list["proc"] == "ping" && LAZYLEN(href_list) == 2))
|
||||
WRITE_FILE(GLOB.world_href_log, "<small>[time_stamp(show_ds = TRUE)] [src] (usr:[usr])</small> || [hsrc ? "[hsrc] " : ""][href]<br>")
|
||||
|
||||
// Admin PM
|
||||
@@ -343,6 +343,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
S["job_engsec_low"] >> job_engsec_low
|
||||
|
||||
//Citadel code
|
||||
S["feature_genitals_use_skintone"] >> features["genitals_use_skintone"]
|
||||
S["feature_exhibitionist"] >> features["exhibitionist"]
|
||||
S["feature_mcolor2"] >> features["mcolor2"]
|
||||
S["feature_mcolor3"] >> features["mcolor3"]
|
||||
@@ -519,6 +520,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
WRITE_FILE(S["job_engsec_low"] , job_engsec_low)
|
||||
|
||||
//Citadel
|
||||
S["feature_genitals_use_skintone"] << features["genitals_use_skintone"]
|
||||
S["feature_exhibitionist"] << features["exhibitionist"]
|
||||
S["feature_mcolor2"] << features["mcolor2"]
|
||||
S["feature_mcolor3"] << features["mcolor3"]
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm (rejected hunks)
|
||||
@@ -193,7 +193,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
return 0
|
||||
S.cd = "/"
|
||||
|
||||
- WRITE_FILE(S["version"] , SAVEFILE_VERSION_MAX //updates (or failing that the sanity checks) will ensure data is not invalid at load. Assume up-to-date)
|
||||
+ WRITE_FILE(S["version"] , SAVEFILE_VERSION_MAX) //updates (or failing that the sanity checks) will ensure data is not invalid at load. Assume up-to-date
|
||||
|
||||
//general preferences
|
||||
WRITE_FILE(S["ooccolor"], ooccolor)
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm (rejected hunks)
|
||||
@@ -384,7 +384,7 @@
|
||||
item_color = "black"
|
||||
desc = "A pair of black shoes."
|
||||
permeability_coefficient = 0.05
|
||||
- flags = NOSLIP
|
||||
+ flags_1 = NOSLIP_1
|
||||
origin_tech = "syndicate=2"
|
||||
resistance_flags = 0
|
||||
pockets = /obj/item/storage/internal/pocket/shoes
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm (rejected hunks)
|
||||
@@ -494,7 +494,7 @@ BLIND // can't see anything
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.02
|
||||
- flags = STOPSPRESSUREDMAGE | THICKMATERIAL
|
||||
+ flags_1 = STOPSPRESSUREDMAGE_1 | THICKMATERIAL_1
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals)
|
||||
slowdown = 1
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm (rejected hunks)
|
||||
@@ -331,7 +331,7 @@
|
||||
vision_flags = SEE_TURFS|SEE_MOBS|SEE_OBJS
|
||||
darkness_view = 8
|
||||
scan_reagents = 1
|
||||
- flags = NODROP
|
||||
+ flags_1 = NODROP_1
|
||||
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
|
||||
|
||||
/obj/item/clothing/glasses/godeye/attackby(obj/item/W as obj, mob/user as mob, params)
|
||||
@@ -1,9 +0,0 @@
|
||||
diff a/code/modules/clothing/head/collectable.dm b/code/modules/clothing/head/collectable.dm (rejected hunks)
|
||||
@@ -4,7 +4,6 @@
|
||||
/obj/item/clothing/head/collectable
|
||||
name = "collectable hat"
|
||||
desc = "A rare collectable hat."
|
||||
- dynamic_hair_suffix = "+detective"
|
||||
|
||||
|
||||
/obj/item/clothing/head/collectable/petehat
|
||||
@@ -1,16 +0,0 @@
|
||||
diff a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm (rejected hunks)
|
||||
@@ -250,7 +250,7 @@
|
||||
name = "jester hat"
|
||||
desc = "A hat with bells, to add some merriness to the suit."
|
||||
icon_state = "jester_hat"
|
||||
- dynamic_hair_suffix = "null"
|
||||
+ dynamic_hair_suffix = ""
|
||||
|
||||
/obj/item/clothing/head/rice_hat
|
||||
name = "rice hat"
|
||||
@@ -302,4 +302,4 @@
|
||||
name = "jester hat"
|
||||
desc = "A hat with bells, to add some merriness to the suit."
|
||||
icon_state = "jester_hat2"
|
||||
- dynamic_hair_suffix = "null"
|
||||
+ dynamic_hair_suffix = ""
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm (rejected hunks)
|
||||
@@ -348,7 +348,7 @@
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
allowed = list(/obj/item/gun/energy, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals/emergency_oxygen)
|
||||
- flags = THICKMATERIAL
|
||||
+ flags_1 = THICKMATERIAL_1
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS
|
||||
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm (rejected hunks)
|
||||
@@ -18,7 +18,7 @@
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.01
|
||||
- flags = THICKMATERIAL
|
||||
+ flags_1 = THICKMATERIAL_1
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
slowdown = 1
|
||||
allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/pen, /obj/item/device/flashlight/pen, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray)
|
||||
@@ -1,19 +0,0 @@
|
||||
diff a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm (rejected hunks)
|
||||
@@ -21,7 +21,7 @@
|
||||
allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/extinguisher, /obj/item/crowbar)
|
||||
slowdown = 1
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
- flags = STOPSPRESSUREDMAGE | THICKMATERIAL
|
||||
+ flags_1 = STOPSPRESSUREDMAGE_1 | THICKMATERIAL_1
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
||||
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
@@ -124,7 +124,7 @@
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
gas_transfer_coefficient = 0.90
|
||||
permeability_coefficient = 0.50
|
||||
- flags = THICKMATERIAL
|
||||
+ flags_1 = THICKMATERIAL_1
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/device/geiger_counter)
|
||||
slowdown = 1.5
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/crafting/craft.dm b/code/modules/crafting/craft.dm (rejected hunks)
|
||||
@@ -96,7 +96,7 @@
|
||||
else
|
||||
if(istype(I, /obj/item/reagent_containers))
|
||||
var/obj/item/reagent_containers/RC = I
|
||||
- if(RC.container_type & OPENCONTAINER)
|
||||
+ if(RC.container_type & OPENCONTAINER_1)
|
||||
for(var/datum/reagent/A in RC.reagents.reagent_list)
|
||||
.[A.type] += A.volume
|
||||
.[I.type] += 1
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/fields/turf_objects.dm b/code/modules/fields/turf_objects.dm (rejected hunks)
|
||||
@@ -6,7 +6,7 @@
|
||||
icon_state = null
|
||||
alpha = 0
|
||||
invisibility = INVISIBILITY_ABSTRACT
|
||||
- flags = ABSTRACT|ON_BORDER
|
||||
+ flags_1 = ABSTRACT_1|ON_BORDER_1
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
var/datum/proximity_monitor/advanced/parent = null
|
||||
|
||||
@@ -983,11 +983,11 @@ GLOBAL_LIST_INIT(hallucinations_major, list(
|
||||
if(prob(25))
|
||||
target.halitem.icon_state = "plasticx40"
|
||||
if(3) //sword
|
||||
target.halitem.icon = 'icons/obj/weapons.dmi'
|
||||
target.halitem.icon = 'icons/obj/items_and_weapons.dmi'
|
||||
target.halitem.icon_state = "sword0"
|
||||
target.halitem.name = "Energy Sword"
|
||||
if(4) //stun baton
|
||||
target.halitem.icon = 'icons/obj/weapons.dmi'
|
||||
target.halitem.icon = 'icons/obj/items_and_weapons.dmi'
|
||||
target.halitem.icon_state = "stunbaton"
|
||||
target.halitem.name = "Stun Baton"
|
||||
if(5) //emag
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm (rejected hunks)
|
||||
@@ -357,7 +357,7 @@
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/attack_self(mob/user)
|
||||
if(!is_open_container())
|
||||
to_chat(user, "You pull back the tab of \the [src] with a satisfying pop.") //Ahhhhhhhh
|
||||
- container_type = OPENCONTAINER
|
||||
+ container_type = OPENCONTAINER_1
|
||||
playsound(src, "can_open", 50, 1)
|
||||
spillable = TRUE
|
||||
return
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/food_and_drinks/food.dm b/code/modules/food_and_drinks/food.dm (rejected hunks)
|
||||
@@ -4,7 +4,7 @@
|
||||
/obj/item/reagent_containers/food
|
||||
possible_transfer_amounts = list()
|
||||
volume = 50 //Sets the default container amount for all food items.
|
||||
- container_type = INJECTABLE
|
||||
+ container_type = INJECTABLE_1
|
||||
resistance_flags = FLAMMABLE
|
||||
var/foodtype = NONE
|
||||
var/last_check_time
|
||||
@@ -225,6 +225,11 @@
|
||||
tastes = list("meat" = 1, "wheat" = 1)
|
||||
foodtype = GRAIN
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/gorilla
|
||||
name = "gorilla meat"
|
||||
desc = "Much meatier than monkey meat."
|
||||
list_reagents = list("nutriment" = 5, "vitamin" = 1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/rawbacon
|
||||
name = "raw piece of bacon"
|
||||
desc = "A raw piece of bacon."
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm (rejected hunks)
|
||||
@@ -15,7 +15,7 @@ insert ascii eagle on american flag background here
|
||||
anchored = TRUE
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 5
|
||||
- container_type = OPENCONTAINER
|
||||
+ container_type = OPENCONTAINER_1
|
||||
var/obj/item/frying = null //What's being fried RIGHT NOW?
|
||||
var/cook_time = 0
|
||||
var/static/list/deepfry_blacklisted_items = typecacheof(list(
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm (rejected hunks)
|
||||
@@ -15,7 +15,7 @@
|
||||
var/portion = 10
|
||||
var/selected_drink
|
||||
var/list/stored_food = list()
|
||||
- container_type = OPENCONTAINER
|
||||
+ container_type = OPENCONTAINER_1
|
||||
var/obj/item/reagent_containers/mixer
|
||||
|
||||
/obj/machinery/food_cart/Initialize()
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm (rejected hunks)
|
||||
@@ -14,7 +14,7 @@
|
||||
anchored = FALSE
|
||||
use_power = NO_POWER_USE
|
||||
layer = BELOW_OBJ_LAYER
|
||||
- container_type = OPENCONTAINER
|
||||
+ container_type = OPENCONTAINER_1
|
||||
max_integrity = 300
|
||||
var/list/product_types = list()
|
||||
var/dispense_flavour = ICECREAM_VANILLA
|
||||
@@ -1,137 +0,0 @@
|
||||
diff a/code/modules/goonchat/browserOutput.dm b/code/modules/goonchat/browserOutput.dm (rejected hunks)
|
||||
@@ -166,135 +166,6 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("data/iconCache.sav")) //Cache of ic
|
||||
|
||||
//Global chat procs
|
||||
|
||||
-//Converts an icon to base64. Operates by putting the icon in the iconCache savefile,
|
||||
-// exporting it as text, and then parsing the base64 from that.
|
||||
-// (This relies on byond automatically storing icons in savefiles as base64)
|
||||
-/proc/icon2base64(icon/icon, iconKey = "misc")
|
||||
- if (!isicon(icon))
|
||||
- return FALSE
|
||||
- WRITE_FILE(GLOB.iconCache[iconKey], icon)
|
||||
- var/iconData = GLOB.iconCache.ExportText(iconKey)
|
||||
- var/list/partial = splittext(iconData, "{")
|
||||
- return replacetext(copytext(partial[2], 3, -5), "\n", "")
|
||||
-
|
||||
-/proc/icon2html(thing, target, icon_state, dir, frame = 1, moving)
|
||||
- if (!thing)
|
||||
- return
|
||||
- var/static/datum/callback/CB = CALLBACK(GLOBAL_PROC, .proc/send_asset)
|
||||
-
|
||||
- var/key
|
||||
- var/icon/I = thing
|
||||
- if (!target)
|
||||
- return
|
||||
- if (target == world)
|
||||
- target = GLOB.clients
|
||||
-
|
||||
- var/list/targets
|
||||
- if (!islist(target))
|
||||
- targets = list(target)
|
||||
- else
|
||||
- targets = target
|
||||
- if (!targets.len)
|
||||
- return
|
||||
- debug_usr("start")
|
||||
- if (!isicon(I))
|
||||
- debug_usr("not icon")
|
||||
- if (isfile(thing)) //special snowflake
|
||||
- debug_usr("file")
|
||||
- var/name = sanitize_filename("bicon.[thing]")
|
||||
- debug_usr("file:[name]")
|
||||
- register_asset(name, thing)
|
||||
- var/list/callbacks
|
||||
- var/list/callback_args = list()
|
||||
- for (var/thing2 in targets)
|
||||
- callbacks += CB
|
||||
- callback_args[++callback_args.len] = list(thing2, name, TRUE)
|
||||
- callback_select(callbacks, callback_args, savereturns = FALSE)
|
||||
- return "<img class='icon misc' src=\"[url_encode(name)]\">"
|
||||
- debug_usr("not file")
|
||||
- var/atom/A
|
||||
- if (isnull(dir))
|
||||
- dir = A.dir
|
||||
- if (isnull(icon_state))
|
||||
- icon_state = A.icon_state
|
||||
- I = A.icon
|
||||
- if (ishuman(thing)) // Shitty workaround for a BYOND issue.
|
||||
- debug_usr("human")
|
||||
- var/icon/temp = I
|
||||
- I = icon()
|
||||
- I.Insert(temp, dir = SOUTH)
|
||||
- dir = SOUTH
|
||||
- else
|
||||
- debug_usr("icon")
|
||||
- if (isnull(dir))
|
||||
- dir = SOUTH
|
||||
- if (isnull(icon_state))
|
||||
- icon_state = ""
|
||||
-
|
||||
- I = icon(I, icon_state, dir, frame)
|
||||
-
|
||||
- key = sanitize_filename("bicon.[md5(icon2base64(I))].[icon_state].[dir].png")
|
||||
- debug_usr("key:[key]")
|
||||
- register_asset(key, I)
|
||||
- var/list/callbacks = list()
|
||||
- var/list/callback_args = list()
|
||||
- for (var/thing2 in targets)
|
||||
- callbacks += CB
|
||||
- callback_args[++callback_args.len] = list(thing2, key, TRUE)
|
||||
-
|
||||
- callback_select(callbacks, callback_args, savereturns = FALSE)
|
||||
- return "<img class='icon [icon_state]' src=\"[url_encode(key)]\">"
|
||||
-
|
||||
-/proc/icon2base64html(thing)
|
||||
- if (!thing)
|
||||
- return
|
||||
- var/static/list/bicon_cache = list()
|
||||
- if (isicon(thing))
|
||||
- var/icon/I = thing
|
||||
- var/icon_base64 = icon2base64(I)
|
||||
-
|
||||
- if (I.Height() > world.icon_size || I.Width() > world.icon_size)
|
||||
- var/icon_md5 = md5(icon_base64)
|
||||
- debug_admins(icon_md5)
|
||||
- icon_base64 = bicon_cache[icon_md5]
|
||||
- if (!icon_base64) // Doesn't exist yet, make it.
|
||||
- I = icon(I)
|
||||
- I.Scale(world.icon_size, world.icon_size)
|
||||
- bicon_cache[icon_md5] = icon_base64 = icon2base64(I)
|
||||
-
|
||||
-
|
||||
- return "<img class='icon misc' src='data:image/png;base64,[icon_base64]'>"
|
||||
-
|
||||
- // Either an atom or somebody fucked up and is gonna get a runtime, which I'm fine with.
|
||||
- var/atom/A = thing
|
||||
- var/key = "[istype(A.icon, /icon) ? "\ref[A.icon]" : A.icon]:[A.icon_state]"
|
||||
-
|
||||
-
|
||||
- if (!bicon_cache[key]) // Doesn't exist, make it.
|
||||
- var/icon/I = icon(A.icon, A.icon_state, SOUTH, 1)
|
||||
- if (ishuman(thing)) // Shitty workaround for a BYOND issue.
|
||||
- var/icon/temp = I
|
||||
- I = icon()
|
||||
- I.Insert(temp, dir = SOUTH)
|
||||
-
|
||||
- if (I.Height() > world.icon_size || I.Width() > world.icon_size)
|
||||
- I.Scale(world.icon_size, world.icon_size)
|
||||
-
|
||||
- bicon_cache[key] = icon2base64(I, key)
|
||||
-
|
||||
- return "<img class='icon [A.icon_state]' src='data:image/png;base64,[bicon_cache[key]]'>"
|
||||
-
|
||||
-//Costlier version of icon2html() that uses getFlatIcon() to account for overlays, underlays, etc. Use with extreme moderation, ESPECIALLY on mobs.
|
||||
-/proc/costly_icon2html(thing, target)
|
||||
- if (!thing)
|
||||
- return
|
||||
-
|
||||
- if (isicon(thing))
|
||||
- return icon2html(thing, target)
|
||||
-
|
||||
- var/icon/I = getFlatIcon(thing)
|
||||
- return icon2html(I, target)
|
||||
-
|
||||
/proc/to_chat(target, message)
|
||||
if(!target)
|
||||
return
|
||||
@@ -68,7 +68,7 @@
|
||||
|
||||
/obj/item/toy/beach_ball/holoball
|
||||
name = "basketball"
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "basketball"
|
||||
item_state = "basketball"
|
||||
desc = "Here's your chance, do your dance at the Space Jam."
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
/obj/item/grown/nettle //abstract type
|
||||
name = "nettle"
|
||||
desc = "It's probably <B>not</B> wise to touch it with bare hands..."
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "nettle"
|
||||
lefthand_file = 'icons/mob/inhands/weapons/plants_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/weapons/plants_righthand.dmi'
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
/obj/item/cultivator
|
||||
name = "cultivator"
|
||||
desc = "It's used for removing weeds or scratching your back."
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "cultivator"
|
||||
item_state = "cultivator"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi'
|
||||
@@ -82,7 +82,7 @@
|
||||
/obj/item/hatchet
|
||||
name = "hatchet"
|
||||
desc = "A very sharp axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood."
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "hatchet"
|
||||
item_state = "hatchet"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/item/soapstone
|
||||
name = "soapstone"
|
||||
desc = "Leave informative messages for the crew, including the crew of future shifts!\nEven if out of uses, it can still be used to remove messages.\n(Not suitable for engraving on shuttles, off station or on cats. Side effects may include prompt beatings, psychotic clown incursions, and/or orbital bombardment.)"
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "soapstone"
|
||||
throw_speed = 3
|
||||
throw_range = 5
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
|
||||
/obj/effect/ruin_loader
|
||||
name = "random ruin"
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "syndballoon"
|
||||
invisibility = 0
|
||||
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
diff a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm (rejected hunks)
|
||||
@@ -62,7 +62,7 @@
|
||||
/obj/item/pickaxe/drill/cyborg
|
||||
name = "cyborg mining drill"
|
||||
desc = "An integrated electric mining drill."
|
||||
- flags = NODROP
|
||||
+ flags_1 = NODROP_1
|
||||
|
||||
/obj/item/pickaxe/drill/diamonddrill
|
||||
name = "diamond-tipped mining drill"
|
||||
@@ -72,7 +72,7 @@
|
||||
desc = "Yours is the drill that will pierce the heavens!"
|
||||
|
||||
/obj/item/pickaxe/drill/cyborg/diamond //This is the BORG version!
|
||||
- name = "diamond-tipped cyborg mining drill" //To inherit the NODROP flag, and easier to change borg specific drill mechanics.
|
||||
+ name = "diamond-tipped cyborg mining drill" //To inherit the NODROP_1 flag, and easier to change borg specific drill mechanics.
|
||||
icon_state = "diamonddrill"
|
||||
digspeed = 7
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
dynamic_lighting = DYNAMIC_LIGHTING_FORCED
|
||||
requires_power = FALSE
|
||||
has_gravity = TRUE
|
||||
valid_territory = FALSE
|
||||
|
||||
//Survival Capsule
|
||||
/obj/item/survivalcapsule
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
diff a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm (rejected hunks)
|
||||
@@ -167,7 +167,7 @@
|
||||
pixel_y = -32
|
||||
|
||||
/obj/item/device/gps/computer/attackby(obj/item/W, mob/user, params)
|
||||
- if(istype(W, /obj/item/wrench) && !(flags&NODECONSTRUCT))
|
||||
+ if(istype(W, /obj/item/wrench) && !(flags_1&NODECONSTRUCT_1))
|
||||
playsound(src.loc, W.usesound, 50, 1)
|
||||
user.visible_message("<span class='warning'>[user] disassembles the gps.</span>", \
|
||||
"<span class='notice'>You start to disassemble the gps...</span>", "You hear clanking and banging noises.")
|
||||
@@ -198,7 +198,7 @@
|
||||
light_color = "#DDFFD3"
|
||||
max_n_of_items = 10
|
||||
pixel_y = -4
|
||||
- flags = NODECONSTRUCT
|
||||
+ flags_1 = NODECONSTRUCT_1
|
||||
var/empty = FALSE
|
||||
|
||||
/obj/machinery/smartfridge/survival_pod/Initialize(mapload)
|
||||
@@ -237,13 +237,13 @@
|
||||
CanAtmosPass = ATMOS_PASS_NO
|
||||
|
||||
/obj/structure/fans/deconstruct()
|
||||
- if(!(flags & NODECONSTRUCT))
|
||||
+ if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(buildstacktype)
|
||||
new buildstacktype(loc,buildstackamount)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/fans/attackby(obj/item/W, mob/user, params)
|
||||
- if(istype(W, /obj/item/wrench) && !(flags&NODECONSTRUCT))
|
||||
+ if(istype(W, /obj/item/wrench) && !(flags_1&NODECONSTRUCT_1))
|
||||
playsound(src.loc, W.usesound, 50, 1)
|
||||
user.visible_message("<span class='warning'>[user] disassembles the fan.</span>", \
|
||||
"<span class='notice'>You start to disassemble the fan...</span>", "You hear clanking and banging noises.")
|
||||
@@ -592,6 +592,7 @@
|
||||
extra = 1
|
||||
extra2 = 1
|
||||
icon = 'icons/mob/mam_body_markings.dmi'
|
||||
gender_specific = 1
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/xeno
|
||||
name = "Xeno"
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/mob/living/bloodcrawl.dm b/code/modules/mob/living/bloodcrawl.dm (rejected hunks)
|
||||
@@ -167,7 +167,7 @@
|
||||
if(iscarbon(src))
|
||||
var/mob/living/carbon/C = src
|
||||
for(var/obj/item/bloodcrawl/BC in C)
|
||||
- BC.flags = null
|
||||
+ BC.flags_1 = null
|
||||
qdel(BC)
|
||||
qdel(src.holder)
|
||||
src.holder = null
|
||||
@@ -20,11 +20,11 @@
|
||||
/datum/emote/living/alien/roar
|
||||
key = "roar"
|
||||
key_third_person = "roars"
|
||||
message_alien = "roars"
|
||||
message_larva = "softly roars"
|
||||
message_alien = "roars."
|
||||
message_larva = "softly roars."
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
|
||||
/datum/emote/living/alien/roar/run_emote(mob/user, params)
|
||||
. = ..()
|
||||
if(. && isalienadult(user))
|
||||
playsound(user.loc, 'sound/voice/hiss5.ogg', 40, 1, 1)
|
||||
playsound(user.loc, 'sound/voice/hiss5.ogg', 40, 1, 1)
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
diff a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm (rejected hunks)
|
||||
@@ -213,7 +213,7 @@
|
||||
if(href_list["internal"])
|
||||
var/slot = text2num(href_list["internal"])
|
||||
var/obj/item/ITEM = get_item_by_slot(slot)
|
||||
- if(ITEM && istype(ITEM, /obj/item/tank) && wear_mask && (wear_mask.flags & MASKINTERNALS))
|
||||
+ if(ITEM && istype(ITEM, /obj/item/tank) && wear_mask && (wear_mask.flags_1 & MASKINTERNALS_1))
|
||||
visible_message("<span class='danger'>[usr] tries to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name].</span>", \
|
||||
"<span class='userdanger'>[usr] tries to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name].</span>")
|
||||
if(do_mob(usr, src, POCKET_STRIP_DELAY))
|
||||
@@ -221,7 +221,7 @@
|
||||
internal = null
|
||||
update_internals_hud_icon(0)
|
||||
else if(ITEM && istype(ITEM, /obj/item/tank))
|
||||
- if((wear_mask && (wear_mask.flags & MASKINTERNALS)) || getorganslot("breathing_tube"))
|
||||
+ if((wear_mask && (wear_mask.flags_1 & MASKINTERNALS_1)) || getorganslot("breathing_tube"))
|
||||
internal = ITEM
|
||||
update_internals_hud_icon(1)
|
||||
|
||||
@@ -1,91 +0,0 @@
|
||||
diff a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm (rejected hunks)
|
||||
@@ -141,42 +141,42 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy)
|
||||
dat += "<table>"
|
||||
for(var/i in 1 to held_items.len)
|
||||
var/obj/item/I = get_item_for_held_index(i)
|
||||
- dat += "<tr><td><B>[get_held_index_name(i)]:</B></td><td><A href='?src=\ref[src];item=[slot_hands];hand_index=[i]'>[(I && !(I.flags & ABSTRACT)) ? I : "<font color=grey>Empty</font>"]</a></td></tr>"
|
||||
+ dat += "<tr><td><B>[get_held_index_name(i)]:</B></td><td><A href='?src=\ref[src];item=[slot_hands];hand_index=[i]'>[(I && !(I.flags_1 & ABSTRACT_1)) ? I : "<font color=grey>Empty</font>"]</a></td></tr>"
|
||||
dat += "<tr><td> </td></tr>"
|
||||
|
||||
- dat += "<tr><td><B>Back:</B></td><td><A href='?src=\ref[src];item=[slot_back]'>[(back && !(back.flags&ABSTRACT)) ? back : "<font color=grey>Empty</font>"]</A>"
|
||||
+ dat += "<tr><td><B>Back:</B></td><td><A href='?src=\ref[src];item=[slot_back]'>[(back && !(back.flags_1&ABSTRACT_1)) ? back : "<font color=grey>Empty</font>"]</A>"
|
||||
if(has_breathable_mask && istype(back, /obj/item/tank))
|
||||
dat += " <A href='?src=\ref[src];internal=[slot_back]'>[internal ? "Disable Internals" : "Set Internals"]</A>"
|
||||
|
||||
dat += "</td></tr><tr><td> </td></tr>"
|
||||
|
||||
- dat += "<tr><td><B>Head:</B></td><td><A href='?src=\ref[src];item=[slot_head]'>[(head && !(head.flags&ABSTRACT)) ? head : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
+ dat += "<tr><td><B>Head:</B></td><td><A href='?src=\ref[src];item=[slot_head]'>[(head && !(head.flags_1&ABSTRACT_1)) ? head : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
|
||||
if(slot_wear_mask in obscured)
|
||||
dat += "<tr><td><font color=grey><B>Mask:</B></font></td><td><font color=grey>Obscured</font></td></tr>"
|
||||
else
|
||||
- dat += "<tr><td><B>Mask:</B></td><td><A href='?src=\ref[src];item=[slot_wear_mask]'>[(wear_mask && !(wear_mask.flags&ABSTRACT)) ? wear_mask : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
+ dat += "<tr><td><B>Mask:</B></td><td><A href='?src=\ref[src];item=[slot_wear_mask]'>[(wear_mask && !(wear_mask.flags_1&ABSTRACT_1)) ? wear_mask : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
|
||||
if(slot_neck in obscured)
|
||||
dat += "<tr><td><font color=grey><B>Neck:</B></font></td><td><font color=grey>Obscured</font></td></tr>"
|
||||
else
|
||||
- dat += "<tr><td><B>Neck:</B></td><td><A href='?src=\ref[src];item=[slot_neck]'>[(wear_neck && !(wear_neck.flags&ABSTRACT)) ? wear_neck : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
+ dat += "<tr><td><B>Neck:</B></td><td><A href='?src=\ref[src];item=[slot_neck]'>[(wear_neck && !(wear_neck.flags_1&ABSTRACT_1)) ? wear_neck : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
|
||||
if(slot_glasses in obscured)
|
||||
dat += "<tr><td><font color=grey><B>Eyes:</B></font></td><td><font color=grey>Obscured</font></td></tr>"
|
||||
else
|
||||
- dat += "<tr><td><B>Eyes:</B></td><td><A href='?src=\ref[src];item=[slot_glasses]'>[(glasses && !(glasses.flags&ABSTRACT)) ? glasses : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
+ dat += "<tr><td><B>Eyes:</B></td><td><A href='?src=\ref[src];item=[slot_glasses]'>[(glasses && !(glasses.flags_1&ABSTRACT_1)) ? glasses : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
|
||||
if(slot_ears in obscured)
|
||||
dat += "<tr><td><font color=grey><B>Ears:</B></font></td><td><font color=grey>Obscured</font></td></tr>"
|
||||
else
|
||||
- dat += "<tr><td><B>Ears:</B></td><td><A href='?src=\ref[src];item=[slot_ears]'>[(ears && !(ears.flags&ABSTRACT)) ? ears : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
+ dat += "<tr><td><B>Ears:</B></td><td><A href='?src=\ref[src];item=[slot_ears]'>[(ears && !(ears.flags_1&ABSTRACT_1)) ? ears : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
|
||||
dat += "<tr><td> </td></tr>"
|
||||
|
||||
- dat += "<tr><td><B>Exosuit:</B></td><td><A href='?src=\ref[src];item=[slot_wear_suit]'>[(wear_suit && !(wear_suit.flags&ABSTRACT)) ? wear_suit : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
+ dat += "<tr><td><B>Exosuit:</B></td><td><A href='?src=\ref[src];item=[slot_wear_suit]'>[(wear_suit && !(wear_suit.flags_1&ABSTRACT_1)) ? wear_suit : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
if(wear_suit)
|
||||
- dat += "<tr><td> ↳<B>Suit Storage:</B></td><td><A href='?src=\ref[src];item=[slot_s_store]'>[(s_store && !(s_store.flags&ABSTRACT)) ? s_store : "<font color=grey>Empty</font>"]</A>"
|
||||
+ dat += "<tr><td> ↳<B>Suit Storage:</B></td><td><A href='?src=\ref[src];item=[slot_s_store]'>[(s_store && !(s_store.flags_1&ABSTRACT_1)) ? s_store : "<font color=grey>Empty</font>"]</A>"
|
||||
if(has_breathable_mask && istype(s_store, /obj/item/tank))
|
||||
dat += " <A href='?src=\ref[src];internal=[slot_s_store]'>[internal ? "Disable Internals" : "Set Internals"]</A>"
|
||||
dat += "</td></tr>"
|
||||
@@ -186,30 +186,30 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy)
|
||||
if(slot_shoes in obscured)
|
||||
dat += "<tr><td><font color=grey><B>Shoes:</B></font></td><td><font color=grey>Obscured</font></td></tr>"
|
||||
else
|
||||
- dat += "<tr><td><B>Shoes:</B></td><td><A href='?src=\ref[src];item=[slot_shoes]'>[(shoes && !(shoes.flags&ABSTRACT)) ? shoes : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
+ dat += "<tr><td><B>Shoes:</B></td><td><A href='?src=\ref[src];item=[slot_shoes]'>[(shoes && !(shoes.flags_1&ABSTRACT_1)) ? shoes : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
|
||||
if(slot_gloves in obscured)
|
||||
dat += "<tr><td><font color=grey><B>Gloves:</B></font></td><td><font color=grey>Obscured</font></td></tr>"
|
||||
else
|
||||
- dat += "<tr><td><B>Gloves:</B></td><td><A href='?src=\ref[src];item=[slot_gloves]'>[(gloves && !(gloves.flags&ABSTRACT)) ? gloves : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
+ dat += "<tr><td><B>Gloves:</B></td><td><A href='?src=\ref[src];item=[slot_gloves]'>[(gloves && !(gloves.flags_1&ABSTRACT_1)) ? gloves : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
|
||||
if(slot_w_uniform in obscured)
|
||||
dat += "<tr><td><font color=grey><B>Uniform:</B></font></td><td><font color=grey>Obscured</font></td></tr>"
|
||||
else
|
||||
- dat += "<tr><td><B>Uniform:</B></td><td><A href='?src=\ref[src];item=[slot_w_uniform]'>[(w_uniform && !(w_uniform.flags&ABSTRACT)) ? w_uniform : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
+ dat += "<tr><td><B>Uniform:</B></td><td><A href='?src=\ref[src];item=[slot_w_uniform]'>[(w_uniform && !(w_uniform.flags_1&ABSTRACT_1)) ? w_uniform : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
|
||||
if((w_uniform == null && !(dna && dna.species.nojumpsuit)) || (slot_w_uniform in obscured))
|
||||
dat += "<tr><td><font color=grey> ↳<B>Pockets:</B></font></td></tr>"
|
||||
dat += "<tr><td><font color=grey> ↳<B>ID:</B></font></td></tr>"
|
||||
dat += "<tr><td><font color=grey> ↳<B>Belt:</B></font></td></tr>"
|
||||
else
|
||||
- dat += "<tr><td> ↳<B>Belt:</B></td><td><A href='?src=\ref[src];item=[slot_belt]'>[(belt && !(belt.flags&ABSTRACT)) ? belt : "<font color=grey>Empty</font>"]</A>"
|
||||
+ dat += "<tr><td> ↳<B>Belt:</B></td><td><A href='?src=\ref[src];item=[slot_belt]'>[(belt && !(belt.flags_1&ABSTRACT_1)) ? belt : "<font color=grey>Empty</font>"]</A>"
|
||||
if(has_breathable_mask && istype(belt, /obj/item/tank))
|
||||
dat += " <A href='?src=\ref[src];internal=[slot_belt]'>[internal ? "Disable Internals" : "Set Internals"]</A>"
|
||||
dat += "</td></tr>"
|
||||
- dat += "<tr><td> ↳<B>Pockets:</B></td><td><A href='?src=\ref[src];pockets=left'>[(l_store && !(l_store.flags&ABSTRACT)) ? "Left (Full)" : "<font color=grey>Left (Empty)</font>"]</A>"
|
||||
- dat += " <A href='?src=\ref[src];pockets=right'>[(r_store && !(r_store.flags&ABSTRACT)) ? "Right (Full)" : "<font color=grey>Right (Empty)</font>"]</A></td></tr>"
|
||||
- dat += "<tr><td> ↳<B>ID:</B></td><td><A href='?src=\ref[src];item=[slot_wear_id]'>[(wear_id && !(wear_id.flags&ABSTRACT)) ? wear_id : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
+ dat += "<tr><td> ↳<B>Pockets:</B></td><td><A href='?src=\ref[src];pockets=left'>[(l_store && !(l_store.flags_1&ABSTRACT_1)) ? "Left (Full)" : "<font color=grey>Left (Empty)</font>"]</A>"
|
||||
+ dat += " <A href='?src=\ref[src];pockets=right'>[(r_store && !(r_store.flags_1&ABSTRACT_1)) ? "Right (Full)" : "<font color=grey>Right (Empty)</font>"]</A></td></tr>"
|
||||
+ dat += "<tr><td> ↳<B>ID:</B></td><td><A href='?src=\ref[src];item=[slot_wear_id]'>[(wear_id && !(wear_id.flags_1&ABSTRACT_1)) ? wear_id : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
|
||||
if(handcuffed)
|
||||
dat += "<tr><td><B>Handcuffed:</B> <A href='?src=\ref[src];item=[slot_handcuffed]'>Remove</A></td></tr>"
|
||||
@@ -30,8 +30,8 @@
|
||||
var/meat = /obj/item/reagent_containers/food/snacks/meat/slab/human //What the species drops on gibbing
|
||||
var/skinned_type
|
||||
var/liked_food = NONE
|
||||
var/disliked_food = GROSS
|
||||
var/toxic_food = TOXIC
|
||||
var/disliked_food = NONE
|
||||
var/toxic_food = NONE
|
||||
var/list/no_equip = list() // slots the race can't equip stuff to
|
||||
var/nojumpsuit = 0 // this is sorta... weird. it basically lets you equip stuff that usually needs jumpsuits without one, like belts and pockets and ids
|
||||
var/blacklisted = 0 //Flag to exclude from green slime core species.
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
mutantstomach = /obj/item/organ/stomach/fly
|
||||
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/fly
|
||||
disliked_food = null
|
||||
liked_food = GROSS
|
||||
liked_food = NONE
|
||||
|
||||
/datum/species/fly/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
|
||||
if(chem.id == "pestkiller")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
datum/species/mammal
|
||||
/datum/species/mammal
|
||||
name = "Mammal"
|
||||
id = "mammal"
|
||||
default_color = "4B4B4B"
|
||||
@@ -229,7 +229,7 @@ datum/species/mammal
|
||||
whitelist = list("rubyflamewing")
|
||||
blacklisted = 0
|
||||
|
||||
datum/species/guilmon
|
||||
/datum/species/guilmon
|
||||
name = "Guilmon"
|
||||
id = "guilmon"
|
||||
default_color = "4B4B4B"
|
||||
|
||||
@@ -628,7 +628,7 @@
|
||||
desc = "It emits a strange aura, as if there was still life within it..."
|
||||
max_integrity = 50
|
||||
armor = list(melee = 90, bullet = 90, laser = 25, energy = 80, bomb = 50, bio = 100, fire = -50, acid = -50)
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "pile_bandages"
|
||||
resistance_flags = FLAMMABLE
|
||||
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
id = "jelly"
|
||||
default_color = "00FF90"
|
||||
say_mod = "chirps"
|
||||
species_traits = list(MUTCOLORS,EYECOLOR,NOBLOOD,VIRUSIMMUNE,TOXINLOVER)
|
||||
species_traits = list(MUTCOLORS,EYECOLOR,NOBLOOD,VIRUSIMMUNE,TOXINLOVER)
|
||||
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime
|
||||
exotic_blood = "slimejelly"
|
||||
damage_overlay_type = ""
|
||||
var/datum/action/innate/regenerate_limbs/regenerate_limbs
|
||||
toxic_food = MEAT | DAIRY
|
||||
liked_food = TOXIC
|
||||
toxic_food = NONE
|
||||
liked_food = NONE
|
||||
|
||||
/datum/species/jelly/on_species_loss(mob/living/carbon/C)
|
||||
if(regenerate_limbs)
|
||||
@@ -229,7 +229,7 @@
|
||||
else
|
||||
ui_interact(owner)
|
||||
|
||||
/datum/action/innate/swap_body/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.conscious_state)
|
||||
/datum/action/innate/swap_body/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.conscious_state)
|
||||
|
||||
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
@@ -326,4 +326,4 @@
|
||||
M.transfer_to(dupe)
|
||||
dupe.visible_message("<span class='notice'>[dupe] blinks and looks \
|
||||
around.</span>",
|
||||
"<span class='notice'>...and move this one instead.</span>")
|
||||
"<span class='notice'>...and move this one instead.</span>")
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard
|
||||
skinned_type = /obj/item/stack/sheet/animalhide/lizard
|
||||
exotic_bloodtype = "L"
|
||||
disliked_food = GRAIN | DAIRY
|
||||
liked_food = GROSS | MEAT
|
||||
disliked_food = NONE
|
||||
liked_food = NONE
|
||||
|
||||
/datum/species/lizard/after_equip_job(datum/job/J, mob/living/carbon/human/H)
|
||||
H.grant_language(/datum/language/draconic)
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
speedmod = 1
|
||||
damage_overlay_type = ""//let's not show bloody wounds or burns over bones.
|
||||
var/internal_fire = FALSE //If the bones themselves are burning clothes won't help you much
|
||||
disliked_food = FRUIT
|
||||
liked_food = VEGETABLES
|
||||
disliked_food = NONE
|
||||
liked_food = NONE
|
||||
|
||||
/datum/species/plasmaman/spec_life(mob/living/carbon/human/H)
|
||||
var/datum/gas_mixture/environment = H.loc.return_air()
|
||||
|
||||
@@ -3,15 +3,15 @@
|
||||
name = "Podperson"
|
||||
id = "pod"
|
||||
default_color = "59CE00"
|
||||
species_traits = list(MUTCOLORS,EYECOLOR)
|
||||
species_traits = list(MUTCOLORS,EYECOLOR)
|
||||
attack_verb = "slash"
|
||||
attack_sound = 'sound/weapons/slice.ogg'
|
||||
miss_sound = 'sound/weapons/slashmiss.ogg'
|
||||
burnmod = 1.25
|
||||
heatmod = 1.5
|
||||
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/plant
|
||||
disliked_food = MEAT | DAIRY
|
||||
liked_food = VEGETABLES | FRUIT | GRAIN
|
||||
disliked_food = NONE
|
||||
liked_food = NONE
|
||||
|
||||
/datum/species/pod/on_species_gain(mob/living/carbon/C, datum/species/old_species)
|
||||
. = ..()
|
||||
|
||||
@@ -8,6 +8,6 @@
|
||||
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton
|
||||
species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NOHUNGER,EASYDISMEMBER,EASYLIMBATTACHMENT)
|
||||
mutant_organs = list(/obj/item/organ/tongue/bone)
|
||||
damage_overlay_type = ""//let's not show bloody wounds or burns over bones.
|
||||
disliked_food = NONE
|
||||
liked_food = GROSS | MEAT | RAW
|
||||
damage_overlay_type = ""//let's not show bloody wounds or burns over bones.
|
||||
disliked_food = NONE
|
||||
liked_food = NONE
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
mutant_organs = list(/obj/item/organ/tongue/zombie)
|
||||
var/static/list/spooks = list('sound/hallucinations/growl1.ogg','sound/hallucinations/growl2.ogg','sound/hallucinations/growl3.ogg','sound/hallucinations/veryfar_noise.ogg','sound/hallucinations/wail.ogg')
|
||||
disliked_food = NONE
|
||||
liked_food = GROSS | MEAT | RAW
|
||||
liked_food = NONE
|
||||
|
||||
/datum/species/zombie/infectious
|
||||
name = "Infectious Zombie"
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
diff a/code/modules/mob/living/carbon/monkey/combat.dm b/code/modules/mob/living/carbon/monkey/combat.dm (rejected hunks)
|
||||
@@ -153,7 +153,7 @@
|
||||
if(!locate(/obj/item) in held_items)
|
||||
best_force = 0
|
||||
|
||||
- if(restrained() || blacklistItems[pickupTarget] || (pickupTarget && (pickupTarget.flags & NODROP)))
|
||||
+ if(restrained() || blacklistItems[pickupTarget] || (pickupTarget && (pickupTarget.flags_1 & NODROP_1)))
|
||||
pickupTarget = null
|
||||
|
||||
if(!resisting && pickupTarget)
|
||||
@@ -274,7 +274,7 @@
|
||||
// check if target has a weapon
|
||||
var/obj/item/W
|
||||
for(var/obj/item/I in target.held_items)
|
||||
- if(!(I.flags & ABSTRACT))
|
||||
+ if(!(I.flags_1 & ABSTRACT_1))
|
||||
W = I
|
||||
break
|
||||
|
||||
@@ -1,170 +1,173 @@
|
||||
|
||||
|
||||
/mob/living/carbon/monkey
|
||||
|
||||
|
||||
/mob/living/carbon/monkey/Life()
|
||||
set invisibility = 0
|
||||
set background = BACKGROUND_ENABLED
|
||||
|
||||
if (notransform)
|
||||
return
|
||||
|
||||
if(..())
|
||||
|
||||
if(!client)
|
||||
if(stat == CONSCIOUS)
|
||||
if(!handle_combat())
|
||||
if(prob(33) && canmove && isturf(loc) && !pulledby)
|
||||
|
||||
|
||||
/mob/living/carbon/monkey
|
||||
|
||||
|
||||
/mob/living/carbon/monkey/Life()
|
||||
set invisibility = 0
|
||||
set background = BACKGROUND_ENABLED
|
||||
|
||||
if (notransform)
|
||||
return
|
||||
|
||||
if(..())
|
||||
|
||||
if(!client)
|
||||
if(stat == CONSCIOUS)
|
||||
if(!handle_combat())
|
||||
if(prob(33) && canmove && isturf(loc) && !pulledby)
|
||||
step(src, pick(GLOB.cardinals))
|
||||
if(prob(1))
|
||||
emote(pick("scratch","jump","roll","tail"))
|
||||
else
|
||||
walk_to(src,0)
|
||||
|
||||
/mob/living/carbon/monkey/handle_mutations_and_radiation()
|
||||
|
||||
if (radiation)
|
||||
if (radiation > 100)
|
||||
if(!IsKnockdown())
|
||||
emote("collapse")
|
||||
Knockdown(200)
|
||||
to_chat(src, "<span class='danger'>You feel weak.</span>")
|
||||
|
||||
switch(radiation)
|
||||
|
||||
if(50 to 75)
|
||||
if(prob(5))
|
||||
if(!IsKnockdown())
|
||||
emote("collapse")
|
||||
Knockdown(60)
|
||||
to_chat(src, "<span class='danger'>You feel weak.</span>")
|
||||
|
||||
if(75 to 100)
|
||||
if(prob(1))
|
||||
to_chat(src, "<span class='danger'>You mutate!</span>")
|
||||
randmutb()
|
||||
emote("gasp")
|
||||
domutcheck()
|
||||
..()
|
||||
|
||||
/mob/living/carbon/monkey/handle_breath_temperature(datum/gas_mixture/breath)
|
||||
if(abs(310.15 - breath.temperature) > 50)
|
||||
switch(breath.temperature)
|
||||
if(-INFINITY to 120)
|
||||
adjustFireLoss(3)
|
||||
if(120 to 200)
|
||||
adjustFireLoss(1.5)
|
||||
if(200 to 260)
|
||||
adjustFireLoss(0.5)
|
||||
if(360 to 400)
|
||||
adjustFireLoss(2)
|
||||
if(400 to 1000)
|
||||
adjustFireLoss(3)
|
||||
if(1000 to INFINITY)
|
||||
adjustFireLoss(8)
|
||||
|
||||
/mob/living/carbon/monkey/handle_environment(datum/gas_mixture/environment)
|
||||
if(!environment)
|
||||
return
|
||||
|
||||
var/loc_temp = get_temperature(environment)
|
||||
|
||||
if(stat != DEAD)
|
||||
natural_bodytemperature_stabilization()
|
||||
|
||||
if(!on_fire) //If you're on fire, you do not heat up or cool down based on surrounding gases
|
||||
if(loc_temp < bodytemperature)
|
||||
bodytemperature += min(((loc_temp - bodytemperature) / BODYTEMP_COLD_DIVISOR), BODYTEMP_COOLING_MAX)
|
||||
else
|
||||
bodytemperature += min(((loc_temp - bodytemperature) / BODYTEMP_HEAT_DIVISOR), BODYTEMP_HEATING_MAX)
|
||||
|
||||
if(bodytemperature > BODYTEMP_HEAT_DAMAGE_LIMIT)
|
||||
switch(bodytemperature)
|
||||
if(360 to 400)
|
||||
throw_alert("temp", /obj/screen/alert/hot, 1)
|
||||
apply_damage(HEAT_DAMAGE_LEVEL_1, BURN)
|
||||
if(400 to 460)
|
||||
throw_alert("temp", /obj/screen/alert/hot, 2)
|
||||
apply_damage(HEAT_DAMAGE_LEVEL_2, BURN)
|
||||
if(460 to INFINITY)
|
||||
throw_alert("temp", /obj/screen/alert/hot, 3)
|
||||
if(on_fire)
|
||||
apply_damage(HEAT_DAMAGE_LEVEL_3, BURN)
|
||||
else
|
||||
apply_damage(HEAT_DAMAGE_LEVEL_2, BURN)
|
||||
|
||||
else if(bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT)
|
||||
if(!istype(loc, /obj/machinery/atmospherics/components/unary/cryo_cell))
|
||||
switch(bodytemperature)
|
||||
if(200 to 260)
|
||||
throw_alert("temp", /obj/screen/alert/cold, 1)
|
||||
apply_damage(COLD_DAMAGE_LEVEL_1, BURN)
|
||||
if(120 to 200)
|
||||
throw_alert("temp", /obj/screen/alert/cold, 2)
|
||||
apply_damage(COLD_DAMAGE_LEVEL_2, BURN)
|
||||
if(-INFINITY to 120)
|
||||
throw_alert("temp", /obj/screen/alert/cold, 3)
|
||||
apply_damage(COLD_DAMAGE_LEVEL_3, BURN)
|
||||
else
|
||||
clear_alert("temp")
|
||||
|
||||
else
|
||||
clear_alert("temp")
|
||||
|
||||
//Account for massive pressure differences
|
||||
|
||||
var/pressure = environment.return_pressure()
|
||||
var/adjusted_pressure = calculate_affecting_pressure(pressure) //Returns how much pressure actually affects the mob.
|
||||
switch(adjusted_pressure)
|
||||
if(HAZARD_HIGH_PRESSURE to INFINITY)
|
||||
adjustBruteLoss( min( ( (adjusted_pressure / HAZARD_HIGH_PRESSURE) -1 )*PRESSURE_DAMAGE_COEFFICIENT , MAX_HIGH_PRESSURE_DAMAGE) )
|
||||
throw_alert("pressure", /obj/screen/alert/highpressure, 2)
|
||||
if(WARNING_HIGH_PRESSURE to HAZARD_HIGH_PRESSURE)
|
||||
throw_alert("pressure", /obj/screen/alert/highpressure, 1)
|
||||
if(WARNING_LOW_PRESSURE to WARNING_HIGH_PRESSURE)
|
||||
clear_alert("pressure")
|
||||
if(HAZARD_LOW_PRESSURE to WARNING_LOW_PRESSURE)
|
||||
throw_alert("pressure", /obj/screen/alert/lowpressure, 1)
|
||||
else
|
||||
adjustBruteLoss( LOW_PRESSURE_DAMAGE )
|
||||
throw_alert("pressure", /obj/screen/alert/lowpressure, 2)
|
||||
|
||||
return
|
||||
|
||||
/mob/living/carbon/monkey/handle_random_events()
|
||||
if (prob(1) && prob(2))
|
||||
emote("scratch")
|
||||
|
||||
/mob/living/carbon/monkey/has_smoke_protection()
|
||||
if(wear_mask)
|
||||
if(prob(1))
|
||||
emote(pick("scratch","jump","roll","tail"))
|
||||
else
|
||||
walk_to(src,0)
|
||||
|
||||
/mob/living/carbon/monkey/handle_mutations_and_radiation()
|
||||
|
||||
if (radiation)
|
||||
if (radiation > 100)
|
||||
if(!IsKnockdown())
|
||||
emote("collapse")
|
||||
Knockdown(200)
|
||||
to_chat(src, "<span class='danger'>You feel weak.</span>")
|
||||
if(radiation > 30 && prob((radiation - 30) * (radiation - 30) * 0.00002))
|
||||
gorillize()
|
||||
return
|
||||
switch(radiation)
|
||||
|
||||
if(50 to 75)
|
||||
if(prob(5))
|
||||
if(!IsKnockdown())
|
||||
emote("collapse")
|
||||
Knockdown(60)
|
||||
to_chat(src, "<span class='danger'>You feel weak.</span>")
|
||||
|
||||
if(75 to 100)
|
||||
if(prob(1))
|
||||
to_chat(src, "<span class='danger'>You mutate!</span>")
|
||||
randmutb()
|
||||
emote("gasp")
|
||||
domutcheck()
|
||||
..()
|
||||
|
||||
/mob/living/carbon/monkey/handle_breath_temperature(datum/gas_mixture/breath)
|
||||
if(abs(310.15 - breath.temperature) > 50)
|
||||
switch(breath.temperature)
|
||||
if(-INFINITY to 120)
|
||||
adjustFireLoss(3)
|
||||
if(120 to 200)
|
||||
adjustFireLoss(1.5)
|
||||
if(200 to 260)
|
||||
adjustFireLoss(0.5)
|
||||
if(360 to 400)
|
||||
adjustFireLoss(2)
|
||||
if(400 to 1000)
|
||||
adjustFireLoss(3)
|
||||
if(1000 to INFINITY)
|
||||
adjustFireLoss(8)
|
||||
|
||||
/mob/living/carbon/monkey/handle_environment(datum/gas_mixture/environment)
|
||||
if(!environment)
|
||||
return
|
||||
|
||||
var/loc_temp = get_temperature(environment)
|
||||
|
||||
if(stat != DEAD)
|
||||
natural_bodytemperature_stabilization()
|
||||
|
||||
if(!on_fire) //If you're on fire, you do not heat up or cool down based on surrounding gases
|
||||
if(loc_temp < bodytemperature)
|
||||
bodytemperature += min(((loc_temp - bodytemperature) / BODYTEMP_COLD_DIVISOR), BODYTEMP_COOLING_MAX)
|
||||
else
|
||||
bodytemperature += min(((loc_temp - bodytemperature) / BODYTEMP_HEAT_DIVISOR), BODYTEMP_HEATING_MAX)
|
||||
|
||||
if(bodytemperature > BODYTEMP_HEAT_DAMAGE_LIMIT)
|
||||
switch(bodytemperature)
|
||||
if(360 to 400)
|
||||
throw_alert("temp", /obj/screen/alert/hot, 1)
|
||||
apply_damage(HEAT_DAMAGE_LEVEL_1, BURN)
|
||||
if(400 to 460)
|
||||
throw_alert("temp", /obj/screen/alert/hot, 2)
|
||||
apply_damage(HEAT_DAMAGE_LEVEL_2, BURN)
|
||||
if(460 to INFINITY)
|
||||
throw_alert("temp", /obj/screen/alert/hot, 3)
|
||||
if(on_fire)
|
||||
apply_damage(HEAT_DAMAGE_LEVEL_3, BURN)
|
||||
else
|
||||
apply_damage(HEAT_DAMAGE_LEVEL_2, BURN)
|
||||
|
||||
else if(bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT)
|
||||
if(!istype(loc, /obj/machinery/atmospherics/components/unary/cryo_cell))
|
||||
switch(bodytemperature)
|
||||
if(200 to 260)
|
||||
throw_alert("temp", /obj/screen/alert/cold, 1)
|
||||
apply_damage(COLD_DAMAGE_LEVEL_1, BURN)
|
||||
if(120 to 200)
|
||||
throw_alert("temp", /obj/screen/alert/cold, 2)
|
||||
apply_damage(COLD_DAMAGE_LEVEL_2, BURN)
|
||||
if(-INFINITY to 120)
|
||||
throw_alert("temp", /obj/screen/alert/cold, 3)
|
||||
apply_damage(COLD_DAMAGE_LEVEL_3, BURN)
|
||||
else
|
||||
clear_alert("temp")
|
||||
|
||||
else
|
||||
clear_alert("temp")
|
||||
|
||||
//Account for massive pressure differences
|
||||
|
||||
var/pressure = environment.return_pressure()
|
||||
var/adjusted_pressure = calculate_affecting_pressure(pressure) //Returns how much pressure actually affects the mob.
|
||||
switch(adjusted_pressure)
|
||||
if(HAZARD_HIGH_PRESSURE to INFINITY)
|
||||
adjustBruteLoss( min( ( (adjusted_pressure / HAZARD_HIGH_PRESSURE) -1 )*PRESSURE_DAMAGE_COEFFICIENT , MAX_HIGH_PRESSURE_DAMAGE) )
|
||||
throw_alert("pressure", /obj/screen/alert/highpressure, 2)
|
||||
if(WARNING_HIGH_PRESSURE to HAZARD_HIGH_PRESSURE)
|
||||
throw_alert("pressure", /obj/screen/alert/highpressure, 1)
|
||||
if(WARNING_LOW_PRESSURE to WARNING_HIGH_PRESSURE)
|
||||
clear_alert("pressure")
|
||||
if(HAZARD_LOW_PRESSURE to WARNING_LOW_PRESSURE)
|
||||
throw_alert("pressure", /obj/screen/alert/lowpressure, 1)
|
||||
else
|
||||
adjustBruteLoss( LOW_PRESSURE_DAMAGE )
|
||||
throw_alert("pressure", /obj/screen/alert/lowpressure, 2)
|
||||
|
||||
return
|
||||
|
||||
/mob/living/carbon/monkey/handle_random_events()
|
||||
if (prob(1) && prob(2))
|
||||
emote("scratch")
|
||||
|
||||
/mob/living/carbon/monkey/has_smoke_protection()
|
||||
if(wear_mask)
|
||||
|
||||
if(wear_mask.flags_1 & BLOCK_GAS_SMOKE_EFFECT_1)
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/monkey/handle_fire()
|
||||
. = ..()
|
||||
if(on_fire)
|
||||
|
||||
//the fire tries to damage the exposed clothes and items
|
||||
var/list/burning_items = list()
|
||||
//HEAD//
|
||||
var/obj/item/clothing/head_clothes = null
|
||||
if(wear_mask)
|
||||
head_clothes = wear_mask
|
||||
if(wear_neck)
|
||||
head_clothes = wear_neck
|
||||
if(head)
|
||||
head_clothes = head
|
||||
if(head_clothes)
|
||||
burning_items += head_clothes
|
||||
|
||||
if(back)
|
||||
burning_items += back
|
||||
|
||||
for(var/X in burning_items)
|
||||
var/obj/item/I = X
|
||||
if(!(I.resistance_flags & FIRE_PROOF))
|
||||
I.take_damage(fire_stacks, BURN, "fire", 0)
|
||||
|
||||
bodytemperature += BODYTEMP_HEATING_MAX
|
||||
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/monkey/handle_fire()
|
||||
. = ..()
|
||||
if(on_fire)
|
||||
|
||||
//the fire tries to damage the exposed clothes and items
|
||||
var/list/burning_items = list()
|
||||
//HEAD//
|
||||
var/obj/item/clothing/head_clothes = null
|
||||
if(wear_mask)
|
||||
head_clothes = wear_mask
|
||||
if(wear_neck)
|
||||
head_clothes = wear_neck
|
||||
if(head)
|
||||
head_clothes = head
|
||||
if(head_clothes)
|
||||
burning_items += head_clothes
|
||||
|
||||
if(back)
|
||||
burning_items += back
|
||||
|
||||
for(var/X in burning_items)
|
||||
var/obj/item/I = X
|
||||
if(!(I.resistance_flags & FIRE_PROOF))
|
||||
I.take_damage(fire_stacks, BURN, "fire", 0)
|
||||
|
||||
bodytemperature += BODYTEMP_HEATING_MAX
|
||||
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm (rejected hunks)
|
||||
@@ -121,7 +121,7 @@
|
||||
if(I.loc != src)
|
||||
I.forceMove(src)
|
||||
modules += I
|
||||
- I.flags |= NODROP
|
||||
+ I.flags_1 |= NODROP_1
|
||||
I.mouse_opacity = MOUSE_OPACITY_OPAQUE
|
||||
if(nonstandard)
|
||||
added_modules += I
|
||||
@@ -490,7 +490,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
|
||||
return
|
||||
used = TRUE
|
||||
to_chat(user, "[use_message]")
|
||||
var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you want to play as the [mob_name] of [user.real_name]?", ROLE_PAI, null, FALSE, 100)
|
||||
var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you want to play as the [mob_name] of [user.real_name]?", ROLE_PAI, null, FALSE, 100, POLL_IGNORE_HOLOPARASITE)
|
||||
var/mob/dead/observer/theghost = null
|
||||
|
||||
if(candidates.len)
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
name = "pile of bear armor"
|
||||
desc = "A scattered pile of various shaped armor pieces fitted for a bear, some duct tape, and a nail filer. Crude instructions \
|
||||
are written on the back of one of the plates in russian. This seems like an awful idea."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "bear_armor_upgrade"
|
||||
|
||||
/obj/item/bear_armor/afterattack(atom/target, mob/user, proximity_flag)
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
/datum/emote/sound/gorilla
|
||||
mob_type_allowed_typecache = /mob/living/simple_animal/hostile/gorilla
|
||||
mob_type_blacklist_typecache = list()
|
||||
|
||||
/datum/emote/sound/gorilla/ooga
|
||||
key = "ooga"
|
||||
key_third_person = "oogas"
|
||||
message = "oogas."
|
||||
message_param = "oogas at %t."
|
||||
sound = "sound/creatures/gorilla.ogg"
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
#define GORILLA_HANDS_LAYER 1
|
||||
#define GORILLA_TOTAL_LAYERS 1
|
||||
|
||||
/mob/living/simple_animal/hostile/gorilla
|
||||
name = "Gorilla"
|
||||
desc = "A ground-dwelling, predominantly herbivorous ape that inhabits the forests of central Africa."
|
||||
icon = 'icons/mob/gorilla.dmi'
|
||||
icon_state = "crawling"
|
||||
icon_state = "crawling"
|
||||
icon_living = "crawling"
|
||||
icon_dead = "dead"
|
||||
speak_chance = 80
|
||||
maxHealth = 220
|
||||
health = 220
|
||||
loot = list(/obj/effect/gibspawner/generic)
|
||||
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/gorilla = 4)
|
||||
response_help = "prods"
|
||||
response_disarm = "challenges"
|
||||
response_harm = "thumps"
|
||||
speed = 1
|
||||
melee_damage_lower = 15
|
||||
melee_damage_upper = 18
|
||||
damage_coeff = list(BRUTE = 1, BURN = 1.5, TOX = 1.5, CLONE = 0, STAMINA = 0, OXY = 1.5)
|
||||
obj_damage = 20
|
||||
environment_smash = 2
|
||||
attacktext = "pummels"
|
||||
attack_sound = 'sound/weapons/punch1.ogg'
|
||||
dextrous = TRUE
|
||||
possible_a_intents = list(INTENT_HELP, INTENT_GRAB, INTENT_DISARM, INTENT_HARM)
|
||||
faction = list("jungle")
|
||||
robust_searching = TRUE
|
||||
stat_attack = UNCONSCIOUS
|
||||
minbodytemp = 270
|
||||
maxbodytemp = 350
|
||||
var/list/gorilla_overlays[GORILLA_TOTAL_LAYERS]
|
||||
|
||||
// Gorillas like to dismember limbs from unconcious mobs.
|
||||
// Returns null when the target is not an unconcious carbon mob; a list of limbs (possibly empty) otherwise.
|
||||
/mob/living/simple_animal/hostile/gorilla/proc/target_bodyparts(atom/the_target)
|
||||
var/list/parts = list()
|
||||
if(iscarbon(the_target))
|
||||
var/mob/living/carbon/C = the_target
|
||||
if(C.stat >= UNCONSCIOUS)
|
||||
for(var/X in C.bodyparts)
|
||||
var/obj/item/bodypart/BP = X
|
||||
if(BP.body_part != HEAD && BP.body_part != CHEST)
|
||||
if(BP.dismemberable)
|
||||
parts += BP
|
||||
return parts
|
||||
|
||||
/mob/living/simple_animal/hostile/gorilla/AttackingTarget()
|
||||
var/list/parts = target_bodyparts(target)
|
||||
if(parts)
|
||||
if(!parts.len)
|
||||
return FALSE
|
||||
var/obj/item/bodypart/BP = pick(parts)
|
||||
BP.dismember()
|
||||
return ..()
|
||||
. = ..()
|
||||
if(. && isliving(target))
|
||||
var/mob/living/L = target
|
||||
if(prob(80))
|
||||
var/atom/throw_target = get_edge_target_turf(L, dir)
|
||||
L.throw_at(throw_target, rand(1,2), 7, src)
|
||||
else
|
||||
L.Knockdown(20)
|
||||
visible_message("<span class='danger'>[src] knocks [L] down!</span>")
|
||||
|
||||
/mob/living/simple_animal/hostile/gorilla/CanAttack(atom/the_target)
|
||||
var/list/parts = target_bodyparts(target)
|
||||
return ..() && !istype(the_target, /mob/living/carbon/monkey) && (!parts || parts.len > 3)
|
||||
|
||||
/mob/living/simple_animal/hostile/gorilla/handle_automated_speech(override)
|
||||
if(speak_chance && (override || prob(speak_chance)))
|
||||
playsound(src, "sound/creatures/gorilla.ogg", 200)
|
||||
..()
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
/mob/living/simple_animal/hostile/gorilla/proc/apply_overlay(cache_index)
|
||||
. = gorilla_overlays[cache_index]
|
||||
if(.)
|
||||
add_overlay(.)
|
||||
|
||||
/mob/living/simple_animal/hostile/gorilla/proc/remove_overlay(cache_index)
|
||||
var/I = gorilla_overlays[cache_index]
|
||||
if(I)
|
||||
cut_overlay(I)
|
||||
gorilla_overlays[cache_index] = null
|
||||
|
||||
/mob/living/simple_animal/hostile/gorilla/update_inv_hands()
|
||||
cut_overlays("standing_overlay")
|
||||
remove_overlay(GORILLA_HANDS_LAYER)
|
||||
|
||||
var/standing = FALSE
|
||||
for(var/I in held_items)
|
||||
if(I)
|
||||
standing = TRUE
|
||||
break
|
||||
if(!standing)
|
||||
if(stat != DEAD)
|
||||
icon_state = "crawling"
|
||||
speed = 1
|
||||
return ..()
|
||||
if(stat != DEAD)
|
||||
icon_state = "standing"
|
||||
speed = 3 // Gorillas are slow when standing up.
|
||||
|
||||
var/list/hands_overlays = list()
|
||||
|
||||
var/obj/item/l_hand = get_item_for_held_index(1)
|
||||
var/obj/item/r_hand = get_item_for_held_index(2)
|
||||
|
||||
if(r_hand)
|
||||
var/r_state = r_hand.item_state ? r_hand.item_state : r_hand.icon_state
|
||||
var/mutable_appearance/r_hand_overlay = r_hand.build_worn_icon(state = r_state, default_layer = GORILLA_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE)
|
||||
r_hand_overlay.pixel_y -= 1
|
||||
hands_overlays += r_hand_overlay
|
||||
|
||||
if(l_hand)
|
||||
var/l_state = l_hand.item_state ? l_hand.item_state : l_hand.icon_state
|
||||
var/mutable_appearance/l_hand_overlay = l_hand.build_worn_icon(state = l_state, default_layer = GORILLA_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE)
|
||||
l_hand_overlay.pixel_y -= 1
|
||||
hands_overlays += l_hand_overlay
|
||||
|
||||
if(hands_overlays.len)
|
||||
gorilla_overlays[GORILLA_HANDS_LAYER] = hands_overlays
|
||||
apply_overlay(GORILLA_HANDS_LAYER)
|
||||
add_overlay("standing_overlay")
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/gorilla/regenerate_icons()
|
||||
update_inv_hands()
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
faction = list("hostile")
|
||||
stop_automated_movement_when_pulled = 0
|
||||
obj_damage = 40
|
||||
environment_smash = ENVIRONMENT_SMASH_STRUCTURES //Set to 1 to break closets,tables,racks, etc; 2 for walls; 3 for rwalls
|
||||
environment_smash = ENVIRONMENT_SMASH_STRUCTURES //Bitflags. Set to ENVIRONMENT_SMASH_STRUCTURES to break closets,tables,racks, etc; ENVIRONMENT_SMASH_WALLS for walls; ENVIRONMENT_SMASH_RWALLS for rwalls
|
||||
var/atom/target
|
||||
var/ranged = 0
|
||||
var/rapid = 0
|
||||
@@ -253,7 +253,7 @@
|
||||
if(target.loc != null && get_dist(targets_from, target.loc) <= vision_range) //We can't see our target, but he's in our vision range still
|
||||
if(ranged_ignores_vision && ranged_cooldown <= world.time) //we can't see our target... but we can fire at them!
|
||||
OpenFire(target)
|
||||
if(environment_smash >= 2) //If we're capable of smashing through walls, forget about vision completely after finding our target
|
||||
if((environment_smash & ENVIRONMENT_SMASH_WALLS) || (environment_smash & ENVIRONMENT_SMASH_RWALLS)) //If we're capable of smashing through walls, forget about vision completely after finding our target
|
||||
Goto(target,move_to_delay,minimum_distance)
|
||||
FindHidden()
|
||||
return 1
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm b/code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm (rejected hunks)
|
||||
@@ -80,7 +80,7 @@
|
||||
/obj/item/restraints/legcuffs/beartrap/mega_arachnid
|
||||
name = "fleshy restraints"
|
||||
desc = "Used by mega arachnids to immobilize their prey."
|
||||
- flags = DROPDEL
|
||||
+ flags_1 = DROPDEL_1
|
||||
icon_state = "tentacle_end"
|
||||
icon = 'icons/obj/projectiles.dmi'
|
||||
|
||||
@@ -122,6 +122,6 @@
|
||||
A.melee_damage_lower = max((A.melee_damage_lower * 2), 10)
|
||||
A.melee_damage_upper = max((A.melee_damage_upper * 2), 10)
|
||||
A.transform *= 2
|
||||
A.environment_smash += 2
|
||||
A.environment_smash |= ENVIRONMENT_SMASH_STRUCTURES | ENVIRONMENT_SMASH_RWALLS
|
||||
to_chat(user, "<span class='info'>You increase the size of [A], giving it a surge of strength!</span>")
|
||||
qdel(src)
|
||||
|
||||
@@ -386,14 +386,14 @@
|
||||
else
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/update_canmove()
|
||||
/mob/living/simple_animal/update_canmove(value_otherwise = TRUE)
|
||||
if(IsUnconscious() || IsStun() || IsKnockdown() || stat || resting)
|
||||
drop_all_held_items()
|
||||
canmove = 0
|
||||
canmove = FALSE
|
||||
else if(buckled)
|
||||
canmove = 0
|
||||
canmove = FALSE
|
||||
else
|
||||
canmove = 1
|
||||
canmove = value_otherwise
|
||||
update_transform()
|
||||
update_action_buttons_icon()
|
||||
return canmove
|
||||
|
||||
@@ -495,6 +495,30 @@
|
||||
. = new_corgi
|
||||
qdel(src)
|
||||
|
||||
/mob/living/carbon/proc/gorillize()
|
||||
if(notransform)
|
||||
return
|
||||
|
||||
var/Itemlist = get_equipped_items()
|
||||
Itemlist += held_items
|
||||
for(var/obj/item/W in Itemlist)
|
||||
dropItemToGround(W, TRUE)
|
||||
|
||||
regenerate_icons()
|
||||
notransform = TRUE
|
||||
canmove = FALSE
|
||||
icon = null
|
||||
invisibility = INVISIBILITY_MAXIMUM
|
||||
var/mob/living/simple_animal/hostile/gorilla/new_gorilla = new (get_turf(src))
|
||||
new_gorilla.a_intent = INTENT_HARM
|
||||
if(mind)
|
||||
mind.transfer_to(new_gorilla)
|
||||
else
|
||||
new_gorilla.key = key
|
||||
to_chat(new_gorilla, "<B>You are now a gorilla. Ooga ooga!</B>")
|
||||
. = new_gorilla
|
||||
qdel(src)
|
||||
|
||||
/mob/living/carbon/human/Animalize()
|
||||
|
||||
var/list/mobtypes = typesof(/mob/living/simple_animal)
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/modular_computers/computers/machinery/modular_computer.dm b/code/modules/modular_computers/computers/machinery/modular_computer.dm (rejected hunks)
|
||||
@@ -125,7 +125,7 @@
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/modular_computer/attackby(var/obj/item/W as obj, mob/user)
|
||||
- if(cpu && !(flags & NODECONSTRUCT))
|
||||
+ if(cpu && !(flags_1 & NODECONSTRUCT_1))
|
||||
return cpu.attackby(W, user)
|
||||
return ..()
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm (rejected hunks)
|
||||
@@ -5,7 +5,7 @@
|
||||
throw_speed = 3
|
||||
var/signed = FALSE
|
||||
var/datum/mind/target
|
||||
- flags = NOBLUDGEON
|
||||
+ flags_1 = NOBLUDGEON_1
|
||||
|
||||
/obj/item/paper/contract/proc/update_text()
|
||||
return
|
||||
@@ -1,23 +0,0 @@
|
||||
diff a/code/modules/paperwork/paper_premade.dm b/code/modules/paperwork/paper_premade.dm (rejected hunks)
|
||||
@@ -91,18 +91,18 @@
|
||||
info = "...EMPTY HALLS...USELESS SPACE..."
|
||||
|
||||
|
||||
-/////////// Centcom
|
||||
+/////////// CentCom
|
||||
|
||||
/obj/item/paper/fluff/stations/centcom/disk_memo
|
||||
name = "memo"
|
||||
info = "GET DAT FUKKEN DISK"
|
||||
|
||||
/obj/item/paper/fluff/stations/centcom/broken_evac
|
||||
- info = "Due to circumstances beyond our control, your Emergency Evacuation Shuttle is out of service.<br><br>We apologize for the inconvenience this may cause you.<br><br>Please enjoy the use of this complementary book.<br><br>Sincerely,<br>Centcom Operations Demolitions Examination Retribution Bugfixing Underlining Services"
|
||||
+ info = "Due to circumstances beyond our control, your Emergency Evacuation Shuttle is out of service.<br><br>We apologize for the inconvenience this may cause you.<br><br>Please enjoy the use of this complementary book.<br><br>Sincerely,<br>CentCom Operations Demolitions Examination Retribution Bugfixing Underlining Services"
|
||||
|
||||
/obj/item/paper/fluff/stations/centcom/bulletin
|
||||
name = "paper- 'Official Bulletin'"
|
||||
- info = "<BR>Centcom Security<BR>Port Division<BR>Official Bulletin<BR><BR>Inspector,<BR>There is an emergency shuttle arriving today.<BR><BR>Approval is restricted to Nanotrasen employees only. Deny all other entrants.<BR><BR>Centcom Port Commissioner"
|
||||
+ info = "<BR>CentCom Security<BR>Port Division<BR>Official Bulletin<BR><BR>Inspector,<BR>There is an emergency shuttle arriving today.<BR><BR>Approval is restricted to Nanotrasen employees only. Deny all other entrants.<BR><BR>CentCom Port Commissioner"
|
||||
|
||||
|
||||
/////////// Lavaland
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm (rejected hunks)
|
||||
@@ -168,7 +168,7 @@
|
||||
*/
|
||||
/obj/item/pen/sleepy
|
||||
origin_tech = "engineering=4;syndicate=2"
|
||||
- container_type = OPENCONTAINER
|
||||
+ container_type = OPENCONTAINER_1
|
||||
|
||||
|
||||
/obj/item/pen/sleepy/attack(mob/living/M, mob/user)
|
||||
@@ -168,7 +168,7 @@
|
||||
p.pixel_y = rand(-10, 10)
|
||||
p.img = temp_img
|
||||
var/icon/small_img = icon(temp_img) //Icon() is needed or else temp_img will be rescaled too >.>
|
||||
var/icon/ic = icon('icons/obj/items.dmi',"photo")
|
||||
var/icon/ic = icon('icons/obj/items_and_weapons.dmi',"photo")
|
||||
small_img.Scale(8, 8)
|
||||
ic.Blend(small_img,ICON_OVERLAY, 13, 13)
|
||||
p.icon = ic
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
*/
|
||||
/obj/item/device/camera_film
|
||||
name = "film cartridge"
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
desc = "A camera film cartridge. Insert it into a camera to reload it."
|
||||
icon_state = "film"
|
||||
item_state = "electropack"
|
||||
@@ -25,7 +25,7 @@
|
||||
*/
|
||||
/obj/item/photo
|
||||
name = "photo"
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "photo"
|
||||
item_state = "paper"
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
@@ -91,7 +91,7 @@
|
||||
*/
|
||||
/obj/item/storage/photo_album
|
||||
name = "photo album"
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "album"
|
||||
item_state = "briefcase"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/briefcase_lefthand.dmi'
|
||||
@@ -104,7 +104,7 @@
|
||||
*/
|
||||
/obj/item/device/camera
|
||||
name = "camera"
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
desc = "A polaroid camera."
|
||||
icon_state = "camera"
|
||||
item_state = "electropack"
|
||||
@@ -311,7 +311,7 @@
|
||||
if(in_range(src, user)) //needed because of TK
|
||||
user.put_in_hands(P)
|
||||
var/icon/small_img = icon(temp)
|
||||
var/icon/ic = icon('icons/obj/items.dmi',"photo")
|
||||
var/icon/ic = icon('icons/obj/items_and_weapons.dmi',"photo")
|
||||
small_img.Scale(8, 8)
|
||||
ic.Blend(small_img,ICON_OVERLAY, 13, 13)
|
||||
P.icon = ic
|
||||
@@ -328,7 +328,7 @@
|
||||
/obj/item/device/camera/proc/aipicture(mob/user, icon/temp, mobs, isAi) //instead of printing a picture like a regular camera would, we do this instead for the AI
|
||||
|
||||
var/icon/small_img = icon(temp)
|
||||
var/icon/ic = icon('icons/obj/items.dmi',"photo")
|
||||
var/icon/ic = icon('icons/obj/items_and_weapons.dmi',"photo")
|
||||
small_img.Scale(8, 8)
|
||||
ic.Blend(small_img,ICON_OVERLAY, 13, 13)
|
||||
var/icon = ic
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm (rejected hunks)
|
||||
@@ -497,7 +497,7 @@
|
||||
desc = "The perfect showcase for your favorite deathtrap memories."
|
||||
icon = 'icons/obj/decals.dmi'
|
||||
materials = list()
|
||||
- flags = 0
|
||||
+ flags_1 = 0
|
||||
icon_state = "frame-empty"
|
||||
result_path = /obj/structure/sign/picture_frame
|
||||
var/obj/item/photo/displayed
|
||||
@@ -120,8 +120,15 @@
|
||||
if(auto_name)
|
||||
name = "\improper [get_area(src)] APC"
|
||||
|
||||
pixel_x = (src.tdir & 3)? 0 : (src.tdir == 4 ? 26 : -27)
|
||||
pixel_y = (src.tdir & 3)? (src.tdir == 1 ? 25 : -25) : 0
|
||||
switch(tdir)
|
||||
if(NORTH)
|
||||
pixel_y = 23
|
||||
if(SOUTH)
|
||||
pixel_y = -23
|
||||
if(EAST)
|
||||
pixel_x = 24
|
||||
if(WEST)
|
||||
pixel_x = -25
|
||||
if (building)
|
||||
area = get_area(src)
|
||||
opened = 1
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
diff a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm (rejected hunks)
|
||||
@@ -445,8 +445,8 @@
|
||||
name = "turret controls"
|
||||
icon_state = "offhand"
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
- flags = ABSTRACT | NODROP
|
||||
- resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF | NOBLUDGEON
|
||||
+ flags_1 = ABSTRACT_1 | NODROP_1
|
||||
+ resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF | NOBLUDGEON_1
|
||||
var/delay = 0
|
||||
|
||||
/obj/item/turret_control/afterattack(atom/targeted_atom, mob/user)
|
||||
@@ -128,7 +128,7 @@ field_generator power level display
|
||||
return ..()
|
||||
|
||||
/obj/machinery/field/generator/attack_animal(mob/living/simple_animal/M)
|
||||
if(M.environment_smash >= 3 && active == FG_OFFLINE && state != FG_UNSECURED)
|
||||
if(M.environment_smash & ENVIRONMENT_SMASH_RWALLS && active == FG_OFFLINE && state != FG_UNSECURED)
|
||||
state = FG_UNSECURED
|
||||
anchored = FALSE
|
||||
M.visible_message("<span class='warning'>[M] rips [src] free from its moorings!</span>")
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm (rejected hunks)
|
||||
@@ -17,7 +17,7 @@
|
||||
var/active = 0
|
||||
var/strength = 0
|
||||
var/powered = 0
|
||||
- mouse_opacity = 2
|
||||
+ mouse_opacity = MOUSE_OPACITY_OPAQUE
|
||||
|
||||
/obj/machinery/particle_accelerator/control_box/Initialize()
|
||||
. = ..()
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm (rejected hunks)
|
||||
@@ -524,7 +524,7 @@
|
||||
R.receive_pulse(power * (1 + power_transmission_bonus)/10 * freon_transmit_modifier)
|
||||
|
||||
/obj/machinery/power/supermatter_shard/attackby(obj/item/W, mob/living/user, params)
|
||||
- if(!istype(W) || (W.flags & ABSTRACT) || !istype(user))
|
||||
+ if(!istype(W) || (W.flags_1 & ABSTRACT_1) || !istype(user))
|
||||
return
|
||||
if(istype(W, /obj/item/scalpel/supermatter))
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
/datum/mapGeneratorModule/border/shuttleWalls
|
||||
spawnableAtoms = list()
|
||||
spawnableTurfs = list(/turf/closed/wall/shuttle = 100)
|
||||
spawnableTurfs = list(/turf/closed/wall/mineral/titanium = 100)
|
||||
// Generators
|
||||
|
||||
/datum/mapGenerator/shuttle/full
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/projectiles/guns/beam_rifle.dm b/code/modules/projectiles/guns/beam_rifle.dm (rejected hunks)
|
||||
@@ -715,7 +715,7 @@
|
||||
light_range = 2
|
||||
light_color = "#00ffff"
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
- flags = ABSTRACT
|
||||
+ flags_1 = ABSTRACT_1
|
||||
appearance_flags = 0
|
||||
|
||||
/obj/effect/projectile_beam/proc/scale_to(nx,ny,override=TRUE)
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm (rejected hunks)
|
||||
@@ -6,7 +6,7 @@
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
force = 10
|
||||
modifystate = TRUE
|
||||
- flags = CONDUCT
|
||||
+ flags_1 = CONDUCT_1
|
||||
slot_flags = SLOT_BACK
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/laser/pulse, /obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser)
|
||||
cell_type = "/obj/item/stock_parts/cell/pulse"
|
||||
@@ -101,7 +101,7 @@
|
||||
qdel(dummy)
|
||||
return 0
|
||||
for(var/obj/effect/ebeam/medical/B in turf)// Don't cross the str-beams!
|
||||
if(B.owner != current_beam)
|
||||
if(B.owner.origin != current_beam.origin)
|
||||
explosion(B.loc,0,3,5,8)
|
||||
qdel(dummy)
|
||||
return 0
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm (rejected hunks)
|
||||
@@ -4,7 +4,7 @@
|
||||
icon_state = "bullet"
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
- flags = ABSTRACT
|
||||
+ flags_1 = ABSTRACT_1
|
||||
pass_flags = PASSTABLE
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
hitsound = 'sound/weapons/pierce.ogg'
|
||||
@@ -165,7 +165,7 @@
|
||||
if("animal")
|
||||
var/path
|
||||
if(prob(50))
|
||||
var/beast = pick("carp","bear","mushroom","statue", "bat", "goat","killertomato", "spiderbase", "spiderhunter", "blobbernaut", "magicarp", "chaosmagicarp", "watcher", "goliath", "headcrab", "morph", "stickman", "stickdog", "lesserdragon")
|
||||
var/beast = pick("carp","bear","mushroom","statue", "bat", "goat","killertomato", "spiderbase", "spiderhunter", "blobbernaut", "magicarp", "chaosmagicarp", "watcher", "goliath", "headcrab", "morph", "stickman", "stickdog", "lesserdragon", "gorilla")
|
||||
switch(beast)
|
||||
if("carp")
|
||||
path = /mob/living/simple_animal/hostile/carp
|
||||
@@ -205,6 +205,8 @@
|
||||
path = /mob/living/simple_animal/hostile/stickman/dog
|
||||
if("lesserdragon")
|
||||
path = /mob/living/simple_animal/hostile/megafauna/dragon/lesser
|
||||
if("gorilla")
|
||||
path = /mob/living/simple_animal/hostile/gorilla
|
||||
else
|
||||
var/animal = pick("parrot","corgi","crab","pug","cat","mouse","chicken","cow","lizard","chick","fox","butterfly","cak")
|
||||
switch(animal)
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm (rejected hunks)
|
||||
@@ -178,7 +178,7 @@
|
||||
if(default_unfasten_wrench(user, I))
|
||||
return
|
||||
|
||||
- if(istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER))
|
||||
+ if(istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER_1))
|
||||
var/obj/item/reagent_containers/B = I
|
||||
. = 1 //no afterattack
|
||||
if(beaker)
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm (rejected hunks)
|
||||
@@ -42,7 +42,7 @@
|
||||
if(default_deconstruction_crowbar(I))
|
||||
return
|
||||
|
||||
- if(istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER))
|
||||
+ if(istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER_1))
|
||||
. = 1 //no afterattack
|
||||
if(beaker)
|
||||
to_chat(user, "<span class='warning'>A beaker is already loaded into the machine!</span>")
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm (rejected hunks)
|
||||
@@ -79,7 +79,7 @@
|
||||
if(default_unfasten_wrench(user, I))
|
||||
return
|
||||
|
||||
- if(istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER))
|
||||
+ if(istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER_1))
|
||||
. = 1 // no afterattack
|
||||
if(panel_open)
|
||||
to_chat(user, "<span class='warning'>You can't use the [src.name] while its panel is opened!</span>")
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm (rejected hunks)
|
||||
@@ -177,7 +177,7 @@
|
||||
. = TRUE
|
||||
|
||||
/obj/machinery/computer/pandemic/attackby(obj/item/I, mob/user, params)
|
||||
- if(istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER))
|
||||
+ if(istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER_1))
|
||||
. = TRUE //no afterattack
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm (rejected hunks)
|
||||
@@ -116,7 +116,7 @@
|
||||
if(default_unfasten_wrench(user, I))
|
||||
return
|
||||
|
||||
- if (istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER) )
|
||||
+ if (istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER_1) )
|
||||
if (!beaker)
|
||||
if(!user.drop_item())
|
||||
return 1
|
||||
@@ -106,6 +106,11 @@
|
||||
metabolization_rate = 0.05
|
||||
taste_description = "salt"
|
||||
|
||||
/datum/reagent/blackpowder/on_mob_life(mob/living/M)
|
||||
..()
|
||||
if(isplasmaman(M))
|
||||
M.hallucination += 10
|
||||
|
||||
/datum/reagent/blackpowder/on_ex_act()
|
||||
var/location = get_turf(holder.my_atom)
|
||||
var/datum/effect_system/reagents_explosion/e = new()
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm (rejected hunks)
|
||||
@@ -6,7 +6,7 @@
|
||||
amount_per_transfer_from_this = 5
|
||||
possible_transfer_amounts = list(1, 2, 3, 4, 5)
|
||||
volume = 5
|
||||
- container_type = TRANSPARENT
|
||||
+ container_type = TRANSPARENT_1
|
||||
|
||||
/obj/item/reagent_containers/dropper/afterattack(obj/target, mob/user , proximity)
|
||||
if(!proximity) return
|
||||
@@ -1,28 +0,0 @@
|
||||
diff a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm (rejected hunks)
|
||||
@@ -169,7 +169,7 @@
|
||||
volume = 100
|
||||
amount_per_transfer_from_this = 10
|
||||
possible_transfer_amounts = list(5,10,15,20,25,30,50,100)
|
||||
- flags = OPENCONTAINER
|
||||
+ flags_1 = OPENCONTAINER_1
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/noreact
|
||||
name = "cryostasis beaker"
|
||||
@@ -180,7 +180,7 @@
|
||||
volume = 50
|
||||
amount_per_transfer_from_this = 10
|
||||
origin_tech = "materials=2;engineering=3;plasmatech=3"
|
||||
- flags = OPENCONTAINER
|
||||
+ flags_1 = OPENCONTAINER_1
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/noreact/Initialize()
|
||||
. = ..()
|
||||
@@ -196,7 +196,7 @@
|
||||
volume = 300
|
||||
amount_per_transfer_from_this = 10
|
||||
possible_transfer_amounts = list(5,10,15,20,25,30,50,100,300)
|
||||
- flags = OPENCONTAINER
|
||||
+ flags_1 = OPENCONTAINER_1
|
||||
origin_tech = "bluespace=5;materials=4;plasmatech=4"
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/cryoxadone
|
||||
@@ -1,12 +0,0 @@
|
||||
diff a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm (rejected hunks)
|
||||
@@ -77,8 +77,8 @@
|
||||
amount_per_transfer_from_this = 10
|
||||
volume = 10
|
||||
ignore_flags = 1 //so you can medipen through hardsuits
|
||||
- container_type = DRAWABLE
|
||||
- flags = null
|
||||
+ container_type = DRAWABLE_1
|
||||
+ flags_1 = null
|
||||
list_reagents = list("epinephrine" = 10)
|
||||
|
||||
/obj/item/reagent_containers/hypospray/medipen/attack(mob/M, mob/user)
|
||||
@@ -167,7 +167,7 @@
|
||||
/obj/item/reagent_containers/spray/pepper
|
||||
name = "pepperspray"
|
||||
desc = "Manufactured by UhangInc, used to blind and down an opponent quickly."
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "pepperspray"
|
||||
item_state = "pepperspray"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi'
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm (rejected hunks)
|
||||
@@ -16,7 +16,7 @@
|
||||
var/busy = FALSE // needed for delayed drawing of blood
|
||||
var/proj_piercing = 0 //does it pierce through thick clothes when shot with syringe gun
|
||||
materials = list(MAT_METAL=10, MAT_GLASS=20)
|
||||
- container_type = TRANSPARENT
|
||||
+ container_type = TRANSPARENT_1
|
||||
|
||||
/obj/item/reagent_containers/syringe/Initialize()
|
||||
. = ..()
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm (rejected hunks)
|
||||
@@ -8,7 +8,7 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
|
||||
name = "circuit imprinter"
|
||||
desc = "Manufactures circuit boards for the construction of machines."
|
||||
icon_state = "circuit_imprinter"
|
||||
- container_type = OPENCONTAINER
|
||||
+ container_type = OPENCONTAINER_1
|
||||
circuit = /obj/item/circuitboard/machine/circuit_imprinter
|
||||
|
||||
var/datum/material_container/materials
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm (rejected hunks)
|
||||
@@ -11,7 +11,7 @@ Note: Must be placed west/left of and R&D console to function.
|
||||
name = "protolathe"
|
||||
desc = "Converts raw materials into useful objects."
|
||||
icon_state = "protolathe"
|
||||
- container_type = OPENCONTAINER
|
||||
+ container_type = OPENCONTAINER_1
|
||||
circuit = /obj/item/circuitboard/machine/protolathe
|
||||
|
||||
var/datum/material_container/materials
|
||||
@@ -563,8 +563,7 @@
|
||||
|
||||
/obj/effect/timestop/Initialize()
|
||||
. = ..()
|
||||
for(var/M in GLOB.player_list)
|
||||
var/mob/living/L = M
|
||||
for(var/mob/living/L in GLOB.player_list)
|
||||
if(locate(/obj/effect/proc_holder/spell/aoe_turf/conjure/timestop) in L.mind.spell_list) //People who can stop time are immune to its effects
|
||||
immune += L
|
||||
timestop()
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user