mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-24 20:47:10 +01:00
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:
@@ -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))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user