Commit Graph

3351 Commits

Author SHA1 Message Date
Giacomand
83b882ed3f * Added the space violin to the service cyborg modules.
* Made the space violin usable by service cyborgs.
* You can now examine Cyborgs to see their active module.
* Made the choose module window look nicer.
2013-10-26 13:49:41 +01:00
Fleure
8eeafb70a7 Overrides statue resist proc 2013-10-24 22:25:29 +01:00
Fleure
e3169ee8b9 Adds container resist proc 2013-10-24 21:30:01 +01:00
supersayu
758c98c9e5 Adds a border object list to turfs
This removes some unnecessary or redundant checks in turf/Enter().

Also fixes a movement glitch involving atoms moving out of an object (locker, etc) and into walls.
2013-10-23 16:20:21 -04:00
supersayu
799c7ad2ce Replaces atom/HasEntered() with the builtin atom/movable/Crossed()
Crossed() is a byond builtin which is called automatically when two movable atoms overlap (as a side effect of Move(), but not when loc or x/y/z is changed).  Previously, turf/Entered() iterated through all objects in the turf in order to tell them an object had entered; with this change, HasEntered() becomes redundant and can be eliminated.

This may reduce lag when a large number of objects are moving in a small space (singularity, mining conveyors, etc) but should cause no changes to functionality at all.
2013-10-23 16:20:20 -04:00
Cheridan
9996ded1f8 Merge pull request #1609 from Neerti/bedsheet_bug_fixes
[BUGFIX] Fixes two minor bugs with my bedsheet changes.
2013-10-23 10:59:00 -07:00
Cheridan
02b62b4bed Merge pull request #1616 from Aranclanos/RuntimingSongs
Fixes a runtime related to songs
2013-10-23 09:31:28 -07:00
Aranclanos
89c3865a16 Fixes a runtime when a song tries to keep playing when the instrument was deleted 2013-10-22 03:47:49 -03:00
Neerti
1bdf2eec0c Fixes period in captain's bedsheet name and a graphical error with clown's bedsheet. 2013-10-21 13:58:05 -04:00
Cheridan
7506a19073 Nuke Op Gloves: The Blackening
-Removes the yellow gloves on the Nuke Ops shuttle. (They were completely redundant, as the gloves they start with were already insulated (!!!)).
-In return, adds a laundry room to the nuke ops staging area, allowing them to paint their gloves as they please if they want to be stealthy.
-Removes 'SWAT' gloves in favor of the less-weirdly-specific combat gloves. Codewise, they were exactly the same.

Updates spacebattle.dmm, as it had an instance of swat gloves.
Adds a link in the mapmerge tool instructions to assist in setup.
2013-10-20 23:09:22 -05:00
Neerti
be3eeffded I can't into spelling. 2013-10-13 20:18:15 -04:00
Neerti
38341315d5 FIXED ISSUE WITH COLORS NOW BEING ITEM_COLORS WHO CHANGED IT WHY? 2013-10-12 21:03:57 -04:00
Neerti
6ffb6f1e20 Bedsheets can be worn, details in PR. Fixed merge conflicts hopefully. 2013-10-12 20:46:54 -04:00
Giacomand
796f3ca9f1 Merge pull request #1517 from Mloc/tg-byond500
[MAP] Refactors the code to work with BYOND 500.  Big commit.
2013-10-07 07:05:46 -07:00
Mloc-Argent
79495f710a Refactors the code to work with BYOND 500. Big commit.
Var changes:
* /obj/item/var/color is now item_color
* /obj/machinery/portable_atmospherics/canister/var/color is now canister_color
* /obj/machinery/atmospherics/var/color is now pipe_color
* /mob/living/simple_animal/mouse/var/color is now body_color
* /mob/living/simple_animal/chicken/var/color is now body_color

Proc changes:
* /obj/machinery/door/proc/animate() is now do_animate()
* /obj/machinery/transformer/proc/transform() is now do_transform()

Map changes are due to pipe instances being changed from color to pipe_color

