Commit Graph

49 Commits

Author SHA1 Message Date
AnturK 59774fc0fb Fixes some other ghost interaction issues. 2016-02-26 23:13:13 +01:00
phil235 0ec876d9fe Refactored the item's action system. Items can now hold multiple actions.
The "set internals" button of tank items now turn green when it's used as internals.
Removed research scanner from drones (since cyborgs don't have it, it's more consistent)
Removed the ignore_madkadjust mask var.
The sechailer mask now has an adjust mask action button, so I removed the adjust verb that it was using.
The item's action are now created on item/New() instead of trying to create it every time someone picks the item up.
I split hud/action.dm, the datum/action stuff is now in the datum folder (/datum/action.dm), whereas the code for action buttons is kept in the hud folder under action_button.dm. Also I moved some /datum/action code that was in some files back into datum/action.dm where it belongs.
2016-02-23 19:37:42 +01:00
oranges 134a76cc8f Line ending apocalypse 2015-12-17 14:12:37 +13:00
KorPhaeron c202574bb2 Barrier clean up 2015-12-16 17:28:50 -06:00
KorPhaeron 83538e4bf4 Defines 2015-12-09 12:53:38 -06:00
KorPhaeron 25c86f316d Barricade changes 2015-12-09 12:06:41 -06:00
KorPhaeron 3ef452d8c3 Shooting while adjacent to barricade 2015-12-02 02:36:32 -06:00
Bjorn Neergaard e885fd8879 Fix Wooden Barricades not taking bullet damage
* Add bullet_act() proc
* Make Wooden Barricades check Bullet damage types
* Rebalance Wooden Barricade damage
* Also clean up some messy code

Fixes #13154
2015-11-23 01:19:11 -05:00
phil235 d3ee910211 Makes effect system code more OOP.
obj/effect/effect is now renamed obj/effect/particle_effect for better usability.
datum/effect/system and /datum/effect/effect/system are now both /datum/effect_system.
Fixes a bug where wall mounted igniters (and other spark producing objects) didn't produce sparks sometimes.
Moved explosion_particles.dm into the effect_system folder, because it has effect_systems code.
2015-10-21 23:28:29 +02:00
phil235 9b0d8c0b54 Tiny tweak 2015-10-08 20:09:05 +02:00
phil235 c4c447a8dc Fixes hotspot having two New() procs.
Fixes many machines and a few structure not having a cooldown when attacked with an item.
Fixes not being able to eat or be facehugged when wearing riot helmet with visor up.
Fixes not being able to use child of the tool type for craft recipes requiring tools.
Tablecrafting failure message now tells you what caused the failure (missing tool, missing component)
Fixes fuego plasma burrito recipe.
Fixes being able to grab cups from water cooler with telekinesis, putting the cup directly in your hand.
Fixes golem appearing with their old human name for a split second.
Some changes to make code more OOP (take_damage() proc for barricade, shieldgen, etc)
Some tweaks to light tube building code.
2015-10-08 19:50:01 +02:00
bear1ake f697ae90f5 removes a bunch of .0 2015-09-10 20:57:30 +09:00
Firecage 4688c2c969 Fixes proc arguments 2015-07-15 23:52:35 +02:00
Iamgoofball c2256d41fc BAR NOW SHOWS UP ON THE OBJECT YOU'RE INTERACTING WITH 2015-06-13 13:58:08 -07:00
kingofkosmos de280c72b5 Removed some more spans from visible messages. 2015-04-24 21:06:59 +03:00
kingofkosmos e371dd9f35 more spans 2015-04-24 20:52:00 +03:00
Remie Richards 5fc7af7fbf attackby() now has an argument containing the parameters of the click that called it. Items placed on tables now center their icon where the user clicked. this is NOT true for racks, since racks look organised in their sprite.
Items reset their pixel_x and pixel_y values on pickup.
2015-02-19 13:02:43 +00:00
phil235 d5a7d82959 Fixes a lot of "the the" in messages. 2014-12-16 22:59:55 +01:00
Hornygranny af3f1aa4d8 Merge remote-tracking branch 'remotes/upstream/master' into emagrefactor
Conflicts:
	code/game/machinery/deployable.dm
	code/game/objects/items/weapons/storage/lockbox.dm
	code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
	code/modules/clothing/glasses/hud.dm
	code/modules/mob/living/silicon/robot/robot.dm
