Commit Graph

2033 Commits

Author SHA1 Message Date
Kyle Spier-Swenson c341178ff4 Fixes bug with addtimer keeping old timers around, makes addtimer even faster. (#23126)
* Fixes timers being left around, Makes addtimer() sanic fast.

This adds a new flag, TIMER_STOPPABLE. Most(80%) of the overhead for addtimer() was in adding the timer to the associated lookup list for deltimer() to use. Moving that functionality to a flag so it wouldn't slow down the 70% of things calling timers puts the final nail in the coffin of byond's sleep/spawn().

spawn: 324 seconds across 5,948,372 calls

addtimer: 67 seconds across 5,953,220 calls

The testing setup for profiling was included in this commit, it will be removed in a later commit. @Fox-McCloud

* Remove profiling procs.

* fix runtime

luckly when this happened, we were about to resume anyways.
2017-01-20 09:31:50 +01:00
Mervill f031db8d4b fixes a runtime related to incorrect argument syntax (#23097) 2017-01-19 12:30:48 +01:00
AnturK 809835796a Fixes pill duping (#23033) 2017-01-16 13:14:31 -05:00
oranges 0dedd2b17e Merge pull request #23007 from XDTM/GrenadeFade
Makes chem splash based on distance
2017-01-16 20:55:01 +13:00
XDTM 3bb9cfbefb Fixes portable chem dispensers wrenching (#22981) 2017-01-14 12:23:46 +01:00
XDTM a3382142cc Makes chem splash based on distance 2017-01-14 10:58:33 +01:00
XDTM 77865eece6 Fixes patch delay (#22934) 2017-01-12 15:06:09 -05:00
oranges d883333a2c Merge pull request #22880 from coiax/renames-bad-food
Renames "????" to "bad_food"
2017-01-11 12:51:59 +13:00
Cyberboss e8745fad08 Moves the duplicate SplashReagents to the container level (#22870)
* Fixes the real issue

* Bigger splash if not thrown
2017-01-11 12:49:22 +13:00
Jack Edge bbde0f3033 Renames "????" to "bad_food"
Fixes #22864. Who knows why it was called "????" in the first place, but
it's not going to be anymore.

Also adds a description.
2017-01-09 15:41:41 +00:00
Cyberboss 6e622eedd1 Moves reagents into atoms 2017-01-08 23:02:37 -05:00
Trugath 4105ca9ea6 Tgmonkey (#22338)
* Monkeys are a bit more of a handful
They will aggro, steal, pick up weapons and stuff bodies in disposals

* search using held_items instead of manually

* Only natural monkies should reliably stun
Natural monkies don't try to stun-lock

* Pushes equip_in_one_of_slots to carbon from human

* Removed unused helper.

* Make the trip and stun only against monkeys
The main reason this is here is for the swarm behaivour.

* Just return true for now. It should flee on next life tick.

* remove blocking call from Life

* stuff_mob_in blocks so make it non-blocking

* add check to stop add/remove in same function
Only occours if the monkey attacks someone who isn't in the enemies list.
This only happens during a monkey swarm. Best to check.

* Fix for monkeys ripping stuff off walls.

* Moved shared emote/weaken down into living
Called the new function knockOVer. Monkey and Secbot both have different
control flow before the shared code.

* Stop monkeys fighting over body

* Remove commented out code

* Reduce flee range

* replace spawn with addTimer by moving code into callbacks

* Move magic numbers to defines
Also removed 900 delay in resisting cuffs as its a useless argument

* Refactor. Attacking has a function: monkey_attack
Combined de-aggro into it

* rework monkeyDrop to force drop
Also check for deleted items when snatching items

* Aggresive can be toggled by an admin
Allows for a mass mob of angry monkies

* Tweak aggressive monkeys to attack each other less
Monkey vs Monkey probability is a define
Warning: Once MVM combat breaks out in large mobs, mayhem insues

* Set the monkey back to idle once it attemps to dispose the body

* fix for aggressive monkeys self-harming

* comment wording fix

* changed walk2derpless to a callback and fixed deathgrip
2017-01-06 14:59:37 +01:00
Firecage 8dab2c9c34 Changes the names of Circuit Boards so they are easier on players. (#22688) 2017-01-04 17:20:53 -05:00
Firecage 50bbf5aa50 Allows syringes and droppers to show their reagents when examined while wearing things such as Science Goggles. (#22618)
* Allows syringes and droppers to show their reagents when examined.

* rearranges my logic

* replaces SEMIOPENCONTAINER with TRANSPARENT

* Silly spelling error fix.

* Moves the defines from flags to container_type to avoid issues with conflicting flags

* changes it back to obj/item/O

* Moves the OPENCONTAINER and TRANSPARENT defines to the reagents.dm
2017-01-04 20:00:46 +13:00
Kyle Spier-Swenson bee4b132a3 [READY]Makes addtimer use callbacks (#22660)
* Makes addtimer use callbacks

* I broke the comment

* I fucked up the regex

* this was a silly idea.
2017-01-04 16:02:56 +13:00
Kyle Spier-Swenson 280dbe20c3 [Ready] SSthrowing + callbacks! (#22476)
* SSthrowing + callbacks!
Throwing is now a subsystem.
It's low priority, but is a ticker subsystem so is ran before most other subsystems.
To allow for shit to run after the throw finishes, throwing now supports a callback.
A callback datum system was created, conversion of addtimer is planned for another PR.
Throwing now has a limit of 2048 turfs (was 600)
Throwing now ticks every world.tick, and properly converts the speed arg from 1ds to what ever tick_lag is.
Throwing now properly accounts for missed ticks.
Throwing no longer uses sleep.
Throwing should no longer lag since it's not filling the sleep queue up

* Smoother tentacles

* Some improvements

* Missed a spot.

* Makes shit quicker.
Inlines the thrownthing.tick() proc.
Raises missed ticks value
Lowers max dist value
Inlines the two sister overrides for /atom/movable/Moved() because that just seemed like a waste

* >PRs open that use procs i'm removing.

* STOP THE PRESSES!

* throw_at now runs the first throw tick() immediately
This will help some with throwing while running.

* Item throwing now imparts the momentum of the user throwing.

(ie, running in the direction you are throwing makes you throw faster, running away from the direction you are throwing makes you throw the item slower)

* Moves throwing momentum from carbon/throw_item to movable/throw_at.
There are other things that cause a mob to "throw" an item, I figured we keep this universal since thrower is already an arg.

* Explosions throw shit faster.
This was stupid, "Hey, lets set the item's throw_speed to 4 so embedding works, but lets make it throw at the base 2 throw speed for no reason."

* Fixes explosion embedding.
This also acts as a nice example of how to override a callback in an override of throw_at properly.
2017-01-02 20:08:03 +11:00
bgobandit e9544b8bec Fixes spelling and misleading messages (#22512)
* Fixes spelling and shit

* satiates the kor, fixes more typos/grammar issues

* spelling madness

* I'm mad with spelling power
2016-12-29 10:14:01 +13:00
XDTM 854eb19e9b Refactors mineral golem code (#22354)
* Improves code

* old comment

* p_their actually

* just in case
2016-12-23 09:35:26 +13:00
oranges 6eab8df572 Byond stacktraces (#22361)
Byond help
2016-12-22 13:40:52 +01:00
Cyberboss ac1b6b1a31 Readds some of the harder to access freon sources (#22181)
* Revert "Freon Removal"

* Implements XDTM's fix
2016-12-21 10:04:55 +13:00
XDTM f3ed316aa3 Replaces black magic spawn with addtimers (#22291)
* Black magic begone

* Also fix a bug
2016-12-19 12:00:08 +01:00
swindly 40b25767d2 Adds eggnog (#22238)
* adds eggnog

* adds carton
2016-12-17 14:19:23 -05:00
Cheridan 8256c93828 Merge pull request #22186 from PKPenguin321/patch-5
nerfs growth serum
2016-12-14 22:19:20 -06:00
coiax 4556cf5e29 Adds multiple upgrades for Medical cyborgs (#22149)
* [WIP] Adds multiple upgrades for Medical cyborgs

🆑 coiax
add: Adds upgrades for the medical cyborg!
add: The Hypospray Expanded Synthesiser that adds chemicals to treat
blindness, deafness, brain damage, genetic corruption and drug abuse.
add: The Hypospray High-Strength Synthesiser, containing stronger
versions of drugs to treat brute, burn, oxyloss and toxic damage.
add: The Piercing Hypospray (also applicable to the Standard and
Peacekeeper borgs) that allows a hypospray to pierce thick clothing and
hardsuits.
add: The Defibrillator, giving the medical cyborg an onboard
defibrillator.
/🆑

- [ ] Price the material cost of the boards appropriately
- [ ] Get the defib upgrade working

* Got the defib working

* Adjusted research and costing levels

* Missed a close paren
2016-12-15 10:50:13 +13:00
PKPenguin321 c65ed93649 nerfs growth serum 2016-12-13 18:50:01 -08:00
Fox McCloud 11351543ee Adds Random Seeds and a New Trait and Further Gene Datumizing (#22050)
* Adds Random Seeds and a New Trait

* duplication

* weed rates and chances

* fixes rates

* faster random reagents
2016-12-13 15:00:42 +13:00
Cheridan 07c399fc8e Merge pull request #22061 from swindly/alcohol
Fixes some drink stuff
2016-12-10 19:26:25 -06:00
swindly 45a7c59d08 changes stuff 2016-12-08 16:53:47 -05:00
Mervill 417c50efa2 These comments where removed by me.exe, just now 2016-12-08 01:48:46 -08: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
KorPhaeron d854909e0f Freon Removal (#22025)
* Freon Removal

* Removes more freon sources
2016-12-08 14:40:07 +13:00
MisterTikva d04143eedc Removes growth serum alternation between size 2 and size 1.5 and adds effects for higher dosages (#21962)
* MARIO MEMES

* NEW MARIO MEMES

* NEW NEW MARIO MEMES
2016-12-07 22:28:50 +13:00
swindly b8af084e79 Adds Anacea as a makeable toxin (#21932)
* git gud doctors

* reward for doctors who got gud
2016-12-07 09:43:36 +13:00
Joan Lung 551ede6d35 Kills all remaining text pronoun macros (#21916)
* Kills all remaining text pronoun macros

* review your own code

* oh right one further

* more

* \
2016-12-04 21:32:31 +01:00
Mervill 0972f78800 a_intent now uses defines 2016-12-02 22:27:30 -08:00
Mervill c2e2440953 Merge branch 'master' into w_class
Conflicts:
	code/game/objects/items/weapons/twohanded.dm
2016-12-02 21:44:24 -08:00
Jordie ca6ffdba40 Merge pull request #21866 from Mervill/slashes_deux
Remove slash from end of type refs/defs
2016-12-03 15:56:10 +11:00
Mervill 09ea5ad2e5 w_class now uses defines 2016-12-01 21:33:14 -08:00
Joan Lung a5ae025549 Replaces "specflags" with "species_traits" (#21851)
* Replaces "specflags" with "species_traits"

* this will do
2016-12-01 21:16:33 +13:00
Mervill 01d4232570 Remove slash from end of type refs/defs 2016-11-30 19:23:15 -08:00
Mervill b5578df27d corrects some defs without leading slash (#21843) 2016-11-30 20:05:14 +13:00
Cheridan f77841a011 Merge pull request #21811 from GunHog/No_One_Escapes_His_Tiny_Prick
Fixes Syndicate Medical Cyborg Penetration
2016-11-29 20:08:10 -06:00
oranges bfa6d1e11c Merge pull request #21774 from swindly/microwavereagents
Makes microwaves heat reagents
2016-11-28 23:06:38 +13:00
GunHog 8a2362c9a0 Fixes Syndicate Medical Cyborg Penetration
Syndieborg hyposprays now properly penetrate thick clothing.
2016-11-28 00:14:09 -06:00
XDTM 23906c811a Adds more golem types, adds golem shell creation with adamantine slimes (#21708)
* Diversifies golems

* Golems

* fixes a bug

* Glass golem + species bullet_act support

* Glass shatter

* More golems

* Final changes

* Added to xenobio

* update

* minor space

* Totally bananas

* silly me

* what Joan said

* Updated titanium, plastitanium, and alloy golems.
2016-11-28 18:34:08 +13:00
oranges af7e6d1323 Fixes all remaining addtimers missed 2016-11-27 08:31:07 +00:00
swindly 203c199183 1000K 2016-11-26 14:34:04 -05:00
swindly 65eebaf38e reagents get hot 2016-11-25 23:15:56 -05:00
oranges 6c1966d393 Merge pull request #21612 from KorPhaeron/ssreligion
Ssreligion
2016-11-20 14:54:12 +13:00
swindly 2d503675d2 Adds nitrous oxide reagent (#21608)
* Adds liquid nitro

* other reagent

* removes duplicate
2016-11-20 14:51:46 +13:00