Commit Graph

96 Commits

Author SHA1 Message Date
Joan Lung
4cddd81120 Suicide now uses the pronoun helpers (#20973)
* This doesn't actually matter, because you're dead forever once it happens...

* is this entire pr chaff for something else

* you'll do it? nah, fuck that I'll do it
2016-10-18 14:36:38 +13:00
coiax
451c59db5e RCD QoL buffs; windows and girders (#20903)
* RCDs have a Toggle Window Type verb

You can now toggle the type of glass built in the Grilles and Windows
mode, between normal and reinforced glass. Reinfored glass costs more.

Also, removed a random line implying RCDs were banned on shuttles,
except it didn't actually work or do anything.

* Girders can be deconned and finished with an RCD

* Moves low ammo message
2016-10-14 10:17:07 +13:00
Joan Lung
ce13143d9d Replaces yet more istypes with helpers (#20806)
* uses more istype helpers

* oranges is inefficient
2016-10-10 17:48:35 +13: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
unknown
0f6feb2d44 Fixed being able to spam grilles on a single tile with an RCD. 2016-08-03 00:43:28 -07:00
unknown
011fe6348b Fixed a bug where you could spam-click on a floor with an RCD on wall mode to use all its ammo.
Added feedback to RCDs attempting operations without enough ammo.
2016-08-03 00:24:31 -07:00
Jack Edge
a841bd14f5 Code cleanup; silicons, melee, hallucinations
- Cleaned up paint.dm
- Everything else should be self explanatory
- Removed braindamage part of esword, since you can't reach that; it
  would be handled by attack_self()
2016-06-24 14:03:44 +01:00
c0
846d419b30 Moves tools from items.dmi to tools.dmi 2016-04-30 04:12:12 +03:00
phil235
0caa59b21a First commit of this big PR
These are the files with just tiny tweaks. Mostly modify an object's attackby so it does "return ..()" instead of "..()".
If there are other things in this commit, the PR's description will explain them.
2016-04-24 20:26:24 +02:00
duncathan
e86cf0f280 praise the good lord, for the game finally compiles 2016-03-29 19:04:37 -06:00
duncathan
b9950c4358 turf/open and turf/closed 2016-03-29 13:38:56 -06:00
duncathan
5bf31463da removes simulated turfs; adds space gas mixture for space 2016-03-10 17:27:01 -06:00
Bjorn Neergaard
f214e547cb NanoUI Airlock Electronics
Also reworks a lot of the AE code.
2015-11-29 11:32:56 -06: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
Shadowlight213
5bccd36752 Fixes 2015-10-17 19:45:00 -07:00
Shadowlight213
fc13a7cf70 Various QOL changes for drones.
Makes drones have permanent magboot effect.
Gives drones the check station alerts verb
Allows drones to set Airlock access on RCDs
2015-10-17 19:16:00 -07:00
freerealestate
f160910915 Fixes borg RCDs using too much power. They're now about 1.3x as efficient as their human counterparts. 2015-10-11 22:31:02 +13:00
bear1ake
c52c4a5346 Merge remote-tracking branch 'tgstation/master' into point-zero
Conflicts:
	code/modules/research/protolathe.dm
2015-09-12 21:07:40 +09:00
bear1ake
f697ae90f5 removes a bunch of .0 2015-09-10 20:57:30 +09:00
Memendia
046b7fbad3 I told ya 2015-09-07 03:40:07 -07:00
Razharas
93b9f96cfa Merge pull request #11341 from bgobandit/suicideisnotajoke
Adds/tweaks several suicide messages.
2015-09-06 06:42:00 +03:00
c0
df7386a4ec Assemblies update 2015-09-04 11:22:37 +03:00
Razharas
30ac2634f4 Merge pull request #11250 from GunHog/Malf_RCD-defense
Buffs RCD Disable Malfunction ability
2015-09-01 11:50:17 +03:00
c0
97b792bbc3 Changed some circuits paths to reduce copypasta 2015-08-30 16:58:13 +03:00
bgobandit
4909600303 Adds/tweaks several suicide messages. 2015-08-23 15:02:34 -04:00
GunHog
489be2d3e1 RCDs now EXPLODE!
- Made RCDs explode instead of simply disabled!
- Minor explosion power.
- Adds a five second warning to get rid of the RCD before it blows.
- Added a small cooldown.
2015-08-19 09:47:20 -05:00
GunHog
8b07203a87 Buffs RCD disable Malf power
- Halfed cost to 25 processing power
- Can now be used multiple times
- No longer disables Cyborg RCDs
- Fixes the feedback message not showing
- Fixed mech RCDs not being affected by the power
2015-08-17 11:03:53 -05:00
Jim Boonie
a7b09a84ab - Made costs and delays variables
- Made plasteel multiplier a variable
- Made shocked grilles shock unprotected RCD users
- Made grilles deconstruct instantly to match wirecutters
- Made RCD unable to deconstruct reinforced floors
- Changed canRwall to canRturf to cover both r walls and floors
- Changed large matter cartridge matter amount to 160 so it can still fit in the RCD
- Added fourth matter cartridge to RCD crate so it once again holds enough cartridges to fully load it
2015-08-08 21:18:45 +12:00
Jim Boonie
ebea552319 - Rebalances RCD construction costs around metal construction menu cost values
- Makes matter cartridges worth twice as much matter as metal/glass sheets
2015-08-08 06:15:35 +12:00
Firecage
4688c2c969 Fixes proc arguments 2015-07-15 23:52:35 +02:00
barackobama
f02c32c8ee fixes #10547, adds progress bars to grilles and windows, also fixes #9748
I guess
2015-07-11 19:49:32 +01:00
barackobama
2694fab4d8 fixes RCD-related issues 2015-07-11 19:15:33 +01:00
Swag McYolosteinen
d826a19f81 Merge pull request #9934 from nukeop/rcd
Makes RCDs more useful
2015-07-08 16:03:31 +02:00
barackobama
58af0dd402 remove debug messages 2015-07-05 22:22:36 +01:00
xxalpha
cfb5e724b6 Material container, all items can have materials, wake me up
cant wake up

go to sleep debug
2015-07-01 03:34:47 +01:00
Iamgoofball
a8ec1c76df Merge branch 'master' of https://github.com/tgstation/-tg-station into graphics
Conflicts:
	code/ATMOSPHERICS/atmospherics.dm
	code/game/machinery/computer/computer.dm
	code/game/objects/items/weapons/explosives.dm
	code/game/objects/structures/crates_lockers/closets/fireaxe.dm
	code/game/objects/structures/musician.dm
	code/game/objects/structures/tables_racks.dm
	code/game/objects/structures/window.dm
2015-06-23 12:54:26 -07:00
barackobama
e4dc868402 add menu for changing airlock access
add verb for bringing up said menu
2015-06-22 23:20:47 +01:00
phil235
e6dcabf245 Merge pull request #9960 from xxalpha/bass
Put drop_item() calls inside ifs. Replaced some drop_item() with unEq…
2015-06-18 15:50:35 +02:00
xxalpha
b2e84a0d3c Put drop_item() calls inside ifs. Replaced some drop_item() with unEquip( 2015-06-14 20:11:40 +01:00
barackobama
f00f699343 make cyborgs unable to load their inbuilt RCDs 2015-06-14 00:36:52 +01:00
barackobama
e7b2c1e53b unEquip instead of drop_item 2015-06-14 00:08:32 +01:00
Iamgoofball
c2256d41fc BAR NOW SHOWS UP ON THE OBJECT YOU'RE INTERACTING WITH 2015-06-13 13:58:08 -07:00
barackobama
a6ae5dbe47 Increase max ammo for RCD, allow RCD to be loaded
with glass, metal, and plasteel, allow RCD to build
and deconstruct grilles and windows, add three RCDs
to the Engi-Vend machine
2015-06-13 15:40:06 +01:00
xxalpha
e90b472800 Fixed RCD wall deconstruction runtime. 2015-06-13 13:17:02 +01:00
KorPhaeron
bfe5e4a855 Cleaning up turf code
Changes colons and spaces I forgot you could do this on github
2015-05-29 19:27:28 -05:00
KorPhaeron
97990c94cc Changes how destroying turfs works
Turfs now have a baseturf var which determines what is "under" every
turf. The default is space.

Actions that previously did changeturf(/turf/space) (like bombs or RCD
deconstruction) now do changeturf(baseturf). Functionally the same for
the station, but allows special turf types that don't break to space
(such as planet tiles).

Right now the asteroid tiles are the only thing with a baseturf other
than space (the baseturf is an asteroid tile).

Baseturf is tracked when new things are built, so building a floor and
then a wall on the asteroid tile, and then bombing that wall will return
it to an asteroid tile, not space.

Allows building on asteroid tiles now that doing so wont randomly make
holes to space. Time for giant mining forts.

I should have done this years ago for away missions.

Also added myself to admins.txt
2015-05-29 18:43:34 -05:00
kingofkosmos
de280c72b5 Removed some more spans from visible messages. 2015-04-24 21:06:59 +03:00
MrPerson
b6c71dc50d Effect pooling
obj/effect/effect all pool themselves.
PoolOrNew() can now be passed a type and a list instead of a type and a location. In that case, the list will be passed to New() via arglist().
RCD's now delete their spark system and properly garbage collect.
2015-03-24 11:44:49 -07: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