mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
Conflicts: baystation12.dme code/ATMOSPHERICS/components/unary/vent_pump.dm code/ATMOSPHERICS/components/unary/vent_scrubber.dm code/__HELPERS/game.dm code/controllers/shuttle_controller.dm code/datums/datumvars.dm code/datums/supplypacks.dm code/defines/obj/storage.dm code/defines/obj/vending.dm code/defines/obj/weapon.dm code/defines/procs/command_alert.dm code/game/area/Space Station 13 areas.dm code/game/atoms.dm code/game/gamemodes/changeling/modularchangling.dm code/game/gamemodes/cult/runes.dm code/game/gamemodes/events.dm code/game/gamemodes/events/dust.dm code/game/gamemodes/events/miniblob.dm code/game/gamemodes/events/ninja_equipment.dm code/game/gamemodes/factions.dm code/game/gamemodes/game_mode.dm code/game/gamemodes/gameticker.dm code/game/jobs/access.dm code/game/jobs/job/assistant.dm code/game/jobs/job/captain.dm code/game/jobs/job/civilian.dm code/game/jobs/job/engineering.dm code/game/jobs/job/medical.dm code/game/jobs/job/science.dm code/game/jobs/job/security.dm code/game/jobs/job_controller.dm code/game/machinery/alarm.dm code/game/machinery/atmo_control.dm code/game/machinery/atmoalter/area_atmos_computer.dm code/game/machinery/bots/medbot.dm code/game/machinery/computer/HolodeckControl.dm code/game/machinery/computer/ai_core.dm code/game/machinery/computer/atmos_alert.dm code/game/machinery/computer/card.dm code/game/machinery/computer/cloning.dm code/game/machinery/computer/computer.dm code/game/machinery/computer/message.dm code/game/machinery/computer/pod.dm code/game/machinery/computer/prisoner.dm code/game/machinery/computer/syndicate_shuttle.dm code/game/machinery/constructable_frame.dm code/game/machinery/doors/door.dm code/game/machinery/doors/firedoor.dm code/game/machinery/newscaster.dm code/game/machinery/recharger.dm code/game/machinery/spaceheater.dm code/game/machinery/telecomms/broadcaster.dm code/game/machinery/telecomms/logbrowser.dm code/game/machinery/telecomms/machine_interactions.dm code/game/machinery/teleporter.dm code/game/machinery/wishgranter.dm code/game/mecha/mech_fabricator.dm code/game/mecha/working/ripley.dm code/game/objects/items.dm code/game/objects/items/blueprints.dm code/game/objects/items/devices/flashlight.dm code/game/objects/items/devices/radio/encryptionkey.dm code/game/objects/items/devices/uplinks.dm code/game/objects/items/stacks/medical.dm code/game/objects/items/weapons/cards_ids.dm code/game/objects/items/weapons/gift_wrappaper.dm code/game/objects/items/weapons/hydroponics.dm code/game/objects/items/weapons/manuals.dm code/game/objects/items/weapons/secstorage/secstorage.dm code/game/objects/items/weapons/storage/backpack.dm code/game/objects/items/weapons/storage/firstaid.dm code/game/objects/items/weapons/storage/kit.dm code/game/objects/items/weapons/storage/storage.dm code/game/objects/items/weapons/storage/toolbox.dm code/game/objects/items/weapons/storage/uplink_kits.dm code/game/objects/items/weapons/stunbaton.dm code/game/objects/items/weapons/surgery_tools.dm code/game/objects/items/weapons/tools.dm code/game/objects/structures/crates_lockers/closets/secure/cargo.dm code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm code/game/objects/structures/crates_lockers/closets/secure/scientist.dm code/game/objects/structures/crates_lockers/closets/secure/security.dm code/game/objects/structures/electricchair.dm code/game/objects/structures/extinguisher.dm code/game/objects/structures/watercloset.dm code/game/objects/weapons.dm code/game/turfs/turf.dm code/game/vehicles/airtight/airtight.dm code/game/vehicles/vehicle.dm code/global.dm code/modules/DetectiveWork/evidence.dm code/modules/admin/IsBanned.dm code/modules/admin/player_panel.dm code/modules/admin/verbs/diagnostics.dm code/modules/admin/verbs/getlogs.dm code/modules/client/preferences.dm code/modules/clothing/masks/miscellaneous.dm code/modules/clothing/spacesuits/rig.dm code/modules/clothing/suits/miscellaneous.dm code/modules/critters/critter_defenses.dm code/modules/detectivework/scanner.dm code/modules/flufftext/Hallucination.dm code/modules/food/recipes_microwave.dm code/modules/mining/mine_items.dm code/modules/mining/mine_turfs.dm code/modules/mining/satchel_ore_boxdm.dm code/modules/mob/dead/observer/observer.dm code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm code/modules/mob/living/carbon/alien/special/facehugger.dm code/modules/mob/living/carbon/carbon.dm code/modules/mob/living/carbon/carbon_defines.dm code/modules/mob/living/carbon/human/human.dm code/modules/mob/living/carbon/human/human_attackhand.dm code/modules/mob/living/carbon/human/life.dm code/modules/mob/living/carbon/human/say.dm code/modules/mob/living/carbon/human/update_icons.dm code/modules/mob/living/carbon/metroid/metroid.dm code/modules/mob/living/living.dm code/modules/mob/living/silicon/ai/life.dm code/modules/mob/living/silicon/robot/robot.dm code/modules/mob/mob_cleanup.dm code/modules/mob/mob_defines.dm code/modules/mob/mob_transformation_simple.dm code/modules/paperwork/clipboard.dm code/modules/paperwork/folders.dm code/modules/paperwork/paper.dm code/modules/paperwork/paperbin.dm code/modules/paperwork/pen.dm code/modules/power/cable.dm code/modules/projectiles/guns/energy/special.dm code/modules/projectiles/guns/projectile/revolver.dm code/modules/projectiles/projectile/change.dm code/modules/projectiles/projectile/special.dm code/modules/reagents/Chemistry-Reagents.dm code/modules/reagents/reagent_containers/glass.dm code/modules/reagents/reagent_containers/hypospray.dm code/modules/recycling/sortingmachinery.dm code/modules/research/designs.dm config/config.txt html/changelog.html icons/mob/head.dmi icons/mob/hud.dmi icons/mob/items_lefthand.dmi icons/mob/items_righthand.dmi icons/mob/mask.dmi icons/mob/suit.dmi icons/mob/ties.dmi icons/mob/uniform.dmi icons/obj/clothing/hats.dmi icons/obj/clothing/masks.dmi icons/obj/clothing/suits.dmi icons/obj/clothing/ties.dmi icons/obj/grenade.dmi icons/obj/projectiles.dmi Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
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 feel 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)
|
|
|
|
*/
|