mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
- I added in the foundations for traitor factions. See factions.dm for all the different faction datums. They don't do anything yet. - I completely ported mob/var/mutations from a bitfield to a generic list. Mutation enumerated-identifiers are added into this list. For instance, TK = 1, COLD_RESISTANCE = 2, XRAY = 3, etc... The purpose of this was because bitwise operations could not actually be used after a certain size (because BYOND is stuck in the 16bit era). - I've added in completely-functional nano-augmentations. Check under implantnanoaug.dm for a list of implants and implaners. As mentioned previously, they are completely functional but may be slightly OP. Among these nanoaugs are Super Strength, Psionic Radar, Electric Hands, Energy Blade/Sword Synthesizer, Rebreather, Dermal Armor, Combat Reflexes, and Regenerative Nanorobots. I won't go into detail as to what they do, but hopefully they should be self-explanitory. If not, check out their descriptions in the file previously mentioned. - Added in a future traitor item, the Mind Batterer. Along with it a new .ogg file. - New telecomms bus mainframe sprite, thanks to WJohnston. - New holdable shield, sprites courtesy of Muncher (i had to mangle the side sprites because of a technical little issue. I'll change it back to the original soon). It can be retracted and expanded. Probably only going to be given to traitors. - A couple of minor bugfixes here and there, along with some code tidying. Hope this isn't too large a commit. I intended it to be MUCH larger, but I've decided to split up my Traitor Factions expansion into smaller commits. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3692 316c924e-a436-60f5-8080-3fe189b3f50e
372 lines
13 KiB
Plaintext
372 lines
13 KiB
Plaintext
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
|
|
|
|
#define PI 3.1415
|
|
|
|
#define R_IDEAL_GAS_EQUATION 8.31 //kPa*L/(K*mol)
|
|
#define ONE_ATMOSPHERE 101.325 //kPa
|
|
|
|
#define CELL_VOLUME 2500 //liters in a cell
|
|
#define MOLES_CELLSTANDARD (ONE_ATMOSPHERE*CELL_VOLUME/(T20C*R_IDEAL_GAS_EQUATION)) //moles in a 2.5 m^3 cell at 101.325 Pa and 20 degC
|
|
|
|
#define O2STANDARD 0.21
|
|
#define N2STANDARD 0.79
|
|
|
|
#define MOLES_O2STANDARD MOLES_CELLSTANDARD*O2STANDARD // O2 standard value (21%)
|
|
#define MOLES_N2STANDARD MOLES_CELLSTANDARD*N2STANDARD // N2 standard value (79%)
|
|
|
|
#define MOLES_PLASMA_VISIBLE 0.5 //Moles in a standard cell after which plasma is visible
|
|
|
|
#define BREATH_VOLUME 0.5 //liters in a normal breath
|
|
#define BREATH_PERCENTAGE BREATH_VOLUME/CELL_VOLUME
|
|
//Amount of air to take a from a tile
|
|
#define HUMAN_NEEDED_OXYGEN MOLES_CELLSTANDARD*BREATH_PERCENTAGE*0.16
|
|
//Amount of air needed before pass out/suffocation commences
|
|
|
|
// Pressure limits.
|
|
#define HAZARD_HIGH_PRESSURE 750
|
|
#define HIGH_STEP_PRESSURE HAZARD_HIGH_PRESSURE/2
|
|
#define WARNING_HIGH_PRESSURE HAZARD_HIGH_PRESSURE*0.7
|
|
#define HAZARD_LOW_PRESSURE 20
|
|
#define WARNING_LOW_PRESSURE HAZARD_LOW_PRESSURE*2.5
|
|
#define MAX_PRESSURE_DAMAGE 20
|
|
|
|
// Doors!
|
|
#define DOOR_CRUSH_DAMAGE 10
|
|
|
|
// Factor of how fast mob nutrition decreases
|
|
#define HUNGER_FACTOR 0.1
|
|
#define REAGENTS_METABOLISM 0.4
|
|
|
|
#define MINIMUM_AIR_RATIO_TO_SUSPEND 0.05
|
|
//Minimum ratio of air that must move to/from a tile to suspend group processing
|
|
#define MINIMUM_AIR_TO_SUSPEND MOLES_CELLSTANDARD*MINIMUM_AIR_RATIO_TO_SUSPEND
|
|
//Minimum amount of air that has to move before a group processing can be suspended
|
|
|
|
#define MINIMUM_MOLES_DELTA_TO_MOVE MOLES_CELLSTANDARD*MINIMUM_AIR_RATIO_TO_SUSPEND //Either this must be active
|
|
#define MINIMUM_TEMPERATURE_TO_MOVE T20C+100 //or this (or both, obviously)
|
|
|
|
#define MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND 0.012
|
|
#define MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND 4
|
|
//Minimum temperature difference before group processing is suspended
|
|
#define MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER 0.5
|
|
//Minimum temperature difference before the gas temperatures are just set to be equal
|
|
|
|
#define MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION T20C+10
|
|
#define MINIMUM_TEMPERATURE_START_SUPERCONDUCTION T20C+200
|
|
|
|
#define FLOOR_HEAT_TRANSFER_COEFFICIENT 0.08
|
|
#define WALL_HEAT_TRANSFER_COEFFICIENT 0.03
|
|
#define SPACE_HEAT_TRANSFER_COEFFICIENT 0.20 //a hack to partly simulate radiative heat
|
|
#define OPEN_HEAT_TRANSFER_COEFFICIENT 0.40
|
|
#define WINDOW_HEAT_TRANSFER_COEFFICIENT 0.10 //a hack for now
|
|
//Must be between 0 and 1. Values closer to 1 equalize temperature faster
|
|
//Should not exceed 0.4 else strange heat flow occur
|
|
|
|
#define FIRE_MINIMUM_TEMPERATURE_TO_SPREAD 150+T0C
|
|
#define FIRE_MINIMUM_TEMPERATURE_TO_EXIST 100+T0C
|
|
#define FIRE_SPREAD_RADIOSITY_SCALE 0.85
|
|
#define FIRE_CARBON_ENERGY_RELEASED 500000 //Amount of heat released per mole of burnt carbon into the tile
|
|
#define FIRE_PLASMA_ENERGY_RELEASED 3000000 //Amount of heat released per mole of burnt plasma into the tile
|
|
#define FIRE_GROWTH_RATE 25000 //For small fires
|
|
|
|
//Plasma fire properties
|
|
#define PLASMA_MINIMUM_BURN_TEMPERATURE 100+T0C
|
|
#define PLASMA_UPPER_TEMPERATURE 1370+T0C
|
|
#define PLASMA_MINIMUM_OXYGEN_NEEDED 2
|
|
#define PLASMA_MINIMUM_OXYGEN_PLASMA_RATIO 30
|
|
#define PLASMA_OXYGEN_FULLBURN 10
|
|
|
|
#define T0C 273.15 // 0degC
|
|
#define T20C 293.15 // 20degC
|
|
#define TCMB 2.7 // -270.3degC
|
|
|
|
#define TANK_LEAK_PRESSURE (30.*ONE_ATMOSPHERE) // Tank starts leaking
|
|
#define TANK_RUPTURE_PRESSURE (40.*ONE_ATMOSPHERE) // Tank spills all contents into atmosphere
|
|
|
|
#define TANK_FRAGMENT_PRESSURE (50.*ONE_ATMOSPHERE) // Boom 3x3 base explosion
|
|
#define TANK_FRAGMENT_SCALE (10.*ONE_ATMOSPHERE) // +1 for each SCALE kPa aboe threshold
|
|
// was 2 atm
|
|
|
|
//This was a define, but I changed it to a variable so it can be changed in-game.(kept the all-caps definition because... code...) -Errorage
|
|
var/MAX_EXPLOSION_RANGE = 14
|
|
//#define MAX_EXPLOSION_RANGE 14 // Defaults to 12 (was 8) -- TLE
|
|
|
|
|
|
#define NORMPIPERATE 30 //pipe-insulation rate divisor
|
|
#define HEATPIPERATE 8 //heat-exch pipe insulation
|
|
|
|
#define FLOWFRAC 0.99 // fraction of gas transfered per process
|
|
|
|
#define SHOES_SLOWDOWN -1.0 // How much shoes slow you down by default. Negative values speed you up
|
|
|
|
|
|
//ITEM INVENTORY SLOT BITMASKS: (HUMANS ONLY!)
|
|
#define SLOT_OCLOTHING 1
|
|
#define SLOT_ICLOTHING 2
|
|
#define SLOT_GLOVES 4
|
|
#define SLOT_EYES 8
|
|
#define SLOT_EARS 16
|
|
#define SLOT_MASK 32
|
|
#define SLOT_HEAD 64
|
|
#define SLOT_FEET 128
|
|
#define SLOT_ID 256
|
|
#define SLOT_BELT 512
|
|
#define SLOT_BACK 1024
|
|
#define SLOT_POCKET 2048 //this is to allow items with a w_class of 3 or 4 to fit in pockets.
|
|
#define SLOT_DENYPOCKET 4096 //this is to deny items with a w_class of 2 or 1 to fit in pockets.
|
|
|
|
|
|
//FLAGS BITMASK
|
|
#define TABLEPASS 2 // can pass by a table or rack
|
|
|
|
/********************************************************************************
|
|
* WOO WOO WOO THIS IS UNUSED WOO WOO WOO *
|
|
* #define HALFMASK 4 // mask only gets 1/2 of air supply from internals *
|
|
* WOO WOO WOO THIS IS UNUSED WOO WOO WOO *
|
|
********************************************************************************/
|
|
|
|
#define HEADSPACE 4 // head wear protects against space
|
|
|
|
#define MASKINTERNALS 8 // mask allows internals
|
|
#define SUITSPACE 8 // suit protects against space
|
|
|
|
#define USEDELAY 16 // 1 second extra delay on use (Can be used once every 2s)
|
|
#define NODELAY 32768 // 1 second attackby delay skipped (Can be used once every 0.2s). Most objects have a 1s attackby delay, which doesn't require a flag.
|
|
#define NOSHIELD 32 // weapon not affected by shield
|
|
#define CONDUCT 64 // conducts electricity (metal etc.)
|
|
#define FPRINT 256 // takes a fingerprint
|
|
#define ON_BORDER 512 // item has priority to check when entering or leaving
|
|
|
|
#define GLASSESCOVERSEYES 1024
|
|
#define MASKCOVERSEYES 1024 // get rid of some of the other retardation in these flags
|
|
#define HEADCOVERSEYES 1024 // feel free to realloc these numbers for other purposes
|
|
#define MASKCOVERSMOUTH 2048 // on other items, these are just for mask/head
|
|
#define HEADCOVERSMOUTH 2048
|
|
|
|
#define NOSLIP 1024 //prevents from slipping on wet floors, in space etc
|
|
|
|
#define OPENCONTAINER 4096 // is an open container for chemistry purposes
|
|
|
|
#define ONESIZEFITSALL 8192 // can be worn by fatties (or children? ugh)
|
|
|
|
#define NOREACT 16384 //Reagents dont' react inside this container.
|
|
|
|
#define BLOCKHAIR 32768 // temporarily removes the user's hair icon
|
|
|
|
//flags for pass_flags
|
|
#define PASSTABLE 1
|
|
#define PASSGLASS 2
|
|
#define PASSGRILLE 4
|
|
#define PASSBLOB 8
|
|
|
|
//turf-only flags
|
|
#define NOJAUNT 1
|
|
|
|
|
|
//Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses.
|
|
#define HIDEGLOVES 1 //APPLIES ONLY TO THE EXTERIOR SUIT!!
|
|
#define HIDESUITSTORAGE 2 //APPLIES ONLY TO THE EXTERIOR SUIT!!
|
|
#define HIDEJUMPSUIT 4 //APPLIES ONLY TO THE EXTERIOR SUIT!!
|
|
#define HIDESHOES 8 //APPLIES ONLY TO THE EXTERIOR SUIT!!
|
|
#define HIDEMASK 1 //APPLIES ONLY TO HELMETS!!
|
|
#define HIDEEARS 2 //APPLIES ONLY TO HELMETS!!
|
|
#define HIDEEYES 4 //APPLIES ONLY TO HELMETS!!
|
|
|
|
|
|
//Cant seem to find a mob bitflags area other than the powers one
|
|
|
|
// bitflags for clothing parts
|
|
#define HEAD 1
|
|
#define UPPER_TORSO 2
|
|
#define LOWER_TORSO 4
|
|
#define LEG_LEFT 8
|
|
#define LEG_RIGHT 16
|
|
#define LEGS 24
|
|
#define FOOT_LEFT 32
|
|
#define FOOT_RIGHT 64
|
|
#define FEET 96
|
|
#define ARM_LEFT 128
|
|
#define ARM_RIGHT 256
|
|
#define ARMS 384
|
|
#define HAND_LEFT 512
|
|
#define HAND_RIGHT 1024
|
|
#define HANDS 1536
|
|
|
|
#define FULL_BODY 2047
|
|
|
|
/*
|
|
//bitflags for mutations
|
|
var/const
|
|
// Extra powers:
|
|
SHADOW =(1<<10) // shadow teleportation (create in/out portals anywhere) (25%)
|
|
SCREAM =(1<<11) // supersonic screaming (25%)
|
|
EXPLOSIVE =(1<<12) // exploding on-demand (15%)
|
|
REGENERATION =(1<<13) // superhuman regeneration (30%)
|
|
REPROCESSOR =(1<<14) // eat anything (50%)
|
|
SHAPESHIFTING =(1<<15) // take on the appearance of anything (40%)
|
|
PHASING =(1<<16) // ability to phase through walls (40%)
|
|
SHIELD =(1<<17) // shielding from all projectile attacks (30%)
|
|
SHOCKWAVE =(1<<18) // attack a nearby tile and cause a massive shockwave, knocking most people on their asses (25%)
|
|
ELECTRICITY =(1<<19) // ability to shoot electric attacks (15%)
|
|
|
|
|
|
// Nanoaugmentations:
|
|
SUPRSTR =(1<<20) // super strength
|
|
RADAR =(1<<21) // on-screen mob radar
|
|
ELECTRICHANDS =(1<<22) // electric hands
|
|
ESWORDSYNTH =(1<<23) // esword synthesizer
|
|
REBREATHER =(1<<24) // removes the need to breathe
|
|
DERMALARMOR =(1<<25) // 35% damage decrease
|
|
REFLEXES =(1<<26) // dodge 50% of projectiles, dodge 25% of melee attacks
|
|
NANOREGEN =(1<<27) // regenerative nanobots, -3 all damage types per second
|
|
*/
|
|
|
|
// String identifiers for associative list lookup
|
|
|
|
var/const
|
|
|
|
// mob/var/list/mutations
|
|
|
|
// Generic mutations:
|
|
TK =1
|
|
COLD_RESISTANCE =2
|
|
XRAY =3
|
|
HULK =4
|
|
CLUMSY =5
|
|
FAT =6
|
|
HUSK =7
|
|
NOCLONE =8
|
|
|
|
|
|
// Extra powers:
|
|
LASER =9 // harm intent - click anywhere to shoot lasers from eyes
|
|
HEAL =10 // healing people with hands
|
|
SHADOW =11 // shadow teleportation (create in/out portals anywhere) (25%)
|
|
SCREAM =12 // supersonic screaming (25%)
|
|
EXPLOSIVE =13 // exploding on-demand (15%)
|
|
REGENERATION =14 // superhuman regeneration (30%)
|
|
REPROCESSOR =15 // eat anything (50%)
|
|
SHAPESHIFTING =16 // take on the appearance of anything (40%)
|
|
PHASING =17 // ability to phase through walls (40%)
|
|
SHIELD =18 // shielding from all projectile attacks (30%)
|
|
SHOCKWAVE =19 // attack a nearby tile and cause a massive shockwave, knocking most people on their asses (25%)
|
|
ELECTRICITY =20 // ability to shoot electric attacks (15%)
|
|
|
|
|
|
// mob/var/list/augmentations
|
|
|
|
// Nanoaugmentations:
|
|
SUPRSTR =21 // super strength (hulk powers)
|
|
RADAR =22 // on-screen mob radar
|
|
ELECTRICHANDS =23 // electric hands
|
|
ESWORDSYNTH =24 // esword synthesizer
|
|
REBREATHER =25 // removes the need to breathe
|
|
DERMALARMOR =26 // 35% damage decrease
|
|
REFLEXES =27 // dodge 50% of projectiles
|
|
NANOREGEN =28 // regenerative nanobots, -3 all damage types per second
|
|
|
|
|
|
|
|
|
|
|
|
//mob/var/stat things
|
|
var/const/CONSCIOUS = 0
|
|
var/const/UNCONSCIOUS = 1
|
|
var/const/DEAD = 2
|
|
|
|
// channel numbers for power
|
|
#define EQUIP 1
|
|
#define LIGHT 2
|
|
#define ENVIRON 3
|
|
#define TOTAL 4 //for total power used only
|
|
|
|
// bitflags for machine stat variable
|
|
#define BROKEN 1
|
|
#define NOPOWER 2
|
|
#define POWEROFF 4 // tbd
|
|
#define MAINT 8 // under maintaince
|
|
#define EMPED 16 // temporary broken by EMP pulse
|
|
|
|
//bitflags for door switches.
|
|
#define OPEN 1
|
|
#define IDSCAN 2
|
|
#define BOLTS 4
|
|
#define SHOCK 8
|
|
#define SAFE 16
|
|
|
|
#define ENGINE_EJECT_Z 3
|
|
|
|
//metal, glass, rod stacks
|
|
#define MAX_STACK_AMOUNT_METAL 50
|
|
#define MAX_STACK_AMOUNT_GLASS 50
|
|
#define MAX_STACK_AMOUNT_RODS 60
|
|
|
|
var/const/GAS_O2 = 1 << 0
|
|
var/const/GAS_N2 = 1 << 1
|
|
var/const/GAS_PL = 1 << 2
|
|
var/const/GAS_CO2 = 1 << 3
|
|
var/const/GAS_N2O = 1 << 4
|
|
|
|
|
|
var/list/accessable_z_levels = list("3" = 30, "4" = 70)
|
|
//This list contains the z-level numbers which can be accessed via space travel and the percentile chances to get there.
|
|
//(Exceptions: extended, sandbox and nuke) -Errorage
|
|
//Was list("1" = 10, "3" = 15, "4" = 60, "5" = 15); changed it to list("3" = 30, "4" = 70).
|
|
//Spacing should be a reliable method of getting rid of a body -- Urist.
|
|
|
|
#define IS_MODE_COMPILED(MODE) (ispath(text2path("/datum/game_mode/"+(MODE))))
|
|
|
|
|
|
var/list/global_mutations = list() // list of hidden mutation things
|
|
|
|
//Bluh shields
|
|
|
|
|
|
//Damage things
|
|
#define BRUTE "brute"
|
|
#define BURN "fire"
|
|
#define TOX "tox"
|
|
#define OXY "oxy"
|
|
#define CLONE "clone"
|
|
#define HALLOSS "halloss"
|
|
|
|
#define STUN "stun"
|
|
#define WEAKEN "weaken"
|
|
#define PARALYZE "paralize"
|
|
#define IRRADIATE "irradiate"
|
|
#define STUTTER "stutter"
|
|
#define EYE_BLUR "eye_blur"
|
|
#define DROWSY "drowsy"
|
|
|
|
var/static/list/scarySounds = list('thudswoosh.ogg','Taser.ogg','armbomb.ogg','hiss1.ogg','hiss2.ogg','hiss3.ogg','hiss4.ogg','hiss5.ogg','hiss6.ogg','Glassbr1.ogg','Glassbr2.ogg','Glassbr3.ogg','Welder.ogg','Welder2.ogg','airlock.ogg','clownstep1.ogg','clownstep2.ogg')
|
|
|
|
//Security levels
|
|
#define SEC_LEVEL_GREEN 0
|
|
#define SEC_LEVEL_BLUE 1
|
|
#define SEC_LEVEL_RED 2
|
|
#define SEC_LEVEL_DELTA 3
|
|
|
|
#define TRANSITIONEDGE 7 //Distance from edge to move to another z-level
|
|
|
|
var/list/liftable_structures = list(\
|
|
|
|
/obj/machinery/autolathe, \
|
|
/obj/machinery/constructable_frame, \
|
|
/obj/machinery/hydroponics, \
|
|
/obj/machinery/computer, \
|
|
/obj/machinery/optable, \
|
|
/obj/machinery/dispenser, \
|
|
/obj/machinery/gibber, \
|
|
/obj/machinery/microwave, \
|
|
/obj/machinery/vending, \
|
|
/obj/machinery/seed_extractor, \
|
|
/obj/machinery/space_heater, \
|
|
/obj/machinery/recharge_station, \
|
|
/obj/machinery/flasher, \
|
|
/obj/structure/stool, \
|
|
/obj/structure/closet, \
|
|
/obj/machinery/photocopier, \
|
|
/obj/structure/filingcabinet, \
|
|
/obj/structure/reagent_dispensers, \
|
|
/obj/machinery/portable_atmospherics/canister)
|