Commit Graph

503 Commits

Author SHA1 Message Date
bawhoppen 7830992c11 Makes shuttles superficially buildable (#18974)
Added two new materials, Titanium and plastitanium. Titanium is naturally occuring, and plastitanium is an alloy made of plasma and titanium.
These materials can be used to build shuttle walls and floors, though this serves no current purpose.

Before you yell "SNOWFLAKE" about the materials, I have definite planned purposes for them, not to mention what else they could be potentially used for (mechs, R&D, etc.)
You can use titanium to make white shuttle walls that smooth (like the ones of the escape shuttle), and plastitanium to make the grey syndie shuttle walls. You can also make floor tiles out of each material for the different shuttle floors. This PR itself doesn't change any of the paths on the map to use smoothed shuttlewalls and I'll save that for a seperate PR.

Also this PR makes ORM code better and allows people to easily add new alloys

Sprites by WJ
2016-07-14 21:25:49 +12:00
Core0verload e666d2e76b ports pockets (from Animus Green) and adds them to some clothing.
This PR ports pockets (from Animus Green) and adds them to some clothing.

 Shoes that support storing items now use pockets system.
 Some hats have 1 small pocket.
 Detective's hat spawns with a flask in it.
 Clown's mask has a single tiny top-secret pocket. Honk!

This PR also includes two or three path fixes. It also fixes internal storages (pockets, storage implant) having less "max depth" than external ones.
2016-07-14 19:36:26 +12:00
Xhuis 82e2e8a844 Pinpointer refactor (#19156)
* Pinpointer refactor

* Gives operatives the proper pinpointers

* Improves operative and AI tracking a bit

* Bashing people over minor mistakes is the new thing

* Replaces some more strings with defines

* Makes operative tracking actually functional

* Improves operative tracking

* Conflicts I

* Conflicts III

* Conflicts I

* Conflicts III

* Adds two new tracking modes

* Fixes a grammar error
2016-07-13 12:03:36 +12:00
Joan Lung fe28096320 Adds dextrous guardian (#19254)
Added dextrous guardians to the code, able to hold and use items and store a single item within themselves.

Dextrous guardians do low damage on punches, have medium damage resist, and recalling or leashing will force them to drop any items in their hands.
2016-07-13 11:25:00 +12:00
Joan Lung 88324510ed Merge pull request #19149 from coiax/turn-both-keys
Nuclear bombs use TGUI and world.time
2016-07-09 08:39:03 -04:00
Joan Lung 9323f7e9de Merge pull request #19207 from coiax/set-at-own-risk
Added (SETCODE) button for nuclear code request
2016-07-09 08:37:59 -04:00
Jack Edge 78100f83ea Merge branch 'master' into turn-both-keys
Conflicts:
	tgui/assets/tgui.js
2016-07-08 19:49:12 +01:00
coiax afb7ebd790 Tiles are now (mostly) pooled objects (#19112)
* Tiles are now (mostly) pooled objects

Floors no longer have a builtin_tile, but instead use PoolOrNew().

Also added a do-nothing SSpool so you can inspect the global pool.

* Entries for time keeping

* MORE STATISTICS

* Stat tracking, auto filling

* Code review I

* Code review II

* Code review III
2016-07-08 13:32:40 -04:00
Jack Edge 6a1e144d7e Spacing and removing double brackets 2016-07-08 09:22:33 +01:00
Jack Edge 4fbc1475fe Added (SETCODE) button for nuclear code request
🆑
add: When a player uses a communication console to ask for the codes to
the self destruct, for better or for worse, the admins can set them with
a single click. Whether the admins a) click the button b) actually give
the random person the codes, is another thing entirely.
/🆑

- Also tidied up prayer code to use some new admin defines
- Adds the random_nukecode() proc, which returns a random numeric string
between "00000" and "99999". No more requiring it to be at least 10000,
we have the power of ZERO PADDING.
2016-07-08 09:10:33 +01:00
Kyle Spier-Swenson f8e4304d95 Instant Runoff Voting! (#19153)
* Instant Runoff Voting!

This adds the game code required for voting IRV style

* Fixes votes not working for non-admins

* spans and databases

* this is a silly commit, you should never go here again.

* That explains why some people couldn't drag until they re-opened the page.

* Prevent window focus fuckary with voting.
2016-07-06 16:03:43 +12:00
Jack Edge 3ebb4a4cf6 Fully functional nuclear system 2016-07-05 21:38:08 +01:00
GunHog e2cfcb0bd1 Aimed Fireball Spells! (#19030)
* Fireball Spell Changes

- Changes the fireball spell to be click-to-fire.
- Converted Devil and Wand fireballs as well.
- Moved some code to the /proc_holder level to work across the /alien
and /spell branches.

* Tweaks and Fixes

- Infernal Fireball is now a projectile and has the right explosion
values.
- Removed non-projectile spell versions of fireball, as they are unused
- Fixed fireball not seeking adjacent targets.
- Fixed incorrect bolding slashes.

* Fix

Fixes the fireball sometimes missing.

* Fixes and tweak

- Uses TRUE/FALSE defines instead of 0 and 1 for boolean variables.
- Ranged abilities now remove themselves tries to use an ability in a
disabled state. (Such as being knocked out)
- Define for the click cooldown.
2016-07-05 09:06:01 +12:00
Joan Lung e33e44357b Faster get_turf() courtesy /vg/ (#19093)
Uses a single get_step call instead, works via byond black magic
2016-07-05 00:08:47 +12:00
coiax c23c4ab5eb Adds macros for common admin messages (#19070) 2016-07-04 14:04:20 +12:00
Jack Edge f8a603a5ed Merge branch 'master' into dynamic-transit 2016-07-02 23:26:14 +01:00
Joan Lung c801f9a9c9 Replaces umbras with revenants (#19059)
Umbras have been removed.
Revenants have been readded, though they are now vulnerable to salt piles.
2016-07-03 01:33:52 +12:00
Jack Edge 1ad915beed Now working, let's do this 2016-07-02 00:03:04 +01:00
Jack Edge ad51c07f17 Hit a snafu 2016-06-30 21:40:24 +01:00
Jack Edge dbd6af9234 Merge branch 'master' into dynamic-transit 2016-06-30 16:09:20 +01:00
Jack Edge d770fd8b2d Is anything real anymore 2016-06-29 20:37:32 +01:00
Jack Edge 32d29d7222 Experiments will continue until performance improves 2016-06-29 11:14:15 +01:00
oranges 7efd06e202 Merge pull request #18964 from coiax/slimeperson-qol
Slimeperson quality of life changes
2016-06-29 22:12:34 +12:00
Jack Edge 1686c2b838 Merge branch 'master' into dynamic-transit 2016-06-28 14:03:20 +01:00
Jack Edge 0d0c42fc6a Compilation 2016-06-28 13:04:43 +01:00
Xhuis 8a852f196b Removes shadowling (#18951) 2016-06-27 20:53:35 -04:00
Jack Edge 3f5d8c4b00 Merge branch 'master' into slimeperson-qol
Conflicts:
	code/__DEFINES/misc.dm
	tgui/assets/tgui.js
2016-06-27 11:53:47 +01:00
oranges 0432cd9bb4 Merge pull request #18484 from coiax/random-space
All of space is now randomised
2016-06-23 09:12:48 +12:00
Cheridan a6fc773540 Merge pull request #18723 from coiax/pond-skipping
Adds visible ripples indicating shuttle's transit
2016-06-22 11:24:44 -05:00
oranges 269ccc3cf0 Merge pull request #18743 from ChangelingRain/fcrnxvagurgbathrbsgurtbqf
Non-servant humans can't understand clockwork mobs
2016-06-21 20:35:24 +12:00
oranges 944ab8588b Merge pull request #18764 from coiax/fix-18748
Fixes flags, and reorders them
2016-06-21 10:21:42 +12:00
oranges a62066ebe4 Merge pull request #18727 from RemieRichards/global_procs_in_addtimer
You can now call global procs with addtimer()
2016-06-21 10:18:49 +12:00
Jack Edge b9af701379 Fixes flags, and reorders them
Please, let's not have this happen again.
Fixes #18748.
2016-06-20 17:19:55 +01:00
Jack Edge 004dfdc3fe Maybe fixed null z and lavaland entry 2016-06-20 13:42:59 +01:00
Jack Edge 5da579b7c4 Merge branch 'master' into random-space
Conflicts:
	_maps/asteroidstation.dm
2016-06-20 13:06:08 +01:00
Kyle Spier-Swenson 0d6bbbb412 stop the pills (#18703)
* RedPills Processing

Now you have to use START_PROCESSING(SSname, thing) (and STOP_PROCESSING)

* Fixes a minor bug.
2016-06-20 12:07:44 +02:00
oranges bce99c4f58 Merge pull request #18668 from coiax/dropdel
Adds DROPDEL flag; items will qdel() on dropped()
2016-06-20 11:08:31 +12:00
oranges d6bdeb7124 Merge pull request #18455 from Incoming5643/no_bones_about_it
Mutantrace specflag omnibus
2016-06-20 08:15:34 +12:00
Joan Lung 321d7ce4be Non-servant humans can't understand clockwork mobs 2016-06-19 15:46:36 -04:00
Joan Lung b941a47a60 Adds cogscarabs to clock cult (#18685)
* Adds cogscarabs to clock cult

* playstyle string

* info

* oh good going

* no static

* delay it eating all the metal

* scarab removal service

* cog

* ree

* error handling

* todo: languages = RATVAR

* isclockmob

* very large box

* faintly glowing eyes
2016-06-19 17:26:35 +02:00
Remie Richards 0422a46fbb You can now call global procs with addtimer(), by supplying the object as GLOBAL_PROC, a special define that tells the timing subsystem to use a different call()() syntax (the syntax that supports global procs) 2016-06-19 00:40:04 +01:00
Incoming e33dd6dc70 Merge branch 'master' of https://github.com/tgstation/-tg-station into no_bones_about_it
# Conflicts:
#	icons/mob/actions.dmi
2016-06-18 18:57:17 -04:00
Jack Edge 68a67e2227 Adds visible ripples indicating shuttle's transit
🆑 coiax
rscadd: Due to budget cuts, the shuttle's hyperspace engines now create
a visual distortion at their destination, a few secons before arrival.
Crewmembers are encouraged to use these "ripples" as an indication of
where not to stand.
/🆑

- Adds a new layer RIPPLE_LAYER, above vines, below ghosts
- Ripples appear at 10 seconds (the engines online time) and fade in
from fully transparent to fully visible during that time.
2016-06-18 21:30:02 +01:00
coiax 071ae10874 Pylons pulse cult floors when finished conversion (#18626)
* Pylons pulse cult floors when finished conversion

Once a cult pylon has converted everything it can, it then starts
picking random cult floors and pulsing them like they were just created.

Fixes #18539 by making it intended behaviour.

* Converts the wizard tiles into real cult tiles
2016-06-18 10:35:18 +12:00
Jack Edge 8ca69eabbb Adds DROPDEL flag; items will qdel() on dropped()
Pretty self explanatory, replaces writing a dropped() proc that just
calls qdel() with a flag that does it for you.
2016-06-17 12:14:28 +01:00
Xhuis 527dddd95d Complete Revenant Rewrite (#18522)
I'm unhappy with the way revenants are right now, and my code for them is pretty unsatisfactory in comparison to what I know now. Although revenants will still fill the same role of just being spookier ghosts, they'll be a bit more passive - incapable, for instance, of giving diseases to people. The new revenants will be called umbras and will use vitae instead of essence.

Total change list:

    Revenants have been renamed to umbras. Essence has been renamed to vitae. This may be temporary.
    Umbra spawn events are now weighted higher and spawn an unoccupied umbra. Ghosts are alerted to the umbra's position and may interact with it to take control of it.
    Umbras' health is not based on vitae but has a hard cap at 100.
    Umbras have a passive vitae drain each tick, defaulting at 0.01. If the umbra runs out of vitae, they will die irrevocably. They also slowly regenerate health by doing this.
    When an umbra dies, they leave behind umbral ashes that reform after one minute. They're difficult to see and can be scattered by activating them, although they also have high research levels if you're fast enough.
    Harvesting vitae from critical targets no longer kills them. Harvesting a target in general prohibits them from being harvested until five minutes later, but they can be drained again after that.
    EMPs revitalize umbras and give them hefty amounts of vitae due to their physical nature.
    Umbras have four abilities: Toggle Nightvision, Discordant Whisper, Possess, and Thoughtsteal.
        Toggle Nightvision is self-explanatory.
        Discordant Whisper is identical to the original revenant's transmit.
        Possess allows the umbra to slip into a human's body unnoticed. While in their body, umbras will slowly drain vitae from the human at a tiny rate - not enough to cause harm, but enough to induce adverse effects in the clueless human. These effects intensify over time and eventually lead to the umbra being forced out of their host.
        Thoughtsteal paralyzes a living human for several seconds while the umbra steals their memories. After several seconds, the umbra copies the notes of the target's memories and turns invisible - the hapless victim is stunned for several seconds afterwards and can't be Thoughtstolen by the same umbra again. Umbras have an objective to steal the memories of 25% of the station's population.
    Salt piles have been added, created by salt shaker or just by splashing salt. These piles will prevent an umbra from passing and reveal them briefly if they try.
2016-06-17 10:58:07 +12:00
Jack Edge 4e6e9dfe1a Space zlevels now all seeded at once 2016-06-16 12:34:18 +01:00
Kyle Spier-Swenson 235b79fb5a StonedMC, the bastard love child of GoonPS and CarnMC (#17987)
Basically, they key difference between StonedMC and CarnMC is that when multiple ticks want to run at the same byond tick, we divvy up the tick between the subsystems, rather then allow one subsystem to hog it all.

The key difference between StonedMC and GoonPS is that we allow the subsystems to tell us how to divvy up the tick using flags and priority.

The new SS_ flags allows us to select behaviors that used to be piggybacked as side effects of dynamic wait or default but sometimes unneeded behavior.

Dynamic wait is 100% gone, lower priority and SS_BACKGROUND are better more refined ways of doing this when combined with MC_TICK_CHECK

I have by design never looked at the inners of goonPS, so this is all original code but I know it uses two loops because of comments by goon devs on reddit threads, that design didn't make sense before, but when I can tell a SS how much of a byond tick it is allowed to have, knowing how many need to run this tick is helpful I also know a bit more about how it works from piecing together comments in #vgstation.

Detailed list of changes:

Subsystems now have flags, allowing fine grain control over things like rather or not it processes, inits, rather it's wait is how long between runs (post run timing) or how long between starts, and rather or not late fires should cause the next fire to be earlier.

Mc now has two loops One loop handles queuing shit, one loop handles running shit.

MC now splits up tick allotment rather than first come first serve Subsystems can even request a bigger share using higher priorities. (It will even resume subsystems it paused if other subsystems hadn't used as much as it predicted they might need)

Default fps is now 20 This is related enough to the MC and it's a change that's really long since over due

All code oddities are most likely to be necessities to lower overhead on the mc since it runs every tick
2016-06-16 18:01:16 +12:00
Incoming 32d9b37018 Slime/Jelly people gain a new power, regenerate limbs, that allows them to spend jelly to reform lost limbs
Slime/Jelly people also gain a new "power" that forces their limbs to be eaten for jelly if the slimeperson is in threat of dying from a lack of jelly.

Slime/Jelly people can now be dismembered

New specflag: TOXINLOVER

Species with TOXINLOVER (Slime and Jelly people, as well as zombies) take inverse toxin damage, things that typically heal toxin damage will instead cause it and visa versa. Additionally this ties the mutant's blood level to these transactions, reaffirming the slime and jelly peoples vulnerability to antitoxin and the like, which had been lost in the blood rewrite
2016-06-12 20:20:57 -04:00
Incoming e4d57634e4 Merge branch 'master' of https://github.com/tgstation/-tg-station into no_bones_about_it 2016-06-12 17:55:22 -04:00