2014-12-09 16:03:45 -08:00
Razharas 7758a0afed Ok now explosions shall work properly
Changed severity to target, make items not destroy themselves on
severity lower than 1, all that stuff
2014-12-05 23:21:48 +03:00
Hornygranny 678a13c451 moves emag effects from attackby() into atom proc emag_act() 2014-11-20 17:49:06 -08:00
Razharas ff456ebaf4 Unwinded most of shit
Meh
2014-11-19 21:36:45 +03:00
Razharas b071a0167e Made explosions work in a slightly different way
Yep
2014-11-18 16:22:41 +03:00
phil235 dbea503e88 Removing the fourth argument (air_group) of CanPass() everywhere, because it isn't used anywhere.
Fixing one instance of "for(mob in viewers) show_message()" to "visible_message()"
2014-10-15 18:03:06 +02:00
Aranclanos 604959151d Added click cooldown for wooden barricades. 2014-09-02 21:39:21 -03:00
Firecage 6c7af5eb32 SPANCLASSES!!!!! 2014-08-26 09:52:13 +02:00
Firecage 055b17bc5f Absolute paths for some machinery files. 2014-08-06 23:21:24 +02:00
LandoTheClimber 787e6c48c2 Allowed security barriers to be unlocked by PDA. 2014-06-24 10:49:25 -04:00
Cheridan 4d8160ab14 meteorhit() is kill 2014-04-22 12:16:02 -05:00
Jordie0608 79746e115f Wooden Walls 2014-04-01 18:03:02 +11:00
MrPerson 9eee3e5067 First pass at a qdel() garbage collection system for tgstation
Works pretty well. If it can't GC something, it'll just del() it and be done.
Speed is amazing, holy shit.

New procs you should be aware of:
qdel(atom/movable) - sets up an object for garbage collection. Call this rather than del(atom/movable).
atom/movable/Destroy() - called right before the object is GC'd, so it still has a loc. Also called if the object is del()'d.
new controller - garbage.dm has all the details on this. Basically it nulls all references on GC'd objects and force del() them if necessary.
Generally speaking, objects should use Destroy() for behavior prior to deletion rather than Del(). You should also always call the parent so the object gets the right gc_destroyed var set.

ISSUES:
Tries to GC mobs atm. This actually works for new players, not so much for humans/monkies/simple_animals/anything. I'm guessing it needs to clear out their mind and HUD and maybe other things.
Gibbing is really bugged. It works, but the overlays just sit there for awhile and ugh. I'm very tempted just to del() mob/living and mob/camera and call it a day.
qdel() equipment doesn't unequip the item.
Pipes don't generally GC correctly. Debugging suggests they get referenced in many pipenets and that isn't cleared properly. However some do work fine. Need assistance here.
Bots don't GC, probably in the radio controller.
Lots of other shit doesn't GC but it's hard to find them because of the pipe spam.
I think I'm calling Destroy() twice by accident.
2014-02-23 14:55:12 -08:00
Cheridan d06b8c42b7 Access Cleanup
HONK! Access and Mime Access merged into Theatre access. They were used interchangably in most cases, with the exception being the Honker mech which is a joke item anyway.

Airlock Electronics now require only maintenance access instead of engine access.
2013-09-16 09:36:36 -05:00
johnsonmt88@gmail.com dc599e776b Added emp_act() to some machines.
- Cell charger: Now calls battery emp_act() as well.

- Security Barrier: Now has a chance to toggle the lock.

- Flasher (portable and wall mounted machines, not the item): Now has a chance to flash.

- Wall-Mounted Sparker: Creates sparks.

- Light switch: Toggles the lights when emp'd (not that it'll matter since the lights will probably all have gone out anyway.)

- Weapon Recharger: Calls the energy gun's battery's emp_act() for guns and in the case of stun batons, it sets their charges to 0.

- Cyborg Recharge Station: Cyborgs now get ejected, then emp'd. There would probably be issues with emping the cyborg inside the machine, like being trapped forever or something.

- Sleeper: Eject's the patient. I kind of wish I could make it inject random chems, but it wants a usr and I'm not inclined to start mucking with sleeper code just for this.

- Space Heater: Calls the emp_act() for the battery inside the heater.

- Status Display: Causes the blue screen of death.

- Portable Atmos Pumps: Randomly changes the pressure, has a chance to flip the direction and turn the machine on/off.

