This commit is contained in:
Ghommie
2019-12-06 20:09:35 +01:00
1029 changed files with 34299 additions and 143444 deletions
+28 -11
View File
@@ -81,6 +81,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
var/flags_cover = 0 //for flags such as GLASSESCOVERSEYES
var/heat = 0
///All items with sharpness of IS_SHARP or higher will automatically get the butchering component.
var/sharpness = IS_BLUNT
var/tool_behaviour = NONE
@@ -139,6 +140,9 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
else if (!istype(embedding, /datum/embedding_behavior))
stack_trace("Invalid type [embedding.type] found in .embedding during /obj/item Initialize()")
if(sharpness) //give sharp objects butchering functionality, for consistency
AddComponent(/datum/component/butchering, 80 * toolspeed)
/obj/item/Destroy()
item_flags &= ~DROPDEL //prevent reqdels
if(ismob(loc))
@@ -183,14 +187,24 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
src.loc = T
/obj/item/examine(mob/user) //This might be spammy. Remove?
..()
var/pronoun
if(src.gender == PLURAL)
pronoun = "They are"
. = ..()
. += "[gender == PLURAL ? "They are" : "It is"] a [weightclass2text(w_class)] item."
if(resistance_flags & INDESTRUCTIBLE)
. += "[src] seems extremely robust! It'll probably withstand anything that could happen to it!"
else
pronoun = "It is"
var/size = weightclass2text(src.w_class)
to_chat(user, "[pronoun] a [size] item." )
if(resistance_flags & LAVA_PROOF)
. += "[src] is made of an extremely heat-resistant material, it'd probably be able to withstand lava!"
if(resistance_flags & (ACID_PROOF | UNACIDABLE))
. += "[src] looks pretty robust! It'd probably be able to withstand acid!"
if(resistance_flags & FREEZE_PROOF)
. += "[src] is made of cold-resistant materials."
if(resistance_flags & FIRE_PROOF)
. += "[src] is made of fire-retardant materials."
if(!user.research_scanner)
return
@@ -202,7 +216,9 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
var/list/boostable_nodes = techweb_item_boost_check(src)
if (boostable_nodes)
for(var/id in boostable_nodes)
var/datum/techweb_node/node = SSresearch.techweb_nodes[id]
var/datum/techweb_node/node = SSresearch.techweb_node_by_id(id)
if(!node)
continue
research_msg += sep
research_msg += node.display_name
sep = ", "
@@ -225,7 +241,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
else
research_msg += "None"
research_msg += "."
to_chat(user, research_msg.Join())
. += research_msg.Join()
/obj/item/interact(mob/user)
add_fingerprint(user)
@@ -381,13 +397,14 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
return
if(over == src)
return usr.client.Click(src, src_location, src_control, params)
var/list/directaccess = usr.DirectAccess()
var/list/directaccess = usr.DirectAccess() //This, specifically, is what requires the copypaste. If this were after the adjacency check, then it'd be impossible to use items in your inventory, among other things.
//If this were before the above checks, then trying to click on items would act a little funky and signal overrides wouldn't work.
if((usr.CanReach(src) || (src in directaccess)) && (usr.CanReach(over) || (over in directaccess)))
if(!usr.get_active_held_item())
usr.UnarmedAttack(src, TRUE)
if(usr.get_active_held_item() == src)
melee_attack_chain(usr, over)
return
return TRUE //returning TRUE as a "is this overridden?" flag
if(!Adjacent(usr) || !over.Adjacent(usr))
return // should stop you from dragging through windows