mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-01-09 17:13:36 +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
102 lines
2.5 KiB
Plaintext
102 lines
2.5 KiB
Plaintext
|
|
|
|
/* NOTES:
|
|
|
|
This system could be expanded to migrate all of our current mutations to. Maybe.
|
|
|
|
|
|
*/
|
|
|
|
|
|
/* /datum/mutations :
|
|
*
|
|
* A /datum representation of "hidden" mutations.
|
|
*
|
|
*/
|
|
/datum/mutations
|
|
|
|
var/list/requirements = list() // list of randomly-genned requirements
|
|
var/required = 1 // the number of requirements to generate
|
|
|
|
var/list/races = list("human") // list of races the mutation effect
|
|
|
|
proc/get_mutation(var/mob/living/carbon/M) // Called when check_mutation() is successful
|
|
..()
|
|
|
|
proc/check_mutation(var/mob/living/carbon/M) // Called in dna.dm, when a target's SE is modified
|
|
|
|
if(! ("all" in races)) // "all" means it affects everyone!
|
|
if(istype(M, /mob/living/carbon/human))
|
|
if(! ("human" in races))
|
|
return
|
|
if(istype(M, /mob/living/carbon/monkey))
|
|
if(! ("monkey" in races))
|
|
return
|
|
// TODO: add more races maybe??
|
|
|
|
|
|
var/passes = 0
|
|
for(var/datum/mutationreq/require in requirements)
|
|
|
|
var/se_block[] = getblockbuffer(M.dna.struc_enzymes, require.block, 3) // focus onto the block
|
|
if(se_block.len == 3) // we want to make sure there are exactly 3 entries
|
|
|
|
if(se_block[require.subblock] == require.reqID)
|
|
|
|
passes++
|
|
|
|
if(passes == required) // all requirements met
|
|
get_mutation(M)
|
|
|
|
|
|
Lasereyes
|
|
/*
|
|
Lets you shoot laser beams through your eyes. Fancy!
|
|
*/
|
|
required = 2
|
|
|
|
get_mutation(var/mob/living/carbon/M)
|
|
M << "\blue You feel a searing heat inside your eyes!"
|
|
M.mutations.Add(LASER)
|
|
|
|
Healing
|
|
/*
|
|
Lets you heal other people, and yourself. But it doesn't let you heal dead people.
|
|
*/
|
|
required = 2
|
|
|
|
get_mutation(var/mob/living/carbon/M)
|
|
M << "\blue You a pleasant warmth pulse throughout your body..."
|
|
M.mutations.Add(HEAL)
|
|
|
|
/* /datum/mutationreq :
|
|
*
|
|
* A /datum representation of a requirement in order for a mutation to happen.
|
|
*
|
|
*/
|
|
|
|
/datum/mutationreq
|
|
var/block // The block to read
|
|
var/subblock // The sub-block to read
|
|
var/reqID // The required hexadecimal identifier to be equal to the sub-block being read.
|
|
|
|
|
|
|
|
|
|
/*
|
|
HEY: If you want to be able to get superpowers easily just uncomment this shit.
|
|
mob/verb/checkmuts()
|
|
for(var/datum/mutations/mut in global_mutations)
|
|
|
|
for(var/datum/mutationreq/R in mut.requirements)
|
|
src << "Block: [R.block]"
|
|
src << "Sub-Block: [R.subblock]"
|
|
src << "Required ID: [R.reqID]"
|
|
src << ""
|
|
|
|
mob/verb/editSE(t as text)
|
|
src:dna:struc_enzymes = t
|
|
domutcheck(src)
|
|
|
|
*/
|