Commit Graph

80 Commits

Author SHA1 Message Date
MrPerson
471d69fcf7 Change many ERROR() calls into thrown exceptions
This requires a 508 beta version to use. If Travis fails this he's a bitch

Exceptions will generate a stack trace, which is way easier to see and more helpful in actually solving this kind of crap. Also logs all the arguments, src, line, and file automatically.
Removed any dubiously helpful information in the exception names so the runtime condenser won't see each one as a different runtime. If the information is critical to solve these bugs (camera one maybe?), then I'll just make these warnings.
Thrown exceptions crash the currently running proc. Yes that means there's useless returns in a bunch of these, sue me. spawn()'s are to let the proc continue.

Almost all of these are difficult to trigger, but I did test playsound. And frankly even if they do cause bugs by crashing procs, big whoop
2015-07-23 08:19:08 -07:00
Firecage
4688c2c969 Fixes proc arguments 2015-07-15 23:52:35 +02:00
AnturK
0bfe2a191b removes leftovers 2015-06-29 19:02:51 +02:00
AnturK
ef9712be12 Polling instead of persistent. 2015-06-28 15:23:43 +02:00
AnturK
20576bb71f Adds blob toxin to examine 2015-06-28 14:34:48 +02:00
Incoming
91cf7db276 Stops blobs from getting ruined by stamina damage 2015-04-15 14:43:39 -04:00
phil235
c67423adf5 Fixes alien humanoids not being able to attack blobs.
Created a take_damage() proc for obj/effect/blob.
Slight adjustment of the values of damage to blobs.
Fixes typo in pod people attack message (changed the verb from "slice" to "slash")
2015-03-28 19:27:07 +01:00
Remie Richards
736ffafa55 Merge branch 'master' of https://github.com/tgstation/-tg-station into BlobReroll
Conflicts:
	code/game/gamemodes/blob/blobs/blob_mobs.dm
	code/game/gamemodes/blob/blobs/core.dm
2015-03-01 00:18:19 +00: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
Remie Richards
5b2d3ceada Allows overminds to reroll their chemical at a cost, fixes blob cores being invisible, repaths blob mobs to /hostile/blob 2015-02-08 01:22:51 +00:00
Iamgoofball
fa7e15d734 what is object oriented programming 2015-02-02 18:30:24 -08:00
Iamgoofball
1f7ef9b218 Fixes #7020 2015-02-01 13:58:07 -08:00
Iamgoofball
1543abb43f Moves the core and node sprites to be overlays. Tweaks and adjustments to various reagents. Removes 2 of the reagents for being useless. 2015-01-11 20:04:24 -08:00
iamgoofball
3d331d0802 Reagent Blobs 2015-01-01 02:07:12 -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
Cheridan
f909d59d1a Merge pull request #6130 from phil235/AttackMsgStandardizedFormat
Standardizing attack messages to always show the attacker first
2014-12-04 12:45:31 -06:00
phil235
86405fa8c0 Standardizes attack messages to always show the attacker first (when there is an attacker).
Replacing some fo mob in viewers() show_message() with visible message().
Simplifying some message code in a couple places, fixing typos and span classes.
2014-11-24 01:49:34 +01: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
bc5754b378 adding diagonal attack animation. 2014-11-07 15:42:07 +01:00
phil235
1506383b2c Adding some missing do_attack_animation()
Moving do_attack_animation() proc to mob/living
Fixing the pixel offset issue from beds especially rollerbed.
Fixing the nograv bouncing stopping because of another animation being used.(lying down, jittering, attack animation)
2014-11-03 15:11:39 +01:00
phil235
8b49caa5ee Fixes typos and show messages. Fixes attack animation code. 2014-11-03 01:06:02 +01:00
phil235
3f30912c51 WIP - Adding attack animation to most attacks.
Fixing a couple "for(......) show_message()".
2014-11-02 22:50:58 +01: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
ccae5781c5 added two defines CLICK_CD_RANGE and CLICK_CD_MELEE (4 and 8), replaced all changeNext_move() procs to use these two defines.
Added melee click cooldown for paper spam on cameras.
2014-08-03 22:14:56 -03:00
phil235
fd27c564fc Fix attack message typo. 2014-04-26 22:21:59 +02:00
Miauw
dc9ead6575 Merge branch 'master' of https://github.com/tgstation/-tg-station into warnstandardization
Conflicts:
	code/_onclick/telekinesis.dm
	code/game/sound.dm
