Commit Graph

58 Commits

Author SHA1 Message Date
phil235
b146131a34 Second commits.
This contains the changes to item_attack.dm
Obj/attackby() now follows a similar structure as mob/living/attackby. It calls attack_obj() (like attack() but for obj) which calls attacked_by (just like attack() does)
The use of the NOBLUDGEON flag changes a bit, it is now used to signify the item cannot be used as a melee weapon at all. No attack animation, no attack message. I've given this bitflag to many items that have an afterattack() so as to not both attack and do the special action (among those items: the rcd)

There's also the code changes to attacking machines: attacking any machine now give a proper message and a sound. And with this, I made more machines breakable (using a health var and the very little used BROKEN stat). Most notably, tables can now be attacked when on harm intent and be destroyed.

The newly destroyable machines have a take_damage() proc used by all sorts of attack (weapon, xeno, animal, hulk, mech melee, gun projectile, thrown items).

There's some more stuff in there, see the PR's description and comments.
2016-04-24 20:37:00 +02:00
duncathan
3f1375ba39 Merge branch 'master' of https://github.com/tgstation/-tg-station into turfs
Conflicts:
	_maps/RandomZLevels/Cabin.dmm
	_maps/RandomZLevels/beach2.dmm
	_maps/RandomZLevels/caves.dmm
	_maps/RandomZLevels/research.dmm
	_maps/RandomZLevels/snowdin.dmm
	_maps/RandomZLevels/undergroundoutpost45.dmm
	_maps/map_files/DreamStation/dreamstation04.dmm
	_maps/map_files/EfficiencyStation/EfficiencyStation.dmm
	_maps/map_files/MetaStation/MetaStation.v41I.dmm
	_maps/map_files/MiniStation/MiniStation.dmm
	_maps/map_files/TgStation/tgstation.2.1.3.dmm
	_maps/map_files/generic/z4.dmm
	_maps/templates/lavaland_surface_automated_trade_outpost.dmm
	_maps/templates/lavaland_surface_biodome_winter.dmm
	_maps/templates/lavaland_surface_prisoner_crash.dmm
	_maps/templates/lavaland_surface_seed_vault.dmm
	code/controllers/subsystem/air.dm
	code/game/asteroid.dm
	code/game/atoms.dm
	code/game/gamemodes/nuclear/nuclearbomb.dm
	code/game/machinery/computer/arcade.dm
	code/game/objects/effects/aliens.dm
	code/game/objects/effects/overlays.dm
	code/game/objects/items/apc_frame.dm
	code/game/objects/structures/false_walls.dm
	code/game/objects/structures/girders.dm
	code/game/turfs/simulated.dm
	code/game/turfs/simulated/floor/fancy_floor.dm
	code/game/turfs/simulated/floor/mineral_floor.dm
	code/game/turfs/simulated/floor/plating.dm
	code/game/turfs/simulated/river.dm
	code/game/turfs/simulated/walls_misc.dm
	code/game/turfs/simulated/walls_reinforced.dm
	code/modules/admin/verbs/buildmode.dm
	code/modules/atmospherics/environmental/LINDA_turf_tile.dm
	code/modules/events/spacevine.dm
	code/modules/flufftext/Hallucination.dm
	code/modules/holodeck/turfs.dm
	code/modules/mining/mine_items.dm
	code/modules/mining/mine_turfs.dm
	code/modules/mob/interactive.dm
	code/modules/mob/living/carbon/human/life.dm
	code/modules/mob/living/living.dm
	code/modules/mob/living/simple_animal/bot/floorbot.dm
	code/modules/mob/living/simple_animal/guardian/guardian.dm
	code/modules/mob/living/simple_animal/hostile/hostile.dm
	code/modules/mob/mob_movement.dm
	code/modules/power/singularity/narsie.dm
	code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
	code/modules/research/server.dm
