[ready] adds unit test for missing inhand icons. fixes a bunch of missing inhand icons (#70037)

fix: Fixed a bunch of missing inhand icons.
fix: Fixed cables in electrical toolboxes not randomizing their colors.
fix: Fixed the wrong colored icon showing when trying to make cable cuffs out of cables.
fix: The collectable SWAT helmet is now using the proper icon again!
refactor: Pipecleaners and power cables now share a unified color system, so they're once again available in ALL the same colors.
imageadd: Updated the screwdriver belt overlay to represent the newer sprite.
imageadd: Added a bunch of new inhand icons. Special thanks to Twaticus for doing the helmets! <3
fix: Wirecutters now have an icon when inside a belt again!
admin: Added a new omnitool subtype that allows you to spawn all items in a typepath!
fix: Explorer gaskmasks now properly reflect their adjusted state when held.
fix: Fixed balaclavas having the wrong icon when pulled up.
fix: Fixed the base energy sword (admin spawn only) being invisible.
fix: The rainbow energy sword is now a little bit more rainbowy!
fix: Fixed an tk exploit with orange handcuffed shoes.
fix: The traitor outfit in the select equipment panel is now actually functional!
This commit is contained in:
ShizCalev
2022-10-04 10:20:24 -07:00
committed by GitHub
parent b01e009ced
commit 1a32f60cf4
265 changed files with 1620 additions and 965 deletions
@@ -5,7 +5,7 @@
icon_state = "explorer"
icon = 'icons/obj/clothing/suits/utility.dmi'
worn_icon = 'icons/mob/clothing/suits/utility.dmi'
inhand_icon_state = "explorer"
inhand_icon_state = null
body_parts_covered = CHEST|GROIN|LEGS|ARMS
cold_protection = CHEST|GROIN|LEGS|ARMS
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
@@ -50,6 +50,7 @@
name = "explorer gas mask"
desc = "A military-grade gas mask that can be connected to an air supply."
icon_state = "gas_mining"
inhand_icon_state = "explorer_gasmask"
flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH
visor_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
visor_flags_inv = HIDEFACIALHAIR
@@ -62,10 +63,14 @@
/obj/item/clothing/mask/gas/explorer/attack_self(mob/user)
adjustmask(user)
/obj/item/clothing/mask/gas/explorer/adjustmask(user)
/obj/item/clothing/mask/gas/explorer/adjustmask(mob/user)
. = ..()
// adjusted = out of the way = smaller = can fit in boxes
w_class = mask_adjusted ? WEIGHT_CLASS_SMALL : WEIGHT_CLASS_NORMAL
inhand_icon_state = mask_adjusted ? "[initial(inhand_icon_state)]_up" : initial(inhand_icon_state)
if(user)
user.update_held_items()
/obj/item/clothing/mask/gas/explorer/examine(mob/user)
. = ..()
+26 -5
View File
@@ -3,6 +3,7 @@
name = "pickaxe"
icon = 'icons/obj/mining.dmi'
icon_state = "pickaxe"
inhand_icon_state = "pickaxe"
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK
force = 15
@@ -37,7 +38,6 @@
name = "compact pickaxe"
desc = "A smaller, compact version of the standard pickaxe."
icon_state = "minipick"
inhand_icon_state = "pickaxe"
worn_icon_state = "pickaxe"
force = 10
throwforce = 7
@@ -48,6 +48,7 @@
/obj/item/pickaxe/silver
name = "silver-plated pickaxe"
icon_state = "spickaxe"
inhand_icon_state = "spickaxe"
toolspeed = 0.5 //mines faster than a normal pickaxe, bought from mining vendor
desc = "A silver-plated pickaxe that mines slightly faster than standard-issue."
force = 17
@@ -55,6 +56,7 @@
/obj/item/pickaxe/diamond
name = "diamond-tipped pickaxe"
icon_state = "dpickaxe"
inhand_icon_state = "dpickaxe"
toolspeed = 0.3
desc = "A pickaxe with a diamond pick head. Extremely robust at cracking rock walls and digging up dirt."
force = 19
@@ -62,6 +64,7 @@
/obj/item/pickaxe/drill
name = "mining drill"
icon_state = "handdrill"
inhand_icon_state = "handdrill"
slot_flags = ITEM_SLOT_BELT
toolspeed = 0.6 //available from roundstart, faster than a pickaxe.
usesound = 'sound/weapons/drill.ogg'
@@ -80,17 +83,20 @@
/obj/item/pickaxe/drill/diamonddrill
name = "diamond-tipped mining drill"
icon_state = "diamonddrill"
inhand_icon_state = "diamonddrill"
toolspeed = 0.2
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_1 flag, and easier to change borg specific drill mechanics.
icon_state = "diamonddrill"
inhand_icon_state = "diamonddrill"
toolspeed = 0.2
/obj/item/pickaxe/drill/jackhammer
name = "sonic jackhammer"
icon_state = "jackhammer"
inhand_icon_state = "jackhammer"
toolspeed = 0.1 //the epitome of powertools. extremely fast mining
usesound = 'sound/weapons/sonic_jackhammer.ogg'
hitsound = 'sound/weapons/sonic_jackhammer.ogg'
@@ -100,6 +106,7 @@
name = "improvised pickaxe"
desc = "A pickaxe made with a knife and crowbar taped together, how does it not break?"
icon_state = "ipickaxe"
inhand_icon_state = "ipickaxe"
worn_icon_state = "pickaxe"
force = 10
throwforce = 7
@@ -113,6 +120,7 @@
desc = "A large tool for digging and moving dirt."
icon = 'icons/obj/mining.dmi'
icon_state = "shovel"
inhand_icon_state = "shovel"
lefthand_file = 'icons/mob/inhands/equipment/mining_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/mining_righthand.dmi'
flags_1 = CONDUCT_1
@@ -147,6 +155,7 @@
name = "spade"
desc = "A small tool for digging and moving dirt."
icon_state = "spade"
inhand_icon_state = "spade"
lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/hydroponics_righthand.dmi'
force = 5
@@ -173,6 +182,7 @@
desc = "The multi-purpose tool you always needed."
icon = 'icons/obj/mining.dmi'
icon_state = "trench_tool"
inhand_icon_state = "trench_tool"
lefthand_file = 'icons/mob/inhands/equipment/mining_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/mining_righthand.dmi'
flags_1 = CONDUCT_1
@@ -186,11 +196,25 @@
attack_verb_simple = list("bash", "bludgeon", "thrash", "whack")
wound_bonus = 10
/obj/item/trench_tool/Initialize(mapload)
. = ..()
AddElement(/datum/element/update_icon_updates_onmob)
/obj/item/trench_tool/examine(mob/user)
. = ..()
. += span_notice("Use in hand to switch configuration.")
. += span_notice("It functions as a [tool_behaviour] tool.")
/obj/item/trench_tool/update_icon_state()
. = ..()
switch(tool_behaviour)
if(TOOL_WRENCH)
icon_state = inhand_icon_state = initial(icon_state)
if(TOOL_SHOVEL)
icon_state = inhand_icon_state = "[initial(icon_state)]_shovel"
if(TOOL_MINING)
icon_state = inhand_icon_state = "[initial(icon_state)]_pick"
/obj/item/trench_tool/attack_self(mob/user, modifiers)
. = ..()
if(!user)
@@ -205,7 +229,6 @@
return
switch(tool_result)
if("Wrench")
icon_state = "trench_tool"
tool_behaviour = TOOL_WRENCH
sharpness = NONE
toolspeed = 0.75
@@ -214,7 +237,6 @@
attack_verb_continuous = list("bashes", "bludgeons", "thrashes", "whacks")
attack_verb_simple = list("bash", "bludgeon", "thrash", "whack")
if("Shovel")
icon_state = "trench_tool_shovel"
tool_behaviour = TOOL_SHOVEL
sharpness = SHARP_EDGED
toolspeed = 0.25
@@ -223,7 +245,6 @@
attack_verb_continuous = list("slashes", "impales", "stabs", "slices")
attack_verb_simple = list("slash", "impale", "stab", "slice")
if("Pick")
icon_state = "trench_tool_pick"
tool_behaviour = TOOL_MINING
sharpness = SHARP_POINTY
toolspeed = 0.5
@@ -232,7 +253,7 @@
attack_verb_continuous = list("hits", "pierces", "slices", "attacks")
attack_verb_simple = list("hit", "pierce", "slice", "attack")
playsound(src, 'sound/items/ratchet.ogg', 50, vary = TRUE)
user.update_held_items()
update_appearance(UPDATE_ICON)
/obj/item/trench_tool/proc/check_menu(mob/user)
if(!istype(user))
@@ -341,6 +341,7 @@
desc = "An old relic of hell created by devils to establish themselves as the leadership of hell over the demons. It grows stronger while it possesses a powerful soul."
icon = 'icons/obj/lavaland/artefacts.dmi'
icon_state = "soulscythe"
inhand_icon_state = "soulscythe"
lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi'
righthand_file = 'icons/mob/inhands/64x64_righthand.dmi'
attack_verb_continuous = list("chops", "slices", "cuts", "reaps")
@@ -741,6 +742,7 @@
name = "staff of lava"
desc = "The ability to fill the emergency shuttle with lava. What more could you want out of life?"
icon_state = "lavastaff"
inhand_icon_state = "lavastaff"
lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi'
icon = 'icons/obj/weapons/guns/magic.dmi'
@@ -934,6 +936,7 @@
name = "staff of storms"
desc = "An ancient staff retrieved from the remains of Legion. The wind stirs as you move it."
icon_state = "staffofstorms"
inhand_icon_state = "staffofstorms"
icon = 'icons/obj/weapons/guns/magic.dmi'
lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi'
+22 -6
View File
@@ -73,8 +73,25 @@
lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi'
icon_state = "asclepius_dormant"
inhand_icon_state = "asclepius_dormant"
var/activated = FALSE
var/usedHand
/obj/item/rod_of_asclepius/Initialize(mapload)
. = ..()
AddElement(/datum/element/update_icon_updates_onmob)
/obj/item/rod_of_asclepius/update_desc(updates)
. = ..()
desc = activated ? "A short wooden rod with a mystical snake inseparably gripping itself and the rod to your forearm. It flows with a healing energy that disperses amongst yourself and those around you." : initial(desc)
/obj/item/rod_of_asclepius/update_icon_state()
. = ..()
icon_state = inhand_icon_state = "ascelpius_[activated ? "active" : "dormant"]"
/obj/item/rod_of_asclepius/vv_edit_var(vname, vval)
. = ..()
if(vname == NAMEOF(src, activated) && activated)
activated()
/obj/item/rod_of_asclepius/attack_self(mob/user)
if(activated)
@@ -83,7 +100,7 @@
to_chat(user, span_warning("The snake carving seems to come alive, if only for a moment, before returning to its dormant state, almost as if it finds you incapable of holding its oath."))
return
var/mob/living/carbon/itemUser = user
usedHand = itemUser.get_held_index_of_item(src)
var/usedHand = itemUser.get_held_index_of_item(src)
if(itemUser.has_status_effect(/datum/status_effect/hippocratic_oath))
to_chat(user, span_warning("You can't possibly handle the responsibility of more than one rod!"))
return
@@ -117,9 +134,8 @@
/obj/item/rod_of_asclepius/proc/activated()
item_flags = DROPDEL
ADD_TRAIT(src, TRAIT_NODROP, CURSED_ITEM_TRAIT(type))
desc = "A short wooden rod with a mystical snake inseparably gripping itself and the rod to your forearm. It flows with a healing energy that disperses amongst yourself and those around you. "
icon_state = "asclepius_active"
activated = TRUE
update_appearance()
//Memento Mori
/obj/item/clothing/neck/necklace/memento_mori
@@ -557,7 +573,7 @@
name = "concussive gauntlets"
desc = "Pickaxes... for your hands!"
icon_state = "concussive_gauntlets"
inhand_icon_state = "concussive_gauntlets"
inhand_icon_state = null
toolspeed = 0.1
strip_delay = 40
equip_delay_other = 20
@@ -713,7 +729,7 @@
name = "eye of god"
desc = "A strange eye, said to have been torn from an omniscient creature that used to roam the wastes."
icon_state = "godeye"
inhand_icon_state = "godeye"
inhand_icon_state = null
vision_flags = SEE_TURFS
darkness_view = 8
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
+1 -12
View File
@@ -11,7 +11,7 @@
name = "rock"
icon = 'icons/obj/ore.dmi'
icon_state = "ore"
inhand_icon_state = "ore"
inhand_icon_state = null
full_w_class = WEIGHT_CLASS_BULKY
singular_name = "ore chunk"
material_flags = MATERIAL_EFFECTS
@@ -73,7 +73,6 @@
/obj/item/stack/ore/uranium
name = "uranium ore"
icon_state = "Uranium ore"
inhand_icon_state = "Uranium ore"
singular_name = "uranium ore chunk"
points = 30
material_flags = NONE
@@ -87,7 +86,6 @@
/obj/item/stack/ore/iron
name = "iron ore"
icon_state = "Iron ore"
inhand_icon_state = "Iron ore"
singular_name = "iron ore chunk"
points = 1
mats_per_unit = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT)
@@ -100,7 +98,6 @@
/obj/item/stack/ore/glass
name = "sand pile"
icon_state = "Glass ore"
inhand_icon_state = "Glass ore"
singular_name = "sand pile"
points = 1
mats_per_unit = list(/datum/material/glass=MINERAL_MATERIAL_AMOUNT)
@@ -138,7 +135,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
/obj/item/stack/ore/glass/basalt
name = "volcanic ash"
icon_state = "volcanic_sand"
inhand_icon_state = "volcanic_sand"
singular_name = "volcanic ash pile"
mine_experience = 0
merge_type = /obj/item/stack/ore/glass/basalt
@@ -146,7 +142,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
/obj/item/stack/ore/plasma
name = "plasma ore"
icon_state = "Plasma ore"
inhand_icon_state = "Plasma ore"
singular_name = "plasma ore chunk"
points = 15
mats_per_unit = list(/datum/material/plasma=MINERAL_MATERIAL_AMOUNT)
@@ -163,7 +158,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
/obj/item/stack/ore/silver
name = "silver ore"
icon_state = "Silver ore"
inhand_icon_state = "Silver ore"
singular_name = "silver ore chunk"
points = 16
mine_experience = 3
@@ -176,7 +170,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
/obj/item/stack/ore/gold
name = "gold ore"
icon_state = "Gold ore"
inhand_icon_state = "Gold ore"
singular_name = "gold ore chunk"
points = 18
mine_experience = 5
@@ -189,7 +182,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
/obj/item/stack/ore/diamond
name = "diamond ore"
icon_state = "Diamond ore"
inhand_icon_state = "Diamond ore"
singular_name = "diamond ore chunk"
points = 50
mats_per_unit = list(/datum/material/diamond=MINERAL_MATERIAL_AMOUNT)
@@ -201,7 +193,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
/obj/item/stack/ore/bananium
name = "bananium ore"
icon_state = "Bananium ore"
inhand_icon_state = "Bananium ore"
singular_name = "bananium ore chunk"
points = 60
mats_per_unit = list(/datum/material/bananium=MINERAL_MATERIAL_AMOUNT)
@@ -213,7 +204,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
/obj/item/stack/ore/titanium
name = "titanium ore"
icon_state = "Titanium ore"
inhand_icon_state = "Titanium ore"
singular_name = "titanium ore chunk"
points = 50
mats_per_unit = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT)
@@ -227,7 +217,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
name = "slag"
desc = "Completely useless."
icon_state = "slag"
inhand_icon_state = "slag"
singular_name = "slag chunk"
merge_type = /obj/item/stack/ore/slag