Commit Graph

42 Commits

Author SHA1 Message Date
AnturK dd93afec90 Fixes harmonica warning. (#44701)
* Fixes harmonica warning.

* Yep
2019-06-22 01:43:47 -04:00
vuonojenmustaturska 2d74a86353 [READY] Cleans up saycode by removing random hook stubs and using a signal where relevant (#44320)
About The Pull Request

This PR removes speech message and span hooks from dna, mutations, pierrot throat disease, species, tongues, masks, hats, held items, brain traumas and a carbon proc overload handling tonguelessness.

Tonguelessness is now handled by tongue removal registering for the speech signal and the hook being deregistered by having a tongue put in.

Also cleans up some /atom/movable/proc/get_spans() overloads that called the empty parent or overloaded the parent to do the exact same thing as the parent proc did.

Also cleans up calls to radio.talk_into() where the caller would often, as a result of copypasta, provide the proc with fresh copies of the proc's default values for proc args, and makes say_quote() better by giving it a default spans value so that none of the callers have to provide the same default one.
Why It's Good For The Game
Changelog

cl Naksu
code: Cleaned up saycode
/cl

* start with this

* oh man this looks so good

* hats are dead

* /obj/item/proc/speechModification is dead

* brain traumas and get_held_item_speechspans() are dead

* these should be static

* unfortunately we still need this

* /mob/living/carbon/treat_message(message) is kill

* clean up get_spans()

* dunk get_spans, modifies_speech for brain traumas, some superfluous static stuff

* move stuff around

* return values
2019-06-06 18:35:06 +12:00
Kamparauta 8789c1d7e3 Changes the PAI loudnessBooster to a piano_synth, allows choosing of instrument. (#42910) 2019-03-01 13:50:16 +01:00
coiax 84b64328b9 Improves code implementation of the Musician trait (#41742)
cl coiax
add: Any talented Musician can now use any instrument to lift
spirits, and ease burdens. They can now also use the space piano and minimog
to grant people the Good Music buffs, just like a handheld instrument.
/cl

A living mob with TRAIT_MUSICIAN will now apply the Good Music
status effect to everyone who can hear the music. The buff will
now apply even to players who have disabled instrument sounds.

The Good Music status effect lasts for 6 seconds after the
musician stops playing.

Added STATUS_EFFECT_REFRESH that just refreshes the duration
of a status effect, rather than instancing a new one.
2018-12-09 23:08:03 +13:00
moo c07f2a65da Streamlines beacon types (#41192)
* Streamlines beacons

* Adds a comment on how to use this.

* When the item spawns in the angels now sing

* haha it's a webedit guys!

* Let Centcomm know!

Co-Authored-By: ExcessiveUseOfCobblestone <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>

* musicly fans rejoice

Co-Authored-By: ExcessiveUseOfCobblestone <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
2018-11-01 07:52:43 -04:00
Tlaltecuhtli 7cfba12b0f Fix instrument beacon (#40820) 2018-10-20 15:09:02 -07:00
MrDoomBringer 4c45832fe2 bards now recieve their instruments via orbital drop pod (#40833)
requires #40820

cmon having instruments just magic into your hands is lame. supplypods are fuckin lit.

cl MrDoomBringer
tweak: Instruments received from the express delivery beacon are now delivered via orbital drop pod.
/cl
2018-10-17 23:47:44 +13:00
kevinz000 3e7184c975 Combat/Stun (slip) overhaul staging, mobility flags, adds crawling (#39967)
Aiming to implement the framework oranges has detailed in https://tgstation13.org/phpBB/viewtopic.php?f=10&t=19102
Moves canmove to a bitflag in a new variable called mobility_flags, that will allow finer grain control of what someone can do codewise, for example, letting them move but not stand up, or stand up but not move.

Adds Immobilize()d status effect that freezes movement but does not prevent anything else.
Adds Paralyze()d which is oldstun "You can't do anything at all and knock down).
Stun() will now prevent any item/UI usage and movement (which is similar to before).
Knockdown() will now only knockdown without preventing item usage/movement.
People knocked down will be able to crawl at softcrit-speeds
Refactors some /mob variables and procs to /mob/living.
update_canmove() refactored to update_mobility() and will handle mobility_flags instead of the removed canmove

cl
rscadd: Crawling is now possible if you are down but not stunned. Obviously, you will be slower.
/cl
Refactors are done. I'd rather get this merged faster than try to fine tune stuff like slips. The most obvious gameplay effect this pr has will be crawling, and I believe I made tiny tweaks but I can't find it Anything I missed or weird behavior should be reported.
2018-10-11 11:22:21 +13:00
Tlaltecuhtli 848261b285 if you have musician trait you can now choose which instrument you get (#40588) 2018-10-07 06:44:19 -04:00
Mickyan 906c7f445b Fixes a typo with the musician quirk (#40398)
* musician grammar

* removed other "the"
2018-09-22 22:32:41 -04:00
Mickyan 764844f530 Artsy fartsy quirks (#39930)
add: Show your support for the fine arts with these new quirks:
add: Tagger: drawing graffiti takes half as many charges off your spraycan/crayon
add: Photographer: halves the cooldown after taking a picture
add: Musician: tune instruments to temporarily give your music beneficial effects such as clearing minor debuffs and improving mood.

These should be pretty straight forward, musician is especially interesting because you can share tuned instruments with other players, and think it has the potential for some interesting cooperation. For example, as a musician bartender you may decide to hand your tuned instrument to the mime so they can play music and have your customers not stumble around as much while also making them happier!

I don't think there's realistically any balance concerns. Most of the debuffs it clears can already be cleared by drinking tea, they're a pretty rare occurrence in a fight and are usually gone before you have the chance or need to do anything about them. At most helps you walk straight while you're drunk, really.

All these quirks make you start the shift with all the tools of the trade, to make them more worthwhile to take and make the player feel like their quirks are part of their character on a regular basis (ex. a player with the tagger quirk is more likely to make graffiti on a whim, a photographer will always have a camera to take pictures of interesting things etc. whereas they would otherwise have to round up supplies at roundstart every time)
2018-08-31 00:10:10 +12:00
AnturK 4c5a43eeb8 Prefix for item flag slot defines. 2018-04-27 10:30:48 +02:00
Fox McCloud 057aa31cda Kills off /obj/item/device (#37297)
* Kills off /obj/item/device

* whoops

* whoops

* Fix
2018-04-23 15:00:23 +02:00
kevinz000 f300a5c155 Interaction/Attack Hand Refactor (#36405) 2018-03-23 11:20:54 +01:00
bgobandit 41f6a26b24 Adds force to items that really should hurt when hit by (#32200) 2017-10-30 12:49:31 +13:00
Mercenaryblue f7455c6d97 Spooky Spectral Instruments (#31966)
* [dooting intensifies]

Spectral Instruments added
To be used with Spooky Skeletons.

* Spectral Re-balance

The spectral instruments no longer stun living creatures.
Text make you retain your loyalties now.

* Requested Changes

Added variable "too_spooky".
Defines if it will spawn a new instrument.
Re-balanced damage to 5 hits average per conversion.
Added admin notice to changelog.

* Loyalty text fix

* Spooky Trumpets

Removed comment.
Added missing spookiness.

* Spooky Dooting

Major Overhaul.

removed /brass/
Spooky Dooting is now a component.
Boneless humanoids no longer lose stamina.

* Spooky Dooting

mk2
2017-10-29 13:34:39 +01:00
vuonojenmustaturska 6e468720ab Fixes to more Initialize procs (#30641)
* batch 1

/mob/living/silicon/robot/syndicate
/obj/effect/decal/cleanable/blood/old
/obj/effect/decal/cleanable/blood/gibs
/obj/effect/decal/cleanable/blood/gibs/old
/obj/effect/decal/cleanable/ash
/obj/effect/decal/cleanable/ash/large
/obj/effect/decal/cleanable/greenglow
/obj/effect/decal/cleanable/vomit/old
/obj/effect/decal/cleanable/shreds
/obj/effect/decal/cleanable/oil
/obj/effect/decal/cleanable/crayon
/obj/effect/decal/cleanable
/obj/effect/temp_visual/point

* batch 2

/obj/effect/anomaly
/mob/living/carbon/monkey/punpun
/obj/item/queen_bee/bought
/mob/living/simple_animal/hostile/poison/bees
/mob/living/carbon/human
/area/ai_monitored
/area

* batch 3

/mob/living/simple_animal/hostile/blob/blobspore
/obj/item/spellbook
/mob/living/simple_animal/hostile/blob/blobbernaut
/mob/camera/blob
/obj/structure/noticeboard
/obj/structure/piano
/obj/item/clothing/head/helmet
/obj/item/gun/energy/laser/chameleon

* batch 4

/obj/machinery/airalarm
/obj/effect/decal/cleanable for reals
/obj/item/stack/rods
/obj/effect/decal/cleanable/crayon for reals
/obj/screen/parallax_layer
/obj/item/device/instrument
/obj/item/ore
/obj/item/coin

* batch 5, getting tgstation ready for halloween

/obj/machinery/meter/turf
/obj/machinery/capture_the_flag
/obj/effect/ctf/dead_barricade
/obj/structure/firepit
/obj/item/clothing/head/helmet/knight
/obj/structure/spacevine
/obj/effect/hallucination/simple/xeno
/obj/effect/hallucination/simple
/mob/living/simple_animal/shade/howling_ghost
/mob/living/simple_animal/hostile/retaliate/clown/insane
/obj/structure/bookcase
/mob/camera/aiEye/remote/base_construction
/obj/machinery/computer/camera_advanced/base_construction
/obj/item/device/wisp_lantern

* batch 6

/obj/item/device/warp_cube/red
/obj/item/device/shared_storage/red
/obj/item/melee/ghost_sword
/mob/living/simple_animal/hostile/mining_drone
/mob/living/brain
/obj/item/device/mmi/posibrain
/mob/living/carbon/human/interactive
/mob/living/carbon/human/interactive/angry
/mob/living/carbon/human/interactive/friendly
/mob/living/carbon/human/interactive/greytide
/mob/living/carbon/human/interactive/robust
/mob/living/carbon/monkey/angry
/mob/living/simple_animal/hostile/guardian/assassin
/mob/living/simple_animal/hostile/syndicate/mecha_pilot/no_mech
/mob/living/simple_animal/hostile/syndicate/mecha_pilot
/mob/living/simple_animal/hostile/mimic/crate
/mob/living/simple_animal/hostile/mimic/copy

* batch 7

/mob/living/simple_animal/hostile/megafauna/colossus
/mob/living/simple_animal/hostile/megafauna/bubblegum
/mob/living/simple_animal/hostile/asteroid/goldgrub
/mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck
/mob/living/simple_animal/hostile/asteroid/hivelordbrood
/mob/living/simple_animal/hostile/statue
/mob/living/simple_animal/hostile/wizard
/obj/machinery/power/smes
2017-09-13 02:47:17 -04:00
ShizCalev d525b18d8d Completes major inhand split project (#29574)
* Completes split project

* More work on it. Should be more or less finished
2017-07-29 16:47:37 -03:00
kevinz000 9123f45eab Fixes harmonicas acting like muzzles (and runtiming instead of properly muting you too.) (#29393) 2017-07-21 20:25:19 -03:00
Xhuis 30e5070792 Fixes electric guitars 2017-07-17 13:09:50 -04:00
kevinz000 0833a9002f Ports instruments from /VG/station, including harmonicas, xylophones, saxophones, trombones, and a BIKE HORN. Repaths instruments to sound/instruments. Also, allows piano synth to play all instruments but eguitar and gives cargo a crate with everything. Clown gets the bike horn trumpet at roundstart. (#29277)
* multiext

* instruments

* kekkles

* clown

* Update instruments.dm

* Update packs.dm

* Update packs.dm

* Update instruments.dm

* Update action.dm

* typo

* Update instruments.dm
2017-07-16 12:48:51 -04:00
kevinz000 876bc2d92d Adds a "synthesizer" that's basically a handheld piano (#29197)
* Update instruments.dm

* Update personal.dm

* Update personal.dm

* nicbn sprites

* icon pathing
2017-07-12 23:24:09 -04:00
Joan Lung 1feb0021a1 Removes now-unnecessary obj_integrity definitions 2017-07-08 14:02:50 -04:00
Lzimann 5a618297ce Replaces the default output with the to_chat wrapper. 2017-03-10 01:32:05 -03:00
Cyberboss 5959ac32cc Refactors atom/Initialize. Fixes ruins being initialized twice (#22778)
* Refactors atom/Initialize

Captialized for compiling correctness and to be more inline with Destroy

Will now be called from atom/New if the world initialization loop in SSobj has already run. Should always call the base.

Now comes with the `roundstart` parameter indicating whether or not it was called by SSobj or atom/New

Other fixes/tweaks:
- Renamed a proc called Initialize in abduction consoles to Setup
- Removed /obj/item/device/radio/headset/headset_sec/department: Broken and referenced literally nowhere in the code
- Removed a spawn from the Initialize of turbine_computer which made literally zero sense
- Generalized the proc which fixes RND servers with no id set

Reasoning: It's better to check roundstart per function than to have to duplicate code in New and Initialize. Think of it as a safer New for atoms. If we move enough stuff to it, initial map load performance will increase due to less New calls

* Fixed a thing

* Actually, fuck the police

* >Expecting a merge without errors

* >Not calling ..() in New

* Sanic

* Fix the headset bug

* Makes sure the map loaders dew it right

* Fixes ruins being initialized twice

* Rename roundstart -> mapload

* Revert "Rename roundstart -> mapload"

This reverts commit 667c327fd2ccfa3ce4f4db52eac03f9e8b0f6812.

* Remove unrelated change

* A more direct solution to map loads

* And now we shouldnt need this warning

* Add the new var to SSobj recovery

* Revert "Revert "Rename roundstart -> mapload""

This reverts commit dee07dbd5e4696554ac43aae5b91cce743b9b9e0.

* Line endings
2017-01-23 09:37:45 +01:00
Kyle Spier-Swenson dedb16826e Speeds up world init. (93s -> 49s) (#21992)
* Speeds up world init.

* Armor is now new inited for obj and the first level of subpaths.
* Actions is now lazyinited and deleted with empty.
* Actiontypes is now only inited when actually used and deleted once it pre-fills actions with the action buttons.
* Pipes now prefill their node list(s) in new() using new /list/ (count) syntax to speed up the list initaliztions and remove the init proc.
* Pipes no longer store their item version, instead creating it on the fly when deconned
* Walls no longer store their metal stacks, instead creating it on the fly when deconned.
* obj, walls, floor, plating, item, machinery, structure, pipe, pipenet, atom, and movable no longer have an (init) proc. (along with a few other smaller examples)
* Atmos can pass checking is now a var with the ability to have a proc be call in advance cases.
  * (as a side effect, I had to fix a few things that were calling atmosCanPass rather then using the pre-calculated list, this should speed up chemfoam and flame effects greatly)

* Reverts upload limit
(remind me one day to defuck this, it could easily be a config thats not editable by vv to make changes easier)

* Makes apc update icon a bit faster.
APC new is some what high on the profile of world init, still not sure why, but this stood out as a waste of cpu so i fixed it.

* Fixes runtime with atmos backpack water tanks.

* Makes smoothing faster (and fixes turfs smoothing twice at init)

* Makes apcs init faster by replacing some spawns with addtimer

* fix transit turfs.
2016-12-08 21:50:15 +13:00
lordpidey 499cb6c7db Minor devil fixes (#20770)
* Replaces OBLIGATION_DRINK with a much more appropriate fiddle reference
Attempting to clone soulsellers no longer works.  Fun things happen if you try.
Fireproof paper no longer becomes unreadable on burning.
Made a generic "Conjure item" spell as a superclass for the summon pitchforks.  These spells summon/unsummon an item directly into your hand.
You can no longer spam ghosts with the infernal revival contract.

* Adds the sprites for the golden violin

* Fixes compile error.

* Small changes for AnturK

* I speel gud.
2016-10-18 08:45:45 +02:00
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
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 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
NikNakFlak 5e897cc18a HOW DID I MISS THIS (#19338) 2016-07-16 07:27:20 -04:00
NikNakFlak 5dd2785699 Add an electric guitar and removes duplicate guitar sound files 2016-06-10 20:07:47 -07:00
KorPhaeron d8a37204e7 Makes burn_state use defines 2015-12-13 05:36:55 -06:00
Razharas 93b9f96cfa Merge pull request #11341 from bgobandit/suicideisnotajoke
Adds/tweaks several suicide messages.
2015-09-06 06:42:00 +03:00
duncathan 51c09f16bf makes all Destroy()'s return properly 2015-08-31 00:21:01 -06:00
bgobandit 4909600303 Adds/tweaks several suicide messages. 2015-08-23 15:02:34 -04:00
WJohn 001dd150e0 Merge pull request #10655 from MMMiracles/TWANG
Adds a 'TWANG' sound effect for guitars
2015-07-19 13:34:40 -04:00
MMMiracles ca419e47c6 adds a 'TWANG' sound effect for guitars when hitting something 2015-07-16 07:59:10 -04:00
Firecage 4688c2c969 Fixes proc arguments 2015-07-15 23:52:35 +02:00
Ikarrus 8759f56f6f Squashed Commits 2015-06-27 00:09:16 -06:00
Boggart 077051626c Ports Nienhaus's guitar, the additional sounds are about ~1mb.
Moves most of the code from violin up to instrument and makes violin a child of it. (Guitar is a child of it as well.)
Fixes violins on Metastation and Box due to the repath, adds the guitar to both.
2015-04-24 19:12:22 -06:00
Boggart c6a22a98c9 Renames Violin.dm to Instruments.dm in preparation for generalizing the code and to preserve the git history. 2015-04-24 19:12:16 -06:00