Fixes and tweaks to the previous.

This commit is contained in:
Zuhayr
2014-12-23 18:48:10 +10:30
parent bbfc6db0a3
commit cc00fa3d52
26 changed files with 187 additions and 162 deletions
@@ -30,7 +30,7 @@
brainmob.client.screen.len = null //clear the hud
/obj/item/organ/brain/proc/transfer_identity(var/mob/living/carbon/H)
name = "[H]'s brain"
name = "\the [H]'s [initial(src.name)]"
brainmob = new(src)
brainmob.name = H.real_name
brainmob.real_name = H.real_name
@@ -39,7 +39,7 @@
if(H.mind)
H.mind.transfer_to(brainmob)
brainmob << "\blue You feel slightly disoriented. That's normal when you're just a brain."
brainmob << "<span class='notice'>You feel slightly disoriented. That's normal when you're just a [initial(src.name)].</span>"
callHook("debrain", list(brainmob))
/obj/item/organ/brain/examine(mob/user) // -- TLE
@@ -72,4 +72,22 @@
if(brainmob.mind)
brainmob.mind.transfer_to(target)
else
target.key = brainmob.key
target.key = brainmob.key
/obj/item/organ/brain/slime
name = "slime core"
desc = "A complex, organic knot of jelly and crystalline particles."
prosthetic_name = null
prosthetic_icon = null
robotic = 2
icon = 'icons/mob/slimes.dmi'
icon_state = "green slime extract"
/obj/item/organ/brain/golem
name = "chem"
desc = "A tightly furled roll of paper, covered with indecipherable runes."
prosthetic_name = null
prosthetic_icon = null
robotic = 2
icon = 'icons/obj/wizard.dmi'
icon_state = "scroll"
+1 -1
View File
@@ -57,7 +57,7 @@
for(var/mob/N in viewers(src, null))
if(N.client)
N.show_message(text("\red <B>[M] bursts out of [src]!</B>"), 2)
. = ..(null,1)
..()
/mob/living/carbon/attack_hand(mob/M as mob)
if(!istype(M, /mob/living/carbon)) return
+19 -1
View File
@@ -8,8 +8,26 @@
// Override the current limb status and don't cause an explosion
E.droplimb(1,1)
for(var/datum/organ/internal/I in internal_organs)
var/obj/item/organ/current_organ = I.remove()
current_organ.loc = src.loc
current_organ.organ_data.rejecting = null
var/datum/reagent/blood/organ_blood = locate(/datum/reagent/blood) in current_organ.reagents.reagent_list
if(!organ_blood || !organ_blood.data["blood_DNA"])
src.vessel.trans_to(current_organ, 5, 1, 1)
current_organ.removed(src)
if(current_organ && istype(loc,/turf))
var/target_dir = pick(cardinal)
var/turf/target_turf = loc
var/steps = rand(1,2)
for(var/i = 0;i<steps;i++)
target_turf = get_step(target_turf,target_dir)
current_organ.throw_at(target_turf)
..(species.gibbed_anim)
gibs(loc, viruses, dna, null, null, species.flesh_color, species.blood_color)
gibs(loc, viruses, dna, null, species.flesh_color, species.blood_color)
/mob/living/carbon/human/dust()
if(species)
@@ -52,7 +52,10 @@
t_his = "her"
t_him = "her"
msg += "<EM>[src.name]</EM>!\n"
msg += "<EM>[src.name]</EM>"
if(species.name != "Human")
msg += ", a <b><font color='[species.flesh_color]'>[species.name]</font></b>"
msg += "!\n"
//uniform
if(w_uniform && !skipjumpsuit)
@@ -751,13 +751,13 @@
if(!lastpuke)
lastpuke = 1
src << "<spawn class='warning'>You feel nauseous..."
src << "<span class='warning'>You feel nauseous...</span>"
spawn(150) //15 seconds until second warning
src << "<spawn class='warning'>You feel like you are about to throw up!"
src << "<span class='warning'>You feel like you are about to throw up!</span>"
spawn(100) //and you have 10 more for mad dash to the bucket
Stun(5)
src.visible_message("<spawn class='warning'>[src] throws up!","<spawn class='warning'>You throw up!")
src.visible_message("<span class='warning'>[src] throws up!</span>","<span class='warning'>You throw up!</span>")
playsound(loc, 'sound/effects/splat.ogg', 50, 1)
var/turf/location = loc
@@ -1,8 +1,25 @@
/datum/species/shadow
name = "Shadow"
name_plural = "shadows"
icobase = 'icons/mob/human_races/r_shadow.dmi'
deform = 'icons/mob/human_races/r_shadow.dmi'
language = "Sol Common" //todo?
unarmed_types = list(/datum/unarmed_attack/claws/strong, /datum/unarmed_attack/bite/sharp)
light_dam = 2
darksight = 8
flags = IS_RESTRICTED | NO_SCAN | NO_SLIP | NO_POISON
has_organ = list()
blood_color = "#CCCCCC"
flesh_color = "#AAAAAA"
remains_type = /obj/effect/decal/cleanable/ash
death_message = "dissolves into ash..."
flags = IS_RESTRICTED | NO_BLOOD | NO_POISON | NO_SCAN | NO_SLIP | NO_POISON
/datum/species/shadow/handle_death(var/mob/living/carbon/human/H)
spawn(1)
new /obj/effect/decal/cleanable/ash(H.loc)
del(H)
@@ -175,10 +175,6 @@
add_inherent_verbs(H)
/datum/species/proc/handle_death(var/mob/living/carbon/human/H) //Handles any species-specific death events (such as dionaea nymph spawns).
if(flags & IS_SYNTHETIC)
H.h_style = ""
spawn(100)
H.update_hair()
return
// Only used for alien plasma weeds atm, but could be used for Dionaea later.
@@ -1,6 +1,10 @@
/datum/species/golem
name = "Golem"
name_plural = "golems"
icobase = 'icons/mob/human_races/r_golem.dmi'
deform = 'icons/mob/human_races/r_golem.dmi'
language = "Sol Common" //todo?
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/punch)
flags = IS_RESTRICTED | NO_BREATHE | NO_PAIN | NO_BLOOD | IS_SYNTHETIC | NO_SCAN | NO_POISON
@@ -8,6 +12,15 @@
breath_type = null
poison_type = null
blood_color = "#515573"
flesh_color = "#137E8F"
has_organ = list(
"brain" = /datum/organ/internal/brain/golem
)
death_message = "becomes completely motionless..."
/datum/species/golem/handle_post_spawn(var/mob/living/carbon/human/H)
if(H.mind)
H.mind.assigned_role = "Golem"
@@ -1,10 +1,24 @@
/datum/species/slime
name = "Slime"
name_plural = "slimes"
icobase = 'icons/mob/human_races/r_slime.dmi'
deform = 'icons/mob/human_races/r_slime.dmi'
language = "Sol Common" //todo?
unarmed_types = list(/datum/unarmed_attack/slime_glomp)
flags = IS_RESTRICTED | NO_SCAN | NO_SLIP | NO_BREATHE
flags = IS_RESTRICTED | NO_BLOOD | NO_SCAN | NO_SLIP | NO_BREATHE
darksight = 3
blood_color = "#05FF9B"
flesh_color = "#05FFFB"
has_organ = list(
"brain" = /datum/organ/internal/brain/slime
)
inherent_verbs = list(
)
breath_type = null
poison_type = null
@@ -201,7 +201,11 @@
blood_color = "#1F181F"
flesh_color = "#575757"
has_organ = list(
"heart" = /datum/organ/internal/heart,
"brain" = /datum/organ/internal/brain,
)
has_organ = list() //TODO: Positronic brain.
/datum/species/machine/handle_death(var/mob/living/carbon/human/H)
..()
if(flags & IS_SYNTHETIC)
H.h_style = ""
spawn(100)
if(H) H.update_hair()
@@ -490,7 +490,10 @@ proc/get_damage_icon_part(damage_state, body_part)
/mob/living/carbon/human/regenerate_icons()
..()
if(monkeyizing) return
update_mutations(0)
update_body(0)
update_hair(0)
update_inv_w_uniform(0)
update_inv_wear_id(0)
update_inv_gloves(0)
@@ -678,90 +678,6 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75
target.enahnced = 1
del(src)*/
////////Adamantine Golem stuff I dunno where else to put it
// This will eventually be removed.
/obj/item/clothing/under/golem
name = "adamantine skin"
desc = "a golem's skin"
icon_state = "golem"
item_state = "golem"
item_color = "golem"
has_sensor = 0
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
canremove = 0
/obj/item/clothing/suit/golem
name = "adamantine shell"
desc = "a golem's thick outter shell"
icon_state = "golem"
item_state = "golem"
w_class = 4//bulky item
gas_transfer_coefficient = 0.90
permeability_coefficient = 0.50
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS|HEAD
slowdown = 1.0
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
flags = FPRINT | TABLEPASS | ONESIZEFITSALL | STOPSPRESSUREDMAGE
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS | HEAD
max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE
cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS | HEAD
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
canremove = 0
armor = list(melee = 80, bullet = 20, laser = 20, energy = 10, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/shoes/golem
name = "golem's feet"
desc = "sturdy adamantine feet"
icon_state = "golem"
item_state = null
canremove = 0
flags = NOSLIP
slowdown = SHOES_SLOWDOWN+1
/obj/item/clothing/mask/gas/golem
name = "golem's face"
desc = "the imposing face of an adamantine golem"
icon_state = "golem"
item_state = "golem"
canremove = 0
siemens_coefficient = 0
unacidable = 1
/obj/item/clothing/mask/gas/golem
name = "golem's face"
desc = "the imposing face of an adamantine golem"
icon_state = "golem"
item_state = "golem"
canremove = 0
siemens_coefficient = 0
unacidable = 1
/obj/item/clothing/gloves/golem
name = "golem's hands"
desc = "strong adamantine hands"
icon_state = "golem"
item_state = null
siemens_coefficient = 0
canremove = 0
/obj/item/clothing/head/space/golem
icon_state = "golem"
item_state = "dermal"
item_color = "dermal"
name = "golem's head"
desc = "a golem's head"
canremove = 0
unacidable = 1
flags = FPRINT | TABLEPASS | STOPSPRESSUREDMAGE
heat_protection = HEAD
max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE
armor = list(melee = 80, bullet = 20, laser = 20, energy = 10, bomb = 0, bio = 0, rad = 0)
/obj/effect/golemrune
anchored = 1
desc = "a strange rune used to create golems. It glows when spirits are nearby."
+1 -1
View File
@@ -1,6 +1,6 @@
/mob/living/silicon/gib()
..("gibbed-r")
gibs(loc, viruses, null, null, /obj/effect/gibspawner/robot)
gibs(loc, viruses, null, /obj/effect/gibspawner/robot)
/mob/living/silicon/dust()
..("dust-r", /obj/effect/decal/remains/robot)
@@ -197,6 +197,9 @@
else
..()
/mob/living/simple_animal/gib()
..(icon_gib,1)
/mob/living/simple_animal/emote(var/act, var/type, var/desc)
if(act)
..(act, type, desc)
@@ -263,14 +266,14 @@
return
else if(istype(O, /obj/item/weapon/kitchenknife) || istype(O, /obj/item/weapon/butch))
if(meat_type && (stat == DEAD))
if(meat_amount && (meat_amount/2) >= 1)
for(var/i = 0; i < meat_amount/2; i++)
var/obj/item/meat = new meat_type(get_turf(src))
meat.name = "[src.name] [meat.name]"
var/actual_meat_amount = max(1,(meat_amount/2))
if(meat_type && actual_meat_amount>0 && (stat == DEAD))
for(var/i=0;i<actual_meat_amount;i++)
var/obj/item/meat = new meat_type(get_turf(src))
meat.name = "[src.name] [meat.name]"
if(small)
user.visible_message("<span class='danger'>[user] chops up \the [src]!</span>")
new/obj/effect/decal/cleanable/blood/splatter(get_turf(src))
del(src)
else
user.visible_message("<span class='danger'>[user] butchers \the [src] messily!</span>")