Merge pull request #1276 from Krausus/Fixes-201506080338

Various Fixes - Cyborg Stacks, Sleepy/Deaf Animals/pAIs, Admin Stuff, Runtimes, etc.
This commit is contained in:
Fox-McCloud
2015-06-09 00:40:11 -04:00
31 changed files with 86 additions and 45 deletions
+1
View File
@@ -38,6 +38,7 @@ var/global/nologevent = 0
if (!istype(src,/datum/admins))
usr << "Error: you are not an admin!"
return
if(!check_rights(R_ADMIN|R_MOD)) return
var/body = "<html><head><title>Options for [M.key]</title></head>"
body += "<body>Options panel for <b>[M]</b>"
+2 -3
View File
@@ -65,8 +65,8 @@ var/list/admin_verbs_admin = list(
/client/proc/aooc,
/client/proc/freeze,
/client/proc/freezemecha,
/client/proc/alt_check
/client/proc/alt_check,
/client/proc/secrets
)
var/list/admin_verbs_ban = list(
/client/proc/unban_panel,
@@ -99,7 +99,6 @@ var/list/admin_verbs_event = list(
/client/proc/response_team, // Response Teams admin verb
/client/proc/cmd_admin_create_centcom_report,
/client/proc/fax_panel,
/client/proc/secrets,
/client/proc/event_manager_panel
)
@@ -12,8 +12,8 @@
<html>
<head>
<title>Permissions Panel</title>
<script type='text/javascript' src='html/search.js'></script>
<link rel='stylesheet' type='text/css' href='html/panels.css'>
<script type='text/javascript' src="search.js"></script>
<link rel='stylesheet' type='text/css' href="panels.css">
</head>
<body onload='selectTextField();updateSearch();'>
<div id='main'><table id='searchable' cellspacing='0'>
+1
View File
@@ -395,6 +395,7 @@
/datum/admins/proc/check_antagonists()
if(!check_rights(R_ADMIN)) return
if (ticker && ticker.current_state >= GAME_STATE_PLAYING)
var/dat = "<html><head><title>Round Status</title></head><body><h1><B>Round Status</B></h1>"
dat += "Current Game Mode: <B>[ticker.mode.name]</B><BR>"
+1 -1
View File
@@ -117,7 +117,7 @@
if(istype(M, /mob/new_player))
continue
if(M.client && M.client.holder && (M.client.holder.rights & R_ADMIN|R_MOD) && (M.client.prefs.toggles & CHAT_DEAD)) // Show the emote to admins/mods
if(M.client && M.client.holder && (M.client.holder.rights & (R_ADMIN|R_MOD)) && (M.client.prefs.toggles & CHAT_DEAD)) // Show the emote to admins/mods
M << message
else if(M.stat == DEAD && (M.client.prefs.toggles & CHAT_DEAD)) // Show the emote to regular ghosts with deadchat toggled on
@@ -48,6 +48,7 @@
/obj/item/organ/brain/removed(var/mob/living/user)
if(!owner) return ..() // Probably a redundant removal; just bail
name = "[owner.real_name]'s brain"
var/mob/living/simple_animal/borer/borer = owner.has_brain_worms()
@@ -16,7 +16,8 @@
for(var/obj/item/organ/I in internal_organs)
if(istype(loc,/turf))
I.removed(src)
I.throw_at(get_edge_target_turf(src,pick(alldirs)),rand(1,3),5)
spawn()
I.throw_at(get_edge_target_turf(src,pick(alldirs)),rand(1,3),5)
for(var/obj/item/organ/external/E in src.organs)
if(istype(E, /obj/item/organ/external/chest))
@@ -379,6 +379,11 @@ emp_act
return
var/obj/item/organ/external/affecting = get_organ(zone)
if(!affecting)
var/missverb = (O.gender == PLURAL) ? "whizz" : "whizzes"
visible_message("<span class='notice'>\The [O] [missverb] past [src]'s missing [parse_zone(zone)]!</span>",
"<span class='notice'>\The [O] [missverb] past your missing [parse_zone(zone)]!</span>")
return
var/hit_area = affecting.name
src.visible_message("\red [src] has been hit in the [hit_area] by [O].")
@@ -12,6 +12,7 @@
var/list/donors = list()
var/ready_evolve = 0
ventcrawler = 1
var/environment_smash = 0 // This is a sloppy way to solve attack_animal runtimes. Stupid nymphs...
/mob/living/carbon/primitive/diona/New()
@@ -7,6 +7,26 @@
for (var/mob/M in viewers(T))
M.show_message("\red The data cable rapidly retracts back into its spool.", 3, "\red You hear a click and the sound of wire spooling rapidly.", 2)
del(src.cable)
sleeping = 0
ear_deaf = 0
if (src.paralysis || src.stunned || src.weakened) //Stunned etc.
src.stat = 1
if (src.stunned > 0)
AdjustStunned(-1)
if (src.weakened > 0)
AdjustWeakened(-1)
if (src.paralysis > 0)
AdjustParalysis(-1)
src.eye_blind = max(eye_blind, 1)
else
src.eye_blind = 0
else //Not stunned.
src.stat = 0
if(paralysis || stunned || weakened || buckled || resting || src.loc == card) canmove = 0
else canmove = 1
regular_hud_updates()
if(src.secHUD == 1)
@@ -220,3 +220,8 @@
while(slot_start != slot_num) //If we wrap around without finding any free slots, just give up.
return
/mob/living/silicon/robot/unEquip(obj/item/I)
if(I == module_active)
deselect_module(get_selected_module())
return ..()
@@ -32,6 +32,7 @@
SetParalysis(min(paralysis, 30))
SetWeakened(min(weakened, 20))
sleeping = 0
ear_deaf = 0
adjustBruteLoss(0)
adjustToxLoss(0)
adjustOxyLoss(0)
@@ -37,6 +37,7 @@
if(!stacktypes || !stacktypes.len) return
var/stack_respawned = 0
for(var/T in stacktypes)
var/O = locate(T) in src.modules
var/obj/item/stack/S = O
@@ -46,9 +47,12 @@
S = new T(src)
src.modules += S
S.amount = 1
stack_respawned = 1
if(S && S.amount < stacktypes[T])
S.amount++
if(stack_respawned && istype(R) && R.hud_used)
R.hud_used.update_robot_modules_display()
/obj/item/weapon/robot_module/proc/rebuild()//Rebuilds the list so it's possible to add/remove items from the module
var/list/temp_list = modules
@@ -98,9 +98,8 @@
/obj/effect/effect/steam, \
/obj/effect/mist)
for(var/this_type in calmers)
var/mob/living/simple_animal/check_effect = locate() in src.loc
if(check_effect.type == this_type)
for(var/obj/effect/check_effect in src.loc)
if(check_effect.type in calmers)
calming = 1
break
@@ -104,6 +104,11 @@
if(health > maxHealth)
health = maxHealth
if(sleeping)
sleeping = max(sleeping-1, 0)
if(ear_deaf)
ear_deaf = max(ear_deaf-1, 0)
handle_stunned()
handle_weakened()
handle_paralysed()
+1 -1
View File
@@ -587,7 +587,7 @@
/obj/machinery/light/power_change()
spawn(10)
var/area/A = get_area_master(src)
seton(A.lightswitch && A.power_light)
if(A) seton(A.lightswitch && A.power_light)
// called when on fire