Commit Graph

125 Commits

Author SHA1 Message Date
PJB3005
f11c558c99 Merge remote-tracking branch 'upstream/master' into rebase-to-vg 2017-02-12 16:35:57 +01:00
Core0verload
4b1eed0c8e You can now emag the escape pods to launch them (#23815)
* You can now emag the escape pods to launch them in any code

* micro optimisation
2017-02-10 20:35:18 +13:00
PJB3005
8ce6ae2b87 Merge remote-tracking branch 'upstream/master' into rebase-to-vg 2017-02-08 14:30:23 +01:00
Cyberboss
2aef76bdce Nuclear bombs now actually detonate (#22586)
* BOOM

* Forgot this check

* Fix remaining objectives

* This is better

* MSO params

* >When you copy paste directly from the comment

* Merge fixes

* Revert "Fix remaining objectives"

This reverts commit b1d1bf40f615019bb57088c24fae8f89c5d2e834.

* Revert "Forgot this check"

This reverts commit cea6ad2381d44a44ef3a93064997454cf7b1ccf5.

* After all that work I did to make objectives work...

* Oh this is important
2017-01-30 09:41:42 +13:00
Cyberboss
5959ac32cc Refactors atom/Initialize. Fixes ruins being initialized twice (#22778)
* Refactors atom/Initialize

Captialized for compiling correctness and to be more inline with Destroy

Will now be called from atom/New if the world initialization loop in SSobj has already run. Should always call the base.

Now comes with the `roundstart` parameter indicating whether or not it was called by SSobj or atom/New

Other fixes/tweaks:
- Renamed a proc called Initialize in abduction consoles to Setup
- Removed /obj/item/device/radio/headset/headset_sec/department: Broken and referenced literally nowhere in the code
- Removed a spawn from the Initialize of turbine_computer which made literally zero sense
- Generalized the proc which fixes RND servers with no id set

Reasoning: It's better to check roundstart per function than to have to duplicate code in New and Initialize. Think of it as a safer New for atoms. If we move enough stuff to it, initial map load performance will increase due to less New calls

* Fixed a thing

* Actually, fuck the police

* >Expecting a merge without errors

* >Not calling ..() in New

* Sanic

* Fix the headset bug

* Makes sure the map loaders dew it right

* Fixes ruins being initialized twice

* Rename roundstart -> mapload

* Revert "Rename roundstart -> mapload"

This reverts commit 667c327fd2ccfa3ce4f4db52eac03f9e8b0f6812.

* Remove unrelated change

* A more direct solution to map loads

* And now we shouldnt need this warning

* Add the new var to SSobj recovery

* Revert "Revert "Rename roundstart -> mapload""

This reverts commit dee07dbd5e4696554ac43aae5b91cce743b9b9e0.

* Line endings
2017-01-23 09:37:45 +01:00
Kyle Spier-Swenson
12570805bd Closes the Pool. (#23150)
* Delete pool.dm

* Removes usage of PoolOrNew

* Wrap up
2017-01-22 16:00:23 -05:00
PJB3005
7356e80484 hey that should be everything except making it compile. 2017-01-17 22:08:27 +01:00
Kyle Spier-Swenson
2243ab6036 [READY]Parallax (#22315)
* Ports Space Parallax from vg/yogs

* KILL ME

* fuck shit

* fixes

* rgfkbjhkefrhjkfrejhkfds

* Parallax, part 2.

* Gotta get these defines in before remie notices!

* DAMN IT! SHE FOUND ONE!

* fixes orbits

* fix orbits take 2

* Fixes some things with parallax

* Refactors parallax shuttle animations.
2016-12-20 21:55:10 -06:00
coiax
f2e96fd758 Hijacking a shuttle diverts it to the syndicate base (#22184)
* Added a Syndicate dock for the Emergency Shuttle

* Removes window from doorway to syndicate base

* Diverts shuttle if the hijack conditions are met

* Fixes incorrect define

* Shuttle needs people on it to hijack

* Redoes the syndicate base extension

* Centcom always lies
2016-12-18 19:48:32 +13:00
Incoming5643
2c82b2d65e The time left on a shuttle call/recall modifies with security level. (#21906)
* The time left on a shuttle call/recall will now correctly modify with changes in the alert status.

As added functionality Code Green shuttle calls no longer need a reason (though you can still give one) and take 20 minutes to arrive.

* Takes out the fun part (for now)
2016-12-04 18:47:17 +01:00
KorPhaeron
b3baa8314c Build your own shuttle 2016-11-19 15:28:25 -06:00
Mervill
9ea955b85f Lint (#21393)
* icon, icon_state defined twice

* desc defined twice

* desc defined twice

* desc, icon_state defined twice

* icon_state, name defined twice

* item_state defined twice

* gender defined twice

* stop_automated_movement_when_pulled defined twice

* attacktext defined twice

* speak_emote defined twice

* flying defined twice

* item_state defined twice

* speak_chance defined twice

* attack_sound defined twice (x2)

* icon_state, item_state defined twice

* icon_state defined twice

* Revert "desc defined twice"

This reverts commit 18d74f442441078a7d8e8cfaddbef1c4646b6bb9.

* desc defined twice

* Revert "desc defined twice"

This reverts commit e167c0812c94a96dfb3f6888c77cee868cc37c03.

* desc defined twice
2016-11-08 13:55:30 +13:00
Leo
5f15879bbf Removes now unused variable 2016-10-21 23:09:05 -02:00
Leo
7dcce3c087 Makes shuttles great again 2016-10-19 17:43:58 -02:00
phil235
6cfd99ec00 Moving shit around and APC repair bugfix (#20912)
* Moving shit around so turfs aren't defined in code/modules/mining .
Fixes APC's integrity not being reset to max when a broken APC is repaired.

* derp

* More turf and turf procs moved.

* fixing merge conflicts again.
2016-10-12 09:48:47 +02:00
phil235
5f835bfc26 Obj damaging system, acid damage, and fire damage refactor (WIP) (#20793)
Please refer to #20867 and #20870 for a easier view of the changes. Those two PRs show all meaningful changes (hopefully) and doesn't show the files changed with just 3 lines changed.

This PR does three things:

    It makes all children of /obj/ use the same damage system.
    Previously to make your new machine/structure be destroyable you needed to give it a var/health, and its own version of many damage related proc such as bullet_act(), take_damage(), attacked_by(), attack_animal(), attack_hulk(), ex_act(), etc... But now, all /obj/ use the same version of those procs at the /obj/ level in code/game/obj_defense.dm. All these obj share the same necessary vars: obj_integrity (health), max_integrity, integrity_failure (optional, below that health level failure happens), and the armor list var which was previously only for items, as well as the resistance_flags bitfield. When you want your new object to be destroyable, you only have to give it a value for those vars and maybe override one proc if you want a special behavior but that's it. This reorganization removes a lot of copypasta (most bullet_act() version for each obj were nearly identical). Two new elements are added to the armor list var: fire and acid armor values.
    How much damage an obj take depends on the armor value for each damage category. But some objects are INDESTRUCTIBLE and simply never take any damage no matter the type.
    The armor categories are:
    -melee(punches, item attacks, xeno/animal/hulk attacks, blob attacks, thrown weapons)
    -bullet
    -laser
    -energy (used by projectiles like ionrifle, taser, and also by EMPs)
    -bio (unused for this, only here because clothes use them when worn)
    -rad (same)
    -bomb (self-explanatory)
    -fire (for fire damage, not for heat damage though)
    -acid
    For machines and structures, when their health reaches zero the object is not just deleted but gets somewhat forcedeconstructed (the proc used is shared with the actual deconstruction system) which can drops things. To not frustrates players most of these objects drop most of the elements necessary to rebuild them (think window dropping shards). Machines drop a machine frame and all components for example (but the frame can then be itself smashed to pieces).
    For clothes, when they are damaged, they get a "damaged" overlay, which can also be seen when worn, similar to the "bloody" overlay.

    It refactors acid. See #20537.
    Some objects are ACID_PROOF and take no damage from acid, while others take varying amounts
    of damage depending on their acid armor value. Some objects are even UNACIDABLE, no acid effect can even land on them. Acid on objects can be washed off using water.

    It changes some aspect of damage from fires.
    All /obj/ can now take fire damage and be flammable, instead of just items. And instead of having just FLAMMABLE objs that become ON_FIRE as soon as some fire touch them (paper), we now have objects that are non flammable but do take damage from fire and become ashes if their health reaches zero (only for items). The damage taken varies depending on the obj's fire armor value and total health. There's also still obj and items that are FIRE_PROOF (although some might still be melted by lava if they're not LAVA_PROOF).
    When a mob is on fire, its clothes now take fire damage and can turn to ashes. Similarly, when a mob takes melee damages, its clothes gets damaged a bit and can turn to shreds. You can repair clothes with cloth that is produceable by botany's biogenerator.

    It also does many minor things:
        Clicking a structure/machine with an item on help intent never results in an attack (so you don't destroy a structure while trying to figure out which tool to use).
        I moved a lot of objects away from /obj/effect, it should only be used for visual effects, decals and stuff, not for things you can hit and destroy.
        I tweaked a bit how clothes shredding from bombs work.
        I made a machine or structure un/anchorable with the wrench, I don't remember which object...
        Since I changed the meaning of the FIRE_PROOF bitflag to actually mean fire immune, I'm buffing the slime extract that you apply on items to make them fire proof. well now they're really 100% fire proof!
        animals with environment_smash = 1 no longer one-hit destroy tables and stuff, we give them a decent obj_damage value so they can destroy most obj relatively fast depending on the animal.
        Probably a million things I forgot.

If you want to know how the damage system works all you need is the three obj vars "obj_integrity", "max_integrity", "integrity_failure", as well as the armor list var and the resistance_flags bitfield, and read the file obj_defense.dm
2016-10-10 11:14:59 +13:00
Joan Lung
bdcb16113a Adds a few turf istype helpers (#20754)
* a very calming act
when the world is too much, too fast

* i'm tired
but i have to be efficient, infinite

* lick your lips at the sight of me
a fantasy made reality
2016-10-01 19:25:46 +02:00
phil235
2d2975f783 Some preliminary changes before the damage refactor PR. The changes here do absolutely nothing gamewise.
This just adds some vars that the refactor will use. Putting this in a separate PR prevent the damage refactor PR from becoming too big (number of files changed) and hard to read and review.

Introduces the resistance_flags bitflag that replaces unacidable and burn_state.
Moves the armor var from item to /obj level and gives specific armor values to many objects, the armor list also gets two new armor types: fire and acid, which will be used in the refactor. the new fire and acid armor values are given to plenty of items.
2016-09-27 22:33:08 +02:00
Joan Lung
8e4df5607b Singularities, but not gods, are now stronger than shuttles 2016-07-26 09:18:41 -04:00
Kyle Spier-Swenson
4a50869c11 Increases shuttle delay to 5.5+10 seconds (#19347)
1+5 seconds was super lame.

The delays had code related reasons, call time at the least shouldn't ever be below 10 seconds without editing the animation for the hyperspace ripples.

The ignition time is designed to make reserving transit space easier, and if it is ever full, ignition time rate limits how often it attempts to reserve transit space.

There isn't actually enough transit space for all of our shuttles (because their doesn't need to be 99% of the time) but with a call time only 1 second, the syndicates, the miners, security/gulag, people using the white ship, and admins could all spam call their related shuttles and then now you have a case where 1 or 2 shuttles are calling the proc to check for transit space every minute. add on the escape shuttle docking and cargo shuttle docking at that moment, and that number could jump to 4 shuttles trying to reserve transit space every minute, all needlessly.

Also, https://tgstation13.org/phpBB/viewtopic.php?f=10&t=7286&view=unread#p195824 points out that having ignition time too long causes issues. I'd want there to be enough time that when we make ignition more apparent, there is actually time react.
2016-07-18 15:49:57 +12:00
KorPhaeron
251b2dc372 Shortens shuttle time from 25 to 6 seconds 2016-07-13 21:20:30 -05:00
Joan Lung
71da2aba13 Fixes shuttles killing AI camera eyes (#19280)
* this wasn't even my bug but because mso was an ass I fixed it for him

* spitefronds
2016-07-13 12:50:20 +12:00
coiax
43e78b8e5e Shuttle bombs now make transit space turfs (#19171)
🆑 coiax
fix: Damage to a shuttle while it is moving will now correctly make
transit space turfs, rather than non-moving space.
/🆑

This also makes explosions on lavaland more sane. The mining shuttle
exploded while on lavaland will make ordinary rock, while the gulag
shuttle will expose lava.
2016-07-07 08:04:54 -04:00
Jack Edge
bb110a004d Remove transit when not in use
Now with pretty colors!
2016-07-02 21:29:29 +01:00
Jack Edge
9f9fd6efcd Merge branch 'master' into dynamic-transit 2016-07-02 11:57:32 +01:00
Jack Edge
1ad915beed Now working, let's do this 2016-07-02 00:03:04 +01:00
Jack Edge
0f67b846df Replaces travelDir with port_angle 2016-07-01 16:55:19 +01:00
Jack Edge
8b8a10410f Removes zombie shuttle ripples
The qdel timer was interacting weirdly with the pool. This makes it
stop.

Fixes #19021
2016-07-01 10:42:52 +01:00
Jack Edge
d0a2225e64 Functioning with bugs 2016-06-30 15:50:29 +01:00
Jack Edge
3c022aa0d1 Wheeee 2016-06-30 13:24:05 +01:00
Jack Edge
c2108a9af5 At this point it's turning into more a rewrite 2016-06-30 00:05:26 +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
Jack Edge
0d0c42fc6a Compilation 2016-06-28 13:04:43 +01:00
Jack Edge
a09544992c Merge branch 'master' into shuttle-processing
Conflicts:
	code/modules/shuttle/ripple.dm
2016-06-26 01:00:25 +01:00
Jack Edge
86cc2dd09a Ripples are overlay/temp 2016-06-25 18:18:44 +01:00
Jack Edge
e1b7ef1cba Changes default shuttle transit time to 15 seconds
🆑 coiax
rscdel: The default shuttle transit time is now
15 seconds.
/🆑

- Fixes shuttle movement spam to spam stun
- Guarantees that all shuttles produce the full
ten second ripple effect before appearing
2016-06-24 10:16:27 +01:00
Jack Edge
a673ba8a75 Removes spawn() 2016-06-19 00:11:34 +01:00
Jack Edge
2d4272612c Roadkill only affects affected turfs 2016-06-18 23:40:13 +01:00
Jack Edge
b67726f896 Code review 2016-06-18 23:08:27 +01: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
Kyle Spier-Swenson
2be36ce8cc fixes shuttle rotation 2016-06-12 18:26:34 -07:00
Remie Richards
b3b60b187b Manual repair of some edge cases. 2016-06-11 23:11:54 +01:00
Remie Richards
fda2c699fc Automatic conversion via Regex 2016-06-11 18:37:48 +01:00
Nerd Lord
f653f38418 it's literally just to make protector holos marginally fancier under 'hit by shuttle' conditions 2016-06-03 17:35:54 -04:00
Nerd Lord
10520995a2 Slightly improves shuttle crushing 2016-06-03 17:19:09 -04:00
Jack Edge
5c82b8eae0 Mobs only take damage once from a shuttle roadkill
Fixes #18061.

🆑 coiax
bugfix: You can only be damaged once by a shuttle's arrival. It is still
unpleasant to be in the path of one though; try to avoid it.
/🆑
2016-05-31 04:31:08 +01:00
coiax
4483d5275c Shuttle manipulator (#17436)
* Starting out on our tgui journey

* God tgui, why do you need to be updated

You're dynamically generated anyway

* Commit of stuff

* Further progress is being made

* Everyone loves buildscripts

* Further modifications to my incredible running script

* Starting to modify the minimap code to be better

* It's going well thusfar, I guess

* What have I done

* RIP minimap

* FUN FUN FUN FUN FUN

* Adds shuttle_manipulator.dmi

MUH HOLOGRAMS

* Is it done? IS IT OVER

* Peer review

* Some bug fixes

* Makes that damn greentext shut up

* Shuttle registration

* Made the Emergency Escape Bar more robust

No climbing on the bar.

* Do not stare into the operation end of the device

* Compile shame

* THE MOST DUMB

* Passive barmaiden

* Emergency shuttle memes

* MORE SAFETY CODE

* Fancy shuttle manipulator icons

* Smoothing it out

* We are going to have a lot of fun with this one

* Independent blobbernauts

* WABBAJACK WABBAJACK

* Message for attempting to authenticate old style

* Angry alert noise is back

* Revert "Independent blobbernauts"

This reverts commit 34d6af7c9c88cfc2864990cb37b586bb90163dd3.

* No parrot sleep plz

* Moves the special shuttle stuff to special.dm

* No Bartender like a Centcom Bartender

* Non-controversial map changes

- Backup shuttle moved closer to Centcom main structure, docking tube
created
- Moved shuttle import landmark to above Centcom main building
- Added shuttle displays to Conference Room
- Squashed the Chapel a bit in Metastation
- Made the docking port on Z2 massive
- Made the docking port on Metastation a lot larger

* Hacks and slashes at Box

A bunch of things are extended and squashed so Box shuttle dock can
support the MetaStation emergency shuttle.

* Some Metastationshit

* Never ending changes

* Wabbajack to TGM

* Modified the bar, I think that's all of them

* Stops Barmaiden wandering around

* More code review

* Whitspace, the bane of us all

* DIE WHITESPACE DIE
2016-05-26 15:15:19 +02:00
Iamgoofball
9f57bca8f7 Adds two alternate shuttles (#17592)
* I got the results of the test back - I definitely have breast cancer.

* aaaaaa

* need help translating shuttle code, will pay in shitcode

* fixes

* Update emergency_imfedupwiththisworld.dmm

* Removes copyright infringement

* Update shuttles.dm
2016-05-14 19:06:25 -05:00
coiax
5b5d956943 Alternate escape shuttles and ferries (#16761)
* Added a simple bar-theme escape shuttle

Features include a very tough Bardrone, with laws to be a good
bartender, bathroom, a quality lounge for the heads, and a small
gambling table.

* Changed drone's health to 3000

Bardrone is now strong, to cope from stray gunfire.

* Replaces banned variables with alternates

Step_[xy] is bad, mkay?

* Added STV5, the cramped transport shuttle

Well, looks like Centcom only had this ship ready for evacuation. I hope
you're friendly with your coworkers!

* Removed shuttle area from empty space on STV5

* Added cult shuttle

Looks like this automated shuttle may have wandered into the darkness
between the stars on route to the station. Let's not think too hard
about where all the bodies came from.

* Include the Narnar Shuttle

* Meat ferry added

Very basic, could probably use some love from a map wizard.

* Moved shuttle files to shuttles/ directory

* MAPS MOVED AND RENAMED

* Hyperfractal Gigashuttle

"I dunno, this seems kinda needlessly complicated."
"This shuttle has very a very high safety record, according to Centcom
Officer Cadet Yins."
"Are you sure?"
"Yes, it has a safety record of N-A-N, which is apparently larger than
100%."

* I REGRET ADDING THESE

* Into templates you go

* Changed floors

* Hugbox supermatter, for map making

* Shuttles KINDA delete themselves

* Hats in hats in hats in hats in hats

* Use the hugbox supermatter in the shuttle

* Include the new verbs

* Include our new verbs

* Fixed runtime when deleting emergency shuttle

* Added to verb list

* Fixes more runtimes with deleting the shuttle

* Shuttle Destroy verb now functions

* Moved them out of the shuttles/ folder

* We'll need these docks later

* shuttle_import landmark datum made

* Changes z2 to TGM format and adds shuttle_import landmark

* SHUTTLE IMPORT VERB

Is this it? Are we there?

* Some compile fixes

* Emergency bar map updated

* Updated cramped shuttle

* Updated narnar shuttle

* Supermatter shuttle updated

* Meat ferry updated

* Debugging information included

* Debug code, QDEL hints

* Minor updates to collection of maps

* May as well use the snowflake drone code

PICK YOUR OWN BARKEEPING HAT.

* The Lighthouse

*static*... part of a much larger vessel, possibly military in origin.
The weapon markings aren't anything we've seen ... *static* ... by
almost never the same person twice, possible use of unknown storage ...
*static* ... seeing ERT officers onboard, but no missions are on file
for ... *static* ... *static* ... *annoying jingle* ... only at The
LIGHTHOUSE! Fulfilling needs you didn't even know you had. We've got
EVERYTHING, and something else!

* Made supermatter hallucination too powerful

* Added force argument for docking testing

* Added emergency backup shuttle

Hopefully it will never be seen or used. But means that provided it's
there and untouched, even with the accidental deletion of a shuttle,
round will still be able to end as normal.

* Added templates for existing shuttles

* Backup shuttle used if emergency shuttle deleted

* Added backup shuttle transit space

Don't know why transit spaces aren't dynamically generated, to be
honest.

* Hyperfractal Gigashuttle improved

More radiation lockers, chairs which makes it "safer".

* Added Shuttle Under Construction

The documentation hasn't been finished yet for this shuttle. Break glass
in case of emergency.

* Added warnings for shuttle interaction

ARE YOU SURE YOU WANT TO DELETE THE EMERGENCY SHUTTLE?

I mean, I really don't know what will happen, and it's probably
nothing good.

* Snappop(tm)!

Hey kids and grownups! Are you bored of DULL and TEDIOUS shuttle
journeys after you're evacuating for probably BORING reasons. Well then
order the Snappop today! We've got fun activities for everyone, an all
access cockpit, and no boring security brig! Boo! Play dress up with
your friends! Collect all the bedsheets before your neighbour does so!
Check if the AI is watching you with our patent pending "Peeping Tom AI
Multitool Detector" or PEEEEEETUR for short. Have a fun ride!

* Fixed horrific experiment icon, added gambling spawner

* Candle changes

Infinite candles start fires but don't run out.
Infinite candles don't make messages when created.

* Shuttle can dock if already docked

* Fixing bugs with shuttle import

Also, some minor bugs with hugbox supermatter still consuming
gas moles and slowly depressurising the area.

* Admin notice, unload bad template

* Fixes problems with some shuttles

* Warning message if roundstart dock failed

* Compiles.

* Inform admins of shuttle problems

* Names for shuttles, minor tweaks

* Moved shuttle templates to shuttles/

* Version numbers are lame

* Shuttle datums

* Shuttle manipulator barebones

It doesn't do anything at the moment.

* Added shuttle manipulator to Z2

It still doesn't do anything yet, but it looks pretty.

* Use GetAllContents(), don't delete ghosts

* Fixes bug where nothing would actually load

* Cancel button on Destroy Shuttle

* Fixed birdboat shuttle overwriting bar shuttle
2016-05-07 23:35:57 +02:00