Signed-off-by: Mloc-Argent <colmohici@gmail.com>
2013-10-06 19:47:30 +01:00
Giacomand
3b667227e5 * Made atmos_spawn_air() use flags.
* Replaced "fire" with SPAWN_HEAT. You will have to use it in conjunction with SPAWN_TOXINS to spawn fire.
 * Added flags for HEAT, COLD, TOXINS, OXYGEN, CO2, NITROGEN, N2O, FUEL and AIR.
2013-10-06 00:29:45 +01:00
Cheridan
ad6fa779b5 Merge pull request #1446 from Ricotez/airlockpainterfixes
Fixes and improvements to airlock painters.
2013-09-30 19:15:30 -07:00
Ricotez
5bd1a5bde7 -The airlock painter now shows a message when initially used on an airlock and out of ink/toner cardridge.
-Codewise the functionality of airlock_painter/use() was divided between two procs. Use() still works the same, but can_use() only checks if the painter can be used, without draining ink or playing sounds if it can.
2013-09-30 01:38:31 +02:00
Ricotez
b012829467 -Fixed being able to open the paintjob selection window and just walking away to paint the airlock from a distance.
-Fixed a few runtimes that could occur if the toner cardridge were removed while the paintjob selection window is still open.
-If you remove the toner cardridge from the airlock painter, it will now try to be put in your hand before falling to the ground.
2013-09-29 17:40:41 +02:00
Cael Aislinn
4ea0fe35b0 Merge pull request #1469 from Ergovisavi/ergo_mobs_on_fire
Mobs on fire: The return: The reckoning
2013-09-28 10:00:24 -07:00
Ricotez
0882d41574 Fixes and improvements to airlock painters.
-Airlock painter can now be used on finished airlocks to change their paintjob. Keep away from the Clown.
-Airlock painter description up to standards. It still shows the current ink level.
-Fixed a bug with painting airlock assemblies where painted glass airlocks deconstructed to assemblies reconstructed to airlocks would lose their glass status.
-Airlock painters now make a sound (effects/spray2.ogg) when used to paint an airlock.
2013-09-24 21:31:39 +02:00
Malkevin
c9d26c99f9 Removed the black mask, it really did look too much like a gimp mask.
Color scheme is now: HoS Red/Blue, Warden Red only, Officers White

Recolored the blue mask, should look much better now:
https://dl.dropboxusercontent.com/u/95696802/Commits/secmask/newblue.png

Moved the ..() in the departmental lockers after the departmental equipment so that they're at the bottom of the pile instead of on top, which was annoying
2013-09-21 23:49:42 +01:00
Cael_Aislinn
772acc95c4 mobs on fire system, by ergovisavi
Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
2013-09-22 04:59:48 +10:00
Cheridan
cb3de0d038 Merge pull request #1371 from Malkevin/sechailer
Sechailer mask (now finished)
2013-09-20 13:47:12 -07:00
supersayu
a993ce62db Bugfixen and minor changes. Fixes #136.
Adjusts the click code to not use client/Click().  The code is largely unchanged, except that it allows the compiler default behaviour of calling atom/Click(), and then forwards the call to mob/ClickOn().  I had some reports that melee combat mixed with movement was behaving oddly, and I believe it may be due to the use of client/Click; the byond documentation says that redefining client/Click() causes additional overhead, and it isn't strictly necessary.

Alters the way double clicks are handled, in an attempt to better handle clickspam, as often occurs during pitched combat.  This may also be responsible for the above, but I don't know.

Inserts proximity (aka flag) checks in all afterattack() procs.  The old assumption was that unless an item used the USEDELAY flag, afterattack() was only called when adjacent, but this is no longer true.  This led to beakers, soap, crayons, etc, all being usable at all ranges.

Removes the NODELAY flag, which was unused.  Removes all existing uses of the USEDELAY flag so that it can be readded to things that need extra delay.

Removes the hand_* procs, previously used by restrained actions.  Instead, the mob helper mob/RestrainedClickOn() has abosrbed basically all the functionality they were used for, which is really only monkeys with jungle fever.

Adds a special case of the Adjacency() proc for doors.  This fixes #136, airlocks being unreachable due to border fire doors.  However, this only takes us back to the unpleasant position where you have to open-hand the door, switch to a crowbar, and pry open the firedoor; it still needs a better fix.
2013-09-17 18:19:14 -04:00
supersayu
c172e52dce Adds telekinesis to click code. Fixes issue #1202, #1129, #247.
This adds two atom procs, attack_tk() and attack_self_tk().  attack_tk is used as per attack_hand; attack_self_tk exists on all atoms (not just items) but is similar to the item proc, but without the assumption that it is in the user's hand.

