From c6117cfa5afb32bf8681aca8551f90c120bb9c1d Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sat, 25 Jun 2016 02:46:17 -0400 Subject: [PATCH 01/77] Wizard Mutate Spell Fix --- code/__DEFINES/genetics.dm | 3 +++ code/datums/spells/genetic.dm | 5 +++++ code/datums/spells/wizard.dm | 9 +++++++++ code/game/dna/dna2_domutcheck.dm | 1 - 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/code/__DEFINES/genetics.dm b/code/__DEFINES/genetics.dm index 3be0682c727..e6988ca745e 100644 --- a/code/__DEFINES/genetics.dm +++ b/code/__DEFINES/genetics.dm @@ -1,5 +1,8 @@ // String identifiers for associative list lookup + +#define MUTCHK_FORCED 1 + // mob/var/list/mutations // Used in preferences. diff --git a/code/datums/spells/genetic.dm b/code/datums/spells/genetic.dm index d4a9d1d1d8e..036e2158989 100644 --- a/code/datums/spells/genetic.dm +++ b/code/datums/spells/genetic.dm @@ -24,9 +24,14 @@ target:hulk_time=world.time + duration */ target.sdisabilities |= sdisabilities target.update_mutations() //update target's mutation overlays + var/mob/living/carbon/human/H = target + if(ishuman(target)) + H.update_body() spawn(duration) target.mutations.Remove(mutations) target.sdisabilities &= ~sdisabilities target.update_mutations() + if(ishuman(target)) + H.update_body() return \ No newline at end of file diff --git a/code/datums/spells/wizard.dm b/code/datums/spells/wizard.dm index ca146933558..8a056245b16 100644 --- a/code/datums/spells/wizard.dm +++ b/code/datums/spells/wizard.dm @@ -53,6 +53,15 @@ action_icon_state = "mutate" +/obj/effect/proc_holder/spell/targeted/genetic/mutate/cast(list/targets) + for(var/mob/living/target in targets) + target.dna.SetSEState(HULKBLOCK, 1) + genemutcheck(target, HULKBLOCK, null, MUTCHK_FORCED) + spawn(duration) + target.dna.SetSEState(HULKBLOCK, 0) + genemutcheck(target, HULKBLOCK, null, MUTCHK_FORCED) + ..() + /obj/effect/proc_holder/spell/targeted/smoke name = "Smoke" desc = "This spell spawns a cloud of choking smoke at your location and does not require wizard garb." diff --git a/code/game/dna/dna2_domutcheck.dm b/code/game/dna/dna2_domutcheck.dm index eddf68c679d..911d91ef63d 100644 --- a/code/game/dna/dna2_domutcheck.dm +++ b/code/game/dna/dna2_domutcheck.dm @@ -3,7 +3,6 @@ // M: Mob to mess with // connected: Machine we're in, type unchecked so I doubt it's used beyond monkeying // flags: See below, bitfield. -#define MUTCHK_FORCED 1 /proc/domutcheck(var/mob/living/M, var/connected=null, var/flags=0) for(var/datum/dna/gene/gene in dna_genes) if(!M || !M.dna) From 55d047226869ab1a1a13291535a1a1bb5317f524 Mon Sep 17 00:00:00 2001 From: Kyep Date: Sat, 25 Jun 2016 00:35:00 -0700 Subject: [PATCH 02/77] Initial checkin --- code/datums/mind.dm | 4 +- code/datums/supplypacks.dm | 4 +- .../game/gamemodes/autotraitor/autotraitor.dm | 2 +- code/game/gamemodes/revolution/revolution.dm | 2 +- .../objects/items/weapons/implants/implant.dm | 2 +- ...lant_loyality.dm => implant_mindshield.dm} | 10 ++-- .../items/weapons/implants/implantchair.dm | 4 +- code/game/objects/items/weapons/manuals.dm | 50 +++++++++---------- .../objects/items/weapons/storage/lockbox.dm | 2 +- code/modules/mob/living/carbon/alien/alien.dm | 1 - code/modules/mob/living/carbon/human/human.dm | 2 +- code/modules/mob/living/carbon/superheroes.dm | 2 +- code/modules/mob/mob_helpers.dm | 2 +- code/modules/paperwork/paper.dm | 2 +- paradise.dme | 2 +- 15 files changed, 45 insertions(+), 46 deletions(-) rename code/game/objects/items/weapons/implants/{implant_loyality.dm => implant_mindshield.dm} (86%) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index a3d9dbd8442..5d018d7b172 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -150,9 +150,9 @@ if (istype(current, /mob/living/carbon/human)) /** Impanted**/ if(isloyal(H)) - text = "Loyalty Implant:Remove|Implanted
" + text = "Mindshield Implant:Remove|Implanted
" else - text = "Loyalty Implant:No Implant|Implant him!
" + text = "Mindshield Implant:No Implant|Implant him!
" sections["implant"] = text /** REVOLUTION ***/ text = "revolution" diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index be25ea14f1f..fe65e44ddec 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -375,10 +375,10 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine /////// Implants & etc /datum/supply_packs/security/armory/loyalty - name = "Loyalty Implants Crate" + name = "Mindshield Implants Crate" contains = list (/obj/item/weapon/storage/lockbox/loyalty) cost = 40 - containername = "loyalty implant crate" + containername = "mindshield implant crate" /datum/supply_packs/security/armory/trackingimp name = "Tracking Implants Crate" diff --git a/code/game/gamemodes/autotraitor/autotraitor.dm b/code/game/gamemodes/autotraitor/autotraitor.dm index 4f785ca99aa..f6ff3bc083c 100644 --- a/code/game/gamemodes/autotraitor/autotraitor.dm +++ b/code/game/gamemodes/autotraitor/autotraitor.dm @@ -88,7 +88,7 @@ for(var/job in restricted_jobs) if(player.assigned_role == job) possible_traitors -= player - if(player.current) // Remove loyalty implanted mobs from the list + if(player.current) // Remove mindshield-implanted mobs from the list if(ishuman(player.current)) var/mob/living/carbon/human/H = player.current for(var/obj/item/weapon/implant/loyalty/I in H.contents) diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index 0acd5bb5336..d35dd1534f7 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -147,7 +147,7 @@ if (!where2) to_chat(mob, "The Syndicate were unfortunately unable to get you a chameleon security HUD.") else - to_chat(mob, "The chameleon security HUD in your [where2] will help you keep track of who is loyalty-implanted, and unable to be recruited.") + to_chat(mob, "The chameleon security HUD in your [where2] will help you keep track of who is mindshield-implanted, and unable to be recruited.") if (!where) to_chat(mob, "The Syndicate were unfortunately unable to get you a flash.") diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index 67b52da31ec..4bac1168518 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -5,7 +5,7 @@ action_button_custom_type = /datum/action/item_action/hands_free origin_tech = "materials=2;biotech=3;programming=2" - var/activated = 1 //1 for implant types that can be activated, 0 for ones that are "always on" like loyalty implants + var/activated = 1 //1 for implant types that can be activated, 0 for ones that are "always on" like mindshield implants var/implanted = null var/mob/living/imp_in = null item_color = "b" diff --git a/code/game/objects/items/weapons/implants/implant_loyality.dm b/code/game/objects/items/weapons/implants/implant_mindshield.dm similarity index 86% rename from code/game/objects/items/weapons/implants/implant_loyality.dm rename to code/game/objects/items/weapons/implants/implant_mindshield.dm index 0c4b5c44648..07e74ae2509 100644 --- a/code/game/objects/items/weapons/implants/implant_loyality.dm +++ b/code/game/objects/items/weapons/implants/implant_mindshield.dm @@ -1,6 +1,6 @@ /obj/item/weapon/implant/loyalty - name = "loyalty implant" - desc = "Makes you loyal or such." + name = "mindshield implant" + desc = "Stops people messing with your mind." origin_tech = "materials=2;biotech=4;programming=4" activated = 0 @@ -8,11 +8,11 @@ var/dat = {"Implant Specifications:
Name: Nanotrasen Employee Management Implant
Life: Ten years.
- Important Notes: Personnel injected with this device tend to be much more loyal to the company.
+ Important Notes: Personnel injected with this device can better resist mental compulsions.

