-Added logging for admins editing objectives
-Added logging for admins adding new antagonists
-Changed the antag role assignment buttons to something more appropriate for the game modes. Will now tell you if someone is loyal (implanted).
-Added a isloyal() proc to check if a mob is loyalty implanted.
-Made the headrev message more noticeable
The minibomb is based on grenade code with a blast radius of 1,2,4 and is found in syndieminibomb.dm. This is the same power as the default tank transfer bombs spawned on the syndicate shuttle.
It features new sprites by teh_wolf and existing inhands (the default grenade) and is a tiny item.
As a result of introducing an explosive grenade, grenade priming are now logged.
Its crystal cost has tentatively been set at 3.
---
The Syndicate Bomb is all new code contained in explosives.dm with additional wires code at syndicatebomb.dm. It does not make use of any tank transfer valve or grenade code.
The bomb has a blast radius of 2,5,11. This is the same power as the tank transfer bombs in the syndicate shuttle if they are boosted with oxygen.
It features new sprites by teh_wolf and existing inhands (currently using “electronic”) and is a bulky item.
The bomb is set by touching it in your hand or touching it on the ground if it has been wrenched down, allowing first to set a timer (min 10 seconds) and then giving an option to start the countdown. When the bomb is activated it states so to everyone within sight of it, giving a time to detonation in the process.
The bomb can optionally be wrenched to solid ground to foil would be spacers. When the bomb is set to countdown the bolts lock in, and cannot be removed by wrench alone.
The bomb includes a robust wires system for pulse pounding defusal attempts. Once a bomb starts ticking using the wires is the only way to stop it (it is not immune to del of course, but is unacidable).
The wires are as follows:
*Boom: Will detonate the bomb if cut/pulsed while the bomb is live, but will defuse the bomb on cut when it's not timing. Mending this wire is the only way to make a defused bomb potent again.
*Unbolt: If the bomb has been locked to the floor cutting this will free it. Pulsing will hint at its function
*Delay: Adds time (+10) to the timer when pulsed (it does not matter if the bomb is live or not). No function on cut.
*Proceed: Lowers the time when pulsed. If the timer is above 60 it will set it to 60, if it’s between 60 and 21 it will reduce the timer by 10, if it’s between 20 and 11 it will set the timer to 10. This will detonate the bomb when cut if it's timing. Note that this makes randomly cutting more dangerous than pulsing as there’s twice the number of wires that will explode.
*Activate: This will activate the timer if pulsed when the bomb is not timing, or will stop and defuse the bomb if it's cut while it IS timing. Pulsing it on an active bomb will hint at its function and add a little time (+5).
All syndicate bomb primings are logged.
Its crystal cost has tentatively been set at 5.
---
Misc
The “screwed” traitor uplink kit has had its tank transfer bombs replaced with one of each of these two bombs.
-Turns out there was already a Gaussian PRNG proc already, used by mechs and turrets. I've replaced it with my one as mine has almost half the cost. (currently broken! still waiting for fixes to be pulled!)
-replaced between(min, val, max) with Clamp(val, min, max)
-get_turf(thing) now uses var/list/locs to locate its turf, rather than iterating up through loc of its loc of its loc...etc
-sign(num) moved to maths.dm
-InRange(val, min, max) replaced with IsInRange(val, min, max) (they were identical)
-Removed ismultitool() iswrench() iscoil() iswire() iswelder() iscrowbar() etc
-removed modulus(num) as abs() performs the same task! *roll-eyes*
-removed get_mob_with_client_list() as it is no longer needed (we have var/list/player_list now)
-removed get_turf_or_move() as it simply called get_turf
-removed get_turf_loc() as it was identical to get_turf()
*Additions:*
-The "Declare Ready" link in the lobby will automatically become "Join Game" if the round starts before you declare ready, so you don't have to click it twice
*Fixes a minor mistake in num2hex
*Fixes a bad call to num2hex which was causing data_core records to all have an ID of "000000". Fixes#583
*Rebalances dna modification to match the PRNG fixes.
*Fixes cloning computer not copying b_type to data disks
DNA modifier features:
*Probability indicators for emitter settings
*Info on last pulse operation
*Cannot operate on dead subjects
*UE/UI/SE spaced out more
Modified code/__HELPERS/maths.dm
Modified code/__HELPERS/type2type.dm
Modified code/__HELPERS/unsorted.dm
Modified code/datums/datacore.dm
Modified code/game/dna.dm
Modified code/game/machinery/computer/cloning.dm
Modified code/game/machinery/computer/security.dm
Camera bug acts as a mini-camera computer with access to all bugged cameras.
Adjusts camera checks to determine who is looking through them; instead of checking their machine, it now checks the client eye.
Adds camera bug to the uplink list with a cost of 2TC.
>update_mutantrace() is no more, it is now part of update_body()
>Moved a lot of stuff into update_base_icon_state(), this will allow making mutantraces modular.
Almost all icon operations are now removed from human overlays (obviously some are still required for recolouring hair and eyes). Any remaining dynamically generated overlay icons are applied individually. This will allow byond to cache them better. This will also eliminate the bug where humans are initially invisible/unclickable when you first encounter them (due to network latency where the icons are being downloaded).
>UpdateDamageIcons() renamed to update_damage_overlays(), so it has the same sort of name as the other procs
>update_icons=true or false arguments removed from human overaly-update procs, no longer required. (i.e. the update_body() update_inv_whatever etc procs do not call update_icons() - see documentation for details)
>mutantrace icon_states moved into human.dmi
>skeletons are now a mutantrace, not a mutation.
>update_icons system should now be even more efficient (thanks partly to aranclanos)
>documentation rewritten
>copypasted code moved into helper procs - super tidy code :3
Other:
>Removed compile error where the core code was reliant on compiling away mission code. >:[
>s_tone renamed to skin_tone
Modified code/modules/mob/living/carbon/human/update_icons.dm
Modified code/__DEFINES.dm
Modified code/datums/datumvars.dm
Modified code/datums/limbs.dm
Modified code/game/dna.dm
Modified code/game/gamemodes/changeling/changeling_powers.dm
Modified code/game/gamemodes/cult/cult_items.dm
Modified code/game/gamemodes/cult/runes.dm
Modified code/game/machinery/doors/airlock.dm
Modified code/game/machinery/portable_turret.dm
Modified code/game/machinery/teleporter.dm
Modified code/game/mecha/combat/combat.dm
Modified code/game/objects/items.dm
Modified code/game/objects/items/stacks/medical.dm
Modified code/game/objects/items/stacks/sheets/glass.dm
Modified code/game/objects/items/weapons/storage/bible.dm
Modified code/modules/assembly/mousetrap.dm
Modified code/modules/hydroponics/hydroitemcode.dm
Modified code/modules/mob/living/carbon/carbon.dm
Modified code/modules/mob/living/carbon/human/death.dm
Modified code/modules/mob/living/carbon/human/human.dm
Modified code/modules/mob/living/carbon/human/human_damage.dm
Modified code/modules/mob/living/carbon/human/human_defines.dm
Modified code/modules/mob/living/living.dm
Modified code/modules/mob/living/simple_animal/friendly/slime.dm
Modified code/modules/mob/mob_grab.dm
Modified code/modules/power/lighting.dm
Modified code/modules/reagents/Chemistry-Reagents.dm
Modified code/unused/_debug.dm
Modified icons/effects/genetics.dmi
Modified icons/mob/human.dmi
Modified maps/RandomZLevels/wildwest.dm
Modified tgstation.dme
Signed-off-by: carnie <elly1989@rocketmail.com>
-Adds a humanize() proc
-Changes monkeyize() proc to a child of mob/living/carbon (not implemented or tested with anything beside humans, though)
-Adds various options for monkeyize and humanize as binary flags
-Removed all instances of monkey transformation code being copy pasted (dna, changeling, adminverbs) and replaced them with monkeyize(). This fixed various issues with admin-verbs where mobs would ghost after transformation due to invalid use of transfer_to (mind transfer proc).
-Humans will now retain their old name if turned into a monkey and back provided their UE are unchanged
-Transformation from monkey into human will now deal the same amount of damage as human to monkey.
Signed-off-by: dumpdavidson <gtb.schmidt@gmail.com>
DNA modification uses normally distributed random numbers. Radiation strength dictates the standard deviation of the change in the hex character which is hit (higher output means greater chance for a large change) . Similarly, radiation duration dictates how likely we are to hit the hex-character we clicked on (longer duration means more likely to hit). Irradiation is strength*duration. All balancing is done via multiplier defines so you can rebalance it easily.
DNA blocks and structuring all use defines. Making modification/expansion easier. I'll likely expand this into a datum-based system to allow more interesting features, reduce code further and allow admins to interact with the way dna strings behave.
DNA strings can be spliced together using merge_text().
e.g. string 1: "Hello World"
string 2: "Seeya______"
result: "Seeya World"
This isn't used except for admin-spawnable SE injectors at the moment.
r_hair, g_hair, b_hair, r_facial, g_facial, b_facial, r_eyes, g_eyes, b_eyes were removed and made into 3 short hex-colors.
Skin tones now support colours other than shades of brown. I've had to restrict it heavily until other stuff is done. Skin tones include Albino Caucasian, Oriental, Mediterranean, etc.
Data disks and DNA injectors were reworked to use associative lists so transferring data is just a matter of doing list.Copy()
var/dna is now defined at /mob/living/carbon level. Only monkeys and humans may have dna currently. Support is there for all carbon-based lifeforms to have dna.
DNA modifier console has almost all controls on one screen.
UIs and UEs can be injected separately (appearance and name, respectively)
dna helper procs like ready_dna() and such were changed to make them more versatile. There is now a hardset_dna() proc as an alternative to ready_dna which can initialize dna with properties passed into it or update an existing dna string (useful for cloning and antag spawning)
Every block of SEs are in randomised positions.
Disabled automatic logging of world.log, as it produced undesirable behaviour.
Mr Muggles and God Emperor of Mankind disks removed.
Floor() removed. (it was completely uneccesary, that is what round() is).
Fixed spelling mistakes in modularchangling.dm (thanks tenebrosity)
Tanning removed from beaches (again)
Experimental: monkeys and humans do not have dna until first attempt to read dna (using check_dna_integrity(mob))
This is mainly due to the way everything is hardcoded into New().
Changelog.html updated
Signed-off-by: carnie <elly1989@rocketmail.com>
This updates everything that used equip_e, particularly the strip panel, but also DNA injectors and CPR.
Removed unused mob vars:
var/obj/effect/organstructure/organStructure
var/other
var/proc_holder_list[]
Removed unused alien suit and head slots.
Removed var/obj/item/weapon/card/id/wear_id from monkeys, and updated ed209s to not use :
Renamed HUMAN_STRIP_DELAY to STRIP_DELAY.
Muddled Topics() around so that mobs are now a bit more OO. Also updated quite a few misc inventory procs to various degrees.
Updated monkey and aliens huds a little bit.
Random movement when confused now happens half the time.
Fixed monkey breathmask onmobs.
Added a .unconscious text style, for that nice bold blue text you get when you're unconscious. Only CPR uses it at the moment.
This has been tested fairly extensively, and everything seems to work fine.
-Merged commits ~carnie
Signed-off-by: carnie <elly1989@rocketmail.com>
-Removes stungloves and all related code.
-Makeshift stun batons can be made in their stead, along with spears. Spears can be thrown or used one or two-handed.
-Major stun baton revamp. They now accept batteries, which can be removed and replaced.
-Fixes the bug where you could use TK to make a dualsaber from a single saber.
-Adds monstrous housefly mutation.
-Teleporter malfunctions have been changed to something more !FUN! than random spacing. Instead, you get irradiated and horribly mutated. To prevent this, one should Test Fire to ensure the teleporter is properly calibrated. Recalibrations will be necessary with frequent teleporter use.
-Capsaicin can be turned into Condensed Capsaicin via chemistry.
-Alters the effect of pepper spray slightly. Changes it from a paralyze(KO) to weaken(stun like batons, etc), and adds slight lingering confuse effect.
-Adds teargas grenades(pepper spray smoke chem grenades), currently obtainable in Weapons crates and Riot crates.
Supplypacks:
-Adds a roll of film to the bureaucracy crate, and made it a little cheaper.
-Removes the beanbag crate entirely, it redundant. Just print out the beanbag shells at the autolathe.
-The previously-overpacked Riot gear crate comes with 1 less set of equipment, but with more handcuffs. Made cheaper to compensate.
-Updates some of the icons used by SecHuds; namely security/hos, medical doctor, and loyalty implants.
-Also repaths the shield barrier crate, which had the same path as another supply pack. Not making a separate pull for a 1-line change~