2014-03-30 20:48:03 +02:00
Aranclanos
7bcb69ad88 Removes the click cooldown from almost everything, now it should be always be 0.1 seconds.
Ranged weapons and laser eyes have a cooldown of 0.4.
Grilles, windows, windoors, walls and blobs have a cooldown of 0.8.
Hitting mobs will also have a cooldown of 0.8.
Removes the unused USEDELAY flag.
2014-03-28 06:32:47 -03:00
MrPerson
97b081bc0b Fix some blob-related qdel() issues.
In particular, the one where dead blob spores make a shitload of smoke and become invisible and generally be buggy on death.
Also blobs should GC correctly now.
2014-03-23 23:25:46 -07:00
Miauw
a80dd4df0f Merge branch 'master' of https://github.com/tgstation/-tg-station into warnstandardization
Conflicts:
	code/game/objects/items/weapons/AI_modules.dm
2014-03-22 17:42:07 +01:00
Miauw
520b114293 fixes shit 2014-03-09 18:31:43 +01:00
MrPerson
3c58091437 Merge branch 'master' of https://github.com/tgstation/-tg-station into qdel
Hopefully nothing went wrong but you never know.

Conflicts:
	code/FEA/FEA_fire.dm
	code/controllers/supply_shuttle.dm
	code/game/gamemodes/changeling/changeling_powers.dm
	code/game/machinery/autolathe.dm
	code/game/machinery/drying_rack.dm
	code/modules/hydroponics/hydroponics.dm
	code/modules/projectiles/projectile/magic.dm
	code/modules/reagents/Chemistry-Recipes.dm
	code/modules/reagents/reagent_dispenser.dm
2014-03-02 21:39:27 -08: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
hornygranny
ed12a9cfb0 missing exclamation points 2014-02-20 12:41:23 -08:00
hornygranny
a86de57c05 Fixes #2726 2014-02-20 12:11:00 -08:00
Giacomand
f1e7637bab Disabled the game using set background by making all instances of it use a define, which can be changed in code/_compile_options.dm
Testing has revealed that it reduces the sluggishness of the game, though it will spike from lag when the singularity is loose. Thanks to ChuckTheSheep for suggesting it.

Server owners who want to keep set background enabled can do so by changing the define.
2014-01-10 18:32:28 +00:00
Giacomand
b8c031026c * Telescience now works on bluespace crystals, which are special crystals which unlock power settings from the telescience computer.
* The telescience computer starts with 3 artificial crystals.
 * The crystals can be crushed to blink or you can throw it at someone to make them blink a short distance.
 * You cannot teleport the AI or any anchored mob (unless they are buckled to an office chair).
 * You can make the bluespace crystals from slimes or from research.
2013-11-12 14:24:56 +00:00
Giacomand
9b9762d612 Blobs will slowly regenerate health when pulsed. They have a second cooldown after every pulse to make sure 5 nodes aren't healing them too quickly.
Changed how the overmind hud was updated so that it was more accurate. Instead of updating every life() it will update everytime the blob core health changes and everytime the resource count changes.

Renamed the expand power to "expand/attack", to make it more clear to new blubbers that you use it to attack people.
2013-11-01 23:28:02 +00:00
Giacomand
1aeed2d768 Changed the fluff text for creating constructs from a soulstone.
Added an attack_animal() for blob.
2013-10-19 21:19:58 +01:00
Giacomand
d5f96002be Blob Features!
A blob tile will light up when it is being pulsed by a core/node, adds crucial visual feedback when placing resources/factories.
New shortcuts for the blob. Expand = CTRL Click - Rally = Middle Mouse Click - Create Shield = Alt Click
Blobs can now talk to each other and ghosts can hear them. Thanks to /vg/ for this code.
Removed the unnecessary AI quarantine code.
Formated the blob code to use the standard.
2013-10-06 22:56:22 +01:00
Giacomand
db72780399 Made tweaks to blob based on feedback.
Made the blob start strong but grow slower, helping stop situations where the blob is instantly caught and gets wiped out and stop the blob from being unstoppable after making 4 resource blobs.

Removed the AI quarantine laws from the blob gamemode.

People didn't like getting instantly KO'd by the blob, reduced the damage output to encourage melee engagements.