Implant Details:
Function: Contains a small pod of nanobots that manipulate the host's mental functions.
- Special Features: Will prevent and cure most forms of brainwashing.
+ Special Features: Will prevent most forms of brainwashing.
Integrity: Implant will last so long as the nanobots are inside the bloodstream."} return dat @@ -29,7 +29,7 @@ if(target.mind in ticker.mode.cult) to_chat(target, "You feel the corporate tendrils of Nanotrasen try to invade your mind!") else - to_chat(target, "You feel a surge of loyalty towards Nanotrasen.") + to_chat(target, "You mind feels hardened somehow.") return 1 return 0 diff --git a/code/game/objects/items/weapons/implants/implantchair.dm b/code/game/objects/items/weapons/implants/implantchair.dm index 0820cc097c9..35d98f179a2 100644 --- a/code/game/objects/items/weapons/implants/implantchair.dm +++ b/code/game/objects/items/weapons/implants/implantchair.dm @@ -1,8 +1,8 @@ //This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 /obj/machinery/implantchair - name = "loyalty implanter" - desc = "Used to implant occupants with loyalty implants." + name = "mindshield implanter" + desc = "Used to implant occupants with mindshield implants." icon = 'icons/obj/machines/implantchair.dmi' icon_state = "implantchair" density = 1 diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm index b580a024b91..6a7e0c15575 100644 --- a/code/game/objects/items/weapons/manuals.dm +++ b/code/game/objects/items/weapons/manuals.dm @@ -809,7 +809,7 @@ "} - + /obj/item/weapon/book/manual/security_space_law/black name = "Space Law - Limited Edition" desc = "A leather-bound, immaculately-written copy of JUSTICE." @@ -1483,7 +1483,7 @@
  • Attending Surgeon is to keep the Operating Room in an hygienic condition at all times, again, to prevent infection;
  • Attending Surgeon is to wash his/her hands between different patients, again, to prevent infection;
  • Attending Surgeon is to use either Anesthetics or Sedatives (for species that cannot breathe Anesthetics) during Surgical Procedures. Exception is made if the patient requests otherwise;
  • -
  • Attending Surgeon is not to remove any legal Implants (such as Loyalty or Tracking Implants) from the patient, unless requested by Security;
  • +
  • Attending Surgeon is not to remove any legal Implants (such as Mindshield or Tracking Implants) from the patient, unless requested by Security;
  • If a patient requests that a lost limb be replaced with an organic, rather than mechanical, substitute, said limb must be harvested from a compatible humanized Test Animal (such as Monkeys for Humans, or Farwas for Tajarans). Exception is made if the patient deliberately requests otherwise;
  • Attending Surgeon is not to bring any of the Surgical Tools outside of their respective Operating Room, and must in fact ensure the Operating Room maintains its proper inventory. This includes ensuring that the Anesthetics Equipment be kept inside the OR
  • @@ -2141,7 +2141,7 @@
  • Prisoner must then be borged, fired into space via mass driver, cremated, or placed in the morgue with a DNR Notice, at the discretion of the Magistrate, Captain or Head of Security.


  • - +

    Execution: Lethal Injection


    1. Prisoner must be bucklecuffed to the electric chair or bed.
    2. @@ -2150,7 +2150,7 @@
    3. Prisoner must then be borged, fired into space via mass driver, cremated, or placed in the morgue with a DNR Notice, at the discretion of the Magistrate, Captain or Head of Security.


    - +

    Execution: Firing Squad


    1. Prisoner must be brought to the Firing Range.
    2. @@ -2164,7 +2164,7 @@ "} - + /obj/item/weapon/book/manual/sop_general name = "Standard Operating Procedures" desc = "A set of guidelines aiming at the safe conduct of all station activities." @@ -2212,7 +2212,7 @@

      Code Green


      All clear.
      - Default operating level. No immediate or clear threat to the station. All departments may carry out work as normal. + Default operating level. No immediate or clear threat to the station. All departments may carry out work as normal. This alert level can be set at the Communications Console with a Captain level ID.
      All threats to the station have passed. All weapons need to be holstered and privacy laws are once again fully enforced.

      @@ -2230,10 +2230,10 @@ Crew:
      • Crew members may freely walk in the hallways
      • -
      • Suit sensors are not mandatory.
      • +
      • Suit sensors are not mandatory.


      - +

      Code Blue


      There is a suspected threat.
      Raised alert level. Suspected threat to the station. Issued by Central Command, the Captain, or a Head of Staff vote. This alert level can be set at the Communications Console with a Captain level ID.
      @@ -2255,10 +2255,10 @@ Crew:
      • Employees are recommended to comply with all security requests.
      • -
      • Suit sensors are mandatory, but coordinate positions are not required.
      • +
      • Suit sensors are mandatory, but coordinate positions are not required.


      - +

      Code Red


      There is a confirmed threat.
      Maximum alert level. Confirmed threat to the station or severe damage. Issued by Central Command, the Captain, or a Head of Staff vote. This alert level can only be set via the Keycard Authentication Devices in each Heads of Staff office and by swiping two Heads of Staff ID cards simultaneously.
      @@ -2279,12 +2279,12 @@ Crew:
      • Suit sensors and coordinate positions are mandatory.
      • -
      • All crew members must remain in their departments.
      • -
      • Employees are required to comply with all security requests.
      • -
      • Emergency Response Team may be authorised. All crew are to comply with their direction.
      • +
      • All crew members must remain in their departments.
      • +
      • Employees are required to comply with all security requests.
      • +
      • Emergency Response Team may be authorised. All crew are to comply with their direction.


      - +

      Code Gamma


      Extremely hostile threat onboard the station.
      GAMMA Security level has been set by Centcom.
      @@ -2306,21 +2306,21 @@ Crew:
      • Employees are required to comply with all security requests.
      • -
      • All civilians are to seek their nearest head for transportation to a safe location.
      • +
      • All civilians are to seek their nearest head for transportation to a safe location.
      • All personnel are required to defend the station and help security with dealing with the threat. All crew must follow direct orders from Security Personell or Head of Staff.


      - +

      Hiring Policies


      • Authorisation from the relevant Department Head is required to be hired into a Department. If none exists, the HoP or Captain's authorisation is required.
      • Promotion to a Department Head requires authorisation from the Captain or Acting Captain.
      • CentComm Authorisation is required for hiring the following: Blueshield, Security Pod Pilot, Magistrate, Brig Physician, Nanotrasen Representative, Mechanic.
      • If no Department Head has yet been sent, any promotion to said position is on a temporary basis until one arrives.
      • -
      • All Security personnel are to be loyalty implanted.
      • +
      • All Security personnel are to be mindshield implanted.


      - +

      Firing Policies


      • If a crew is to be dismissed, their ID is to be terminated.
      • @@ -2329,7 +2329,7 @@
      • Demotion or Dismissal must have due cause.


      - +

      Causes for Demotion and Dismissal


      • A medium or higher crime may be grounds for dismissal, at the department head's discretion.
      • @@ -2344,11 +2344,11 @@
      • Failure or refusal to hand in any items, ID, etc, of their previous job, is to be considered theft.


      - +

      Situational SoP


      The following situations have specific SoP. Failure to follow these may result in demotion/dismissal, or detaining by security if failure to follow them presents a significant risk.

      - +

      Evacuation


      • All personnel are required to assist with evacuation. All crew must be evacuated, regardless of conscious state.
      • @@ -2359,7 +2359,7 @@
      • Shortening time to shuttle launch may be authorised if a clear threat to life, limb, or shuttle integrity is present.


      - +

      Viral Outbreak Procedures


      Definition: A Viral Outbreak is defined as a situation where a Viral Pathogen has infected a significant portion of the crew (>10%)
        @@ -2376,7 +2376,7 @@
      1. Once the Viral Outbreak is over, all personnel are to return to regular duties.


      - +

      Evacuation


      • Immediate evacuation of all untrained personnel.
      • @@ -2384,7 +2384,7 @@
      • Atmospheric Technicians are to remove hazard.


      - +

      Meteor Storm


      • All crew to move to central parts of the station.
      • @@ -2392,7 +2392,7 @@
      • Personel that are doing EVA maintenance should seek shelter immediately.


      - +

      Singularity Containment Failure