2016-03-29 14:46:06 -06:00
c0
52d91c0cf9 Abductor Tech added to RnD 2016-03-12 15:07:30 +03:00
duncathan
5bf31463da removes simulated turfs; adds space gas mixture for space 2016-03-10 17:27:01 -06:00
AnturK
b62988b284 Switches known_designs/tech to associative list. 2016-02-11 20:25:23 +01:00
Bjorn Neergaard
063dd9fb84 Get the code running on 510
* Travis for 510
* Remove json, list2text, text2list, bygex
* Change blind and click catcher to a low plane
2016-02-04 17:19:40 -06:00
KorPhaeron
31836a5deb Removes in world 2015-10-09 22:37:53 -05:00
duncathan
51c09f16bf makes all Destroy()'s return properly 2015-08-31 00:21:01 -06:00
Firecage
4688c2c969 Fixes proc arguments 2015-07-15 23:52:35 +02:00
phil235
9a1c1ae7af Merge pull request #9967 from Jordie0608/figurediwouldvemissedsome
Fixes computer icon errors
2015-06-16 11:30:44 +02:00
Jordie0608
7279c504c2 fixes server console icon 2015-06-15 14:42:47 +10:00
kingofkosmos
c8d79e7034 Removed unnecessary spaces in these situations:
"span class = '" changed to "span class='"
"'> " changed to "'>"
2015-06-14 12:13:19 +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
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
Cheridan
08be1b34eb Revert "Changes a few green crosses to blue on sprites that I missed last time" 2014-10-04 19:22:10 -05:00
Firecage
0948391502 Span classes for files in the following Modules folders: Power, Projectiles, Reagents, Recycling, Research 2014-08-23 02:02:46 +02:00
Cheridan
4d8160ab14 meteorhit() is kill 2014-04-22 12:16:02 -05:00
Mloc-Hibernia
8af8a43d6f Initial pass to convert LF to CRLF
Signed-off-by: Mloc-Hibernia <colmohici@gmail.com>
2014-03-24 08:53:40 +00:00
MrPerson
6930283efc Merge branch 'master' of https://github.com/tgstation/-tg-station into qdel_r
Conflicts:
	code/game/gamemodes/changeling/changeling_mutations.dm
	code/game/gamemodes/changeling/changeling_powers.dm
	code/game/gamemodes/malfunction/Malf_Modules.dm
	code/game/objects/items/weapons/tanks/watertank.dm
	code/game/objects/structures/tables_racks.dm
	code/modules/research/server.dm
2014-03-21 03:05:39 -07:00
Emil
05203ba8a1 Added an 'e' to 'Rest'. R&D computer 2014-03-17 17:59:07 +01:00
MrPerson
6b29fecda1 Merge branch 'master' of https://github.com/tgstation/-tg-station into qdel_r
Conflicts:
	code/game/machinery/bots/ed209bot.dm
	code/game/machinery/rechargestation.dm
	code/game/machinery/turrets.dm
	code/game/objects/structures/crates_lockers/closets.dm
	code/modules/research/circuitprinter.dm
2014-03-08 22:03:03 -08:00
Razharas
b27d9c7396 Added RPED, some sprites and new power cell path
Your dreams of big part storage and fast machine part exchange came true
14 slot R&D part-only autoseeker/picker/dropper/exchager is in
Added different sprites for better capacitors and scanning modules
Changed the power cell type to be compatible with all this machine
changing faggotry
All sprites here are codersprites so ask nien/WJ for better ones if you
want
2014-02-24 05:14:43 +04: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
Razharas
2d125f0fc5 And more fixes
The ride never ends
2014-02-06 22:32:28 +04:00
Razharas
c0aa3b56bb Merge branch 'master' of https://github.com/tgstation/-tg-station into SayYiffYiffIfYouAreMachineFucker
Conflicts:
	code/game/machinery/Sleeper.dm
	code/game/machinery/computer/aifixer.dm
	code/modules/hydroponics/biogenerator.dm
	code/modules/power/apc.dm
	code/modules/research/server.dm
	icons/obj/stationobjs.dmi

Yeah nah time to merge this shit behore resolving conflicts will take more than 2 hours
2014-02-06 22:05:39 +04:00
MrPerson
931da9e7ef Many changes
Much diff
2014-02-04 22:49:38 -08:00
Razharas
ea54257ab6 Ported cable coils to stacks crudely
Yeah
2014-01-22 02:11:19 +04:00
Razharas
87f137766c Standartization and more issues fixing
More standart machinery procs
More sprites
Constructable mech rechargers
Over all tide up