Blob overminds can see in the darkness now.
2013-08-12 16:57:52 +01:00
Giacomand
1fb9227f77 Blob/AI cameras can now be followed by ghosts.
Added the blob to the check antagonists, displaying how many blobs are left to win and being able to show the player panel for the blob.
Gave overminds mind datums which will initialize to give the overmind a blob special role.
Re-worded the BE ALIEN candidate so that it is more abstract and could mean becoming a blob.
Added another message for when the infected crew is about to burst into a blob.
EMPs will now hurt the blob.
Fixed blob spores blocking the blob from expanding.
Nodes will also slowly recharge their health.
Gave a little bit of health to normal blobs so that lasers don't one shot them anymore, barely.
2013-07-21 15:13:43 +01:00
Giacomand
ac255799e0 * Increased the cost of resource blobs.
* Increased the distance of the factory blob and the node blob.
 * Slightly lowered the health of the shield blob.
 * Increased the damage taken from bombs.
 * Reduced the health of normal blobs so lasers one shot them.
2013-07-16 13:26:04 +01:00
Giacomand
9caa5905fe * Made the mining shuttle one way during blob.
* Increased players per blob and decreased blob count to win.
 * Changed the health value of the blob spores.
 * Blob gamemode will give the blob core a resource rate of 2, random event blob cores will get 1.
 * Raised the amount of time that has to pass before the blob event occurs.
 * Increased the difficulty of expanding into space.
 * Added a player limit to the blob gamemode.
 * Removed density from shield and other variables which are set in the abstract blob.
 * Deleted spores after they die.
 * Reset the brute resistance.
 * Disabled random blobs in the blob gamemode.
 * Double'd the blob spore's health.
 * Blobs can expand into space again but it will be harder to do than on a space tile.
 * Dead robots will be gibbed in their blob_act() as their bodies will block the blob.
 * Reduced the damage the blob takes from explosions, and increased the brute resistance. Blobs main weakness is fire, not force.
2013-07-13 09:55:41 +01:00
Giacomand
dec20a7c8a Shows who the blobs were at the end of the round.
Small tweaks to values, such as increasing the resource rate of the core.
Overminds will have different names.
2013-07-10 00:31:23 +01:00
Giacomand
f3e63c8841 New powers, such as rally.
Blob spores can move through blob pieces now.
Blob gamemode chooses someone to turn into the blob
Other small changes based on feedback.
2013-07-09 00:52:29 +01:00
Giacomand
6b39c6b1f9 Blob revamp!
Re-introduced the concept of a player controlling the blob in an RTS fashion, expanding the blob and building structures such as nodes and factories.

All blobs will try to find ghosts, with the BE_ALIEN flag, to be the blob overmind. Even random event blobs will try to get players to play as the overmind.

Added a /mob/camera that is now being used by the AI eye and the blob overmind. It is a mob that isn't dead but acts as a camera for the player, to be controlled by something like the AI or the blob.

There are now a resource currency for the blob to spend it's points on blob expansion and upgrades.

Added a small blob_act to mechs.

Made all camera mobs max invisibility. Because of this I removed the AI best friend button as it would be not working.

Blob mode will send a normal intercept report.
2013-07-06 21:19:33 +01:00
AlexanderUlanH
2fcf26667c Overhauled Projectiles
Changed atom's bullet_act to call the projectile's on_hit, and changed
most bullet_acts to call on_hit as well.  Removed some now-unnecessary
snowflake code.

These changes will make projectiles which should effect non-mobs, such
as the gyrojet and the ion rifle, work properly.  Inanimate objects can
now be empulsed with the ion rifle, whose projectiles used to dissipate
on hitting anything but a mob.  Gyrojets now explode on most objects, as
opposed to just on walls and mobs, and the snowflake code that made them
work on walls is no longer necessary.  The code for pulse rifles'
breaking walls has been moved from a check in turf to a check in pulse
beams, and has been expanded to include structures, allowing them to
(slowly) break girders.  For coders, it means that on_hit is a reliable
proc for the effect of a bullet's hitting an object.
2013-06-19 23:24:00 -04: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
Kortgstation@gmail.com
ae6e120533 The blob now glows in the dark.
This is to fix the critter/NPC defense blobs not attacking people (their shitty AI doesn't work in the dark) and make it so the player controlled blob fragments can actually see what they are doing when choosing building locations (especially with the new darkness).

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4422 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-15 22:37:53 +00:00