Removes the functionality where entering throw mode would create a tk grab, as it is redundant.

As a default, attack_tk does the following:
* Creates a telekinetic throw for items and un-anchored objects
* Does an attack_hand (paw, animal, etc) for anchored objects
* Does nothing to mobs

As a default, attack_self_tk does nothing.  An attack_self_tk was added to closets to open and close them since that's a common thing.

The following items have added attack_tk procs:
* Fire axe cabinet, extinguisher cabinet, and bedsheet bin will drop into their square instead of putting it in your hand
* Doors only open telekinetically if they require no access
* Chairs will rotate if nobody is buckled to them
* Filing cabinets will remove a paper at random.
* Tables and racks return to prevent telehulk smash

This is INCOMPLETE.  Adding proper TK interaction to everything is something best done in pieces.

In particular, interacting with mobs and items both open up the floodgates for bugs, so we/I need to decide how we want it to go before we commit, and then fix bugs along the way.  Stumbling forward, fixing bugs, and then changing course halfway would be a bad idea.
2013-09-17 18:19:09 -04:00
supersayu
475042a212 Click code rework
Fixes #646, #579, #863

Completely redoes the click code.  Moves all click related code into code/_onclick for reference.  Also moves hud datum code and all the screen object code I could find into code/_onclick/hud, as it is related.  Item attack(), attackby(), afterattack(), and attack_self() have been moved into item_attack.dm for consistency.

Completely removes dummy objects and adds atom.Adjacent(user).  This proc checks for border items and anything marked with throwpass for determining whether or not you can reach a given square.  A turf helper, ClickCross(), was added to facilitate this.

Removes the monolithic Atom.Click() proc in favor of an overridable click handler attached to mobs.  Click code no longer uses the : path operator as a consequence, and mob/lastDblClick has been moved to Client/next_click.  A few end arounds were necessary (screen objects, buildmode, and spells), but this has been handled by repurposing Atom.Click(); if you have special click code, insert it in the object's Click() function and return 1 to prevent normal processing.

This update adds support for attack_ghost(); the previous "new" click handler had support for it but was never finished.  I have taken the liberty of letting ghosts click portals, the gateway, and the teleporter to jump to the intended target square, and kept the previous default action of examine()ing every damn thing you click.  It is to be suggested that you could do more with this proc when ghost interactions are enabled.

This update also adds support for double clicking.  It is currently only used for ghosts and AIs, because the original (first) click still registers normally.  For both of these, double clicking a square will jump you to it, and double clicking a mob will follow it.  In the case of ghosts, double clicking bots and the singularity will also set you following it; if you double click your own corpse, you will re-enter it; this also works if your body is in a closet, sleeper, DNA scanner, etc.  Default mobs ignore double clicks as normal.

-- NOTE --

There are two flags which were previously unused or misused by click code: USEDELAY and NODELAY.  Ostensibly, USEDELAY would double the normal 1sec delay, and NODELAY would remove it.

Using either of these flags as intended would significantly affect the timing of the game.  In particular, USEDELAY is currently applied to guns and about everything else that acts at range.  I am adding USEDELAY as a half-second increase for now, but I have not put a significant amount of thought into it.  I considered lowering the normal 1sec delay to .8sec to balance it, but the consequences of that on combat involve more calculations than I care to make.

NODELAY seems to never have been used, and I did not implement it, but I could do so trivially.
2013-09-17 18:15:54 -04:00
Malkevin
eb67e97155 Sec hailer mask ** NOT READY **
**** This only up for a code review, it isn't ready for merging yet, I'm waiting for the finished sprites, for now its using the standard gas mask as a placeholder ****

* Problem: People complain about sec silently stunning and cuffing them, sec complains that if they stop to ask someone to surrender they sanic off.

