More work on custom gear.

This commit is contained in:
Zuhayr
2014-06-29 04:22:09 +09:30
parent 4236ddc11c
commit 19bb5014a9
6 changed files with 160 additions and 38 deletions

View File

@@ -79,13 +79,6 @@ datum/controller/game_controller/proc/setup()
for(var/i=0, i<max_secret_rooms, i++)
make_mining_asteroid_secret()
//Create the mining ore distribution map.
var/datum/ore_distribution/O = new()
O.populate_distribution_map()
//Set up spawn points.
populate_spawn_points()
spawn(0)
if(ticker)
ticker.pregame()
@@ -114,6 +107,17 @@ datum/controller/game_controller/proc/setup_objects()
var/obj/machinery/atmospherics/unary/vent_scrubber/T = U
T.broadcast_status()
//Create the mining ore distribution map.
world << "<b><font color='red'>Generating resource distribution map.</b></font>"
var/datum/ore_distribution/O = new()
O.populate_distribution_map()
//Set up spawn points.
populate_spawn_points()
//Set up gear list.
populate_gear_list()
world << "\red \b Initializations complete."
sleep(-1)

View File

@@ -75,7 +75,7 @@ datum/preferences
var/b_eyes = 0 //Eye color
var/species = "Human" //Species datum to use.
var/language = "None" //Secondary language
var/datum/gear //Custom/fluff item loadout.
var/list/gear //Custom/fluff item loadout.
//Mob preview
var/icon/preview_icon = null
@@ -132,7 +132,7 @@ datum/preferences
gender = pick(MALE, FEMALE)
real_name = random_name(gender)
gear = new /datum/gear()
gear = list()
/datum/preferences
proc/ZeroSkills(var/forced = 0)
@@ -342,6 +342,22 @@ datum/preferences
else
dat += "<br><br>"
dat += "<b>Custom Loadout:</b> "
var/total_cost = 0
if(gear && gear.len)
dat += "<br>"
for(var/gear_name in gear)
if(gear_datums[gear_name])
var/datum/gear/G = gear_datums[gear_name]
total_cost += G.cost
dat += "[gear_name] ([G.cost]) "
dat += "<a href='byond://?src=\ref[user];preference=loadout;task=remove;gear=[gear_name]'>\[remove\]</a><br>"
if(total_cost < MAX_GEAR_COST)
dat += "<a href='byond://?src=\ref[user];preference=loadout;task=input'>\[add\]</a><br>"
dat += "<b>Used:</b> [total_cost] points.<br>"
else
dat += "none.<br>"
if(gender == MALE)
dat += "Underwear: <a href ='?_src_=prefs;preference=underwear;task=input'><b>[underwear_m[underwear]]</b></a><br>"
else
@@ -837,6 +853,22 @@ datum/preferences
ShowChoices(user)
return 1
else if (href_list["preference"] == "loadout")
if(href_list["task"] == "input")
var/choice = input("Select gear to add.") as null|anything in gear_datums
if(choice && gear_datums[choice])
gear += choice
else if(href_list["task"] == "remove")
var/to_remove = href_list["gear"]
if(!to_remove) return
for(var/gear_name in gear)
if(gear_name == to_remove)
gear -= gear_name
break
switch(href_list["task"])
if("random")
switch(href_list["preference"])

View File

