Commit Graph

84 Commits

Author SHA1 Message Date
LemonInTheDark 1ff673db0d Fixes catwalks smoothing with lattices (#54829) 2020-11-06 22:46:08 -05:00
L fb38066f09 bitmask 2020-09-26 12:14:27 -03:00
L 5a21a0d92f objs 2020-09-26 12:14:26 -03:00
TemporalOroboros 6e950daccc Defines damage flags. (#53158) 2020-08-24 08:20:33 -03:00
Critawakets 4d6c51c5e1 Fixes lattice and operating table smoothing. 2020-08-13 15:43:11 -04:00
Rohesie b0726e032b Icon smooth refactor (#52864)
bitflag list construct added: an associative list of bitflags for cheap and quick element comparison between two lists using the same system.

    canSmoothWith list turned into a bitflag list.

    smoothing_groups list added to substitute the type path list.

    smoothing procs turned into atom procs, refactored and optimized a bit.

    smooth directions redefined in order to fit in 8 bits for a future smoothing system

    some variable names changed, foreseeing a second smoothing system

    SMOOTH_OBJ flag added, for things that need to scan turfs for smoothing. The old locate() optimization has the risk of returning false negatives by finding a child and returning null while there might be one of the wanted type as well, as it doesn't match the type exactly.

    SMOOTH_TRUE and SMOOTH_MORE condensed into SMOOTH_CORNERS. The old behavior can be replicated using smoothing groups without loss.

    Does very minor code cleanup.

    Processing-wise didn't find a noticeable difference. The system loses on init a bit by setting the bitflag_lists, and by scanning whole turf contents for object smoothing (increasing accuracy), and gains by making less checks per target to smooth, through the same bitflag_lists.

    Memory-wise there should be a small improvement, given that on the old system we had 63512 canSmoothWith lists (a few typelists, most unique), and on this new system canSmoothWith + smoothing_groups are both bitflag_lists from the same pool, totaling 46 in number.

Could be tested a bit to see if I missed any icons not properly smoothing.
2020-08-13 14:03:49 +12:00
Rohesie cb9f81e43c Renames smooth var to smoothing_flags (#52427)
* smooth_flags

* SMOOTH_FALSE

* smooth_flags
2020-07-29 10:19:23 +02:00
Dennok c033e736ef Catwalk block uplifting from below. Base for similar Z move blocking things. (#52141)
* BLOCK_Z_FALL separate

Separate BLOCK_Z_FALL flag to BLOCK_Z_OUT_DOWN, BLOCK_Z_OUT_UP, BLOCK_Z_IN_DOWN, BLOCK_Z_IN_UP

* Propertly Z blocking for catwalk

Catwalk block z falling and uplifting from below

* Walkable lattice

Now lattice can support spaceman

* Replace BLOCK_Z_FALL flag

* Update _open.dm

* Update openspace.dm

* Update ladders.dm

* Update away_props.dm
2020-07-11 20:19:32 -03:00
Rohesie fc3a93323b lattice (#51880) 2020-07-04 05:03:59 +02:00
MMMiracles f739e80649 Double-Decker Donut Disaster (Multi-Z Donutstation) (#48781)
* uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

* upper staircases, lots of upper floor work

* railings

* ai sat rework, exterior decals

* ass ass ASS ASS fuckin ASSSSS

* oh my god its full of stairs

* forgot a file oop

* railing fix on multiz test, upper atmos, external space dust deterrents

* both-way rail climbing, maint work, 2nd story atmos desk, pipe/wiring/ allow floating over openspace and moving up-down openspace in nograv, trailing ends

* go NORTHWESSSST

* maint work, hull work, gamer time

* upper security, more maint work, eva catwalks, less retarded railings, hiding signs from openspace, elevators suck, wire/pipe work

* more maint work, decal work on 1st floor, called my parents they appreciated it

* multiz test shit

* maint work, hallway work, botany work

* removed cloning, turned into general treatment, added small temp corpse storage next to treatment

* eduititititit

* gamers

* openspace fixes

* os over os fix

* prison rework, hallway work, pr prep

* mapmerge + remove pixel 0s

* bad area and more railings, newline

* unnecessary vis flags and unused computer console

* public mining dock

* oops lol

Co-authored-by: Dennok <Deneles@yandex.ru>
2020-03-02 03:44:59 +08:00
ArcaneMusic 65485b9c54 Adds a new Tech to the B.E.P.I.S., Specialized Engineering, and a new Minor Reward. (#48507)
About The Pull Request

Round 2.
image
Adds a new tech to be unlocked within the B.E.P.I.S.'s major techs, called "Specialized Engineering". Within that tech are 2 new items, Heat Resistant Rods, and the Tinker's Gloves, as well as a new minor tech, the Survival Pen.
Heat Resistant Rods:
Have you ever wanted to expand Lavaland Base? Build a lava fortress worthy of your magnificence? Well, now you can! Using Heat Resistant Rods, you can make a catwalk to cross lava tiles, as well as build atop lava, without messy methods like using the RCD!
Tinker's Gloves:
This just in engineers, insulated gloves have new competition in town! The Tinker's gloves are complicated, overdesigned gloves that, while not very shockproof, allow for faster wall girder construction. No longer will you need to die of old age walling off an area when you're out of RCD ammo! Warning: This product contains no likeness to clockwork gauntlets used by the extinct cult of Rat'Var, and any such similarity is by no means intentional.

Survival Pen:
Have you ever been stuck on lavaland, trapped by your survival pod with just a few chairs, some titanium walls, and walls of ash closing in on you? Well THANK GOD you have your Rockbreaker brand Survival Pen! Allows for basic mining operations, and is portable like a standard pen!
BUT WAIT!
A watcher blocks your path. Thankfully, your expensive, diamond encrusted pen isn't just good for being the world's slowest pickaxe, it's ALSO coated in the one thing watchers crave: DIAMONDS. Toss the pen to draw the watcher's attention elsewhere.
Why It's Good For The Game

Starts to fill our B.E.P.I.S. Major Reward Techs, as intended, and fills a niche that doesn't get much play nowadays: Building on Lavaland. This was something I've had in the back of my mind since we did the first tests of the Disaster gamemode a few months ago, so each item here was made with the intention of improving the mining base should the station become un-livable. Lava-Proof Rods are beneficial in that you'll be able to cross and build over lava by the mid-end of the shift. RCDs still work as usual, but this way you won't have to worry about getting specialized engineering equipment as a member of cargo or science. The tinker's gloves are basically a variant of the nitrile gloves, but they grant a speed bonus to adding plating to metal girders, so that some kind of functional alternative to giving every engineer insulated gloves.
Survival Pens are quite honestly very niche, but getting dumb pens with extra functionality is a tradition of trade shows all over the world, so it feels right at home as a minor reward.

Also, does a tiny change to the doe sprites, just to look a little bit less old.
Changelog

cl
add: A new Technology has been implemented as a major reward in the B.E.P.I.S., Specialized Engineering, to appeal to engineering utility and new construction horizons.
tweak: Watchers will now actively consume diamond ore left lying around, alongside the new survival pens.
/cl
2020-01-14 11:21:40 +13:00
TheChosenEvilOne 8605ae2142 Multi-Z improvements part 2 (#47097)
* MultiZ Improvements

Signed-off-by: TheChosenEvilOne <tceo-email@protonmail.com>

* RCD works on openspace now.

Signed-off-by: TheChosenEvilOne <tceo-email@protonmail.com>

* I knew something like this would happen with rebasing.

Signed-off-by: TheChosenEvilOne <tceo-email@protonmail.com>

* Copy-Paste is gone!

Signed-off-by: TheChosenEvilOne <tceo-email@protonmail.com>
2019-10-17 11:02:40 +02:00
KomradeSpectre 9ff071af60 Clockcult Removal 2019 (#47057)
* Nanotrasen fires the Wave Motion Gun at the Clock Cult

* Fixes a random changelog appearing from the reebe void.

* Fixes a wrong type reference regarding the bronze sheets in the Lavaland Ruin for it.

* Fixes redundant cells after CC removal in ruin by populating them with varied ore chunks, or destruction clutter.

* why is it /obj/item/stack/sheet/metal but not /obj/item/stack/sheet/iron

* Fixes the lavaland ratvar ruin to have fluff variant structures of deleted shit it referenced instead what I thought was reasonable.
2019-10-15 10:13:41 +02:00
Dennok d464a7c689 add flag CHANGETURF_INHERIT_AIR 2019-08-04 12:54:12 +03:00
vuonojenmustaturska 8ddc9677c7 examine-code refactor (#44636)
* 1/4 done? maybe?

* more

* stuff

* incremental stuff

* stuff

* stuff & things

* mostly done but not yet

* stuffing

* stuffing 2: electric boogaloo

* Git Commit and the Kingdom of the Crystal Skull

* make it actually compile

* found more stuff

* fixes

* fix AI laws appearing out of order

* fix windows

* should be the remaining stuff

* this time for real

* i guess it should compile too

* fix sechuds
2019-06-19 22:07:57 +02:00
Tlaltecuhtli f5d5d2a3b1 fixes some edge cases in rcd building (#42960)
New RCD interactions
2019-03-07 10:49:43 +01:00
ShizCalev 2fa1ac1349 Replaces istypes with the proper tool_behaviour checks. (#40414) 2018-10-01 03:10:31 +03:00
deathride58 cdf36c2c6f adds ambient occlusion as a client preference (#37406)
ambient occlusion is a shading technique that simulates how light behaves in the real world, where areas that aren't directly exposed to light tend to receive less lighting. In 3d rendered scenes with ambient occlusion present, this can easily be seen in corners and other crevices in geometry, and can also be visible when two objects are close to one another.

cl deathride58
add: Added ambient occlusion. You can toggle this on or off in the game preferences menu.
/cl
2018-05-08 10:06:44 +12:00
Jordan Brown d282c60c7d Quote the armor lists (#35668) 2018-02-16 01:25:42 -05:00
Tad Hardesty f2dbe5cf13 Replace explicit z-level checks with defines (#33829)
* Replace explicit z-level checks with defines

* Rename turf_z_is_planet for consistency

* Use TRUE/FALSE in onSyndieBase
2017-12-29 14:40:06 -05:00
Emmett Gaines 25080ff2c4 defines math (#33498) 2017-12-17 11:02:11 -05:00
Emmett Gaines 7c69cdcb8a Revert math (#33059)
* Revert "all this wrapping and it's not even christmas (#33035)"

This reverts commit faaf151580.

* Revert "fuck me for forgetting to graph this one"

This reverts commit 45d7acea2f.

* Revert "defines math"

This reverts commit 2817a1737b.
2017-11-23 20:59:52 -05:00
ninjanomnom 2817a1737b defines math 2017-11-22 17:36:58 -05:00
kingofkosmos 2e63bd3dbe Adds deconstruction hints for beds, chairs, closets, grilles, lattices, catwalks, tables, racks, floors, plating and the bookcase. Plus few span fixes. 2017-10-03 18:39:07 +03:00
Joan Lung 5b73196dac Reebe is fancier now (#31045)
* Reebe is fancier now

* proper wall baseturf
2017-09-29 15:58:45 +13:00
vuonojenmustaturska 772924ba38 More Initialize() fixes, requires someone to test with DB (#30831)
* Batch 1

/obj/item/storage/firstaid/fire
/obj/structure/bookcase
/obj/item/book/random QDEL, not actually in the logs but returned wrong hint
/obj/effect/landmark/start/wizard QDEL
/obj/effect/landmark/start/wizard
/obj/effect/landmark/start/new_player
/obj/effect/landmark/latejoin
/obj/effect/landmark/xeno_spawn
/obj/effect/landmark/blobstart
/obj/effect/landmark/secequipment
/obj/effect/landmark/prisonwarp
/obj/effect/landmark/ert_spawn
/obj/effect/landmark/holding_facility
/obj/effect/landmark/thunderdome/observe
/obj/effect/landmark/thunderdome/one
/obj/effect/landmark/thunderdome/two
/obj/effect/landmark/thunderdome/admin

* Batch 2

/obj/machinery/computer/operating
/obj/machinery/computer/telecrystals/uplinker
/obj/item/card/id/centcom
/obj/item/card/id/syndicate
/obj/item/card/id/captains_spare
/obj/item/card/id/ert
/obj/item/card/id/ert/Security
/obj/item/card/id/ert/Engineer
/obj/item/card/id/ert/Medical
/obj/structure/trap
/obj/machinery/magnetic_controller
/obj/item/storage/toolbox
/obj/structure/table

* Batch 3

/obj/machinery/vending/snack/random
/obj/machinery/vending/cola/random
/obj/machinery/computer/pod
/obj/machinery/computer/message_monitor
/obj/machinery/computer/atmos_control
/obj/item/implanter
/obj/item/implantcase
/obj/item/construction
/turf/open/floor/grass
/turf/open/floor/grass/snow/basalt
/turf/open/floor/grass/fakebasalt
/turf/open/floor/carpet
/turf/open/floor/fakespace
/turf/open/floor/light
/turf/open/floor/mineral
/turf/open/floor/mineral/abductor
/turf/open/floor/circuit
/turf/open/floor/clockwork
/turf/open/floor/plating
/turf/open/floor/engine/cult

* Batch 4

/obj/item/storage/backpack/satchel/flat
/obj/item/storage/backpack/satchel/flat/secret
/turf/closed/indestructible/fakeglass
/turf/closed/mineral/random
/turf/closed/mineral/gibtonite
/turf/closed/mineral
/turf/open/floor
/obj/effect/spawner/lootdrop

* Batch 5

/obj/effect/spawner/lootdrop/maintenance
/obj/effect/spawner/lootdrop/costume
/obj/item/toy/eightball/broken
/obj/item/toy/eightball
/obj/item/toy/eightball/haunted
/obj/item/device/electropack
/obj/item/restraints/legcuffs/beartrap
/obj/machinery/airlock_sensor
/obj/item/storage/box/ingredients

* Batch 6

/mob/living/simple_animal/hostile/carp/ranged
/obj/structure/lattice/clockwork
/obj/structure/lattice/clockwork/large
/obj/structure/lattice/catwalk/clockwork
/mob/living/simple_animal/hostile/mushroom
/mob/living/carbon/alien
/mob/living/carbon/alien/larva
/mob/living/carbon/alien/humanoid
/mob/living/carbon/alien/humanoid/drone
/mob/living/carbon/alien/humanoid/royal/praetorian
/mob/living/carbon/alien/humanoid/sentinel
2017-09-19 08:45:18 -04:00
ExcessiveUseOfCobblestone 1e17bb7b83 Adds Archaeology Component (#30220)
* The future of archaeology

* pirate pad transfer is godawful

* pp transfer, part deus

* Revert "pp transfer, part deus"

This reverts commit f6e48f71f59f834f0b9e02a2ab2bb1bc1bda1b6a.

* hmmm!

* Edits How This Works

* Dig Check

* you can no longer chaindig + MrPerson req

* All MrPersons

* I need to squash soon [tm]

* replaces define

* fixes #literally everything

* forgot why i set it to highlander

* Review

* Removes How2 and Fixes Travis

How2 was outdated so idgaf

* Review 2, Cyberboss Boogaloo

had to move SSblackbox now that W is a more localized var.

* archdrop list is null now

* It won't let me edit that space sorry

* GOTCHA

* yes i used the web editor, no i am not sorry

* cyber

* ..()
2017-09-08 11:01:30 -04:00
Ian Turk 7460f2c5b8 Replaced flags with flags_1 2017-08-16 13:01:15 -06:00
Jordan Brown af4d9a85c9 Repaths /obj/item/weapon to /obj/item (#29929) 2017-08-16 10:38:51 -03:00
ShizCalev 59ef81245b Changes some 1s and 0s to TRUE and FALSE (#29144) 2017-07-10 10:31:34 -04:00
Joan Lung 1feb0021a1 Removes now-unnecessary obj_integrity definitions 2017-07-08 14:02:50 -04:00
Joan Lung 5884071627 Renames Clockwork Proselytizers to Replica Fabricators (#28062) 2017-06-05 14:52:31 -03:00
Joan Lung 1b7c4a63dc Repaths /obj/effect/overlay/temp to /obj/effect/temp_visual (#27344) 2017-05-17 22:54:54 -05:00
Joan Lung dc0e007a23 A bunch of Initialize()s now have return values (#26464) 2017-04-25 10:51:40 +02:00
Joan Lung c0f933a737 Uses a var properly 2017-04-01 12:31:34 -04:00
Cyberboss d27ec2c4f2 Fixes lattice New qdeletion (#25724)
* Fixes lattice New qdeletion

* You mean your clocks don't you...

* Blech
2017-04-01 11:16:33 -04:00
coiax 476db3b429 Fixes a runtime when cutting lattice (#25504) 2017-03-27 00:11:18 -03:00
coiax b70c8c636a Switches lattices to Initialize (#25396) 2017-03-24 08:47:03 -03:00
PKPenguin321 5250df594e Lattices now require wirecutters to deconstruct (#25019) 2017-03-13 20:48:55 -04:00
Lzimann 5a618297ce Replaces the default output with the to_chat wrapper. 2017-03-10 01:32:05 -03:00
Kyle Spier-Swenson 12570805bd Closes the Pool. (#23150)
* Delete pool.dm

* Removes usage of PoolOrNew

* Wrap up
2017-01-22 16:00:23 -05:00
Joan Lung 5de5ada0cd Proselytizers can now convert lattices (#23146) 2017-01-21 19:06:24 -05:00
Joan Lung 062b5c4013 clockwork catwalks 2017-01-15 14:53:01 -05:00
Joan Lung 3f0009b12e Ratvar will now convert lattices to clockwork lattices 2017-01-15 11:45:45 -05:00
RandomMarine 4f8bf3e614 Catwalks now drop two rods when deconstructed. Also fixes metal duplication exploit. (#22488)
* catwalks now drop two rods

* fixes closets dropping more metal than takes to build
2016-12-29 10:06:14 +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
phil235 194398cbbd Merge branch 'master' of https://github.com/tgstation/-tg-station into PreliminaryDamageRefactor
# Conflicts:
#	code/game/gamemodes/miniantags/bot_swarm/swarmer.dm
#	code/game/objects/effects/portals.dm
2016-09-29 01:44:27 +02:00
phil235 2d2975f783 Some preliminary changes before the damage refactor PR. The changes here do absolutely nothing gamewise.
This just adds some vars that the refactor will use. Putting this in a separate PR prevent the damage refactor PR from becoming too big (number of files changed) and hard to read and review.

Introduces the resistance_flags bitflag that replaces unacidable and burn_state.
Moves the armor var from item to /obj level and gives specific armor values to many objects, the armor list also gets two new armor types: fire and acid, which will be used in the refactor. the new fire and acid armor values are given to plenty of items.
2016-09-27 22:33:08 +02:00
phil235 6809603669 Changes obj/effect/blob,spider,swarmer,energy_net,spacevines to be ob/structures instead, since you can hit and destroy them.
Adds a large ash and large molten item decal (for future use)
simplifies decal/cleanable/replace_decal() code a bit.
Changes construction() proc to on_construction() for consistency, same for deconstruction().
Made a deconstruct() proc for machinery and computer (also for future use).
2016-09-27 19:58:27 +02:00
Incoming5643 f64e2664be Lets lattice spawn in ruins by removing overzealous deletions (#19965) 2016-08-20 17:03:18 -05:00