Files
CHOMPStation2/code/game/objects/items/paintkit.dm
2015-05-13 17:04:52 +09:30

178 lines
6.1 KiB
Plaintext

/obj/item/device/kit
icon_state = "modkit"
icon = 'icons/obj/device.dmi'
var/new_name = "mech" //What is the variant called?
var/new_desc = "A mech." //How is the new mech described?
var/new_icon = "ripley" //What base icon will the new mech use?
var/new_icon_file
var/uses = 1 // Uses before the kit deletes itself.
/obj/item/device/kit/examine()
..()
usr << "It has [uses] [uses>1?"uses":"use"] left."
/obj/item/device/kit/proc/use(var/amt, var/mob/user)
uses -= amt
playsound(get_turf(user), 'sound/items/Screwdriver.ogg', 50, 1)
if(uses<1)
user.drop_item()
qdel(src)
// Root hardsuit kit defines.
// Icons for modified hardsuits need to be in the proper .dmis because suit cyclers may cock them up.
/obj/item/device/kit/suit
name = "voidsuit modification kit"
desc = "A kit for modifying a voidsuit."
uses = 2
var/new_light_overlay
var/new_mob_icon_file
/obj/item/clothing/head/helmet/space/void/attackby(var/obj/item/O, var/mob/user)
if(istype(O,/obj/item/device/kit/suit))
var/obj/item/device/kit/suit/kit = O
name = "[kit.new_name] suit helmet"
desc = kit.new_desc
icon_state = "[kit.new_icon]_helmet"
item_state = "[kit.new_icon]_helmet"
if(kit.new_icon_file)
icon = kit.new_icon_file
if(kit.new_mob_icon_file)
icon_override = kit.new_mob_icon_file
if(kit.new_light_overlay)
light_overlay = kit.new_light_overlay
user << "You set about modifying the helmet into [src]."
var/mob/living/carbon/human/H = user
if(istype(H))
species_restricted = list(H.species.name)
kit.use(1,user)
return 1
return ..()
/obj/item/clothing/suit/space/void/attackby(var/obj/item/O, var/mob/user)
if(istype(O,/obj/item/device/kit/suit))
var/obj/item/device/kit/suit/kit = O
name = "[kit.new_name] voidsuit"
desc = kit.new_desc
icon_state = "[kit.new_icon]_suit"
item_state = "[kit.new_icon]_suit"
if(kit.new_icon_file)
icon = kit.new_icon_file
if(kit.new_mob_icon_file)
icon_override = kit.new_mob_icon_file
user << "You set about modifying the suit into [src]."
var/mob/living/carbon/human/H = user
if(istype(H))
species_restricted = list(H.species.name)
kit.use(1,user)
return 1
return ..()
/obj/item/device/kit/paint
name = "mecha customisation kit"
desc = "A kit containing all the needed tools and parts to repaint a mech."
var/removable = null
var/list/allowed_types = list()
/obj/item/device/kit/paint/examine()
..()
usr << "This kit will convert an exosuit into: [new_name]."
usr << "This kit can be used on the following exosuit models:"
for(var/exotype in allowed_types)
usr << "- [capitalize(exotype)]"
/obj/mecha/attackby(var/obj/item/weapon/W, var/mob/user)
if(istype(W, /obj/item/device/kit/paint))
if(occupant)
user << "You can't customize a mech while someone is piloting it - that would be unsafe!"
return
var/obj/item/device/kit/paint/P = W
var/found = null
for(var/type in P.allowed_types)
if(type==src.initial_icon)
found = 1
break
if(!found)
user << "That kit isn't meant for use on this class of exosuit."
return
user.visible_message("[user] opens [P] and spends some quality time customising [src].")
src.name = P.new_name
src.desc = P.new_desc
src.initial_icon = P.new_icon
if(P.new_icon_file)
src.icon = P.new_icon_file
src.reset_icon()
P.use(1, user)
return 1
else
return ..()
//Ripley APLU kits.
/obj/item/device/kit/paint/ripley
name = "\"Classic\" APLU customisation kit"
new_name = "APLU \"Classic\""
new_desc = "A very retro APLU unit; didn't they retire these back in 2543?"
new_icon = "ripley-old"
allowed_types = list("ripley")
/obj/item/device/kit/paint/ripley/death
name = "\"Reaper\" APLU customisation kit"
new_name = "APLU \"Reaper\""
new_desc = "A terrifying, grim power loader. Why do those clamps have spikes?"
new_icon = "deathripley"
allowed_types = list("ripley","firefighter")
/obj/item/device/kit/paint/ripley/flames_red
name = "\"Firestarter\" APLU customisation kit"
new_name = "APLU \"Firestarter\""
new_desc = "A standard APLU exosuit with stylish orange flame decals."
new_icon = "ripley_flames_red"
/obj/item/device/kit/paint/ripley/flames_blue
name = "\"Burning Chrome\" APLU customisation kit"
new_name = "APLU \"Burning Chrome\""
new_desc = "A standard APLU exosuit with stylish blue flame decals."
new_icon = "ripley_flames_blue"
// Durand kits.
/obj/item/device/kit/paint/durand
name = "\"Classic\" Durand customisation kit"
new_name = "Durand \"Classic\""
new_desc = "An older model of Durand combat exosuit. This model was retired for rotating a pilot's torso 180 degrees."
new_icon = "old_durand"
allowed_types = list("durand")
/obj/item/device/kit/paint/durand/seraph
name = "\"Cherubim\" Durand customisation kit"
new_name = "Durand \"Cherubim\""
new_desc = "A Durand combat exosuit modelled after ancient Earth entertainment. Your heart goes doki-doki just looking at it."
new_icon = "old_durand"
/obj/item/device/kit/paint/durand/phazon
name = "\"Sypher\" Durand customisation kit"
new_name = "Durand \"Sypher\""
new_desc = "A Durand combat exosuit with some very stylish neons and decals. Seems to blur slightly at the edges; probably an optical illusion."
new_icon = "phazon"
// Gygax kits.
/obj/item/device/kit/paint/gygax
name = "\"Jester\" Gygax customisation kit"
new_name = "Gygax \"Jester\""
new_desc = "A Gygax exosuit modelled after the infamous combat-troubadors of Earth's distant past. Terrifying to behold."
new_icon = "honker"
allowed_types = list("gygax")
/obj/item/device/kit/paint/gygax/darkgygax
name = "\"Silhouette\" Gygax customisation kit"
new_name = "Gygax \"Silhouette\""
new_desc = "An ominous Gygax exosuit modelled after the fictional corporate 'death squads' that were popular in pulp action-thrillers back in 2554."
new_icon = "darkgygax"
/obj/item/device/kit/paint/gygax/recitence
name = "\"Gaoler\" Gygax customisation kit"
new_name = "Durand \"Gaoler\""
new_desc = "A bulky silver Gygax exosuit. The extra armour appears to be painted on, but it's very shiny."
new_icon = "recitence"