Its not over yet folks, next are coming constructable kitchen machinery
and SMESes, update to newer uis, even more standartization and maybe
some more R&D content
Stay turned
2014-01-14 02:42:07 +04:00
Razharas
908f28dab6 More machinery and type path fixes
Not parts are in null and not in machinery
2013-12-23 22:30:38 +04:00
Razharas
4f8389ec0e Constructable machines will depend on R&D parts
DNA scanner:
Laser quality lessens the irradiation
Manipulator quality drastically improves the precision(9 times with best
part)
Scanner quality allows to scan suiciders/ling husks, best part enables
cloner's autoprocess button, making it scan people in the scanner
automatically
Clone pod:
Manipulator quality improves the speed of cloning
Scanning module quality affects with how much health people will be
ejected, will they get negative mutation/no mutations/clean of all
mutations/random good mutation, at best quality will enable clone
console's autoprocess button and will try to clone all the dead people
in records automatically, together with best DNA scanner parts cloning
console will be able to work in full automatic regime autoscanning
people and autocloning them
Borg recharger:
Capacitors' quality and powercell max charge affect the speed at which
borgs recharge
Manipulator quality allows borg to be slowly repaired while inside the
recharges, best manipulator allows even fire damage to be slowly
repaired
Portable power generators:
Capacitors' quality produce more power
Better lasers consume less fuel and reduce heat production
PACMAN with best parts can keep whole station powered with about sheet
of plamsa per minute(approximately, wasnt potent enough to test)
Protolathe:
Manipulators quality affects the cost of things(they will also have less
m_amt and g_amt to prevent production of infinity metal), best
manipulators reduces the cost 5 times (!)
Imprinter:
Manipulator quality affects the cost, best manipulator reduce cost(acid
insluded) 4 times, i.e. 20 boards per 100 units of acid
Destructive analyzer:
Better parts allow items with less reliability in
Redone how reliability is handled, you now see item reliability in the
deconstruction menu and deconstructing items that has same or one point
less research type level will rise the reliability of all known designs
that has one or more research type requarements as the deconstructed
item
Designs of the same type raise in reliability more
Removed reliability_base and reliability_mod completely because they
served no purpose
Critically broken things rise reliability of the design drastically
Whole reliability system is not used a lot but now at least on the R&D
part it finally matters
Didnt touch telecomms machinery, R&D code is messy but tcomms is just
another level, im not high enough to touch it yet
Most of things except for pacman are tested ingame, no bugs/runtimes
detected
2013-12-23 21:39:27 +04:00
Perakp
b8a7957a22 Adds deconstruction for DNA scanner and cloning pod.
Adding wires to a machine frame uses one unit of wire.
Wires returned from deconstructing return 1 unit of wire.
Fixes issue #1001
2013-12-07 08:55:07 +02:00
KazeEspada
38d7374bc2 Makes circuits into type paths. Dna modifiers had a bad string that showed up when converted into a type path. Power monitors are now actually computers. Makes smashing computers red. 2013-09-21 14:41:50 -07:00
KazeEspada
cbb041637b Merge branch 'master' of https://github.com/tgstation/-tg-station into computers 2013-09-17 16:43:19 -07:00
supersayu
4c44e7cd89 Glove update
Integrates gloves into click code.  Gloves now have a proc/Touch(atom, proximity) which is called before humans do an attack_hand().  It can also occur when you click on something at range, so be sure to check the proximity flag.

Adds code to make ninja gloves work properly with this and pulls it out of the various attack_hand() procs.

Other suggested uses: secret society rings, magic/cult gloves, weaponized gloves (chemical, electric, needles, etc), powered exosuit hands (for picking up crates), I dunno, there are options
2013-09-17 18:19:13 -04:00
KazeEspada
630a691c6d Cleans up computer code severely. fixes issue #1004. Aliens and Monkeys can now smash computers. However, this only applies to computers with buildable circuit boards. Computers without boards are now impervious to attack and deconstruction(can't steal atmos computers or slash up the escape shuttle computer).
Hologram computer has been moved to unused. It has some interesting ideas, but it needs sprites and fix up.
2013-09-17 13:22:39 -07:00
Aranclanos
0ce01d1583 Adding Linda. 2013-08-10 06:15:14 -03:00
Ikarrus
1518d285e7 Standardized spelling of all instances of "Centcom"
Centcomm/CentComm -> Centcom
centcomm -> centcom
2013-06-17 20:49:01 -06:00
carnie
b84d12d949 *Small tidy-up of various helper procs*
-Turns out there was already a Gaussian PRNG proc already, used by mechs and turrets. I've replaced it with my one as mine has almost half the cost. (currently broken! still waiting for fixes to be pulled!)
-replaced between(min, val, max) with Clamp(val, min, max)
-get_turf(thing) now uses var/list/locs to locate its turf, rather than iterating up through loc of its loc of its loc...etc
-sign(num) moved to maths.dm
-InRange(val, min, max) replaced with IsInRange(val, min, max) (they were identical)
-Removed ismultitool() iswrench() iscoil() iswire() iswelder() iscrowbar() etc
-removed modulus(num) as abs() performs the same task! *roll-eyes*
-removed get_mob_with_client_list() as it is no longer needed (we have var/list/player_list now)
-removed get_turf_or_move() as it simply called get_turf
-removed get_turf_loc() as it was identical to get_turf()