- Portable Atmos Scrubber: Has a chance to toggle the machine on/off.

- Arcade Machine: Spits out some random prizes.

- Medical record computer: Runs through the medical records and has a chance to scramble the name, age, sex, blood type, physical or mental state of patients as well as a small chance to delete entries entirely.

- Security record computer: Runs through the security records and has a chance to scramble the name, age, sex, criminal status, physical or mental state of entries as well as a small chance to delete entries entirely.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5237 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-01 00:45:32 +00:00
Kortgstation@gmail.com 068fc7afda Replaced a ton more for viewer in range things with visible_message
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4934 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-22 04:30:19 +00:00
sieve32@gmail.com 459c558898 -Make holodeck eswords a child of obj/item/weapon/holo instead of regular eswords, clumsy check removed as a result, and you can no longer do things like cutting through walls or doors or what have you. (Fixes Issue 665)
-Redid icons to be more optimized at compile by setting icon = 'icons/folder/icon.dmi' instead of just icon = 'icon.dmi', meaning that Dream Maker doesn't have to search through every single file for every single .dmi. This shouldn't lead to any errors because of how I went about it, plus the fact that Dream Maker would have freaked out if I screwed something up. Also moved around 2 icons that weren't sorted well.

r4146 compile time: 1 minute, 40 seconds
r4147 compile time: 45 seconds

[VGTG]

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4147 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-23 00:48:51 +00:00
petethegoat@gmail.com bec8e2cf37 Renamed access_medlab to access_genetics.
Gave the RD his genetics access back.

Added Invisty's hyperspace tiles.
Added Icarus's map updates (Sec, gateway room, genetics/RD access) ((this is a big overhaul to sec)).
Added Flashkirby99's SMES sprites.

Updated the changelog.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3576 316c924e-a436-60f5-8080-3fe189b3f50e
2012-05-11 12:28:02 +00:00
elly1989@rocketmail.com d775e1ac80 Runtime fixes for:
runtime error: Cannot modify null.layer. proc name: done (/obj/effect/equip_e/human/done) usr: Ramona Fawkes (/mob/living/carbon/human) src: the human (/obj/effect/equip_e/human)
call stack: the human (/obj/effect/equip_e/human): done() the human (/obj/effect/equip_e/human): process()

runtime error: Cannot execute null.use(). proc name: attackby (/obj/structure/barricade/wooden/attackby) usr: Jeffery Long (/mob/living/carbon/human) src: the wooden barricade (/obj/structure/barricade/wooden) call stack: the wooden barricade (/obj/structure/barricade/wooden): attackby(null, Jeffery Long (/mob/living/carbon/human)) the wooden barricade (/obj/structure/barricade/wooden): DblClick(the floor (159,129,1) (/turf/simulated/floor), "mapwindow.map", "icon-x=15;icon-y=12;left=1;scr...")

Rewrote wielded weapons to be their own weapon subclass. There was no point having a var/wielded var/twohanded var/force_unwielded var/force_wielded for every damn item when there is only 1 wield-able weapon anyway. All the wield-able stuff is now in twohanded.dm

Changed the adminhelpsound to some creative commons sound I pinched. Until somebody can get a better one. I'm sick of MAAAAAAAAOOOOOOW.

All PMs trigger the adminhelp sound. That means when you OM a player they get the sound, if a admin is PMed they only hear it if their adminhelp sounds are enabled. This should allow people to get eachother's attention when t he chat is busy.

