Commit Graph

1192 Commits

Author SHA1 Message Date
Ron
d1c1d84bde Refactors gravity checking (#4591)
Removes a lot of duplicated or redundant code from areas when checking gravity.
2018-04-12 20:31:05 +03:00
BurgerLUA
c005549772 Mining Map Fixes (#4583)
Fixes the map as intended. This fix makes it actually look good.
2018-04-12 20:28:02 +03:00
LordFowl
1086e1fdb2 [Ready for Review] Unapologetic Psych Buffs - Now with 80% less Mike Pence! (#4377)
This PR removes brain surgery's ability to instantly cure all traumas. Now traumas have been roughly divided into four categories of treatment:
1: Chakra therapy cures traumas that directly affect physical behavior, such as tourettes or paralysis. It is accomplished via the crystal therapy pod available to the psychiatrist.

2: Hypnotic therapy cures traumas that directly affect mental behavior, such as phobias or confusions. It is accomplished via the mesmetron pocketwatch available to the psychiatrist.

3: Isolation therapy cures traumas that cause hallucinations. It is accomplished via the metronome and facilitated by the isolation room available to the psychiatrist.

4: Surgical therapy cures traumas that do not fit into the above categories. It is accomplished via brain surgery.

Using the crystal therapy pod's neural scan function will provide the psychiatrist the brain damage the patient suffers from in numerical form. It falls upon the psychiatrist to determine how much of this brain damage is being caused by mental traumas the crystal therapy pod is equipped to deal with. Excessive cycles will cause increasing amounts of radiation damage.

The mesmetron pocketwatch requires the patient to believe in hypnosis. It then puts the patient into a slumber, where the psychiatrist can hypnotically suggest new behavior, provided the patient continues to believe in hypnosis. Each suggestion cures a single hypnotic trauma.
The isolation room is equipped with a metronome. When active, the metronome will have a chance every ticktock of the metronome to cure an isolation trauma, provided the patient is totally alone.

The psychiatry office has been expanded into a complete mental health ward. The only thing it is lacking is beds, as I believe recovering mental health patients still belong in the recovery ward.

The chaplain can also cure isolation and chakra traumas by dispelling the demons within with his null rod. Staring at the supermatter unprotected has been known to hypnotize. Electricity applied by any source directly to the head is also known to sometimes cure electroshock trauma.
2018-04-08 16:29:33 +03:00
LordFowl
64e386785c Abling Disability (#4485)
This PR implements a system for manipulating a client's color safely and also ports a prioritization system for sorting client color from /tg/. Currently this PR also implements client coloration in the form of color blindness, namely:
Monochromacy
Deuteranopia
Tritanopia
Protanopia

DTP are mild brain traumas, whereas monocrhomacy is a severe brain trauma.
Furthermore, this PR removes the Needs Glasses prompt in character creation, and replaces it with a disability selector, allowing people to more closely refine their special little snowflakes.
Current disabilities available:
Nervousness
Nearsightedness
Deuteranopia
Tritanopia
Protanopia
Deafness
Muteness
2018-04-05 21:57:50 +03:00
LordFowl
e2e798382c [Ready for Review] Nerfs IPCs Part 1/1,034 (#4229)
Refactors electrocute_act slightly. Electricity will now only start in your hands if ground_zero is explicitly set to l_hand or r_hand. All instances where electrocute_act is called because you touched something (IE opening a crate, touching the powergrid) have been set so that ground_zero is your currently active hand.

Otherwise, ground_zero will be randomly selected from available organs.

This is important because it is the siemens_coefficient of ground_zero only that affects electrical conductivity. EG if you get tesla_zapped in the chest you will not be saved by wearing insulated gloves. Once the electricity is in your body it does not matter.

Sufficiently powerful electricity (shock_damage >= 6) will induce an EMP in the relevant contact zones. This EMP will affect all items in the relevant organ only. Shock damage will still become reduced as the arc propagates through your body, and the EMP's produced will be updated accordingly.

The IPC power cell organ will now produce effects when EMP'd based on the current damage value of the organ pre-decrement, ranging from stuttering and blurriness to unconsciousness. Other special EMP effects for other IPC organs are pending, but I am thinking of holding it off for Part 2/1,034

Baton class weapons have been modified. Their raw force damage has been reduced, but they will now deal shock damage to a roughly equivalent value.

Harmbatons will deal 5 brute and 10 shock, and their electrocute_act will have a defined def zone (e.g it is a localized shock and there will be no arcs)

Cattleprods will deal 3 brute and 6 shock on both harm and help intents, and their electrocute_act is non-localized and will cause arcing.

Stunrods will deal 7 brute and 14 shock on both harm and help intents, and their electrocute_act is non-localized and will cause arcing.

(For clarification, cattleprods and stunrods currently still deal no brute on help intent, but will cause shock damage)

Fixes an issue with electrocute_act where if def_zone is called would not actually do anything.
2018-03-10 17:18:27 +02:00
Juani2400
395a7b3d60 [Map] Medical revamp and major changes. (#4324)
Complete remap of the Medical main level. Expect bugs and missing
equipment.

Added a new isolation wing to Medical.

Changed the nuke's position, to a much safer, new location.

Added an alternative exit to the Bunker.

Added a new store that only the HoP can grant access into.
-Detective and CSI's offices have been moved to a level above Security.

New Security training area, for cadets and other uses you may find to
it.

New transfer/escape shuttle. Not the final version, probably. Test of
acceptance from the community in progress. Not entirely convince by the
design.

New Research-coloured folders (Sprite recolouring by Fire and Glory).

Slightly remapped Kitchen. Tighter on space, big on table surface
area.

New Research Office by Xenobiology, after a lot of requests.

Vault entrance has been redesigned to fit a bit more with its purpose.

A lot of bugfixes, missing stuff, and minor suggestions.

Fixes #4311.

Fixes #4225.
2018-03-10 17:14:48 +02:00
kevinz000
c000070a5b Pixel Projectiles (#4105)
Projectile hitscan effects moved to /effects/projectiles folder.
Most of projectile firing code and some of impact code refactored, and projectile hitscan effects refactored with ported TGcode (which is mostly TGcode I wrote anyways 😎)
Projectiles can now be fired at any angle, instead of just at the center of turfs!
Projectiles are now [in theory] 100% accurate down to 0.001 of a pixel.
2018-03-10 17:13:24 +02:00
Lohikar
a86398d0d2 Code Cleanup: (Bump(), Bumped()) -> (Collide(), CollidedWith()) (#4349)
This PR rips out the old Bump() and Bumped() procs and replaces them with Collide() and CollidedWith() respectively. Behavior should be the same, but Bump() should no longer be double-called, and no longer relies on spawns.

Other changes:

LAssailant is now a weakref.
Some direct loc setting are now forceMove().
2018-03-08 09:39:53 +02:00
Erki
20fc059ca7 Bugfix/runtime cleanup (#4249)
Some RTs.

Fixes #4091
Fixes #4092
Fixes #4077
2018-02-08 11:59:11 +02:00
LordFowl
ad00601b81 Ports /tg/ Brain Trauma (#3979) 2018-01-27 12:13:19 -06:00
Lohikar
0abc1d2a65 Repath a bunch of things to /mob/abstract childtypes (#4111)
* Repaths eyes, observers, dview, and new_players to /mob/abstract subtypes.

* Adds /mob/abstract, a base type for 'abstract' mobs that aren't meant to be directly affected by the game world.
2018-01-24 11:27:14 +01:00
Lohikar
6f85f08718 Convert a bunch of legacy overlay calls to SSoverlays (#4015)
Bunch of overlay conversions I found in an old stash I had forgotten about.
2018-01-07 00:34:47 +02:00
Lohikar
57e898d8e8 Light Sounds & Emergency Lighting (#3966)
changes:

Light tubes now make a noise when turning on.
If a light loses power, it will switch to "emergency mode": the light will glow a dim red, drawing power from a small integrated cell that should last approximately 10 minutes. If the light has power, it will charge its cell.
Light flickers now play the flicker sound for each blink instead of once.
Split lighting.dm into three files: fixtures.dm, construction.dm, and bulbs.dm.
Light fixtures now use stat to represent on-state (as they can be off for multiple reasons): the on var has thus been removed.
Lightswitches now glow in the dark and make sounds when toggled.
Some code/idea for emergency lighting from TG, light sound from Interbay, lightswitch sounds from Bay.

Depends on #3948.
2017-12-17 11:30:35 +02:00
Lohikar
81685214df Cache light fixture overlays (#3948)
changes:

Light fixture overlays are now cached.
BlendRGB is now cached (used by light fixture overlays)
Nightmode now only tints the bulb instead of both the bulb and the fixture itself.
2017-12-10 00:17:09 +02:00
skull132
d536d9f4aa Merge branch 'fake-master' into development
# Conflicts:
#	code/ATMOSPHERICS/atmospherics.dm
#	code/defines/procs/announce.dm
#	maps/aurora/aurora-3_sublevel.dmm
2017-12-09 00:08:21 +02:00
Mykhailo Bykhovtsev
ac30301c26 Tesla-related fixes (#3902) 2017-11-25 21:27:12 -06:00
skull132
7dc02be204 Merge branch 'master' into development
# Conflicts:
#	code/controllers/subsystems/initialization/misc_early.dm
#	config/example/config.txt
#	maps/aurora/aurora-1_centcomm.dmm
#	maps/aurora/aurora-4_mainlevel.dmm
2017-11-11 20:57:28 +02:00
TheGreatJorge
b9266bb8c4 Map-Fixes (#3796)
Fixes #3790
Fixes #3792
Fixes #3788

Also hopefully fixes the tcomms foyer turret control, since it turned out to be in the same area as turrets.
Also swaps two doors in research sublevel anomaly lab.

EDIT:
Shifted burning chamber gas injector in sublevel toxins one pixel down to make it look better.
Also made light bulbs the right colour. Sorry for that.

EDIT 2:
Fixes #3806
by moving a no smoking sign and putting air alarm on it's place.
2017-11-05 12:50:15 +02:00
skull132
c0f22a1cdd Merge branch 'master' into development
# Conflicts:
#	maps/aurora/aurora-1_centcomm.dmm
2017-10-29 16:15:53 +02:00
chaoko99
1c7d46681b Fixes Tesla never deleting itself. (#3752)
It was hilarious, but it's time to stop.
2017-10-27 17:47:34 +03:00
TheGreatJorge
c724dd35ad Map-fixes (#3726)
Fixes #3690
Changed blast door orientation on many blast doors across the station, and one few in CC as well, provided picture is only example. Changed blast doors are in areas: Bridge, Cap office, Research, Security, Engine, CC departures. That should be it, I think.
Fixes #3716
Fixes #3708
Fixes #3706
Fixes #3704
Fixes #2937
Also reversed APC sprites on sideways directions.
Fixes #3725
Fixes #3723
Fixes #3457
Fixes #3159
Fixes #3140
2017-10-22 02:39:31 +03:00
Lohikar
61b5203d24 Runtime Map Loading (#3597)
changes:

Maps are no longer compiled in, instead loaded directly from the DMMs at runtime.
Z level defines have been moved from the config to map datums.
Unit tests now use typecaches.
DMMS now actually works.
DMMS has been updated slightly.
DMMS is now capable of loading simple lists of non-text types.
DMMS is now faster when loading many types without mapped in attributes and when loading area instances.
Asteroid generation is now defined on the map datum instead of being hard-coded in SSasteroid.
Holodeck presets are now defined on the map datum.
Atmos machinery now uses Initialize().
2017-10-18 23:07:34 +03:00
Lohikar
f110b123cc Dynamic CC Lighting (#3619)
Changes the Centcomm areas to use dynamic lighting and maps in lights so that CC isn't pitch-black.
2017-10-14 20:06:08 +03:00
Lohikar
37908e5c4b Port some tesla performance optimizations from /tg/ (#3612)
Seems to halve (!) the Tesla's CPU usage.
2017-10-14 19:25:54 +03:00
chaoko99
2d527d31d8 Gravity generator glows. (#3588)
Resolves #3583
2017-10-13 17:39:48 +03:00
TheGreatJorge
0aff2d8785 Coloured lighting & related stuff (#3555)
Makes all light tubes & bulbs have colour according to the light they emit. There are 6 preset colours: RGB CMY. Any other color is possible by simply changing the already present brightness_color variable. This PR makes it so it actually changes the color of the item and wall object too.
    Added two new colour defines used only along with preset coloured lights.
    Coloured lights are only obtainable by random maintenace loot, cargo spawn or trader.
    Added box of randomly mixed light colours and box for every preset light colour.
    Removed two sets of redundant defines.
    Converted light item New() to Initialize() (hopefully correctly).
    Made couple tiny tweaks to the lights code.

EDIT, 7. Oct 2017:

    When you hit light machinery or item with paint, it will change it's brightness_color var, instead of the color var.
    Paint buckets can now paint items and people again.
    You can now wash paint off by spraying yourself with fire extinguisher or otherwise covering yourself in water.

EDIT, 8. Oct 2017:

    Removed one apparently unused global list.
    Converted pain bucket New to Initialize and changed it's pathing style.
    Shower can now wash paint too.
    Fixed paint bucket sprites to be bit more dynamic and fixed the in hand sprite. Also added bucket lid.
2017-10-10 18:46:24 +02:00
Ron
153fd130de Fixes the gravity generator (#3590)
Fixes the gravity generator using the wrong processing, the event not working, and overlays.
Closes #3589
2017-10-06 18:26:44 -05:00
Lohikar
8db472ae15 More stats (#3562)
* MORE STATS FOR THE STATS GODS

* save them to the db
2017-10-06 19:39:15 +02:00
Ron
37b3c0049a Replaces unused span classes (#3539)
Replaces span class userdanger and sinister with things that exist. Also removes an unused proc.
2017-10-04 19:23:20 +02:00
Alberyk
8e53ea0c78 Cult and antag fixes/tweaks (#3524) 2017-10-02 22:34:01 -05:00
Lohikar
ee686e9276 APC & Fire Alarm offset tweaks (#3502)
changes:

APCs now have directional sprites for WEST and EAST directions.
Fire Alarms' offsets are now enforced similarly to APCs'.
Fire Alarms now have mapper convenience types for each direction to make mapping them easier.
All fire alarms on the map have been replaced with the above convenience types, fixing some strange offsets in the process.
APCs no longer pre-create their spark effect datum, instead using the spark() proc.
2017-09-25 21:12:14 +03:00
Lohikar
8f4b4effae Kill processing_objects (#3398) 2017-09-09 15:22:58 -05:00
Lohikar
67bac9475d Restore old machinery init behavior (#3380) 2017-08-31 22:56:05 -05:00
Lohikar
4ed82ce486 Add Runtime Station (#3350)
Ports Runtime Station from /tg/, a debugging map meant to speed up boot time during development.
Also adds RTGs, a low-output (< 10 kW) upgradable buildable infinite power source, and allows placement of cables on catwalks.
2017-08-29 12:39:35 -05:00
Ron
ceab73c63e Makes some machines upgradeable (#3311)
Adds the ability to upgrade the following:
- Sleepers
- The ore processor
- All cooking appliances (Minus the microwave)
- Tesla Coil

Also makes components not spawn in machines until they are needed (When they are being upgraded) to reduce the objects generated. Adds some new macro's and converts some istypes to use them. And moves stock parts into their own file.
2017-08-28 01:51:37 -05:00
Ron
59a0b88059 Fixes a few issues with the gravity generator (#3281)
Fixes a runtime and a bug with the gravity generator that caused it to bypass radiation suits.
2017-08-20 14:02:31 +03:00
Lohikar
c3c31c85ea Machinery Component Initialization Refactor (#3258)
Machinery objects' component_parts list is now automatically populated with the types in the component_types list. Types can have an associated number which is interpreted as an instruction to spawn that number of that type. This eliminates a few Initialize() procs, and simplifies others.
Example:

component_types = list(
    /obj/foo/bar,
    /obj/baz = 2
)
Other changes:

Cable coils will now no longer force a stack size of 30 when created without their stack size passed as a parameter - this fixes anonymous types not working correctly with cable coils.
2017-08-09 20:33:14 +03:00
Ron
cb5e227320 Converts some istype's to use helpers (#3224)
Converts various istype's to use helpers. Mainly:
Cable
Wrench
Screwdriver
Multitool
Crowbar
Wirecutter

And makes the helpers defines.
2017-08-06 22:08:42 +03:00
Ron
ad96a34dd8 Removes some in worlds (#3227)
Removes some in worlds and some commented out code that I don't think will ever be used.
2017-08-06 19:50:53 +03:00
skull132
0f072e15e9 Merge branch 'master' into development 2017-08-02 23:56:29 +03:00
Lohikar
69c4658d70 Fix tesla coils (#3208)
Fixes tesla coils not properly connecting to the powernet on anchor.
2017-08-02 19:55:12 +03:00
Ron
0a760075ee Adds the gravity generator (#3183)
Works like it did in old code with some minor additions. The sprite is the one TG uses.
2017-08-02 19:48:54 +03:00
Alberyk
cbc45b3b26 Cult improvements (#3143)
-removes the need for word research
-allows nullrods to shatter pylons on hit, to disable forcewalls, close gateways, and turn cult swords in less powerful claymores
-allows ghosts to flicks lights if the round is spooky enough
-renames some cult items
-converts ritual.dm and rune.dm into proper pathing and remove some in world from it
-adds a machine that allows people around it to see ghosts, with some side effects
-manifested ghosts don't count for nar'sie summoning anymore
-manifested ghosts do not use the dummy type anymore, they are their own species with a similar behavior
-visible ghosts can now whisper to people and move small objects around
-fixes #3145
2017-08-02 19:40:03 +03:00
skull132
0fc67f2cb9 Remove a whole bunch of in world loops and rework machinery global lists (#3053)
Removes a whole bunch of in world loops.
Reworks SSmachinery to hold two lists: all_machines and processing_machines. all_machines contains all machines 5ever. All of them. Literally. Forever. And ever. processing_machines only contains machines that process with the SSmachinery controller.

I checked most types at runtime on the live server to see whether they're in processing_machines or in all_machines, and did debug to ensure that most machinery ends up and stays in all_machines.

Includes a basic UT to make sure all mapped in machinery types remain within the all_machines list post-init.
2017-07-16 20:32:33 +03:00
Alberyk
2f949ecb45 Ports baystation armor system (#2954)
Ports Baystation12/Baystation12#12658

Changing how the calculation of armor works , instead of just being a check if it is protected fully, half or nothing. Making armor more reliable and less rng dependant.

Also, uranium meteors will irradiate nearby people when they explode.
2017-07-15 16:24:03 +03:00
Lohikar
b5472e50f4 Convert a fuck ton of machines to Initialize() (#2985)
Needs testing, but shouldn't break anything. Also adds Destroy() to the SMES base class.
2017-07-14 20:08:59 +03:00
Lohikar
687e56a8e0 Replace a bunch of overlay calls (#3005)
changes:

Converts a bunch of manual overlay manipulation to SSoverlay calls.
Moved more cache lists to SSicon_cache.
2017-07-13 21:12:53 +03:00
Lohikar
33c61f9f1e Remove some world loops (#2965)
changes:

Replaces a lot of in-world loops with more specific lists.
Recipes are now copied in SSmachinery/Recover()
Fixed bad sorting on all_areas list.
Added skeleton Destroy() to SMESes as they did not have one and are failing to GC.
Seems to shorten SSatoms init a bit, maybe from removal of in-world in MULEs?
2017-07-09 00:24:28 +03:00
Lohikar
9c010f92d1 isopenturf() macro, update_above improvements (#2931)
changes:

Added a isopenturf() macro, equivalent to istype(thing, /turf/simulated/open).
Converted most/all instances of istype(/turf/simulated/open) to isopenturf().
Made update_above()' aware of queue status & inlined a proc-call.
2017-07-03 12:04:18 +03:00
Lohikar
42f91d8117 Remove privacy poll & other tweaks/fixes (#2863)
changes:

Removed the privacy poll as it is unused.
Observing no longer creates a new mannequin, instead fetching one from SSmobs.
Observer ghosts now have a description again.
Converted new_player.dm to absolute pathing.
Fixed a bad init on holomaps.
Removed a sleep from light fixture Initialize().
Added a queue length stat to the MC panel for Icon Smoothing.
Halved time taken to create lighting overlay objects.
Species & body marking lists are now sorted alphabetically.
Commented out calls to lighting profiler to remove overhead of string interpolation in some procs.
Blood dries instantly if present during mapload instead of setting a timer.
2017-07-01 21:53:39 +03:00