Merge pull request #9603 from Ghommie/Ghommie-cit267
Unmodularize lavaknights and emags.
@@ -80,6 +80,7 @@
|
|||||||
righthand_file = 'icons/mob/inhands/equipment/idcards_righthand.dmi'
|
righthand_file = 'icons/mob/inhands/equipment/idcards_righthand.dmi'
|
||||||
item_flags = NO_MAT_REDEMPTION | NOBLUDGEON
|
item_flags = NO_MAT_REDEMPTION | NOBLUDGEON
|
||||||
var/prox_check = TRUE //If the emag requires you to be in range
|
var/prox_check = TRUE //If the emag requires you to be in range
|
||||||
|
var/uses = 15
|
||||||
|
|
||||||
/obj/item/card/emag/bluespace
|
/obj/item/card/emag/bluespace
|
||||||
name = "bluespace cryptographic sequencer"
|
name = "bluespace cryptographic sequencer"
|
||||||
@@ -110,6 +111,37 @@
|
|||||||
user.visible_message("<span class='warning'>[src] fizzles and sparks. It seems like it's out of charges.</span>")
|
user.visible_message("<span class='warning'>[src] fizzles and sparks. It seems like it's out of charges.</span>")
|
||||||
playsound(src, 'sound/effects/light_flicker.ogg', 100, 1)
|
playsound(src, 'sound/effects/light_flicker.ogg', 100, 1)
|
||||||
|
|
||||||
|
/obj/item/card/emag/examine(mob/user)
|
||||||
|
. = ..()
|
||||||
|
to_chat(user, "<span class='notice'>It has <b>[uses ? uses : "no"]</b> charges left.</span>")
|
||||||
|
|
||||||
|
/obj/item/card/emag/attackby(obj/item/W, mob/user, params)
|
||||||
|
if(istype(W, /obj/item/emagrecharge))
|
||||||
|
var/obj/item/emagrecharge/ER = W
|
||||||
|
if(ER.uses)
|
||||||
|
uses += ER.uses
|
||||||
|
to_chat(user, "<span class='notice'>You have added [ER.uses] charges to [src]. It now has [uses] charges.</span>")
|
||||||
|
playsound(src, "sparks", 100, 1)
|
||||||
|
ER.uses = 0
|
||||||
|
else
|
||||||
|
to_chat(user, "<span class='warning'>[ER] has no charges left.</span>")
|
||||||
|
return
|
||||||
|
. = ..()
|
||||||
|
|
||||||
|
/obj/item/emagrecharge
|
||||||
|
name = "electromagnet charging device"
|
||||||
|
desc = "A small cell with two prongs lazily jabbed into it. It looks like it's made for charging the small batteries found in electromagnetic devices, sadly this can't be recharged like a normal cell."
|
||||||
|
icon = 'icons/obj/module.dmi'
|
||||||
|
icon_state = "cell_mini"
|
||||||
|
item_flags = NOBLUDGEON
|
||||||
|
var/uses = 5 //Dictates how many charges the device adds to compatible items
|
||||||
|
|
||||||
|
/obj/item/emagrecharge/examine(mob/user)
|
||||||
|
. = ..()
|
||||||
|
if(uses)
|
||||||
|
to_chat(user, "<span class='notice'>It can add up to [uses] charges to compatible devices</span>")
|
||||||
|
else
|
||||||
|
to_chat(user, "<span class='warning'>It has a small, red, blinking light coming from inside of it. It's spent.</span>")
|
||||||
|
|
||||||
/obj/item/card/emagfake
|
/obj/item/card/emagfake
|
||||||
desc = "It's a card with a magnetic strip attached to some circuitry. Closer inspection shows that this card is a poorly made replica, with a \"DonkCo\" logo stamped on the back."
|
desc = "It's a card with a magnetic strip attached to some circuitry. Closer inspection shows that this card is a poorly made replica, with a \"DonkCo\" logo stamped on the back."
|
||||||
@@ -451,3 +483,58 @@ update_label("John Doe", "Clowny")
|
|||||||
name = "APC Access ID"
|
name = "APC Access ID"
|
||||||
desc = "A special ID card that allows access to APC terminals."
|
desc = "A special ID card that allows access to APC terminals."
|
||||||
access = list(ACCESS_ENGINE_EQUIP)
|
access = list(ACCESS_ENGINE_EQUIP)
|
||||||
|
|
||||||
|
//Polychromatic Knight Badge
|
||||||
|
|
||||||
|
/obj/item/card/id/knight
|
||||||
|
var/id_color = "#00FF00" //defaults to green
|
||||||
|
name = "knight badge"
|
||||||
|
icon_state = "knight"
|
||||||
|
desc = "A badge denoting the owner as a knight! It has a strip for swiping like an ID"
|
||||||
|
|
||||||
|
/obj/item/card/id/knight/update_label(newname, newjob)
|
||||||
|
if(newname || newjob)
|
||||||
|
name = "[(!newname) ? "knight badge" : "[newname]'s Knight Badge"][(!newjob) ? "" : " ([newjob])"]"
|
||||||
|
return
|
||||||
|
|
||||||
|
name = "[(!registered_name) ? "knight badge" : "[registered_name]'s Knight Badge"][(!assignment) ? "" : " ([assignment])"]"
|
||||||
|
|
||||||
|
/obj/item/card/id/knight/update_icon()
|
||||||
|
var/mutable_appearance/id_overlay = mutable_appearance(icon, "knight_overlay")
|
||||||
|
|
||||||
|
if(id_color)
|
||||||
|
id_overlay.color = id_color
|
||||||
|
cut_overlays()
|
||||||
|
|
||||||
|
add_overlay(id_overlay)
|
||||||
|
|
||||||
|
/obj/item/card/id/knight/AltClick(mob/living/user)
|
||||||
|
. = ..()
|
||||||
|
if(!in_range(src, user)) //Basic checks to prevent abuse
|
||||||
|
return
|
||||||
|
if(user.incapacitated() || !istype(user))
|
||||||
|
to_chat(user, "<span class='warning'>You can't do that right now!</span>")
|
||||||
|
return
|
||||||
|
if(alert("Are you sure you want to recolor your id?", "Confirm Repaint", "Yes", "No") == "Yes")
|
||||||
|
var/energy_color_input = input(usr,"","Choose Energy Color",id_color) as color|null
|
||||||
|
if(!in_range(src, user) || !energy_color_input)
|
||||||
|
return
|
||||||
|
if(user.incapacitated() || !istype(user))
|
||||||
|
to_chat(user, "<span class='warning'>You can't do that right now!</span>")
|
||||||
|
return
|
||||||
|
id_color = sanitize_hexcolor(energy_color_input, desired_format=6, include_crunch=1)
|
||||||
|
update_icon()
|
||||||
|
|
||||||
|
/obj/item/card/id/knight/Initialize()
|
||||||
|
. = ..()
|
||||||
|
update_icon()
|
||||||
|
|
||||||
|
/obj/item/card/id/knight/examine(mob/user)
|
||||||
|
..()
|
||||||
|
to_chat(user, "<span class='notice'>Alt-click to recolor it.</span>")
|
||||||
|
|
||||||
|
/obj/item/card/id/knight/blue
|
||||||
|
id_color = "#0000FF"
|
||||||
|
|
||||||
|
/obj/item/card/id/knight/captain
|
||||||
|
id_color = "#FFD700"
|
||||||
@@ -587,3 +587,57 @@
|
|||||||
shoes = /obj/item/clothing/shoes/sneakers/black
|
shoes = /obj/item/clothing/shoes/sneakers/black
|
||||||
suit = /obj/item/clothing/suit/armor/vest
|
suit = /obj/item/clothing/suit/armor/vest
|
||||||
glasses = /obj/item/clothing/glasses/sunglasses/reagent
|
glasses = /obj/item/clothing/glasses/sunglasses/reagent
|
||||||
|
|
||||||
|
/obj/effect/mob_spawn/human/lavaknight
|
||||||
|
name = "odd cryogenics pod"
|
||||||
|
desc = "A humming cryo pod. You can barely recognise a faint glow underneath the built up ice. The machine is attempting to wake up its occupant."
|
||||||
|
mob_name = "a displaced knight from another dimension"
|
||||||
|
icon = 'icons/obj/machines/sleeper.dmi'
|
||||||
|
icon_state = "sleeper"
|
||||||
|
roundstart = FALSE
|
||||||
|
id_job = "Knight"
|
||||||
|
job_description = "Cydonian Knight"
|
||||||
|
death = FALSE
|
||||||
|
random = TRUE
|
||||||
|
outfit = /datum/outfit/lavaknight
|
||||||
|
mob_species = /datum/species/human
|
||||||
|
flavour_text = "<font size=3><b>Y</b></font><b>ou are a knight who conveniently has some form of retrograde amnesia. \
|
||||||
|
You cannot remember where you came from. However, a few things remain burnt into your mind, most prominently a vow to never harm another sapient being under any circumstances unless it is hellbent on ending your life. \
|
||||||
|
Remember: hostile creatures and such are fair game for attacking, but <span class='danger'>under no circumstances are you to attack anything capable of thought and/or speech</span> unless it has made it its life's calling to chase you to the ends of the earth."
|
||||||
|
assignedrole = "Cydonian Knight"
|
||||||
|
|
||||||
|
/obj/effect/mob_spawn/human/lavaknight/special(mob/living/new_spawn)
|
||||||
|
if(ishuman(new_spawn))
|
||||||
|
var/mob/living/carbon/human/H = new_spawn
|
||||||
|
H.dna.features["mam_ears"] = "Cat, Big" //cat people
|
||||||
|
H.dna.features["mcolor"] = H.hair_color
|
||||||
|
H.update_body()
|
||||||
|
|
||||||
|
/obj/effect/mob_spawn/human/lavaknight/Destroy()
|
||||||
|
new/obj/structure/showcase/machinery/oldpod/used(drop_location())
|
||||||
|
return ..()
|
||||||
|
|
||||||
|
/datum/outfit/lavaknight
|
||||||
|
name = "Cydonian Knight"
|
||||||
|
uniform = /obj/item/clothing/under/assistantformal
|
||||||
|
mask = /obj/item/clothing/mask/breath
|
||||||
|
shoes = /obj/item/clothing/shoes/sneakers/black
|
||||||
|
r_pocket = /obj/item/melee/transforming/energy/sword/cx
|
||||||
|
suit = /obj/item/clothing/suit/space/hardsuit/lavaknight
|
||||||
|
suit_store = /obj/item/tank/internals/oxygen
|
||||||
|
id = /obj/item/card/id/knight/blue
|
||||||
|
|
||||||
|
/obj/effect/mob_spawn/human/lavaknight/captain
|
||||||
|
name = "odd gilded cryogenics pod"
|
||||||
|
desc = "A humming cryo pod that appears to be gilded. You can barely recognise a faint glow underneath the built up ice. The machine is attempting to wake up its occupant."
|
||||||
|
flavour_text = "<font size=3><b>Y</b></font><b>ou are a knight who conveniently has some form of retrograde amnesia. \
|
||||||
|
You cannot remember where you came from. However, a few things remain burnt into your mind, most prominently a vow to never harm another sapient being under any circumstances unless it is hellbent on ending your life. \
|
||||||
|
Remember: hostile creatures and such are fair game for attacking, but <span class='danger'>under no circumstances are you to attack anything capable of thought and/or speech</span> unless it has made it its life's calling to chase you to the ends of the earth. \
|
||||||
|
You feel a natural instict to lead, and as such, you should strive to lead your comrades to safety, and hopefully home. You also feel a burning determination to uphold your vow, as well as your fellow comrade's."
|
||||||
|
outfit = /datum/outfit/lavaknight/captain
|
||||||
|
id_job = "Knight Captain"
|
||||||
|
|
||||||
|
/datum/outfit/lavaknight/captain
|
||||||
|
name ="Cydonian Knight Captain"
|
||||||
|
l_pocket = /obj/item/twohanded/dualsaber/hypereutactic
|
||||||
|
id = /obj/item/card/id/knight/captain
|
||||||
|
|||||||
@@ -867,3 +867,133 @@
|
|||||||
strip_delay = 130
|
strip_delay = 130
|
||||||
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
|
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
|
||||||
actions_types = list()
|
actions_types = list()
|
||||||
|
|
||||||
|
/*
|
||||||
|
CYDONIAN ARMOR THAT IS RGB AND STUFF WOOOOOOOOOO
|
||||||
|
*/
|
||||||
|
|
||||||
|
/obj/item/clothing/head/helmet/space/hardsuit/lavaknight
|
||||||
|
name = "cydonian helmet"
|
||||||
|
desc = "A helmet designed with both form and function in mind, it protects the user against physical trauma and hazardous conditions while also having polychromic light strips."
|
||||||
|
icon_state = "knight_cydonia"
|
||||||
|
item_state = "knight_yellow"
|
||||||
|
item_color = null
|
||||||
|
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
||||||
|
resistance_flags = FIRE_PROOF | LAVA_PROOF
|
||||||
|
heat_protection = HEAD
|
||||||
|
armor = list(melee = 50, bullet = 10, laser = 10, energy = 10, bomb = 50, bio = 100, rad = 50, fire = 100, acid = 100)
|
||||||
|
brightness_on = 7
|
||||||
|
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator)
|
||||||
|
var/energy_color = "#35FFF0"
|
||||||
|
var/obj/item/clothing/suit/space/hardsuit/lavaknight/linkedsuit = null
|
||||||
|
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||||
|
|
||||||
|
/obj/item/clothing/head/helmet/space/hardsuit/lavaknight/Initialize()
|
||||||
|
. = ..()
|
||||||
|
if(istype(loc, /obj/item/clothing/suit/space/hardsuit/lavaknight))
|
||||||
|
var/obj/item/clothing/suit/space/hardsuit/lavaknight/S = loc
|
||||||
|
energy_color = S.energy_color
|
||||||
|
update_icon()
|
||||||
|
|
||||||
|
/obj/item/clothing/head/helmet/space/hardsuit/lavaknight/attack_self(mob/user)
|
||||||
|
on = !on
|
||||||
|
|
||||||
|
if(on)
|
||||||
|
set_light(brightness_on)
|
||||||
|
else
|
||||||
|
set_light(0)
|
||||||
|
for(var/X in actions)
|
||||||
|
var/datum/action/A = X
|
||||||
|
A.UpdateButtonIcon()
|
||||||
|
|
||||||
|
/obj/item/clothing/head/helmet/space/hardsuit/lavaknight/update_icon()
|
||||||
|
var/mutable_appearance/helm_overlay = mutable_appearance(icon, "knight_cydonia_overlay")
|
||||||
|
|
||||||
|
if(energy_color)
|
||||||
|
helm_overlay.color = energy_color
|
||||||
|
|
||||||
|
cut_overlays() //So that it doesn't keep stacking overlays non-stop on top of each other
|
||||||
|
|
||||||
|
add_overlay(helm_overlay)
|
||||||
|
|
||||||
|
/obj/item/clothing/head/helmet/space/hardsuit/lavaknight/worn_overlays(isinhands = FALSE, icon_file)
|
||||||
|
. = ..()
|
||||||
|
if(!isinhands)
|
||||||
|
var/mutable_appearance/energy_overlay = mutable_appearance(icon_file, "knight_cydonia_overlay", ABOVE_LIGHTING_LAYER)
|
||||||
|
energy_overlay.plane = ABOVE_LIGHTING_LAYER
|
||||||
|
energy_overlay.color = energy_color
|
||||||
|
. += energy_overlay
|
||||||
|
|
||||||
|
/obj/item/clothing/suit/space/hardsuit/lavaknight
|
||||||
|
icon_state = "knight_cydonia"
|
||||||
|
name = "cydonian armor"
|
||||||
|
desc = "A suit designed with both form and function in mind, it protects the user against physical trauma and hazardous conditions while also having polychromic light strips."
|
||||||
|
item_state = "swat_suit"
|
||||||
|
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
||||||
|
resistance_flags = FIRE_PROOF | LAVA_PROOF
|
||||||
|
armor = list(melee = 50, bullet = 10, laser = 10, energy = 10, bomb = 50, bio = 100, rad = 50, fire = 100, acid = 100)
|
||||||
|
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage/bag/ore, /obj/item/pickaxe)
|
||||||
|
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/lavaknight
|
||||||
|
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||||
|
tauric = TRUE //Citadel Add for tauric hardsuits
|
||||||
|
|
||||||
|
var/energy_color = "#35FFF0"
|
||||||
|
|
||||||
|
/obj/item/clothing/suit/space/hardsuit/lavaknight/Initialize()
|
||||||
|
..()
|
||||||
|
light_color = energy_color
|
||||||
|
set_light(1)
|
||||||
|
update_icon()
|
||||||
|
|
||||||
|
/obj/item/clothing/suit/space/hardsuit/lavaknight/update_icon()
|
||||||
|
var/mutable_appearance/suit_overlay = mutable_appearance(icon, "knight_cydonia_overlay")
|
||||||
|
|
||||||
|
if(energy_color)
|
||||||
|
suit_overlay.color = energy_color
|
||||||
|
|
||||||
|
cut_overlays() //So that it doesn't keep stacking overlays non-stop on top of each other
|
||||||
|
|
||||||
|
add_overlay(suit_overlay)
|
||||||
|
|
||||||
|
/obj/item/clothing/suit/space/hardsuit/lavaknight/worn_overlays(isinhands = FALSE, icon_file)
|
||||||
|
. = ..()
|
||||||
|
if(!isinhands)
|
||||||
|
var/mutable_appearance/energy_overlay
|
||||||
|
if(taurmode == SNEK_TAURIC)
|
||||||
|
energy_overlay = mutable_appearance('modular_citadel/icons/mob/taur_naga.dmi', "knight_cydonia_overlay", ABOVE_LIGHTING_LAYER)
|
||||||
|
else if(taurmode == PAW_TAURIC)
|
||||||
|
energy_overlay = mutable_appearance('modular_citadel/icons/mob/taur_canine.dmi', "knight_cydonia_overlay", ABOVE_LIGHTING_LAYER)
|
||||||
|
else
|
||||||
|
energy_overlay = mutable_appearance(icon_file, "knight_cydonia_overlay", ABOVE_LIGHTING_LAYER)
|
||||||
|
|
||||||
|
energy_overlay.plane = ABOVE_LIGHTING_LAYER
|
||||||
|
energy_overlay.color = energy_color
|
||||||
|
. += energy_overlay
|
||||||
|
|
||||||
|
/obj/item/clothing/suit/space/hardsuit/lavaknight/AltClick(mob/living/user)
|
||||||
|
if(user.incapacitated() || !istype(user))
|
||||||
|
to_chat(user, "<span class='warning'>You can't do that right now!</span>")
|
||||||
|
return
|
||||||
|
if(!in_range(src, user))
|
||||||
|
return
|
||||||
|
if(user.incapacitated() || !istype(user) || !in_range(src, user))
|
||||||
|
return
|
||||||
|
|
||||||
|
if(alert("Are you sure you want to recolor your armor stripes?", "Confirm Repaint", "Yes", "No") == "Yes")
|
||||||
|
var/energy_color_input = input(usr,"","Choose Energy Color",energy_color) as color|null
|
||||||
|
if(energy_color_input)
|
||||||
|
energy_color = sanitize_hexcolor(energy_color_input, desired_format=6, include_crunch=1)
|
||||||
|
user.update_inv_wear_suit()
|
||||||
|
if(helmet)
|
||||||
|
var/obj/item/clothing/head/helmet/space/hardsuit/lavaknight/H = helmet
|
||||||
|
H.energy_color = energy_color
|
||||||
|
user.update_inv_head()
|
||||||
|
H.update_icon()
|
||||||
|
update_icon()
|
||||||
|
user.update_inv_wear_suit()
|
||||||
|
light_color = energy_color
|
||||||
|
update_light()
|
||||||
|
|
||||||
|
/obj/item/clothing/suit/space/hardsuit/lavaknight/examine(mob/user)
|
||||||
|
..()
|
||||||
|
to_chat(user, "<span class='notice'>Alt-click to recolor it.</span>")
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 192 KiB After Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 349 KiB After Width: | Height: | Size: 353 KiB |
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 123 KiB |
@@ -1,83 +0,0 @@
|
|||||||
|
|
||||||
//Polychromatic Knight Badge
|
|
||||||
|
|
||||||
/obj/item/card/id/knight
|
|
||||||
var/id_color = "#00FF00" //defaults to green
|
|
||||||
name = "knight badge"
|
|
||||||
icon = 'modular_citadel/icons/obj/id.dmi'
|
|
||||||
icon_state = "knight"
|
|
||||||
desc = "A badge denoting the owner as a knight! It has a strip for swiping like an ID"
|
|
||||||
|
|
||||||
/obj/item/card/id/knight/update_label(newname, newjob)
|
|
||||||
. = ..()
|
|
||||||
if(newname || newjob)
|
|
||||||
name = "[(!newname) ? "identification card" : "[newname]'s Knight Badge"][(!newjob) ? "" : " ([newjob])"]"
|
|
||||||
return
|
|
||||||
|
|
||||||
name = "[(!registered_name) ? "identification card" : "[registered_name]'s Knight Badge"][(!assignment) ? "" : " ([assignment])"]"
|
|
||||||
|
|
||||||
/obj/item/card/id/knight/update_icon()
|
|
||||||
var/mutable_appearance/id_overlay = mutable_appearance('modular_citadel/icons/obj/id.dmi', "knight_overlay")
|
|
||||||
|
|
||||||
if(id_color)
|
|
||||||
id_overlay.color = id_color
|
|
||||||
cut_overlays()
|
|
||||||
|
|
||||||
add_overlay(id_overlay)
|
|
||||||
|
|
||||||
/obj/item/card/id/knight/AltClick(mob/living/user)
|
|
||||||
if(!in_range(src, user)) //Basic checks to prevent abuse
|
|
||||||
return
|
|
||||||
if(user.incapacitated() || !istype(user))
|
|
||||||
to_chat(user, "<span class='warning'>You can't do that right now!</span>")
|
|
||||||
return
|
|
||||||
if(alert("Are you sure you want to recolor your id?", "Confirm Repaint", "Yes", "No") == "Yes")
|
|
||||||
var/energy_color_input = input(usr,"","Choose Energy Color",id_color) as color|null
|
|
||||||
if(energy_color_input)
|
|
||||||
id_color = sanitize_hexcolor(energy_color_input, desired_format=6, include_crunch=1)
|
|
||||||
update_icon()
|
|
||||||
|
|
||||||
/obj/item/card/id/knight/Initialize()
|
|
||||||
. = ..()
|
|
||||||
update_icon()
|
|
||||||
|
|
||||||
/obj/item/card/id/knight/examine(mob/user)
|
|
||||||
..()
|
|
||||||
to_chat(user, "<span class='notice'>Alt-click to recolor it.</span>")
|
|
||||||
|
|
||||||
//=================================================
|
|
||||||
|
|
||||||
/obj/item/emagrecharge
|
|
||||||
name = "electromagnet charging device"
|
|
||||||
desc = "A small cell with two prongs lazily jabbed into it. It looks like it's made for charging the small batteries found in electromagnetic devices, sadly this can't be recharged like a normal cell."
|
|
||||||
icon = 'icons/obj/module.dmi'
|
|
||||||
icon_state = "cell_mini"
|
|
||||||
item_flags = NOBLUDGEON
|
|
||||||
var/uses = 5 //Dictates how many charges the device adds to compatible items
|
|
||||||
|
|
||||||
/obj/item/emagrecharge/examine(mob/user)
|
|
||||||
. = ..()
|
|
||||||
if(uses)
|
|
||||||
to_chat(user, "<span class='notice'>It can add up to [uses] charges to compatible devices</span>")
|
|
||||||
else
|
|
||||||
to_chat(user, "<span class='warning'>It has a small, red, blinking light coming from inside of it. It's spent.</span>")
|
|
||||||
|
|
||||||
/obj/item/card/emag
|
|
||||||
var/uses = 15
|
|
||||||
|
|
||||||
/obj/item/card/emag/examine(mob/user)
|
|
||||||
. = ..()
|
|
||||||
to_chat(user, "<span class='notice'>It has <b>[uses ? uses : "no"]</b> charges left.</span>")
|
|
||||||
|
|
||||||
/obj/item/card/emag/attackby(obj/item/W, mob/user, params)
|
|
||||||
if(istype(W, /obj/item/emagrecharge))
|
|
||||||
var/obj/item/emagrecharge/ER = W
|
|
||||||
if(ER.uses)
|
|
||||||
uses += ER.uses
|
|
||||||
to_chat(user, "<span class='notice'>You have added [ER.uses] charges to [src]. It now has [uses] charges.</span>")
|
|
||||||
playsound(src, "sparks", 100, 1)
|
|
||||||
ER.uses = 0
|
|
||||||
else
|
|
||||||
to_chat(user, "<span class='warning'>[ER] has no charges left.</span>")
|
|
||||||
return
|
|
||||||
. = ..()
|
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
/obj/effect/mob_spawn/human/lavaknight
|
|
||||||
name = "odd cryogenics pod"
|
|
||||||
desc = "A humming cryo pod. You can barely recognise a faint glow underneath the built up ice. The machine is attempting to wake up its occupant."
|
|
||||||
mob_name = "a displaced knight from another dimension"
|
|
||||||
icon = 'icons/obj/machines/sleeper.dmi'
|
|
||||||
icon_state = "sleeper"
|
|
||||||
roundstart = FALSE
|
|
||||||
job_description = "Cydonian Knight"
|
|
||||||
death = FALSE
|
|
||||||
random = TRUE
|
|
||||||
outfit = /datum/outfit/lavaknight
|
|
||||||
mob_species = /datum/species/human
|
|
||||||
flavour_text = "<font size=3><b>Y</b></font><b>ou are a knight who conveniently has some form of retrograde amnesia. \
|
|
||||||
You cannot remember where you came from. However, a few things remain burnt into your mind, most prominently a vow to never harm another sapient being under any circumstances unless it is hellbent on ending your life. \
|
|
||||||
Remember: hostile creatures and such are fair game for attacking, but <span class='danger'>under no circumstances are you to attack anything capable of thought and/or speech</span> unless it has made it its life's calling to chase you to the ends of the earth."
|
|
||||||
assignedrole = "Cydonian Knight"
|
|
||||||
|
|
||||||
/obj/effect/mob_spawn/human/lavaknight/special(mob/living/new_spawn)
|
|
||||||
if(ishuman(new_spawn))
|
|
||||||
var/mob/living/carbon/human/H = new_spawn
|
|
||||||
H.dna.features["mam_ears"] = "Cat, Big" //cat people
|
|
||||||
H.dna.features["mcolor"] = H.hair_color
|
|
||||||
H.update_body()
|
|
||||||
|
|
||||||
/obj/effect/mob_spawn/human/lavaknight/Destroy()
|
|
||||||
new/obj/structure/showcase/machinery/oldpod/used(drop_location())
|
|
||||||
return ..()
|
|
||||||
|
|
||||||
/datum/outfit/lavaknight
|
|
||||||
name = "Cydonian Knight"
|
|
||||||
uniform = /obj/item/clothing/under/assistantformal
|
|
||||||
mask = /obj/item/clothing/mask/breath
|
|
||||||
shoes = /obj/item/clothing/shoes/sneakers/black
|
|
||||||
r_pocket = /obj/item/melee/transforming/energy/sword/cx
|
|
||||||
suit = /obj/item/clothing/suit/space/hardsuit/lavaknight
|
|
||||||
suit_store = /obj/item/tank/internals/oxygen
|
|
||||||
id = /obj/item/card/id/knight
|
|
||||||
|
|
||||||
/datum/outfit/lavaknight/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
|
||||||
if(visualsOnly)
|
|
||||||
return
|
|
||||||
|
|
||||||
var/obj/item/card/id/knight/W = H.wear_id
|
|
||||||
W.assignment = "Knight"
|
|
||||||
W.registered_name = H.real_name
|
|
||||||
W.id_color = "#0000FF" //Regular knights get simple blue. Doesn't matter much because it's variable anyway
|
|
||||||
W.update_label(H.real_name)
|
|
||||||
W.update_icon()
|
|
||||||
|
|
||||||
/datum/outfit/lavaknight/captain
|
|
||||||
name ="Cydonian Knight Captain"
|
|
||||||
l_pocket = /obj/item/twohanded/dualsaber/hypereutactic
|
|
||||||
|
|
||||||
/datum/outfit/lavaknight/captain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
|
||||||
if(visualsOnly)
|
|
||||||
return
|
|
||||||
|
|
||||||
var/obj/item/card/id/knight/W = H.wear_id
|
|
||||||
W.assignment = "Knight Captain"
|
|
||||||
W.registered_name = H.real_name
|
|
||||||
W.id_color = "#FFD700" //Captains get gold, duh. Doesn't matter because it's variable anyway
|
|
||||||
W.update_label(H.real_name)
|
|
||||||
W.update_icon()
|
|
||||||
|
|
||||||
|
|
||||||
/obj/effect/mob_spawn/human/lavaknight/captain
|
|
||||||
name = "odd gilded cryogenics pod"
|
|
||||||
desc = "A humming cryo pod that appears to be gilded. You can barely recognise a faint glow underneath the built up ice. The machine is attempting to wake up its occupant."
|
|
||||||
flavour_text = "<font size=3><b>Y</b></font><b>ou are a knight who conveniently has some form of retrograde amnesia. \
|
|
||||||
You cannot remember where you came from. However, a few things remain burnt into your mind, most prominently a vow to never harm another sapient being under any circumstances unless it is hellbent on ending your life. \
|
|
||||||
Remember: hostile creatures and such are fair game for attacking, but <span class='danger'>under no circumstances are you to attack anything capable of thought and/or speech</span> unless it has made it its life's calling to chase you to the ends of the earth. \
|
|
||||||
You feel a natural instict to lead, and as such, you should strive to lead your comrades to safety, and hopefully home. You also feel a burning determination to uphold your vow, as well as your fellow comrade's."
|
|
||||||
outfit = /datum/outfit/lavaknight/captain
|
|
||||||
@@ -1,176 +0,0 @@
|
|||||||
/*
|
|
||||||
CYDONIAN ARMOR THAT IS RGB AND STUFF WOOOOOOOOOO
|
|
||||||
*/
|
|
||||||
|
|
||||||
/obj/item/clothing/head/helmet/space/hardsuit/lavaknight
|
|
||||||
name = "cydonian helmet"
|
|
||||||
desc = "A helmet designed with both form and function in mind, it protects the user against physical trauma and hazardous conditions while also having polychromic light strips."
|
|
||||||
icon = 'modular_citadel/icons/lavaknight/item/head.dmi'
|
|
||||||
icon_state = "knight_cydonia"
|
|
||||||
item_state = "knight_yellow"
|
|
||||||
item_color = null
|
|
||||||
alternate_worn_icon = 'modular_citadel/icons/lavaknight/mob/head.dmi'
|
|
||||||
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
|
||||||
resistance_flags = FIRE_PROOF | LAVA_PROOF
|
|
||||||
heat_protection = HEAD
|
|
||||||
armor = list(melee = 50, bullet = 10, laser = 10, energy = 10, bomb = 50, bio = 100, rad = 50, fire = 100, acid = 100)
|
|
||||||
brightness_on = 7
|
|
||||||
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator)
|
|
||||||
var/energy_color = "#35FFF0"
|
|
||||||
var/obj/item/clothing/suit/space/hardsuit/lavaknight/linkedsuit = null
|
|
||||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
|
||||||
|
|
||||||
/obj/item/clothing/head/helmet/space/hardsuit/lavaknight/New()
|
|
||||||
..()
|
|
||||||
if(istype(loc, /obj/item/clothing/suit/space/hardsuit/lavaknight))
|
|
||||||
linkedsuit = loc
|
|
||||||
|
|
||||||
/obj/item/clothing/head/helmet/space/hardsuit/lavaknight/attack_self(mob/user)
|
|
||||||
on = !on
|
|
||||||
|
|
||||||
if(on)
|
|
||||||
set_light(brightness_on)
|
|
||||||
else
|
|
||||||
set_light(0)
|
|
||||||
for(var/X in actions)
|
|
||||||
var/datum/action/A = X
|
|
||||||
A.UpdateButtonIcon()
|
|
||||||
|
|
||||||
/obj/item/clothing/head/helmet/space/hardsuit/lavaknight/update_icon()
|
|
||||||
var/mutable_appearance/helm_overlay = mutable_appearance('modular_citadel/icons/lavaknight/item/head.dmi', "knight_cydonia_overlay", LIGHTING_LAYER + 1)
|
|
||||||
|
|
||||||
if(energy_color)
|
|
||||||
helm_overlay.color = energy_color
|
|
||||||
|
|
||||||
helm_overlay.plane = LIGHTING_PLANE + 1 //Magic number is used here because we have no ABOVE_LIGHTING_PLANE plane defined. Lighting plane is 15, HUD is 18
|
|
||||||
|
|
||||||
cut_overlays() //So that it doesn't keep stacking overlays non-stop on top of each other
|
|
||||||
|
|
||||||
add_overlay(helm_overlay)
|
|
||||||
|
|
||||||
emissivelights()
|
|
||||||
|
|
||||||
/obj/item/clothing/head/helmet/space/hardsuit/lavaknight/equipped(mob/user, slot)
|
|
||||||
..()
|
|
||||||
if(slot == SLOT_HEAD)
|
|
||||||
emissivelights()
|
|
||||||
|
|
||||||
/obj/item/clothing/head/helmet/space/hardsuit/lavaknight/dropped(mob/user)
|
|
||||||
..()
|
|
||||||
emissivelightsoff()
|
|
||||||
|
|
||||||
/obj/item/clothing/head/helmet/space/hardsuit/lavaknight/proc/emissivelights(mob/user = usr)
|
|
||||||
var/mutable_appearance/energy_overlay = mutable_appearance('modular_citadel/icons/lavaknight/mob/head.dmi', "knight_cydonia_overlay", LIGHTING_LAYER + 1)
|
|
||||||
energy_overlay.color = energy_color
|
|
||||||
energy_overlay.plane = LIGHTING_PLANE + 1
|
|
||||||
user.cut_overlay(energy_overlay) //honk
|
|
||||||
user.add_overlay(energy_overlay) //honk
|
|
||||||
|
|
||||||
/obj/item/clothing/head/helmet/space/hardsuit/lavaknight/proc/emissivelightsoff(mob/user = usr)
|
|
||||||
user.cut_overlay()
|
|
||||||
linkedsuit.emissivelights() //HONK HONK HONK MAXIMUM SPAGHETTI
|
|
||||||
user.regenerate_icons() //honk
|
|
||||||
|
|
||||||
/obj/item/clothing/suit/space/hardsuit/lavaknight
|
|
||||||
icon = 'modular_citadel/icons/lavaknight/item/suit.dmi'
|
|
||||||
icon_state = "knight_cydonia"
|
|
||||||
name = "cydonian armor"
|
|
||||||
desc = "A suit designed with both form and function in mind, it protects the user against physical trauma and hazardous conditions while also having polychromic light strips."
|
|
||||||
item_state = "swat_suit"
|
|
||||||
alternate_worn_icon = 'modular_citadel/icons/lavaknight/mob/suit.dmi'
|
|
||||||
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
|
||||||
resistance_flags = FIRE_PROOF | LAVA_PROOF
|
|
||||||
armor = list(melee = 50, bullet = 10, laser = 10, energy = 10, bomb = 50, bio = 100, rad = 50, fire = 100, acid = 100)
|
|
||||||
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage/bag/ore, /obj/item/pickaxe)
|
|
||||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/lavaknight
|
|
||||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
|
||||||
actions_types = list(/datum/action/item_action/toggle_helmet)
|
|
||||||
var/obj/item/clothing/head/helmet/space/hardsuit/lavaknight/linkedhelm
|
|
||||||
tauric = TRUE //Citadel Add for tauric hardsuits
|
|
||||||
|
|
||||||
var/energy_color = "#35FFF0"
|
|
||||||
|
|
||||||
/obj/item/clothing/suit/space/hardsuit/lavaknight/New()
|
|
||||||
..()
|
|
||||||
if(helmet)
|
|
||||||
linkedhelm = helmet
|
|
||||||
light_color = energy_color
|
|
||||||
set_light(1)
|
|
||||||
|
|
||||||
/obj/item/clothing/suit/space/hardsuit/lavaknight/Initialize()
|
|
||||||
..()
|
|
||||||
update_icon()
|
|
||||||
|
|
||||||
/obj/item/clothing/suit/space/hardsuit/lavaknight/update_icon()
|
|
||||||
var/mutable_appearance/suit_overlay
|
|
||||||
|
|
||||||
if(taurmode == SNEK_TAURIC)
|
|
||||||
suit_overlay = mutable_appearance('modular_citadel/icons/mob/taur_naga.dmi', "knight_cydonia_overlay", LIGHTING_LAYER + 1)
|
|
||||||
else if(taurmode == PAW_TAURIC)
|
|
||||||
suit_overlay = mutable_appearance('modular_citadel/icons/mob/taur_canine.dmi', "knight_cydonia_overlay", LIGHTING_LAYER + 1)
|
|
||||||
else
|
|
||||||
suit_overlay = mutable_appearance('modular_citadel/icons/lavaknight/item/suit.dmi', "knight_cydonia_overlay", LIGHTING_LAYER + 1)
|
|
||||||
|
|
||||||
if(energy_color)
|
|
||||||
suit_overlay.color = energy_color
|
|
||||||
|
|
||||||
suit_overlay.plane = LIGHTING_PLANE + 1 //Magic number is used here because we have no ABOVE_LIGHTING_PLANE plane defined. Lighting plane is 15.
|
|
||||||
|
|
||||||
cut_overlays() //So that it doesn't keep stacking overlays non-stop on top of each other
|
|
||||||
|
|
||||||
add_overlay(suit_overlay)
|
|
||||||
|
|
||||||
/obj/item/clothing/suit/space/hardsuit/lavaknight/equipped(mob/user, slot)
|
|
||||||
..()
|
|
||||||
if(slot == SLOT_WEAR_SUIT)
|
|
||||||
emissivelights()
|
|
||||||
|
|
||||||
/obj/item/clothing/suit/space/hardsuit/lavaknight/dropped(mob/user)
|
|
||||||
..()
|
|
||||||
emissivelightsoff()
|
|
||||||
|
|
||||||
/obj/item/clothing/suit/space/hardsuit/lavaknight/proc/emissivelights(mob/user = usr)
|
|
||||||
var/mutable_appearance/energy_overlay
|
|
||||||
if(taurmode == SNEK_TAURIC)
|
|
||||||
energy_overlay = mutable_appearance('modular_citadel/icons/mob/taur_naga.dmi', "knight_cydonia_overlay", LIGHTING_LAYER + 1)
|
|
||||||
else if(taurmode == PAW_TAURIC)
|
|
||||||
energy_overlay = mutable_appearance('modular_citadel/icons/mob/taur_canine.dmi', "knight_cydonia_overlay", LIGHTING_LAYER + 1)
|
|
||||||
else
|
|
||||||
energy_overlay = mutable_appearance('modular_citadel/icons/lavaknight/mob/suit.dmi', "knight_cydonia_overlay", LIGHTING_LAYER + 1)
|
|
||||||
|
|
||||||
energy_overlay.color = energy_color
|
|
||||||
energy_overlay.plane = LIGHTING_PLANE + 1
|
|
||||||
user.cut_overlay(energy_overlay) //honk
|
|
||||||
user.add_overlay(energy_overlay) //honk
|
|
||||||
|
|
||||||
/obj/item/clothing/suit/space/hardsuit/lavaknight/proc/emissivelightsoff(mob/user = usr)
|
|
||||||
user.cut_overlays()
|
|
||||||
user.regenerate_icons() //honk
|
|
||||||
|
|
||||||
/obj/item/clothing/suit/space/hardsuit/lavaknight/AltClick(mob/living/user)
|
|
||||||
if(user.incapacitated() || !istype(user))
|
|
||||||
to_chat(user, "<span class='warning'>You can't do that right now!</span>")
|
|
||||||
return
|
|
||||||
if(!in_range(src, user))
|
|
||||||
return
|
|
||||||
if(user.incapacitated() || !istype(user) || !in_range(src, user))
|
|
||||||
return
|
|
||||||
|
|
||||||
if(alert("Are you sure you want to recolor your armor stripes?", "Confirm Repaint", "Yes", "No") == "Yes")
|
|
||||||
var/energy_color_input = input(usr,"","Choose Energy Color",energy_color) as color|null
|
|
||||||
if(energy_color_input)
|
|
||||||
energy_color = sanitize_hexcolor(energy_color_input, desired_format=6, include_crunch=1)
|
|
||||||
user.update_inv_wear_suit()
|
|
||||||
if(linkedhelm)
|
|
||||||
linkedhelm.energy_color = sanitize_hexcolor(energy_color_input, desired_format=6, include_crunch=1)
|
|
||||||
user.update_inv_head()
|
|
||||||
linkedhelm.update_icon()
|
|
||||||
update_icon()
|
|
||||||
user.update_inv_wear_suit()
|
|
||||||
light_color = energy_color
|
|
||||||
emissivelights()
|
|
||||||
update_light()
|
|
||||||
|
|
||||||
/obj/item/clothing/suit/space/hardsuit/lavaknight/examine(mob/user)
|
|
||||||
..()
|
|
||||||
to_chat(user, "<span class='notice'>Alt-click to recolor it.</span>")
|
|
||||||
|
Before Width: | Height: | Size: 377 B |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 568 B |
|
Before Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 477 B |
@@ -2983,7 +2983,6 @@
|
|||||||
#include "modular_citadel\code\game\machinery\doors\airlock.dm"
|
#include "modular_citadel\code\game\machinery\doors\airlock.dm"
|
||||||
#include "modular_citadel\code\game\machinery\doors\airlock_types.dm"
|
#include "modular_citadel\code\game\machinery\doors\airlock_types.dm"
|
||||||
#include "modular_citadel\code\game\objects\cit_screenshake.dm"
|
#include "modular_citadel\code\game\objects\cit_screenshake.dm"
|
||||||
#include "modular_citadel\code\game\objects\ids.dm"
|
|
||||||
#include "modular_citadel\code\game\objects\items.dm"
|
#include "modular_citadel\code\game\objects\items.dm"
|
||||||
#include "modular_citadel\code\game\objects\tools.dm"
|
#include "modular_citadel\code\game\objects\tools.dm"
|
||||||
#include "modular_citadel\code\game\objects\effects\spawner\spawners.dm"
|
#include "modular_citadel\code\game\objects\effects\spawner\spawners.dm"
|
||||||
@@ -3025,7 +3024,6 @@
|
|||||||
#include "modular_citadel\code\modules\arousal\organs\vagina.dm"
|
#include "modular_citadel\code\modules\arousal\organs\vagina.dm"
|
||||||
#include "modular_citadel\code\modules\arousal\organs\womb.dm"
|
#include "modular_citadel\code\modules\arousal\organs\womb.dm"
|
||||||
#include "modular_citadel\code\modules\arousal\toys\dildos.dm"
|
#include "modular_citadel\code\modules\arousal\toys\dildos.dm"
|
||||||
#include "modular_citadel\code\modules\awaymissions\citadel_ghostrole_spawners.dm"
|
|
||||||
#include "modular_citadel\code\modules\cargo\console.dm"
|
#include "modular_citadel\code\modules\cargo\console.dm"
|
||||||
#include "modular_citadel\code\modules\client\client_defines.dm"
|
#include "modular_citadel\code\modules\client\client_defines.dm"
|
||||||
#include "modular_citadel\code\modules\client\client_procs.dm"
|
#include "modular_citadel\code\modules\client\client_procs.dm"
|
||||||
@@ -3052,7 +3050,6 @@
|
|||||||
#include "modular_citadel\code\modules\clothing\neck.dm"
|
#include "modular_citadel\code\modules\clothing\neck.dm"
|
||||||
#include "modular_citadel\code\modules\clothing\glasses\phantomthief.dm"
|
#include "modular_citadel\code\modules\clothing\glasses\phantomthief.dm"
|
||||||
#include "modular_citadel\code\modules\clothing\head\head.dm"
|
#include "modular_citadel\code\modules\clothing\head\head.dm"
|
||||||
#include "modular_citadel\code\modules\clothing\spacesuits\cydonian_armor.dm"
|
|
||||||
#include "modular_citadel\code\modules\clothing\spacesuits\flightsuit.dm"
|
#include "modular_citadel\code\modules\clothing\spacesuits\flightsuit.dm"
|
||||||
#include "modular_citadel\code\modules\clothing\suits\polychromic_cloaks.dm"
|
#include "modular_citadel\code\modules\clothing\suits\polychromic_cloaks.dm"
|
||||||
#include "modular_citadel\code\modules\clothing\suits\suits.dm"
|
#include "modular_citadel\code\modules\clothing\suits\suits.dm"
|
||||||
|
|||||||