Fixed some bad code with poddoors (which is used for the shutters in QM)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3435 316c924e-a436-60f5-8080-3fe189b3f50e
2012-04-11 05:01:44 +00:00
panurgomatic 32b2be1b5a - Simple event dispatch system.
- atom.forceMove() proc. Ignores density and other Move() restrictions, but calls Exited() and Entered()
- var/emagged moved to /obj/machinery class
- anyprob() helper proc.
- Mecha internal damage vars encapsulated.
- Mech Fabricators now require robotics ID to operate. Emag removes this restriction.
- Added Odysseus Medical Exosuit and it's parts. Has integrated Medical Hud and ability to mount medical modules.
- Added Sleeper Medical module for medical exosuits. Similar to common sleepers, but no ability to inject reagents.
- Added Cable Layer module for exosuits. Load with cable (attack cable with it), activate, walk over dismantled floor.
- Added another exosuit internal damage type - short circuit. Short-circuited exosuits will drain powercell charge and power relay won't work.
- You should be able to send messages to exosuit operators using Exosuit Control Console
- Gygax armour and module capacity nerfed.
- Exosuit weapon recharge time raised.
- Bugfix: EMP actually drains exosuit cell and damages it

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2780 316c924e-a436-60f5-8080-3fe189b3f50e
2011-12-23 10:54:23 +00:00
mport2004@gmail.com 46a7143e3a Energy projectiles work again.
Rewrote the job selection system to use bitflags and the jobs are now objects.
Fixed a path conflict with effect which caused a few things to be unable to be clicked on.
Commented out the job.txt, Urist if you still want it to load from the .txt give me a yell and I can update it to work with the job objects.
Fixed up the bits that were missing the slightly updated mob organ attack code.
Moved the traps file into unused.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2340 316c924e-a436-60f5-8080-3fe189b3f50e
2011-10-11 07:52:30 +00:00
mport2004@gmail.com 62e28c2abf Organs:
Moved into their own folder and got split into three files.
Damage  zones have been regrouped slightly to make it easier to deal with them. Currently the organ groups are head, l/r leg, l/r arm, and head.

Attacking:
Armor is properly checked.
Currently aiming for the chest gives a higher chance to stun whereas the head will stun for longer.
Stungloves/Disarm now show up in the attack log.
Stungloves ignore intent.

Silicon:
AI units can now move between cams that are not on the ss13 network.
Cyborg's alert screen should not longer pop up every time they get an alert if they have opened it once during the round.
Robot vision now uses the standard amount of energy.

Gamemodes:
Added Deuryn's unrev message.
Runes can only be examined if you are close to them.
Moved the Loyalty implants to the HoS' locker at the request of HerpA.
Nuke agents now come with explosive implants that will activate upon death.

Projectiles:
Once again went though the gun code and cleaned things up, it is much better now.
Bullet_act fixed up and most mobs now use the one in living, just overload it if they need to do something diff.
Freeze /caplaser/xbow no longer have an infinite loop.
Shotguns have to be pumped manually.

Went though the latest runtime log.

Power cells now use return on their give/use procs

Assemblies have been reworked and are nearly finished, just need to finish up the special assembly code, redo the signalers, and add one or two new assembly items.
Laying down will now only take 3 ticks to get up, from 5.

You can no longer punch people on the spawn screen.

This is a big one and was cleared by two heads, TK will only allow you to pick up items.  If you have an item in your hand it will act normal.

This revision got much larger than originally intended my tests show everything is working fine, but you never know.  Ill likely do more mob teaks in the next few days.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2333 316c924e-a436-60f5-8080-3fe189b3f50e
2011-10-08 10:38:01 +00:00
mport2004@gmail.com 17ed3899c4 Fixed the map/code issues that the body bags caused.
/obj/effects is now /obj/effect.
/obj/station_objects is now /obj/structure.
Did a bit of minor blob work. 
The Bay 12 body bags were replaced with closets because having two sets of code that do almost the same thing is silly.
Changed back a few of the last jobproc edits as the remove from list before assign was a check to see if the mob was fucked up and if it was remove it so we did not check it again as it would still be fucked up.
The medbay/tox monkeys names are random once more.  More random name monkeys will help with changeling and clean up the observe/mob menus.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2324 316c924e-a436-60f5-8080-3fe189b3f50e
2011-10-03 10:28:57 +00:00
baloh.matevz e8c6b08419 - Object tree grouped a bit more.
Two new categories were made: station_objects and effects. station_objects, which I'm sure someone will want renamed to 'structures' contains the objects which don't need process() or power code.

Effects contains objects which are either landmarks, triggers, spawners or decal.

Screenshot:
http://www.kamletos.si/new%20object%20tree.PNG

