mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-22 20:43:10 +01:00
Merge pull request #11944 from PsiOmegaDelta/160108-PolDev
Various fixes.
This commit is contained in:
@@ -45,3 +45,4 @@ script:
|
||||
- DreamDaemon baystation12.dmb -invisible -trusted -core 2>&1 | tee log.txt
|
||||
- grep "All Unit Tests Passed" log.txt
|
||||
- (! grep "runtime error:" log.txt)
|
||||
- (! grep 'Process scheduler caught exception processing' log.txt)
|
||||
|
||||
@@ -94,17 +94,32 @@ var/global/list/GlobalPool = list()
|
||||
loc = args
|
||||
..()
|
||||
|
||||
/datum/proc/ResetVars(var/list/exclude = list())
|
||||
var/list/excluded = list("animate_movement", "loc", "locs", "parent_type", "vars", "verbs", "type") + exclude
|
||||
var/list/excluded_vars = list("animate_movement", "contents", "loc", "locs", "parent_type", "vars", "verbs", "type")
|
||||
var/list/pooledvariables = list()
|
||||
//thanks to clusterfack @ /vg/station for these two procs
|
||||
/datum/proc/createVariables(var/list/excluded)
|
||||
pooledvariables[type] = new/list()
|
||||
var/list/all_excluded = excluded_vars + excluded
|
||||
|
||||
for(var/V in vars)
|
||||
if(V in excluded)
|
||||
for(var/key in vars)
|
||||
if(key in all_excluded)
|
||||
continue
|
||||
pooledvariables[type][key] = initial(vars[key])
|
||||
|
||||
vars[V] = initial(vars[V])
|
||||
/datum/proc/ResetVars(var/list/excluded = list())
|
||||
if(!pooledvariables[type])
|
||||
createVariables(excluded)
|
||||
|
||||
for(var/key in pooledvariables[type])
|
||||
vars[key] = pooledvariables[type][key]
|
||||
|
||||
/atom/movable/ResetVars()
|
||||
..()
|
||||
vars["loc"] = null
|
||||
loc = null
|
||||
contents = initial(contents) //something is really wrong if this object still has stuff in it by this point
|
||||
|
||||
/image/ResetVars()
|
||||
..()
|
||||
loc = null
|
||||
|
||||
#undef ATOM_POOL_COUNT
|
||||
|
||||
@@ -30,7 +30,7 @@ var/const/NUCLEARBOMB_WIRE_SAFETY = 4
|
||||
if(NUCLEARBOMB_WIRE_TIMING)
|
||||
if(N.timing)
|
||||
spawn
|
||||
log_and_message_admins_with_location("pulsed a nuclear bomb's detonation wire, causing it to explode.", holder.x, holder.y, holder.z)
|
||||
log_and_message_admins("pulsed a nuclear bomb's detonation wire, causing it to explode.")
|
||||
N.explode()
|
||||
if(NUCLEARBOMB_WIRE_SAFETY)
|
||||
N.safety = !N.safety
|
||||
@@ -49,7 +49,7 @@ var/const/NUCLEARBOMB_WIRE_SAFETY = 4
|
||||
N.safety = mended
|
||||
if(N.timing)
|
||||
spawn
|
||||
log_and_message_admins_with_location("cut a nuclear bomb's timing wire, causing it to explode.", holder.x, holder.y, holder.z)
|
||||
log_and_message_admins("cut a nuclear bomb's timing wire, causing it to explode.")
|
||||
N.explode()
|
||||
if(NUCLEARBOMB_WIRE_TIMING)
|
||||
N.secure_device()
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
var/mob/M = player.current
|
||||
dat += "<tr>"
|
||||
if(M)
|
||||
dat += "<td><a href='?src=\ref[src];adminplayeropts=\ref[M]'>[M.real_name]</a>"
|
||||
dat += "<td><a href='?_src_=holder;adminplayeropts=\ref[M]'>[M.real_name]</a>"
|
||||
if(!M.client) dat += " <i>(logged out)</i>"
|
||||
if(M.stat == DEAD) dat += " <b><font color=red>(DEAD)</font></b>"
|
||||
dat += "</td>"
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
var/throw_range = 7
|
||||
var/moved_recently = 0
|
||||
var/mob/pulledby = null
|
||||
var/item_state = null // Used to specify the item state for the on-mob overlays.
|
||||
|
||||
var/auto_init = 1
|
||||
|
||||
|
||||
@@ -10,6 +10,10 @@ var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind'
|
||||
required_players = 15
|
||||
required_enemies = 4
|
||||
round_description = "An unidentified bluespace signature has slipped past the Icarus and is approaching the station!"
|
||||
extended_round_description = "The Company's majority control of phoron in Nyx has marked the \
|
||||
station to be a highly valuable target for many competing organizations and individuals. Being a \
|
||||
colony of sizable population and considerable wealth causes it to often be the target of various \
|
||||
attempts of robbery, fraud and other malicious actions."
|
||||
end_on_antag_death = 1
|
||||
antag_tags = list(MODE_RAIDER)
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/datum/game_mode/bughunt
|
||||
name = "Bughunt"
|
||||
round_description = "A mercenary strike force is approaching the station to eradicate a xenomorph infestation!"
|
||||
extended_round_description = "Mercenaries and xenomorphs spawn in this game mode."
|
||||
config_tag = "bughunt"
|
||||
required_players = 15
|
||||
required_enemies = 1
|
||||
|
||||
@@ -7,6 +7,10 @@ var/list/nuke_disks = list()
|
||||
/datum/game_mode/nuclear
|
||||
name = "Mercenary"
|
||||
round_description = "A mercenary strike force is approaching the station!"
|
||||
extended_round_description = "The Company's majority control of phoron in Nyx has marked the \
|
||||
station to be a highly valuable target for many competing organizations and individuals. Being a \
|
||||
colony of sizable population and considerable wealth causes it to often be the target of various \
|
||||
attempts of robbery, fraud and other malicious actions."
|
||||
config_tag = "mercenary"
|
||||
required_players = 15
|
||||
required_enemies = 1
|
||||
|
||||
@@ -285,7 +285,7 @@ var/bomb_set
|
||||
|
||||
if (!timing && !safety)
|
||||
timing = 1
|
||||
log_and_message_admins_with_location("engaged a nuclear bomb", x, y, ,z)
|
||||
log_and_message_admins("engaged a nuclear bomb")
|
||||
bomb_set++ //There can still be issues with this resetting when there are multiple bombs. Not a big deal though for Nuke/N
|
||||
update_icon()
|
||||
else
|
||||
@@ -413,7 +413,7 @@ if(!N.lighthack)
|
||||
var/turf/T = pick_area_turf(/area/maintenance, list(/proc/is_station_turf, /proc/not_turf_contains_dense_objects))
|
||||
if(T)
|
||||
var/obj/D = new /obj/item/weapon/disk/nuclear(T)
|
||||
log_and_message_admins_with_location("[src], the last authentication disk, has been destroyed. Spawning [D] at ([D.x], [D.y], [D.z]).", T.x, T.y, T.z)
|
||||
log_and_message_admins("[src], the last authentication disk, has been destroyed. Spawning [D] at ([D.x], [D.y], [D.z]).", location = T)
|
||||
else
|
||||
log_and_message_admins("[src], the last authentication disk, has been destroyed. Failed to respawn disc!")
|
||||
return ..()
|
||||
|
||||
@@ -47,7 +47,6 @@
|
||||
var/zoom = 0 //1 if item is actively being used to zoom. For scoped guns and binoculars.
|
||||
|
||||
var/icon_override = null //Used to override hardcoded clothing dmis in human clothing proc.
|
||||
var/item_state = null // Used to specify the item state for the on-mob overlays.
|
||||
|
||||
//** These specify item/icon overrides for _slots_
|
||||
|
||||
@@ -615,6 +614,6 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
|
||||
usr.visible_message("[zoomdevicename ? "[usr] looks up from the [src.name]" : "[usr] lowers the [src.name]"].")
|
||||
|
||||
return
|
||||
|
||||
|
||||
/obj/item/proc/pwr_drain()
|
||||
return 0 // Process Kill
|
||||
return 0 // Process Kill
|
||||
|
||||
@@ -14,9 +14,9 @@
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 90)
|
||||
attack_verb = list("slammed", "whacked", "bashed", "thunked", "battered", "bludgeoned", "thrashed")
|
||||
|
||||
var/spray_particles = 6
|
||||
var/spray_amount = 8 //units of liquid per particle
|
||||
var/max_water = 240
|
||||
var/spray_particles = 3
|
||||
var/spray_amount = 10 //units of liquid per particle
|
||||
var/max_water = 300
|
||||
var/last_use = 1.0
|
||||
var/safety = 1
|
||||
var/sprite_name = "fire_extinguisher"
|
||||
@@ -30,8 +30,8 @@
|
||||
throwforce = 2
|
||||
w_class = 2.0
|
||||
force = 3.0
|
||||
max_water = 120
|
||||
spray_particles = 5
|
||||
max_water = 150
|
||||
spray_particles = 3
|
||||
sprite_name = "miniFE"
|
||||
|
||||
/obj/item/weapon/extinguisher/New()
|
||||
@@ -63,7 +63,7 @@
|
||||
if(C) C.propelled = (6-i)
|
||||
O.Move(get_step(user,movementdirection), movementdirection)
|
||||
sleep(move_speed[i])
|
||||
|
||||
|
||||
//additional movement
|
||||
for(var/i in 1 to 3)
|
||||
O.Move(get_step(user,movementdirection), movementdirection)
|
||||
@@ -106,7 +106,7 @@
|
||||
for(var/a = 1 to spray_particles)
|
||||
spawn(0)
|
||||
if(!src || !reagents.total_volume) return
|
||||
|
||||
|
||||
var/obj/effect/effect/water/W = PoolOrNew(/obj/effect/effect/water, get_turf(src))
|
||||
var/turf/my_target
|
||||
if(a <= the_targets.len)
|
||||
|
||||
@@ -2,10 +2,11 @@
|
||||
/mob/var/lastattacked = null
|
||||
/mob/var/attack_log = list()
|
||||
|
||||
proc/log_and_message_admins_with_location(var/message, var/x, var/y, var/z, var/mob/user = usr)
|
||||
log_and_message_admins("[message] (<a HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)", user)
|
||||
proc/log_and_message_admins(var/message as text, var/mob/user = usr, var/turf/location)
|
||||
var/turf/T = location ? location : (user ? get_turf(user) : null)
|
||||
if(T)
|
||||
message = message + " (<a HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[T.x];Y=[T.y];Z=[T.z]'>JMP</a>)"
|
||||
|
||||
proc/log_and_message_admins(var/message as text, var/mob/user = usr)
|
||||
log_admin(user ? "[key_name(user)] [message]" : "EVENT [message]")
|
||||
message_admins(user ? "[key_name_admin(user)] [message]" : "EVENT [message]")
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
kill()
|
||||
return
|
||||
|
||||
log_and_message_admins_with_location("Event: Blob spawned at \the [get_area(T)] ([T.x],[T.y],[T.z])", T.x, T.y, T.z)
|
||||
log_and_message_admins("Blob spawned at \the [get_area(T)]", location = T)
|
||||
Blob = new /obj/effect/blob/core(T)
|
||||
for(var/i = 1; i < rand(3, 4), i++)
|
||||
Blob.process()
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
vine.mature_time = 0
|
||||
vine.process()
|
||||
|
||||
log_and_message_admins_with_location("Event: Spacevines spawned at [T.loc] ([T.x],[T.y],[T.z])", T.x, T.y, T.z)
|
||||
log_and_message_admins("Spacevines spawned at \the [get_area(T)]", location = T)
|
||||
return
|
||||
log_and_message_admins("<span class='notice'>Event: Spacevines failed to find a viable turf.</span>")
|
||||
|
||||
|
||||
@@ -353,6 +353,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f
|
||||
if(!query.Execute())
|
||||
usr << query.ErrorMsg()
|
||||
else
|
||||
log_and_message_admins("has uploaded the book titled [scanner.cache.name], [length(scanner.cache.dat)] signs")
|
||||
log_game("[usr.name]/[usr.key] has uploaded the book titled [scanner.cache.name], [length(scanner.cache.dat)] signs")
|
||||
alert("Upload Complete.")
|
||||
|
||||
|
||||
@@ -60,6 +60,7 @@ var/list/holder_mob_icon_cache = list()
|
||||
overlays.Cut()
|
||||
icon = M.icon
|
||||
icon_state = M.icon_state
|
||||
item_state = M.item_state
|
||||
color = M.color
|
||||
name = M.name
|
||||
desc = M.desc
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
adult_form = /mob/living/carbon/human
|
||||
speak_emote = list("chirrups")
|
||||
icon_state = "nymph"
|
||||
item_state = "nymph"
|
||||
language = "Rootspeak"
|
||||
death_msg = "expires with a pitiful chirrup..."
|
||||
universal_understand = 1
|
||||
|
||||
@@ -235,8 +235,8 @@
|
||||
M.visible_message("<span class='warning'>[M] tries to pat out [src]'s flames!</span>",
|
||||
"<span class='warning'>You try to pat out [src]'s flames! Hot!</span>")
|
||||
if(do_mob(M, src, 15))
|
||||
src.fire_stacks -= 0.5
|
||||
if (prob(10) && (M.fire_stacks <= 0))
|
||||
src.fire_stacks -= 0.5
|
||||
M.fire_stacks += 1
|
||||
M.IgniteMob()
|
||||
if (M.on_fire)
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
)
|
||||
var/list/cold_discomfort_strings = list(
|
||||
"You feel chilly.",
|
||||
"You shiver suddely.",
|
||||
"You shiver suddenly.",
|
||||
"Your chilly flesh stands out in goosebumps."
|
||||
)
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
response_disarm = "prods"
|
||||
response_harm = "stomps on"
|
||||
icon_state = "brainslug"
|
||||
item_state = "brainslug"
|
||||
icon_living = "brainslug"
|
||||
icon_dead = "brainslug_dead"
|
||||
speed = 5
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
name = "cat"
|
||||
desc = "A domesticated, feline pet. Has a tendency to adopt crewmembers."
|
||||
icon_state = "cat2"
|
||||
item_state = "cat2"
|
||||
icon_living = "cat2"
|
||||
icon_dead = "cat2_dead"
|
||||
speak = list("Meow!","Esp!","Purr!","HSSSSS")
|
||||
@@ -217,6 +218,7 @@
|
||||
desc = "Her fur has the look and feel of velvet, and her tail quivers occasionally."
|
||||
gender = FEMALE
|
||||
icon_state = "cat"
|
||||
item_state = "cat"
|
||||
icon_living = "cat"
|
||||
icon_dead = "cat_dead"
|
||||
befriend_job = "Chief Medical Officer"
|
||||
@@ -225,6 +227,7 @@
|
||||
name = "kitten"
|
||||
desc = "D'aaawwww"
|
||||
icon_state = "kitten"
|
||||
item_state = "kitten"
|
||||
icon_living = "kitten"
|
||||
icon_dead = "kitten_dead"
|
||||
gender = NEUTER
|
||||
@@ -241,6 +244,7 @@
|
||||
desc = "That's Bones the cat. He's a laid back, black cat. Meow."
|
||||
gender = MALE
|
||||
icon_state = "cat3"
|
||||
item_state = "cat3"
|
||||
icon_living = "cat3"
|
||||
icon_dead = "cat3_dead"
|
||||
holder_type = /obj/item/weapon/holder/cat/fluff/bones
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
real_name = "mouse"
|
||||
desc = "It's a small rodent."
|
||||
icon_state = "mouse_gray"
|
||||
item_state = "mouse_gray"
|
||||
icon_living = "mouse_gray"
|
||||
icon_dead = "mouse_gray_dead"
|
||||
speak = list("Squeek!","SQUEEK!","Squeek?")
|
||||
@@ -67,6 +68,7 @@
|
||||
if(!body_color)
|
||||
body_color = pick( list("brown","gray","white") )
|
||||
icon_state = "mouse_[body_color]"
|
||||
item_state = "mouse_[body_color]"
|
||||
icon_living = "mouse_[body_color]"
|
||||
icon_dead = "mouse_[body_color]_dead"
|
||||
desc = "It's a small [body_color] rodent, often seen hiding in maintenance areas and making a nuisance of itself."
|
||||
|
||||
@@ -995,7 +995,13 @@ mob/proc/yank_out_object()
|
||||
if (ishuman(U))
|
||||
var/mob/living/carbon/human/human_user = U
|
||||
human_user.bloody_hands(H)
|
||||
|
||||
|
||||
else if(issilicon(src))
|
||||
var/mob/living/silicon/robot/R = src
|
||||
R.embedded -= selection
|
||||
R.adjustBruteLoss(5)
|
||||
R.adjustFireLoss(10)
|
||||
|
||||
selection.forceMove(get_turf(src))
|
||||
if(!(U.l_hand && U.r_hand))
|
||||
U.put_in_hands(selection)
|
||||
|
||||
@@ -56,6 +56,16 @@
|
||||
|
||||
-->
|
||||
<div class="commit sansserif">
|
||||
<h2 class="date">08 January 2016</h2>
|
||||
<h3 class="author">Chinsky updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="bugfix">Can pick up monkeys / undress resomi now properly. HELP intent for scooping, NON-HELP for undressing.</li>
|
||||
</ul>
|
||||
<h3 class="author">RavingManiac updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Storage in backpacks, boxes and other containers is now capacity-based. Some containers like belts remain slot-based.</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="date">01 January 2016</h2>
|
||||
<h3 class="author">Atlantis updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
|
||||
@@ -2471,3 +2471,10 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
|
||||
size.
|
||||
TheWelp:
|
||||
- rscadd: Microwaves can now be unanchored with a crowbar.
|
||||
2016-01-08:
|
||||
Chinsky:
|
||||
- bugfix: Can pick up monkeys / undress resomi now properly. HELP intent for scooping,
|
||||
NON-HELP for undressing.
|
||||
RavingManiac:
|
||||
- rscadd: Storage in backpacks, boxes and other containers is now capacity-based.
|
||||
Some containers like belts remain slot-based.
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
author: Datraen
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "Objects can now be yanked out of synthetics."
|
||||
@@ -1,6 +0,0 @@
|
||||
author: RavingManiac
|
||||
|
||||
delete-after: True
|
||||
|
||||
changes:
|
||||
- rscadd: "Storage in backpacks, boxes and other containers is now capacity-based. Some containers like belts remain slot-based."
|
||||
@@ -1,5 +0,0 @@
|
||||
author: Chinsky
|
||||
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "Can pick up monkeys / undress resomi now properly. HELP intent for scooping, NON-HELP for undressing."
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
Reference in New Issue
Block a user