*Additions:*
-The "Declare Ready" link in the lobby will automatically become "Join Game" if the round starts before you declare ready, so you don't have to click it twice
2013-05-27 12:21:43 +01:00
rockdtben@gmail.com
793e547be8 A supplement to what Nodrak had done in https://code.google.com/p/tgstation13/source/detail?r=5732#
Now the server will be refreshed in process() only when there is a change.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5738 316c924e-a436-60f5-8080-3fe189b3f50e
2013-02-19 00:44:53 +00:00
johnsonmt88@gmail.com
b38ad70e83 Removed the griefProtection() proc from R&D server/process(). Any proc that deletes/damages files will already call it, and in some cases, call it more than once. This should reduce the number of proc calls to designHasReqs() and TechHasReqs() by a million or two per round.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5732 316c924e-a436-60f5-8080-3fe189b3f50e
2013-02-18 17:03:17 +00:00
giacomand@gmail.com
6a2d78bc94 -Killed the updateDialog lag. I added a check to see if there were any mobs to update, if not it will stop checking until a user uses the machine again. I had to replace all the machine = src and machine = null with procs to help make it manageable. I believe this is one of the culprits causing the server to lag as the round goes on, as more players will interact with machines.
-Atmos delay is now based on active players, to help fight lag for massive player rounds.

-Changed some for(blah in world) loops to use the correct lists.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4958 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-25 19:15:51 +00:00
elly1989@rocketmail.com
7b720a20b6 >Moved most of the helper procs into code/__HELPERS. If you see ANYTHING generic enough to be a helper proc just throw it in there and help purge the copypasta 5ever
>Replaced dd_text2list, dd_text2listcase, tg_text2listcase and tg_text2list with text2list and text2listEx. text2list will return a list of each and every character in the string if you set separator=""
>added return_file_text(filepath) which returns text from a file after doing some checks: does the file exist? is the file empty? It prints helpful error messages to the world.log if it runs into problems
>Replaced dd_file2list(filepath, seperator) with file2list(filepath, seperator). It just calls text2list(return_file_text(filepath), seperator). rather than copypasta
>Replaced time_stamp() so it's not as retarded
>Lots of the world setup stuff uses file2list now, rather than file2text -> sanity -> text2list
>Added error() warning() testing() procs. These print messages to world.log with a prefix. e.g. ## ERROR: msg.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4948 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-24 14:39:36 +00:00
elly1989@rocketmail.com
73e5c38a56 Preparations for reducing the number of processing machines at round-start. There are currently 8000 or so at round start, this was already pruned to 2800ish by doohl's stuff.
machine.process() now uses a return value to remove itself from the processing machines list. This is more efficient and will help reduce costs especially at round start where some 5000+ machines were removed from the list using first-find. Now there is no searching involved. Instead of machines.Remove(src) just do .=PROCESS_KILL that will return the flag to the proc which called it (the MC) and trigger its removal from the list. If you're deleting something don't even bother removing it from the machines list, there is no need to.

Simplified the last_processed stuff for the MC. It's now a single variable rather than 3. It is simply a typepath rather than a reference to an object (this is so it works even if said object is deleted)

MC stats in admin status_panels now show the length of the processing lists (indicated by #). I've just realised I forgot to mention what the abbreviations are:
The less obvious ones are: Dis=diseases; Net=pipes; Pnet=powernets; Mch=Machines; Tick=the game-mode ticker.

Beach-water now uses an overlay image rather than a separate object.

Fixed a typo in the shuttle console.

Hydroponics trays no longer use first-find within their process() for checking the plant is in the tray (why is that even there anyway? talk about lazy)

Removed some junk/placeholder procs like organ/proc/process() return

Removed newscasters from the processing machines lists.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4603 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-02 20:32:01 +00:00
elly1989@rocketmail.com
4073ac9b00 Replaced all 'file.extension' references with 'relativepath/file.extension' using a script by thvortex of ss13-daedalus.
All credits to the author for this handy little script.
I Committed the modified python script to tool directory. Although it needs to be in the root folder of your repo to work.

To notice the improved compile times, in dreammaker go to Build > Preferences > and untick "automatically set file_dir for subfolders"

If this commit inteferes with any large projects just revert it, do your thing, then rerun the script. Easy-peasy.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4488 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-18 16:33:40 +00:00
baloh.matevz
e6f7615342 - Standardized the code in code/modules/research
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4243 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-31 06:01:55 +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
sieve32@gmail.com
916bb8e617 Fix for the RnD consoles/servers become Ramp'D Machines, for some reason it appeared that the instances on the map were being automagically sanitized, but making them instances in the code seems to have fixed it.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4001 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-06 12:15:29 +00:00