I didn't notice any bugs, but with a revision editing 276 files of byond code, you never know.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2323 316c924e-a436-60f5-8080-3fe189b3f50e
2011-10-03 06:54:28 +00:00
baloh.matevz 3047075394 deployable barriers now require security access once again
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1789 316c924e-a436-60f5-8080-3fe189b3f50e
2011-07-06 19:25:28 +00:00
panurgomatic 15a5ecdd06 - Moved passability flags from atom/var/flags to atom/var/pass_flags.
Currently there are three - PASSTABLE, PASSGLASS and PASSGRILLE. PASSTABLE - same as TABLEPASS, PASSGRILLE - can this atom pass through grilles and PASSGLASS - can this atom pass through windows, glass doors, etc. Most can_pass() procs were updated.
Added checkpass atom proc to check if this atom has certain pass_flag set.
- Added proc/sanitize_simple() and proc/strip_html_simple(). sanitize_simple does not html_encode the string and strip_html_simple does not sanitize it. Additionally, sanitize_simple and sanitize can take associative list of key-val chars as second argument, where key is char to searh for and val is replacement.
- Added datum/gas_mixture/proc/return_volume() and datum/gas_mixture/proc/return_temperature().
- Added proc/tg_text2list() and proc/tg_list2text(). tg_list2text is slower then dd_list2text, but processes associative lists differently (it adds not the keys, but associated values). tg_text2list is somewhat faster then dd_text2list.
- Added proc/listclearnulls(), proc/difflist(), proc/intersectlist() and proc/uniquemergelist(). Check the code comments for more info.
- Mechs can hold 3 equipment pieces. Gygax can hold 4.
- Tweaked global_iterator CRASH report.
- Fixed mech pilot ejection if mecha was destroyed.
- Fixed mech fabricator process() waiting for sync() to finish.
- Fixed mech fabricator Topic() waiting for process_queue() to finish.
- Some bugixes related to global map and random sectors.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1722 316c924e-a436-60f5-8080-3fe189b3f50e
2011-06-24 23:30:27 +00:00
tronaldnwn@hotmail.com 4cfd1b7d12 - Attempted to straiten up some clothing dms
- Finally got the NASA Jump suit to be spess worthy. Admins please don't spawn a billion of these.
- Jumpsuits can now be used as spess suits if you add the flag "SUITSPACE"
- Tower Caps are in the Hydro seed vending machine again, and you can get logs from them!
- Sec's vending machine has 12 donuts by default, and can spit out 2 boxes of donuts if hacked.
- Logs can to be sawed with a circular saw, makes two planks each. Otherwise can be used to get more seeds.
- Planks can be formed into wooden objects, currently just wooden tables and wooden barricades.
- Wooden barricades, they can be made from 5 planks. They cannot be moved once built. You can repair with more planks, and destroy them by bashing it (giving a few planks).
- Wooden tables now deconstruct into wooden table parts (no more transmutation of wood to metal).
- Plant scanner now lists water and nutriment level.
- Ammonia, nutriment, and diethylamine are VERY good for plant nutrient. Other types of chemicals have been altered to be more effective. Sugar causes everything to grow, weeds and pests, and plants. Cryodone is very good to save plants from poison and death, water gives a 1:1 ratio for injection, soda water is very good for plants, nutriment now works on plants (it is a fertilizer), and radium properly kills your plants slightly.

- Moved the wooden log to harvest DMI
- Added some related semi place holder sprites for wooden tables, wooden planks, and wooden barricades

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1502 316c924e-a436-60f5-8080-3fe189b3f50e
2011-04-26 00:00:56 +00:00
uhangi@gmail.com 28b6c40b3c doing some stuff to barriers
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@806 316c924e-a436-60f5-8080-3fe189b3f50e
2011-01-08 01:07:34 +00:00
noisomehollow@lycos.com 17fccca65d Moved barrier icons to objects.dm.
Updated barrier graphics. 
Barriers now spawn in the Armory (and four in the vacant Sec office), until they are tested. Required access was changed to Security likewise.
Fixed firesuit down graphics, along with hazard vest.
Reduced the number of fireclosets spawning instead of oxygen closets.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@804 316c924e-a436-60f5-8080-3fe189b3f50e
2011-01-07 19:52:44 +00:00
uhangi@gmail.com 0a89eb1551 readded barriers to the map, changed the path around
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@802 316c924e-a436-60f5-8080-3fe189b3f50e
2011-01-07 15:25:16 +00:00
uhangi@gmail.com 0b778417d7 Adding deployable barriers. Swipe ID to toggle anchoring them. Have health, if dealt enough damage they are destroyed. Repair with screwdrivers. Six spawn in engineering. Also, I am in need of a better icon.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@796 316c924e-a436-60f5-8080-3fe189b3f50e
2011-01-07 06:51:59 +00:00