@@ -1,43 +1,131 @@
var/global/list/gear_datums = list()
proc/populate_gear_list()
for(var/type in typesof(/datum/gear)-/datum/gear)
var/datum/gear/G = new type()
gear_datums[G.display_name] = G
/datum/gear
display_name
display_icon //Icon for preview.
display_icon_name //Icon state for preview.
path //Path to item.
cost //Number of points used.
var/display_name //Name/index.
var/path //Path to item.
var/cost //Number of points used.
var/slot //Slot to equip to.
var/list/allowed_roles //Roles that can spawn with this item.
//Standard gear datums.
/datum/gear/tie_horrible
display_name = "Horrible tie"
display_icon = 'icons/obj/clothing/ties.dmi'
display_icon_name = "horribletie"
display_name = "horrible tie"
path = /obj/item/clothing/tie/horrible
cost = 2
/datum/gear/hairflower
display_name = "hair flower pin"
path = /obj/item/clothing/head/hairflower
cost = 1
slot = SLOT_HEAD
/datum/gear/bandana
display_name = "pirate bandana"
path = /obj/item/clothing/head/bandana
cost = 1
slot = SLOT_HEAD
/datum/gear/overalls
display_name = "overalls"
path = /obj/item/clothing/suit/apron/overalls
cost = 1
slot = SLOT_OCLOTHING
/datum/gear/wcoat
display_name = "waistcoat"
path = /obj/item/clothing/suit/wcoat
cost = 1
slot = SLOT_OCLOTHING
/datum/gear/prescription
display_name = "prescription sunglasses"
path = /obj/item/clothing/glasses/sunglasses/prescription
cost = 2
slot = SLOT_EYES
/datum/gear/eyepatch
display_name = "eyepatch"
path = /obj/item/clothing/glasses/eyepatch
cost = 1
slot = SLOT_EYES
/datum/gear/flatcap
display_name = "flat cap"
path = /obj/item/clothing/head/flatcap
cost = 1
slot = SLOT_HEAD
/datum/gear/labcoat
display_name = "labcoat"
path = /obj/item/clothing/suit/storage/labcoat
cost = 2
slot = SLOT_OCLOTHING
/datum/gear/sandal
display_name = "sandals"
path = /obj/item/clothing/shoes/sandal
cost = 1
slot = SLOT_FEET
/datum/gear/leather
display_name = "leather shoes"
path = /obj/item/clothing/shoes/leather
cost = 1
slot = SLOT_FEET
/datum/gear/dress_shoes
display_name = "dress shoes"
path = /obj/item/clothing/shoes/centcom
cost = 1
slot = SLOT_FEET
//Security
/datum/gear/security
display_name = "Security HUD"
path = /obj/item/clothing/glasses/hud/security
cost = 1
slot = SLOT_EYES
allowed_roles = list("Security Officer","Head of Security","Warden")
/datum/gear/sec_beret
display_name = "security beret"
path = /obj/item/clothing/head/beret/sec
cost = 1
slot = SLOT_HEAD
allowed_roles = list("Security Officer","Head of Security","Warden")
//Engineering
/datum/gear/eng_beret
display_name = "engineering beret"
path = /obj/item/clothing/head/beret/eng
cost = 1
slot = SLOT_HEAD
allowed_roles = list("Station Engineering","Atmospheric Technician","Chief Engineer")
//Species-specific gear datums.
/datum/gear/zhan_furs
display_name = "Zhan-Khazan furs"
display_icon = ''
display_icon_name = "zhan_furs"
path = /obj/item/clothing/suit/tajaran/furs
cost = 3
/datum/gear/zhan_scarf
display_name = "Zhan-Khazan headscarf"
display_icon = ''
display_icon_name = "zhan_scarf"
path = /obj/item/clothing/head/tajaran/scarf
cost = 2
/datum/gear/unathi_robe
display_name = "Roughspun robe"
display_icon = ''
display_icon_name = ""
path =
display_name = "roughspun robe"
path = /obj/item/clothing/suit/unathi/robe
cost = 3
slot = SLOT_OCLOTHING
/datum/gear/unathi_mantle
display_name = "Hide mantle"
display_icon = ''
display_icon_name = ""
path =
cost = 2
display_name = "hide mantle"
path = /obj/item/clothing/suit/unathi/mantle
cost = 2
slot = SLOT_OCLOTHING

View File

@@ -75,9 +75,6 @@ Deep minerals:
//Halfassed diamond-square algorithm with some fuckery since it's a single dimension array.
/datum/ore_distribution/proc/populate_distribution_map()
//Announce it!
world << "<b><font color='red'>Generating resource distribution map.</b></font>"
//Seed beginning values.
var/x = 1
var/y = 1

View File

@@ -170,7 +170,7 @@
flesh_color = "#AFA59E"
custom_gear_options = list(
/obj/item/clothing/head/tajaran/scarf
/obj/item/clothing/head/tajaran/scarf,
/obj/item/clothing/suit/tajaran/furs
)

View File

@@ -796,14 +796,15 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse
#define IDLE_STATE 0
#define WAIT_LAUNCH 1
#define WAIT_ARRIVE 2
#define WAIT_FINISH 3
#define WAIT_FINISH 3
//computer3 error codes, move lower in the file when it passes dev -Sayu
#define PROG_CRASH 1 // Generic crash
#define MISSING_PERIPHERAL 2 // Missing hardware
#define BUSTED_ASS_COMPUTER 4 // Self-perpetuating error. BAC will continue to crash forever.
#define MISSING_PROGRAM 8 // Some files try to automatically launch a program. This is that failing.
#define FILE_DRM 16 // Some files want to not be copied/moved. This is them complaining that you tried.
#define NETWORK_FAILURE 32
#define NETWORK_FAILURE 32
#define MAX_GEAR_COST 5 //Used in chargen for loadout limit.