* Solution:
This commit creates a special security gasmask.
As well as functioning as a normal gas mask it has an integrated loud hailer which when activated (via attack self, verb, or action button (which means both hands are free (which means it'll actually get used unlike a hand-hailer))) emits a random compliance phrase, both as a sound effect and in the chat window.

You can download the sound effects here:
https://dl.dropboxusercontent.com/u/95696802/Commits/secmask/oggshq.rar

Compliance phrases are:
01.	HALT! HALT! HALT! HALT!
02.	Stop right there, criminal scum!
03.	Freeze, Scum Bag!
04.	Dead or alive you're coming with me.
05.	God made today for the crooks we could not catch yesterday.
06.	Don't move, Creep!
07.	Down on the floor, Creep!
08.	Prepare for justice!
09.	Running will only increase your sentence.
10.	Compliance is in your best interest
11.	Stop in the name of the Law.
// Phrases past this point require the user to tamper with the device via a screwdriver
12.	Stop or I'll bash you.
13.	Go ahead, make my day.
14.	Stop breaking the law, ass hole.
15.	You have the right to shut the fuck up.
16.	Shut up crime!
17.	Face the wrath of the golden bolt.
18.	I am, the LAW!

-Replaced the Oggs with higher quality ones, they were hard to hear in game
-Reorganised the groupings of phrases from 2 groups to three (good cop, bad cop, and shitcurity)
-Expanded the restrictor, user can now select an option to only play the good cop phrases. Also added a 'secret' way to make the mask only play shitcurity phrases

Added the finished sprites (Credit goes to Iatots for the sprites, though I did some tweaks)

Added the masks to the lockers:
-HoS has a choice between command Blue, and White
-Warden has Red
-Officers have black
-Detective, HoP, and Captain get fuck all

Moved security belts higher up the stack, having to shift through the stuff I'd end up putting in my belt all the time was just annoying.

Changed the black mask's eye covers to green, it just looked weird
2013-09-14 22:47:50 +01:00
Fleure
73d25c7c04 Minor atmos fixes for resin and mineral structures 2013-09-08 01:01:12 +01:00
VistaPOWA
aee35c6c08 Removed unneeded 'this's 2013-09-02 13:20:02 +02:00
VistaPOWA
761731c27a Merge git://github.com/tgstation/-tg-station into critter_crates
Conflicts:
	icons/obj/storage.dmi
2013-09-02 13:18:15 +02:00
Cael_Aislinn
35f5fbf17e adds laser pointer, makes RD + lawyer + librarian spawn with one, makes laser pointer a steal objective
Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
2013-09-01 13:42:28 +10:00
VistaPOWA
6e83288a78 Bunch of fixes
Cleans up the resist code for lockers
Adds both locked and broken vars to closets
Fixes secure lockers opening when welded, but not locked
2013-08-30 19:59:23 +02:00
VistaPOWA
7393c4217d Adds critter crates
Fixed several conflicts present in last pull request, should be fine
now.

All animals ordered through cargo will arrive in critter crates. These
crates are designed for the safe transport of animals. Critter crates
can only be unlocked from the outside and automatically lock when
closed. You can resist your way out of the crates. Critter crates are
counted as normal crates when sent back to CentComm.

Adds cat crate (cost: 40 points).

Corgi crate now has a 50-50% chance of either containing a male or
female corgi.
Moves critter crate sprites from storage.dmi to closet.dmi.

Removes redundant large animal crates.
2013-08-27 22:25:42 +02:00
Aranclanos
69c85fa4e9 Makes windows and grilles garbage collect. This will make fires a LOT less laggy. And singularities a bit. 2013-08-23 09:42:50 -03:00
Cheridan
cc1e3d2b6d Merge pull request #1178 from caelaislinn/pugs
Adds pugs, makes pugs orderable via cargo
2013-08-22 22:52:48 -07:00
Cael_Aislinn
194a98736f makes pugs orderable via cargo bay
Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
2013-08-17 10:13:08 +10:00
Aranclanos
0ce01d1583 Adding Linda. 2013-08-10 06:15:14 -03:00
carnie
3317aa9fe3 Merge branch 'master' of github.com:tgstation/-tg-station into FUTURE_DNA_2
Conflicts:
	code/game/dna.dm  <-- leave this shit alone unless it's a small-tidy change. ffs.
2013-08-06 09:54:24 +01:00
Giacomand
ce30071077 Runtime fixes.
runtime error: Cannot execute null.on reagent change().
proc name: del reagent (/datum/reagents/proc/del_reagent)
  source file: Chemistry-Holder.dm,308
  usr: null
  src: /datum/reagents (/datum/reagents)
  call stack:
/datum/reagents (/datum/reagents): del reagent("pacid")
/datum/reagents (/datum/reagents): clear reagents()
Chemsmoke (/datum/chemical_reaction/chemsmoke): on reaction(/datum/reagents (/datum/reagents), null)

runtime error: Division by zero
proc name: Topic (/datum/song/Topic)
  source file: musician.dm,193
  usr: Tico-Tico Tambien (/mob/living/carbon/human)
  src: Untitled (/datum/song)
  call stack:
Untitled (/datum/song): Topic("src=\[0x210054cd];import=1", /list (/list))
2013-08-02 00:28:08 +01:00
carnie
02be173c60 Renamed variables:
b_type to blood_type
h_color to hair_color
f_color to facial_hair_color
f_style to facial_hair_style
h_style to hair_style
2013-08-01 13:48:41 +01:00
Matevž Baloh
5e043a6e72 Merge pull request #973 from Incoming5643/magic
Adds a new wizard spell: Flesh to Stone
2013-07-24 12:53:08 -07:00
Incoming
30dfa96b23 *minor tweaks for Gia
*the statue's attackby has been relaxed so any item can whack it without checks
*The mimic's check for mobs from lapsed flesh to stone spells has been simplified
*The reason this check works is because when a statue runs out of time it locs its contents, so if the statue was inside something else (in this case a mimic) they end up in the mimic's contents.
2013-07-19 09:30:41 -04:00
supersayu
941631b664 Removes the spacevine-attack code 2013-07-18 23:22:32 -04:00
Incoming
0739ea2b97 Statue Bugfixes
*the targeting for the spell has been reworked so there's no chance of people in the same loc getting stoned instead of your intended victim. As a result of this improvement, wizards can now cast the spell on other wizards with reckless abandon
*Flesh to Stone and the Staff of Animation play nicer with each other now, no more mobs getting trapped in item mimics after escaping the statue.
*Minor tweaks to the monkey statue, which looked dumb
2013-07-18 22:45:02 -04:00
supersayu
528dd9c31a Grab fixes and scythe tweaks
Fixes the grab timer; there will now be a delay between grab upgrades.
Fixes grab process so you no longer have to spam click before it disables itself.  Fixes issue #577

Fixes issue #253:
Prevents grab and throw when the affected mob is buckled.
Prevents tabling a mob when that mob is buckled.

Prevents you from dropping scythes on a table or rack if there is a space vine in that square; it will now auto-attack the vine instead.  Also auto-attacks vines if you click the floor under them.
2013-07-17 15:50:33 -04:00
Incoming
d8e55e67cb *statues are now a subclass of lockers (stripped of most its procs) to fix some inheritance problems
*statue sprites updated from "granite" to "marble" to fix some contrast problems
*statues now get their Health from their target's current health, healthy humans and monkeys will have 200 health before shattering, corgis will have 120 health. Injured targets will make for easier to smash statues.
*likewise when a mob is unstoned it will take any damage the statue took as brute damage.
*Replaced godmode with a set of vars to assure the mob's health remains constant while a statue
2013-07-17 15:07:38 -04:00
supersayu
3ac2af0e06 Fixes exploit for passing plastic flaps with a locker.
Fixes issue #254
2013-07-17 14:54:34 -04:00
Incoming
b34a683334 *Adds a new wizard spell: Flesh to Stone
*Spell renders one target (choosen from list) immobile and incapable of interaction by encasing them in a breakable statue
*Effect ends after a long while (4 minutes) if the statue remains intact
*Requires robes and has a range of 2 squares, cooldown 60 seconds
*Statue can be animated by Staff of Animation, the spell will still end at the normal time
*Currently can be used on humans, monkeys, and corgis
2013-07-16 22:05:15 -04:00
Cael Aislinn
722d15a43e Merge pull request #916 from Aranclanos/DensityBlockingWindows
Windows attacks not being blocked by grilles and other density objects fix.
2013-07-13 03:40:22 -07:00