mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-20 15:21:29 +00:00
64 lines
3.7 KiB
Plaintext
64 lines
3.7 KiB
Plaintext
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
|
|
|
|
/***************************************************************
|
|
** Design Datums **
|
|
** All the data for building stuff and tracking reliability. **
|
|
***************************************************************/
|
|
/*
|
|
For the materials datum, it assumes you need reagents unless specified otherwise. To designate a material that isn't a reagent,
|
|
you use one of the material IDs below. These are NOT ids in the usual sense (they aren't defined in the object or part of a datum),
|
|
they are simply references used as part of a "has materials?" type proc. They all start with a $ to denote that they aren't reagents.
|
|
The currently supporting non-reagent materials:
|
|
- MAT_METAL (/obj/item/stack/metal).
|
|
- MAT_GLASS (/obj/item/stack/glass).
|
|
- MAT_PLASMA (/obj/item/stack/plasma).
|
|
- MAT_SILVER (/obj/item/stack/silver).
|
|
- MAT_GOLD (/obj/item/stack/gold).
|
|
- MAT_URANIUM (/obj/item/stack/uranium).
|
|
- MAT_DIAMOND (/obj/item/stack/diamond).
|
|
- MAT_BANANIUM (/obj/item/stack/bananium).
|
|
- MAT_TRANQUILLITE (/obj/item/stack/tranquillite).
|
|
(Insert new ones here)
|
|
|
|
Don't add new keyword/IDs if they are made from an existing one (such as rods which are made from metal). Only add raw materials.
|
|
|
|
Design Guidlines
|
|
- The reliability formula for all R&D built items is reliability (a fixed number) + total tech levels required to make it +
|
|
reliability_mod (starts at 0, gets improved through experimentation). Example: PACMAN generator. 79 base reliablity + 6 tech
|
|
(3 plasmatech, 3 powerstorage) + 0 (since it's completely new) = 85% reliability. Reliability is the chance it works CORRECTLY.
|
|
- When adding new designs, check rdreadme.dm to see what kind of things have already been made and where new stuff is needed.
|
|
- A single sheet of anything is 2000 units of material. Materials besides metal/glass require help from other jobs (mining for
|
|
other types of metals and chemistry for reagents).
|
|
- Add the AUTOLATHE tag to
|
|
|
|
|
|
*/
|
|
|
|
/datum/design //Datum for object designs, used in construction
|
|
var/name = "Name" //Name of the created object.
|
|
var/desc = "Desc" //Description of the created object.
|
|
var/id = "id" //ID of the created object for easy refernece. Alphanumeric, lower-case, no symbols
|
|
var/list/req_tech = list() //IDs of that techs the object originated from and the minimum level requirements.
|
|
var/reliability = 100 //Reliability of the device.
|
|
var/build_type = null //Flag as to what kind machine the design is built in. See defines.
|
|
var/list/materials = list() //List of materials. Format: "id" = amount.
|
|
var/construction_time //Amount of time required for building the object
|
|
var/build_path = "" //The file path of the object that gets created
|
|
var/locked = 0 //If true it will spawn inside a lockbox with currently sec access
|
|
var/access_requirement = list(access_armory) //What special access requirements will the lockbox have? Defaults to armory.
|
|
var/category = null //Primarily used for Mech Fabricators, but can be used for anything
|
|
var/list/reagents = list() //List of reagents. Format: "id" = amount.
|
|
var/maxstack = 1
|
|
var/lathe_time_factor = 1 //How many times faster than normal is this to build on the protolathe
|
|
|
|
//A proc to calculate the reliability of a design based on tech levels and innate modifiers.
|
|
//Input: A list of /datum/tech; Output: The new reliabilty.
|
|
/datum/design/proc/CalcReliability(var/list/temp_techs)
|
|
var/new_reliability
|
|
for(var/datum/tech/T in temp_techs)
|
|
if(T.id in req_tech)
|
|
new_reliability += T.level
|
|
new_reliability = Clamp(new_reliability, reliability, 100)
|
|
reliability = new_reliability
|
|
return
|