Merge pull request #11944 from PsiOmegaDelta/160108-PolDev

Various fixes.
This commit is contained in:
Chinsky
2016-01-09 23:39:17 +03:00
29 changed files with 92 additions and 40 deletions
+1
View File
@@ -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)
+21 -6
View File
@@ -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
+2 -2
View File
@@ -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()
+1 -1
View File
@@ -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>"
+1
View File
@@ -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
+4
View File
@@ -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
View File
@@ -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
+4
View File
@@ -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
+2 -2
View File
@@ -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 ..()
+2 -3
View File
@@ -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)
+4 -3
View File
@@ -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]")
+1 -1
View File
@@ -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>")
+1
View File
@@ -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.")
+1
View File
@@ -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
+1 -1
View File
@@ -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."
+7 -1
View File
@@ -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)
+10
View File
@@ -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">
+7
View File
@@ -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.
+4
View File
@@ -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."
-5
View File
@@ -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."
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB