Commit Graph

1260 Commits

Author SHA1 Message Date
necromanceranne
9f876fefac Various cult equipment rebalances to address energy weapon immunities being too common (#57091)
* Removes mirror shield and shielded robe from forge, removes eldritch longsword from equipment and moves it to the forge, adds the nar'sian hardsuit to the forge with no slowdown and comparable stats to the shielded robe, gives eldritch longswords and cult daggers block chance
2021-02-22 01:49:23 -08:00
Ryll Ryll
9d45916ee8 Implements JPS (Jump Point Search) Pathfinding (#56780)
So a month or so ago I wanted to make it so dogs in my dog AI PR could path through doors if they had access, and was told I'd need to improve our pathfinding efficiency if I wanted to use full pathfinding for them. Thus, enter JPS, a pathfinding algorithm that allows for massive timesavings in systems with uniform cost grids like ours. This code is still fairly rough and needs polishing, but it's fully functional and already shows massive savings over traditional A*! I plan for this to replace A* as our default pathing method, but I'll leave the A* code in place in case someone ever needs it for whatever reason, like if a specific case needs variable cost pathing.

Note that this allows for diagonal pathing instead of the cardinal pathing our A* uses right now, and the current version of the code costs the same to move diagonally as it does to move laterally, which may change later. There's also a lot of dummy/test code in right now in general, but you should still be able to test it out for yourself by spawning a bot like a medibot and using your PDA to summon it.
Preliminary Profile Results

A preliminary profile is available here. Using one medibot by itself on Metastation, I generated a list of 500 random blob spawn points around the station, gave the medibot all access, then let each algorithm tackle the list. The old A* algorithm took a total of 86 seconds to complete the list and processed 978065 nodes, while JPS took a total of 46 seconds and processed only 100062 nodes, for a 47% decrease in total time and an almost 90% decrease in nodes processed!
Why It's Good For The Game

Significantly cheaper pathing, which will very much come in handy for the AI datums I'm looking to dig into, what's not to like?
2021-02-22 15:14:33 +13:00
necromanceranne
b73cf97a3d Fixes the halberds inhand sprites (#57090) 2021-02-21 17:40:19 -08:00
itseasytosee
f5819cb273 Fixes slime heretics being hurt by rust (#57041) 2021-02-21 14:42:48 -08:00
Fikou
eea0599511 moves gun related icons to guns folder (#57077)
moves ammo icons, projectile icons and hitscan effect icons to guns folder
renames projectile.dmi to ballistic.dmi so its less confusing
moves rcd ammo from ammo.dmi to tools.dmi with the rcd
2021-02-21 13:58:33 -05:00
necromanceranne
6f30694639 Gives the rune carver a turf check, makes it's name more consistent (#57073)
Atomized out of that rune carving pr, this just fixes the lack of a turf check on the rune carver and makes it's name more consistent.
2021-02-21 13:54:37 -05:00
Fikou
98c3a4ff0b cult construct stuff (#57027)
edits sprites for wizard cult constructs to have more sheen
fixes wizard cult constructs not working
makes soulstone code a bit cleaner i think
makes cult spells use second defines
fixes wraith jaunts being invisible
2021-02-20 23:16:35 -03:00
TemporalOroboros
e2e7ccdbdc /mob/living/proc/Life(delta_time) (#55534)
- Makes `/mob/living/proc/Life` and most related procs use `delta_time`
- Procs that had snowflaked timing systems, such as breathing, addiction, and advanced diseases were left unchanged.
2021-02-19 10:24:20 -05:00
TemporalOroboros
e4079c87b8 update_appearance (#55468)
Creates update_name and update_desc
Creates the wrapper proc update_appearance to batch update_name, update_desc, and update_icon together
Less non-icon handling code in update_icon and friends
Signal hooks for things that want to change names and descriptions
99%+ of the changes in this are just from switching everything over to update_appearance from update_icon
2021-02-19 12:06:18 -03:00
necromanceranne
d9976720f4 Mild Blood Rites QoL and Blood Halberd cleanup + sprites (#56924)
Blood Rites now uses a radial menu for choosing which version of the spell you want.

Blood Halberd, now Bloody Halberd, has had some of it's weirdness as a cult weapon resolved by bringing it under the cultblade parent, ensuring it is babyproof and not able to be turned on others by noncultists.

Bloody Halberd now has a new sprite.

Additionally, some code guideline cleanup, as well as making the cult longsword use the x64 sprites I added for the dark blade a while back.
2021-02-18 04:07:03 -03:00
Kylerace
45ccba3809 replaces all instances of ammo_casing/BB to loaded_projectile again without crashing this time (#56989) 2021-02-18 02:50:56 -03:00
NotRanged
cfa3e76101 Blob: Explosive Lattice now actually works, reactive spines retaliation applies reagent, description consistency (#56884)
Co-authored-by: Ranged <nickvanderkroon@gmail.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
2021-02-17 03:05:05 -08:00
Fikou
bc02039e7e you can now cast rituals on 100 threat dynamic (#56961) 2021-02-17 02:39:34 -08:00
Qustinnus
ef80ed1935 Addiction rework (#56923)
Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-02-16 18:20:16 -08:00
LemonInTheDark
5c22a0cfc1 Converts many proc overrides to properly use list/modifiers, lots of other smaller things (#56847)
Converts many proc overrides to properly use list/modifiers, fixes some spots where modifiers should have been passed, calls modifiers what it is, a lazy list, and cleans up some improper arg names like L, M, C, and N. Oh and I think there was a spot where someone was trying to pass M.name in as a string, but forgot to wrap it in []. I fixed that too.
2021-02-16 09:18:46 -05:00
TemporalOroboros
9c63024b59 Refactors the Light Eater and gives it some flavortext. Some minor behavior changes included. (#55551)
Converts the effects of the nightmares light eater into a component and a couple elements
Adds some flavor text to the light eater
Makes the effects of the nightmare's light eater dispel if the armblade is destroyed
Probably a net increase in code quality
More flavortext
The nightmare's light eater effect can be dispelled if you are willing to sacrifice the armblade
2021-02-15 19:11:52 -03:00
zxaber
162821c758 Doomsday now cancels if the AI shunts mid-activation (#56833)
If the AI shunts while the doomsday flufftext proc is activating, the doomsday will now revert to idle. It can be re-activated if and when the AI returns to their core. A fully activated doomsday event (when the crew is given a delta alert) will still be properly disabled if the AI shunts, and cannot be reactivated. Closes #56785

Also fixes the name of the doomsday flufftext proc, which was arguably the bigger issue.

Finally, adds an admin message, sent when the AI starts the flufftext proc.
2021-02-15 00:52:44 -03:00
Mothblocks
0f435d5dff Remove hideous inline tab indentation, and bans it in contributing guidelines (#56912)
Done using this command sed -Ei 's/(\s*\S+)\s*\t+/\1 /g' code/**/*.dm

We have countless examples in the codebase with this style gone wrong, and defines and such being on hideously different levels of indentation. Fixing this to keep the alignment involves tainting the blames of code your PR doesn't need to be touching at all. And ultimately, it's hideous.

There are some files that this sed makes uglier. I can fix these when they are pointed out, but I believe this is ultimately for the greater good of readability. I'm more concerned with if any strings relied on this.

Hi codeowners!

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2021-02-14 16:53:29 -08:00
spessbro
3b333e5987 moves can_synth to chemical_flags (#56891) 2021-02-13 16:06:45 -08:00
Watermelon914
cf63fcfb5d Valentine antag fixes (#56905) 2021-02-13 13:48:33 -08:00
itseasytosee
f2b9adbc35 Gives wizard constructs a purple theme. Minor construct fixes. (#56758) 2021-02-13 12:43:49 -08:00
Ryll Ryll
fa216eff39 Minor ERT refactor, introduces a few ERT admin options (#56345) 2021-02-12 21:07:57 -08:00
LemonInTheDark
f4160f26db Converts all uses of modifiers to lazy access to avoid memes in future (#56846) 2021-02-12 15:25:31 -08:00
NotRanged
1f279edf4d Blob automatic attack bugfix (#56782)
Co-authored-by: Ranged <nickvanderkroon@gmail.com>
2021-02-10 02:09:53 -08:00
necromanceranne
9a7deb2079 Fixes some missing sprites for the moonlight greatsword and whip and worn bottles, adds new wizard ritual knife sprites (#56737)
fix: Fixes some missing sprites for the Possessed Sword, Moonlight Greatsword and Chain Whip nullrods.
imageadd: Adds new sprites to the wizard ritual knife and veilrenders.
2021-02-09 18:36:19 -05:00
coiax
b0f7381aa2 Refactor ventcrawling flag into traits (#56620)
Instead of using var/ventcrawling on `/mob/living`, it is now instead
two traits. It functions in exactly the same way.

This now ensures that manipulation of ventcrawling will not clash with
any other manipulation, such as a proposed genetics ability to give
people ventcrawling, versus abductor organs.

---

Intended to be a pure refactor, no functionality should change.
2021-02-07 14:12:50 -05:00
GuillaumePrata
ddfaff343a Plasmaman won't burn or breath in Mafia/Highlander instead of being transformed into a Human. (#56501)
NO_BREATH and NO_FIRE are added to Mafia/Highlander players and
plasmaman there won't be turned into Humans.
Also shifts Ashwalkers above Ethereals and under Lizards in human.dm
just too keep it in a pretty order.
2021-02-07 16:31:24 +00:00
Fikou
c52c83c94d reinforcement nukies and borgs get droppodded (#56682)
reinforcements now get droppodded instead of appearing out of nowhere
fixes contractor drop pods having the wrong icon
2021-02-07 00:14:17 -08:00
Qustinnus
95731342b9 [READY] Adds station traits: Small modifiers that can randomly be chosen each round (#56309)
This PR adds station traits which are essentially small changes to a normal round that can be used to create small variations in how a round might play out, sometimes there might be only one, very simple trait, but you might have a round where they have a somewhat bigger impact, to make rounds feel slightly more different from each other.

The following traits have been added:
Positive:

    Lucky winner - Free pizza and beer every 6-12 minutes
    Galactic Grant - Larger starting funds for cargo
    Premium internals boxes - emergency box has flare + radio as bonus
    Bountiful bounties - Bounties pay 20% more
    Strong supply lines - Imports 20% cheaper
    Filled maint - More loot in maint
    Fast shuttle - Cargo shuttle is faster
    Free scarves - Free scarfs if a slot is free

Neutral:

    Bananium shipment - Clown starts with 5 sheets of bananium (Neutral because this helps noone but the clown)
    Unnatural atmosphere - Lava planet can get more restricted gasses
    Unique AI - Random lawset at roundstart for AI
    Ian adventure - Ian teleports to a random spot on the station
    Glitched PDAs - PDA's have a different beep
    Announcer intern - Changes the announcement messages to sound like they're from an intern at Centcom

Negative:

    Carp infestation - Carp event is more common and can start earlier
    Weak supply lines - Imports 20% more expensive
    Blackout - Station lights are partially broken around the station
    Empty maint - Less loot in maint
    Overflow bureacracy mistake - Random overflow job (From a vetted list)
    Late Arrivals - Everyone starts in arrivals
    Random spawns - Random spawn location (by drop pod)
    Slow shuttle - Cargo shuttle is slower

Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com>
Co-authored-by: coiax <yellowbounder@gmail.com>
2021-02-05 15:49:49 -08:00
Fikou
8d586a7cb0 Rename metal sheets to iron sheets (#56643)
It's a specific type of metal, it shouldnt just be called generic "metal".
The reagent, ore and material datum are already called iron.
2021-02-05 15:48:00 +00:00
Timberpoes
347ba88108 Heretic void cloak no longer deletes itself when you unequip it. (#56619) 2021-02-05 01:52:40 -08:00
Qustinnus
707fc287b4 Replaces intents with combat mode (#56601)
About The Pull Request

This PR removes intents and replaces them with a combat mode. An explanation of what this means can be found below
Major changes:

    Disarm and Grab intents have been removed.
    Harm/Help is now combat mode, toggled by F or 4 by default
    The context/verb/popup menu now only works when you do shift+right-click
    Right click is now disarm, both in and out of combat mode.
    Grabbing is now on ctrl-click.
    If you're in combat mode, and are currently grabbing/pulling someone, and ctrl-click somewhere else, it will not release the grab (To prevent misclicks)

Minor interaction changes:

Right click to dissasemble tables, racks, filing cabinets (When holding the right tool to do so)
Left click to stunbaton, right click to harmbaton
Right click to tip cows
Right click to malpractice surgery
Right click to hold people at gunpoint (if youre holding a gun)
Why It's Good For The Game

Intents heavily cripple both the code and the UI design of interactions. While I understand that a lot of people will dislike this PR as they are used to intents, they are one of our weakest links in terms of explaining to players how to do specific things, and require a lot more keypresses to do compared to this.

As an example, martial arts can now be done without having to juggle 1 2 3 and 4 to switch intents quickly.

As some of you who saw the first combat mode PR, the context menu used to be disabled in combat mode. In this version it is instead on shift-right click ensuring that you can always use it in the same way.

In this version, combat mode also no longer prevents you from attacking with items when you would so before, as this was something that was commonly complained about.

The full intention of this shift in control scheme is that right click will become "secondary interaction" for items, which prevents some of the awkward juggling we have now with item modes etcetera.
Changelog

cl Qustinnus
add: Intents have been replaced with a combat mode. For more info find the PR here: #56601
/cl
2021-02-04 16:37:32 +13:00
necromanceranne
1611aaa70a Pipeguns: Elitism Edition (#56322)
About The Pull Request

The core of the PR:

The improvised shotgun that was is dead and removed.

Now we have Pipeguns. Pipeguns are bolt action rifles that have a damage multiplier that reduces their damage to 75%, and can be modified to fit the rare 7.62mm bullets. If you want to that is.

The pipegun also slowly increases in misfire probability for every shot at a rate of 5% per shot.

Pipeguns can also be upgraded to Regal Pipeguns. These contain more bullets, don't misfire and don't have a damage multiplier. To acquire one is a maint secret, only available to lucky assistants who come across the diary of a dead assistant. The probability of finding the book is quite, quite low.

Bandoliers now fit individual 7.62mm. Because why not. Currently they're available in stripper clips that fit into most combat belts so this is mostly a style preference at the moment

Other shit

Ammo modification and misfire behaviour is now generalized to all ballistics. You can now make any gun misfire and any internal magazine gun swap ammunition.

Misfires are not a flat chance. Instead, they increment as the gun fires over time.

Ports over this PR Citadel-Station-13/Citadel-Station-13#12274 which I felt was pretty neat conceptually for making some weapons weaker.

Makes the icemoon hermit's mosin into a regal pipegun, just to get mosins out of easy access.
Why It's Good For The Game

Improvised shotguns were one of my favourite weapons to horribly abuse while they were utterly broken a nice alternative, but I fully support moving towards curbing gun power curve. Part of that should include looking at improvised weapons like this which are seeing considerable usage with the removal of buckshot and slugs.

Initially I wanted to pair this with a PR of my own to bop Mosins on the skull along with it, but #56319 is already doing that, and while it's a very lenient approach to my own (I was going to remove them entirely from cargo), I respect it.

Changelog

cl
add: Replaces improvised shotguns with Pipeguns (with a special variant for those willing to go through arbitrary bullshit to acquire it and sheer good luck).
add: Now all guns can be set to misfire and swap ammunition.
add: Misfire chance is incremental as you fire the weapon, and not a flat static chance. This can be reset by using a piece of cloth on the gun and 10 seconds of cleaning.
balance: This has been applied to the detective revolver, but it only increments while using .357 bullets.
add: Guns can have damage multipliers attached for the bullets they fire. The pipegun (but not the regal version) is the first example with a 75% damage output.
balance: The Ice Hermit now has a regal pipegun instead of a Mosin Nagant.
balance: The bandolier fits 7.62mm.
balance: You can construct receivers and rifle stocks in the crafting menu.
balance: Detaches the magical rifles from the boltaction subtype, since they are just basically not using any variables attached to that subtype and made from a series of early returns.
/cl
2021-02-04 11:37:01 +13:00
necromanceranne
1bfcf2a02c Duffelbag Curse: Sane Edition 2: Melee? (#56438)
* Makes duffelbag curse less cheesey and more for what it was intended to do by limiting the number of bags you can have forced on you

* Makes casting the spell a whisper. Because putting duffelbags on sec while disguised sounds really funny.

* Makes duffelcurse equivalent to the blind spell in cooldown and cost
2021-02-03 13:27:01 -08:00
NotRanged
2c12e87256 Cleans up blob code, removes a lot of hardcoded stuff, many new defines (#56306)
Cleaned up, commented on, and (hopefully) improves a lot of blob code.
Put pretty much everything balance-related (except for the strains themselves) into a define file, for easier viewing, changing, and balancing.
Added a bunch of new functionality that new strains (some of which I plan to add in the future) could use: from increased expansion range to more spores per factory.
2021-02-02 14:20:28 -03:00
Tlaltecuhtli
6a0f58d83b ssdads (#56441)
qol as you are gonna check the name of the dude anyway with pda while the input window is open and then missclick into the captain, with this you dont have to
2021-02-01 00:41:20 -08:00
Sparkezel
e8886025a7 Heretic influence fix (#56461)
Co-authored-by: Sparkezel <1haslo4@gmail.com>
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2021-01-31 12:49:27 -08:00
Timberpoes
e85cf07b96 Mirror logging for brainwashing and hypnosis in the player panel and attack logs. (#56515)
Hypnosis and brainwashing now have entries in the Player Panel logging
under attack and entries in the attack logs.

Mirrors some logging that would otherwise just be in the game logs.
From an admin-perspective, issues where you'd want to check
brainwashing/hypnosis tend to go hand-in-hand with issues relating to
attack logs as opposed to game logs.
2021-01-31 20:21:38 +00:00
TemporalOroboros
0782e92d1d Defines calibers (#56476)
Adds defines for all of the ammo calibers
Replaces all current magic strings with defines
Docs what guns use what calibers
Corrects the name of the incendiary .45 ammo casing to indicate that it fires incendiary rounds rather than armor piercing rounds
2021-01-30 22:16:30 -03:00
Timberpoes
f457ad5f02 Slaughter Demons no longer have an infinite range, point-and-click attack that can also be used while phased. (#56495)
Fixes this by adding an adjacency check.
2021-01-30 21:25:06 -03:00
TemporalOroboros
11b3d16edb Adds logging to uplinks, spellbooks, and the codex ciatrix (#56450)
* Initial logging

* Bugfix and adds uplink logging to config file

* Another bugfix
2021-01-29 14:34:59 +08:00
elle
3fa2ad5c99 fixes various grammar issues (#56446)
fixes misspellings of 'permanently'
fixes grammar with bandaging wounds on yourself
2021-01-28 17:23:30 -08:00
MrMelbert
6908705ffb Log nuclear arming and disarming (#56451)
Recently a fluke-ops round went down there the nukies armed then immediately disarmed the nuke and no one was sure who disarmed it by accident. When I went to check the logs I realized we don't log who starts or stops a station destroying event?

This PR adds messaging and logging to arming and disarming nuclear devices.
2021-01-28 17:21:20 -08:00
tralezab
5d6f272077 Modernizes Admin Only Wizard Event, Department Revolt (#56061)
Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com>
2021-01-26 03:36:19 -08:00
Arkatos1
13c96e7b4b Changeling flesh disguise fixes (#56344)
* Changeling ID icons

* Examine fix

* Suit storage fix

* Cleaner ling ID code

* Cleanup

* Nodrop cleanup

* Cleanup
2021-01-25 02:02:11 -08:00
Sparkezel
3c9913b12c The day has come gamers, the mosin nerf/rework (#56319)
* THE NERF

* fixes a dumb mistake

* Sanity check and second thoughts

* mosin jamming

* adds the cleaning supplies, sprites, slight changes to dmg and jamming and HNNNG ONE LAST BUG

* adds maint kit to russian surplus, second try at fixing

* everything is fixed now :)

* finishing touches

* Last fix?

* fix

* fix var names

* a new sound and few more fixes

* add /brand_new variant to all ert/special spawned mosins, added a check if bolt is locked

* Bolt_locked is true when bolt is open 😂

* added a clamp just in case

Co-authored-by: Sparkezel <1haslo4@gmail.com>
2021-01-25 01:58:50 -08:00
Sparkezel
a554d7825f Splits Grasp of Rust using intents (#56304)
Co-authored-by: Sparkezel <1haslo4@gmail.com>
2021-01-22 13:25:05 -08:00
Tlaltecuhtli
df08104650 mining keys to open tendrills crates buyable with miner points (#56267) 2021-01-22 13:22:54 -08:00
dragomagol
f837ce4397 Cyborg modules renamed to models (#56312)
Changes the references of borg module (type) to model, adds a file for robot declarations and one for model declarations. Basically trying to make the code layout a little more sane.

Initially changed them to 'configurations' but I prefer model; its meaning is closer to module than configuration and avoids confusion with actual config.
2021-01-22 21:38:35 +02:00
Timberpoes
b478bc68d5 Fixes Codex Cicatrix having infinite charges - Maintainer edition (#56307)
Gets rid of pointless text2num.
EK is a path and not an object. Fixes it being used as if it was an object through using initial.
2021-01-21 09:42:50 -05:00