Committed for Rolan7:

◦ Fixed job assignments. Hopefully this should stop the massive amount of assistants spawning at round start!

My changes:
    ◦ Fixed some Metroid-related bugs. Had stuff to do with draining life out of things and being able to move at the same time. Also some stuff with the way Metroids' speech is handled.
    ◦ Removed some unnecessary, commented-out code from the say() proc.
    ◦ Removed the chat bubble preference from the character creation screen.
    ◦ Added some more chat bubble themes, in the event someone wants to continue that. I've lost all motivation to continue the project because, no matter what I do, it just looks butt-ugly and laggy as hell.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2321 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
vageyenaman@gmail.com
2011-10-03 01:29:41 +00:00
parent 8bffa0ce1b
commit 577ec5eba9
9 changed files with 116 additions and 52 deletions
+1 -1
View File
@@ -7,7 +7,7 @@
icon_state = "baby metroid"
pass_flags = PASSTABLE
voice_message = "skree!"
say_message = "says"
say_message = "hums"
health = 150
gender = NEUTER
+5 -24
View File
@@ -31,8 +31,8 @@
var/list/candidates = FindOccupationCandidates(unassigned, command_position, level)
if(!candidates.len) continue
var/mob/new_player/candidate = pick(candidates)
unassigned -= candidate
if(Assign_Role(candidate, command_position))
unassigned -= candidate
jobs[command_position]--
return 1
return 0
@@ -48,8 +48,8 @@
candidates -= player
if(candidates.len)
var/mob/new_player/candidate = pick(candidates)
unassigned -= candidate
if(Assign_Role(candidate, "AI"))
unassigned -= candidate
jobs["AI"]--
ai_selected++
break
@@ -59,8 +59,8 @@
for(var/mob/new_player/player in unassigned)
if(jobban_isbanned(player, "AI"))
continue
unassigned -= player
if(Assign_Role(player, "AI"))
unassigned -= player
jobs["AI"]--
ai_selected++
break
@@ -107,31 +107,12 @@
var/list/candidates = FindOccupationCandidates(unassigned, occupation, level)
while(candidates.len && occupations_available[occupation])
var/mob/new_player/candidate = pick(candidates)
unassigned -= candidate
if(Assign_Role(candidate, occupation))
unassigned -= candidate
occupations_available[occupation]--
if(!unassigned.len) return 1
//Set all remaining players to an assistant job
var/list/vacancies = list()
for(var/assist_job in assistant_occupations)
if(!occupations_available[assist_job] > 0) continue
for(var/i = 1 to occupations_available[assist_job])
vacancies += assist_job
for(var/mob/new_player/player in unassigned)
if((!unassigned.len) || (!vacancies.len)) break
unassigned -= player
var/assist_job = pick(vacancies)
if(Assign_Role(player, assist_job))
vacancies -= assist_job
if(unassigned.len)
for(var/mob/new_player/player in unassigned)
if(!unassigned.len) break
Assign_Role(player, "Assistant")
//If anyone still has no job then something is fucked up with their mob and they will currently spawn at spawn but the runtimes should no longer dump several people here
Assign_Role(player, "Assistant")
return 1
@@ -43,7 +43,8 @@
handle_nutrition()
if(Tempstun)
canmove = 0
if(!Victim) // not while they're eating!
canmove = 0
else
canmove = 1
@@ -103,8 +103,8 @@
if(cloneloss<0) cloneloss = 0
nutrition += rand(10,25)
if(nutrition >= lastnut + 100)
if(prob(60))
if(nutrition >= lastnut + 50)
if(prob(80))
lastnut = nutrition
powerlevel++
if(powerlevel > 10)
+13 -1
View File
@@ -1,3 +1,15 @@
/mob/living/carbon/metroid/say_quote(var/text)
return "[src.say_message], \"[text]\"";
var/ending = copytext(text, length(text))
if (ending == "?")
return "telepathically asks, \"[text]\"";
else if (ending == "!")
return "telepathically cries, \"[text]\"";
return "telepathically chirps, \"[text]\"";
/mob/living/carbon/metroid/say_understands(var/other)
if (istype(other, /mob/living/carbon/metroid))
return 1
return ..()
+87 -22
View File
@@ -312,8 +312,60 @@
else
rendered = "<span class='game say'><span class='name'>[real_name]</span>[alt_name] <span class='message'>[message_a]</span></span>"
/*
// Create speech bubble
var/obj/speech_bubble/B = new/obj/speech_bubble
B.icon = 'speechbubble.dmi'
B.parent = src
B.mouse_opacity = 0
B.invisibility = invisibility
B.layer = 10
// Determine if the speech bubble's going to have a special look
var/presay = ""
if(istype(src, /mob/living/silicon))
presay = "bot"
if(istype(src, /mob/living/carbon/alien))
presay = "xeno"
if(istype(src, /mob/living/carbon/metroid))
presay = "metroid"
*/
for (var/mob/M in heard_a)
M.show_message(rendered, 2)
/*
if(M.client)
// If this client has bubbles disabled, obscure the bubble
if(!M.client.bubbles || M == src)
var/image/I = image('speechbubble.dmi', B, "override")
I.override = 1
M << I
*/
/*
// find the suffix, if bot, human or monkey
var/punctuation = ""
if(presay == "bot" || presay == "")
var/ending = copytext(text, length(text))
if (ending == "?")
punctuation = "question"
else if (ending == "!")
punctuation = "exclamation"
else
punctuation = ""
// flick the bubble
flick("[presay]say[punctuation]", B)
if(istype(loc, /turf))
B.loc = loc
else
B.loc = loc.loc
spawn()
sleep(11)
del(B)
*/
if (length(heard_b))
var/message_b
@@ -329,37 +381,50 @@
rendered = "<span class='game say'><span class='name'>[voice_name]</span> <span class='message'>[message_b]</span></span>"
/*
// Create speech bubble
var/obj/speech_bubble/B = new/obj/speech_bubble
B.icon = 'speechbubble.dmi'
B.parent = src
B.mouse_opacity = 0
B.invisibility = invisibility
B.layer = 10
// Determine if the speech bubble's going to have a special look
var/presay = ""
if(istype(src, /mob/living/silicon))
presay = "bot"
if(istype(src, /mob/living/carbon/alien))
presay = "xeno"
if(istype(src, /mob/living/carbon/metroid))
presay = "metroid"
*/
for (var/mob/M in heard_b)
M.show_message(rendered, 2)
/*
if(M.client)
spawn()
var/isbot = ""
if(istype(src, /mob/living/silicon))
isbot = "bot"
var/obj/speech_bubble/B = new/obj/speech_bubble
B.icon = 'speechbubble.dmi'
B.parent = src
B.mouse_opacity = 0
B.invisibility = invisibility
B.layer = 10
if(!M.client.bubbles || M == src)
var/image/I = image('speechbubble.dmi', B, "override")
I.override = 1
M << I
*/ /*
if(!M.client.bubbles || M == src)
var/image/I = image('speechbubble.dmi', B, "override")
I.override = 1
M << I
flick("[presay]say", B)
flick("[isbot]say", B)
if(istype(loc, /turf))
B.loc = loc
else
B.loc = loc.loc
if(istype(loc, /turf))
B.loc = loc
else
B.loc = loc.loc
spawn()
sleep(11)
del(B)
*/
sleep(11)
del(B)
*/
log_say("[name]/[key] : [message]")
+1 -1
View File
@@ -394,7 +394,7 @@ datum/preferences
dat += "<br>"
dat += "<b>UI Style:</b> <a href=\"byond://?src=\ref[user];preferences=1;UI=input\"><b>[UI == UI_NEW ? "New" : "Old"]</b></a><br>"
dat += "<b>Play admin midis:</b> <a href=\"byond://?src=\ref[user];preferences=1;midis=input\"><b>[midis == 1 ? "Yes" : "No"]</b></a><br>"
dat += "<b>Show chat bubbles:</b> <a href=\"byond://?src=\ref[user];preferences=1;bubbles=input\"><b>[bubbles == 1 ? "Yes" : "No"]</b></a><br>"
//dat += "<b>Show chat bubbles:</b> <a href=\"byond://?src=\ref[user];preferences=1;bubbles=input\"><b>[bubbles == 1 ? "Yes" : "No"]</b></a><br>"
if((user.client) && (user.client.holder) && (user.client.holder.rank) && (user.client.holder.rank == "Game Master"))
dat += "<hr><b>OOC</b><br>"