Penlight fits in medical belt.

Fixed several runtime errors.
Monkeys and aliens won't stack dozens of blood stains.
Fixed crash in FEA code related to melting floors.
When screwdrived destructive analyzer unlink from RD console protolate instead of itself.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1443 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
rastaf.zero@gmail.com
2011-04-14 03:52:09 +00:00
parent e84d394289
commit ad6a6e42aa
38 changed files with 427 additions and 521 deletions
+10 -1
View File
@@ -173,4 +173,13 @@ var/list/karma_spenders = list()
src << "You are now excluded from alien candidate lists until end of round."
else if(!src.client.be_alien)
src.client.be_alien = 1
src << "You are now included in alien candidate lists until end of round."
src << "You are now included in alien candidate lists until end of round."
/mob/dead/observer/memory()
set hidden = 1
src << "\red You are dead! You have no mind to store memory!"
/mob/dead/observer/add_memory()
set hidden = 1
src << "\red You are dead! You have no mind to store memory!"
@@ -13,15 +13,18 @@ Doesn't work on other aliens/AI.*/
if(src.stat)
src << "\green You must be conscious to do this."
return
if(src.toxloss >= 100)
src.toxloss -= 100
for(var/mob/O in viewers(src, null))
O.show_message(text("\green <B>[src] has planted some alien weeds!</B>"), 1)
var/obj/alien/weeds/W = new /obj/alien/weeds(src.loc)
W.Life()
else
if(!isturf(src.loc) || istype(src.loc, /turf/space))
src << "\green Bad place for garden!"
return
if(src.toxloss < 100)
src << "\green Not enough plasma stored."
return
src.toxloss -= 100
for(var/mob/O in viewers(src, null))
O.show_message(text("\green <B>[src] has planted some alien weeds!</B>"), 1)
var/obj/alien/weeds/W = new (src.loc)
W.Life()
return
/mob/living/carbon/alien/humanoid/verb/call_to()
@@ -1,18 +1,18 @@
/mob/living/carbon/alien/humanoid/drone/New()
var/datum/reagents/R = new/datum/reagents(100)
reagents = R
R.my_atom = src
if(src.name == "alien drone")
src.name = text("alien drone ([rand(1, 1000)])")
src.real_name = src.name
spawn (1)
src.verbs += /mob/living/carbon/alien/humanoid/proc/corrode_target
src.verbs -= /mob/living/carbon/alien/humanoid/verb/call_to
var/datum/reagents/R = new/datum/reagents(100)
reagents = R
R.my_atom = src
src.stand_icon = new /icon('alien.dmi', "aliend_s")
src.lying_icon = new /icon('alien.dmi', "aliend_l")
src.icon = src.stand_icon
if(src.name == "alien drone") src.name = text("alien drone ([rand(1, 1000)])")
src.real_name = src.name
src << "\blue Your icons have been generated!"
update_clothing()
src << "\blue Your icons have been generated!"
//Drones use the same base as generic humanoids.
//Drone verbs
@@ -1,17 +1,17 @@
/mob/living/carbon/alien/humanoid/hunter/New()
var/datum/reagents/R = new/datum/reagents(100)
reagents = R
R.my_atom = src
if(src.name == "alien hunter")
src.name = text("alien hunter ([rand(1, 1000)])")
src.real_name = src.name
spawn (1)
src.verbs -= /mob/living/carbon/alien/humanoid/verb/corrode
var/datum/reagents/R = new/datum/reagents(100)
reagents = R
R.my_atom = src
src.stand_icon = new /icon('alien.dmi', "alienh_s")
src.lying_icon = new /icon('alien.dmi', "alienh_l")
src.icon = src.stand_icon
if(src.name == "alien hunter") src.name = text("alien hunter ([rand(1, 1000)])")
src.real_name = src.name
src << "\blue Your icons have been generated!"
update_clothing()
src << "\blue Your icons have been generated!"
/mob/living/carbon/alien/humanoid/hunter
@@ -1,17 +1,17 @@
/mob/living/carbon/alien/humanoid/sentinel/New()
var/datum/reagents/R = new/datum/reagents(100)
reagents = R
R.my_atom = src
if(src.name == "alien sentinel")
src.name = text("alien sentinel ([rand(1, 1000)])")
src.real_name = src.name
spawn (1)
src.verbs += /mob/living/carbon/alien/humanoid/proc/corrode_target
var/datum/reagents/R = new/datum/reagents(100)
reagents = R
R.my_atom = src
src.stand_icon = new /icon('alien.dmi', "aliens_s")
src.lying_icon = new /icon('alien.dmi', "aliens_l")
src.icon = src.stand_icon
if(src.name == "alien sentinel") src.name = text("alien sentinel ([rand(1, 1000)])")
src.real_name = src.name
src << "\blue Your icons have been generated!"
update_clothing()
src << "\blue Your icons have been generated!"
/mob/living/carbon/alien/humanoid/sentinel
@@ -1,20 +1,19 @@
//This is fine right now, if we're adding organ specific damage this needs to be updated
/mob/living/carbon/alien/humanoid/New()
var/datum/reagents/R = new/datum/reagents(100)
reagents = R
R.my_atom = src
if(src.name == "alien")
src.name = text("alien ([rand(1, 1000)])")
src.real_name = src.name
spawn (1)
var/datum/reagents/R = new/datum/reagents(100)
reagents = R
R.my_atom = src
if(!istype(src, /mob/living/carbon/alien/humanoid/queen))
src.stand_icon = new /icon('alien.dmi', "alien_s")
src.lying_icon = new /icon('alien.dmi', "alien_l")
src.icon = src.stand_icon
if(src.name == "alien") src.name = text("alien ([rand(1, 1000)])")
src.real_name = src.name
src << "\blue Your icons have been generated!"
update_clothing()
src << "\blue Your icons have been generated!"
..()
@@ -1,21 +1,20 @@
/mob/living/carbon/alien/humanoid/queen/New()
var/datum/reagents/R = new/datum/reagents(100)
reagents = R
R.my_atom = src
//there should only be one queen
// if(src.name == "alien")
// src.name = text("alien ([rand(1, 1000)])")
src.real_name = src.name
spawn (1)
src.verbs += /mob/living/carbon/alien/humanoid/proc/corrode_target
src.verbs += /mob/living/carbon/alien/humanoid/sentinel/verb/spit
src.verbs -= /mob/living/carbon/alien/humanoid/verb/ventcrawl
var/datum/reagents/R = new/datum/reagents(100)
reagents = R
R.my_atom = src
src.stand_icon = new /icon('alien.dmi', "queen_s")
src.lying_icon = new /icon('alien.dmi', "queen_l")
src.icon = src.stand_icon
//there should only be one queen
// if(src.name == "alien") src.name = text("alien ([rand(1, 1000)])")
src.real_name = src.name
src << "\blue Your icons have been generated!"
update_clothing()
src << "\blue Your icons have been generated!"
/mob/living/carbon/alien/humanoid/queen
@@ -1,15 +1,14 @@
//This is fine right now, if we're adding organ specific damage this needs to be updated
/mob/living/carbon/alien/larva/New()
var/datum/reagents/R = new/datum/reagents(100)
reagents = R
R.my_atom = src
if(src.name == "alien larva")
src.name = text("alien larva ([rand(1, 1000)])")
src.real_name = src.name
spawn (1)
var/datum/reagents/R = new/datum/reagents(100)
reagents = R
R.my_atom = src
if(src.name == "alien larva") src.name = text("alien larva ([rand(1, 1000)])")
src.real_name = src.name
src << "\blue Your icons have been generated!"
update_clothing()
src << "\blue Your icons have been generated!"
// spawn(1200) grow() Grow after 120 seconds -- TLE Commented out because life.dm has better version -- Urist
..()
@@ -2,10 +2,10 @@
var/obj/item/device/mmi/container = null
New()
spawn(1)
var/datum/reagents/R = new/datum/reagents(1000)
reagents = R
R.my_atom = src
var/datum/reagents/R = new/datum/reagents(1000)
reagents = R
R.my_atom = src
..()
say_understands(var/other)
if (istype(other, /mob/living/silicon/ai))
+46 -49
View File
@@ -7,62 +7,59 @@
if (!dna)
dna = new /datum/dna( null )
var/datum/organ/external/chest/chest = new /datum/organ/external/chest( src )
chest.owner = src
var/datum/organ/external/groin/groin = new /datum/organ/external/groin( src )
groin.owner = src
var/datum/organ/external/head/head = new /datum/organ/external/head( src )
head.owner = src
var/datum/organ/external/l_arm/l_arm = new /datum/organ/external/l_arm( src )
l_arm.owner = src
var/datum/organ/external/r_arm/r_arm = new /datum/organ/external/r_arm( src )
r_arm.owner = src
var/datum/organ/external/l_hand/l_hand = new /datum/organ/external/l_hand( src )
l_hand.owner = src
var/datum/organ/external/r_hand/r_hand = new /datum/organ/external/r_hand( src )
r_hand.owner = src
var/datum/organ/external/l_leg/l_leg = new /datum/organ/external/l_leg( src )
l_leg.owner = src
var/datum/organ/external/r_leg/r_leg = new /datum/organ/external/r_leg( src )
r_leg.owner = src
var/datum/organ/external/l_foot/l_foot = new /datum/organ/external/l_foot( src )
l_foot.owner = src
var/datum/organ/external/r_foot/r_foot = new /datum/organ/external/r_foot( src )
r_foot.owner = src
src.organs["chest"] = chest
src.organs["groin"] = groin
src.organs["head"] = head
src.organs["l_arm"] = l_arm
src.organs["r_arm"] = r_arm
src.organs["l_hand"] = l_hand
src.organs["r_hand"] = r_hand
src.organs["l_leg"] = l_leg
src.organs["r_leg"] = r_leg
src.organs["l_foot"] = l_foot
src.organs["r_foot"] = r_foot
var/g = "m"
if (src.gender == MALE)
g = "m"
else if (src.gender == FEMALE)
g = "f"
else
src.gender = MALE
g = "m"
spawn (1)
var/datum/organ/external/chest/chest = new /datum/organ/external/chest( src )
chest.owner = src
var/datum/organ/external/groin/groin = new /datum/organ/external/groin( src )
groin.owner = src
var/datum/organ/external/head/head = new /datum/organ/external/head( src )
head.owner = src
var/datum/organ/external/l_arm/l_arm = new /datum/organ/external/l_arm( src )
l_arm.owner = src
var/datum/organ/external/r_arm/r_arm = new /datum/organ/external/r_arm( src )
r_arm.owner = src
var/datum/organ/external/l_hand/l_hand = new /datum/organ/external/l_hand( src )
l_hand.owner = src
var/datum/organ/external/r_hand/r_hand = new /datum/organ/external/r_hand( src )
r_hand.owner = src
var/datum/organ/external/l_leg/l_leg = new /datum/organ/external/l_leg( src )
l_leg.owner = src
var/datum/organ/external/r_leg/r_leg = new /datum/organ/external/r_leg( src )
r_leg.owner = src
var/datum/organ/external/l_foot/l_foot = new /datum/organ/external/l_foot( src )
l_foot.owner = src
var/datum/organ/external/r_foot/r_foot = new /datum/organ/external/r_foot( src )
r_foot.owner = src
src.organs["chest"] = chest
src.organs["groin"] = groin
src.organs["head"] = head
src.organs["l_arm"] = l_arm
src.organs["r_arm"] = r_arm
src.organs["l_hand"] = l_hand
src.organs["r_hand"] = r_hand
src.organs["l_leg"] = l_leg
src.organs["r_leg"] = r_leg
src.organs["l_foot"] = l_foot
src.organs["r_foot"] = r_foot
var/g = "m"
if (src.gender == MALE)
g = "m"
else if (src.gender == FEMALE)
g = "f"
else
src.gender = MALE
g = "m"
if(!src.stand_icon)
src.stand_icon = new /icon('human.dmi', "body_[g]_s")
if(!src.lying_icon)
src.lying_icon = new /icon('human.dmi', "body_[g]_l")
src.icon = src.stand_icon
src << "\blue Your icons have been generated!"
update_clothing()
src << "\blue Your icons have been generated!"
..()
/mob/living/carbon/human/Bump(atom/movable/AM as mob|obj, yes)
if ((!( yes ) || src.now_pushing))
+22 -24
View File
@@ -1,29 +1,27 @@
/mob/living/carbon/monkey/New()
spawn(1)
var/datum/reagents/R = new/datum/reagents(1000)
reagents = R
R.my_atom = src
if (!(src.dna))
if(src.gender == NEUTER)
src.gender = pick(MALE, FEMALE)
src.dna = new /datum/dna( null )
src.dna.uni_identity = "00600200A00E0110148FC01300B009"
src.dna.struc_enzymes = "0983E840344C39F4B059D5145FC5785DC6406A4BB8"
src.dna.unique_enzymes = md5(src.name)
//////////blah
var/gendervar
if (src.gender == "male")
gendervar = add_zero2(num2hex((rand(1,2049)),1), 3)
else
gendervar = add_zero2(num2hex((rand(2051,4094)),1), 3)
src.dna.uni_identity += gendervar
src.dna.uni_identity += "12C"
src.dna.uni_identity += "4E2"
var/datum/reagents/R = new/datum/reagents(1000)
reagents = R
R.my_atom = src
if (!(src.dna))
if(src.gender == NEUTER)
src.gender = pick(MALE, FEMALE)
src.dna = new /datum/dna( null )
src.dna.uni_identity = "00600200A00E0110148FC01300B009"
src.dna.struc_enzymes = "0983E840344C39F4B059D5145FC5785DC6406A4BB8"
src.dna.unique_enzymes = md5(src.name)
//////////blah
var/gendervar
if (src.gender == "male")
gendervar = add_zero2(num2hex((rand(1,2049)),1), 3)
else
gendervar = add_zero2(num2hex((rand(2051,4094)),1), 3)
src.dna.uni_identity += gendervar
src.dna.uni_identity += "12C"
src.dna.uni_identity += "4E2"
if(src.name == "monkey") src.name = text("monkey ([rand(1, 1000)])")
src.real_name = src.name
return
if(src.name == "monkey")
src.name = text("monkey ([rand(1, 1000)])")
src.real_name = src.name
..()
return
+13 -8
View File
@@ -1122,8 +1122,9 @@
item.dropped(src)
if (item)
item.layer = initial(item.layer)
var/turf/T = get_turf(src.loc)
T.Entered(item)
var/turf/T = get_turf(src.loc)
if (istype(T))
T.Entered(item)
return
/mob/proc/drop_item()
@@ -1138,16 +1139,17 @@
if (W)
W.layer = initial(W.layer)
var/turf/T = get_turf(src.loc)
if (T)
if (istype(T))
T.Entered(W)
return
/mob/proc/before_take_item(var/obj/item/item)
u_equip(item)
if (src.client)
src.client.screen -= item
item.loc = null
src.update_clothing()
item.layer = initial(item.layer)
u_equip(item)
//if (src.client)
// src.client.screen -= item
//src.update_clothing()
return
/mob/proc/get_active_hand()
@@ -1299,7 +1301,10 @@
msg = copytext(msg, 1, MAX_MESSAGE_LEN)
msg = sanitize(msg)
mind.store_memory(msg)
if(mind)
mind.store_memory(msg)
else
src << "The game appears to have misplaced your mind datum, so we can't show you your notes."
/mob/proc/store_memory(msg as message, popup, sane = 1)
msg = copytext(msg, 1, MAX_MESSAGE_LEN)
+7 -33
View File
@@ -4,13 +4,7 @@
for(var/obj/item/W in src)
if (W==src.w_uniform) // will be teared
continue
src.u_equip(W)
if (src.client)
src.client.screen -= W
if (W)
W.loc = src.loc
W.dropped(src)
W.layer = initial(W.layer)
drop_from_slot(W)
src.update_clothing()
src.monkeyizing = 1
src.canmove = 0
@@ -58,15 +52,8 @@
/mob/living/carbon/AIize()
if (src.monkeyizing)
return
for(var/obj/item/weapon/W in src)
src.u_equip(W)
if (src.client)
src.client.screen -= W
if (W)
W.loc = src.loc
W.dropped(src)
W.layer = initial(W.layer)
del(W)
for(var/obj/item/W in src)
drop_from_slot(W)
src.update_clothing()
src.monkeyizing = 1
src.canmove = 0
@@ -170,15 +157,8 @@
/mob/living/carbon/human/proc/Robotize()
if (src.monkeyizing)
return
for(var/obj/item/weapon/W in src)
src.u_equip(W)
if (src.client)
src.client.screen -= W
if (W)
W.loc = src.loc
W.dropped(src)
W.layer = initial(W.layer)
del(W)
for(var/obj/item/W in src)
drop_from_slot(W)
src.update_clothing()
src.monkeyizing = 1
src.canmove = 0
@@ -235,14 +215,8 @@
/mob/living/carbon/human/proc/Alienize()
if (src.monkeyizing)
return
for(var/obj/item/weapon/W in src)
src.u_equip(W)
if (src.client)
src.client.screen -= W
if (W)
W.loc = src.loc
W.dropped(src)
W.layer = initial(W.layer)
for(var/obj/item/W in src)
drop_from_slot(W)
src.update_clothing()
src.monkeyizing = 1
src.canmove = 0