Bugs, Bugs Everywhere. (#1351)

Fixes #1333 and Fixes #1331
IPCs, and indeed anyone with robotic organs or plant organs, can be rejuv'd properly.
IPCs now have their damage shown on VV, more or less.
IPCs have their brutemod set to 0.8, since prosthetic limbs already have brute mods of their own, and so Industrial IPCs could have a brute mod of 0.5 instead of 0.3
Probably some other stuff. It's all in the diff.
This commit is contained in:
LordFowl
2016-12-31 04:17:02 +02:00
committed by skull132
parent d8a421ae0a
commit 7ccdf4e815
18 changed files with 115 additions and 54 deletions
@@ -70,7 +70,7 @@
/mob/living/carbon/human/getBruteLoss()
var/amount = 0
for(var/obj/item/organ/external/O in organs)
if(O.status & ORGAN_ROBOT)
if((O.status & ORGAN_ROBOT) && !O.vital)
continue //robot limbs don't count towards shock and crit
amount += O.brute_dam
return amount
@@ -78,7 +78,7 @@
/mob/living/carbon/human/getFireLoss()
var/amount = 0
for(var/obj/item/organ/external/O in organs)
if(O.status & ORGAN_ROBOT)
if((O.status & ORGAN_ROBOT) && !O.vital)
continue //robot limbs don't count towards shock and crit
amount += O.burn_dam
return amount
@@ -267,12 +267,14 @@
src << "<span class='warning'>You cannot do that in your current state.</span>"
return
for(var/mob/M in range(7, src))
for(var/mob/living/M in range(7, src))
M << 'sound/effects/EMPulse.ogg'
for(var/obj/item/weapon/material/shard/shrapnel/flechette/F in M.contents)
playsound(F, 'sound/items/countdown.ogg', 125, 1)
spawn(20)
explosion(F.loc, -1, -1, 2)
M.apply_damage(20,BRUTE)
M.apply_damage(15,BURN)
qdel(F)
for(var/obj/item/weapon/material/shard/shrapnel/flechette/F in range(7, src))
@@ -287,6 +289,10 @@
set name = "State Laws"
set desc = "State your laws aloud."
if(stat)
src << "<span class='warning'>You cannot do that in your current state.</span>"
return
if(last_special > world.time)
return
last_special = world.time + 20
@@ -380,7 +386,7 @@
sleep(10)
playsound(src, 'sound/items/countdown.ogg', 125, 1)
sleep(20)
explosion(src, -1, -1, 5)
explosion(src, -1, 1, 5)
src.gib()
/mob/living/carbon/human/proc/hivenet()
@@ -117,3 +117,4 @@
/mob/living/carbon/human/terminator
mob_size = 30
offset_light = 1
@@ -63,6 +63,7 @@
var/radiation_mod = 1 // Radiation modifier
var/flash_mod = 1 // Stun from blindness modifier.
var/vision_flags = SEE_SELF // Same flags as glasses.
var/list/breakcuffs = list() //used in resist.dm to check if they can break hand/leg cuffs
// Death vars.
var/meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/human
@@ -68,8 +68,8 @@
short_name = "ind"
name_plural = "Industrials"
brute_mod = 0.3
burn_mod = 1.2
brute_mod = 0.5
burn_mod = 1.3
slowdown = 4
blurb = "Tough units made for engineering and security with simple exteriors, roughly resembling humans. No job restrictions. Heavy emphasis on \
@@ -98,9 +98,9 @@
"r_foot" = list("path" = /obj/item/organ/external/foot/right/industrial)
)
heat_level_1 = 800
heat_level_2 = 1300
heat_level_3 = 2500
heat_level_1 = 600
heat_level_2 = 1200
heat_level_3 = 2400
heat_discomfort_level = 800
@@ -145,10 +145,11 @@
eyes = "eyes_terminator"
has_floating_eyes = 1
brute_mod = 0.2
burn_mod = 0.4
brute_mod = 0.3
burn_mod = 0.5
flash_mod = 0
siemens_coefficient = 0
breakcuffs = list(MALE,FEMALE,NEUTER)
show_ssd = "laying inert, its activation glyph dark."
death_sound = 'sound/effects/bang.ogg'
@@ -179,7 +180,7 @@
has_organ = list(
"brain" = /obj/item/organ/mmi_holder/posibrain/terminator,
"shielded cell" = /obj/item/organ/cell/terminator,
"optics" = /obj/item/organ/optical_sensor,
"optics" = /obj/item/organ/optical_sensor/terminator,
"data core" = /obj/item/organ/data
)
@@ -223,13 +224,9 @@
playsound(H.loc, 'sound/machines/buzz-two.ogg', 100, 0)
return 0
/datum/species/machine/handle_death(var/mob/living/carbon/human/H)
/datum/species/machine/terminator/handle_death(var/mob/living/carbon/human/H)
..()
spawn(10)
playsound(H.loc, 'sound/items/countdown.ogg', 125, 1)
spawn(20)
explosion(H, -1, -1, 5)
H.gib()
/datum/species/machine/sanitize_name(var/new_name)
return sanitizeName(new_name, allow_numbers = 1)
playsound(H.loc, 'sound/items/countdown.ogg', 125, 1)
spawn(15)
explosion(H.loc, -1, 1, 5)
H.gib()
@@ -48,6 +48,7 @@
sprint_cost_factor = 1.45
exhaust_threshold = 65
rarity_value = 3
breakcuffs = list(MALE)
blurb = "A heavily reptillian species, Unathi (or 'Sinta as they call themselves) hail from the \
Uuosa-Eso system, which roughly translates to 'burning mother'.<br/><br/>Coming from a harsh, radioactive \
@@ -352,7 +353,7 @@
radiation_mod = 0 // not affected by radiation
// #TODO-MERGE: Check for balance and self-repair. If self-repair is a thing, RIP balance.
brute_mod = 0.5
brute_mod = 0.8
burn_mod = 1.0
show_ssd = "flashing a 'system offline' glyph on their monitor"
death_message = "gives one shrill beep before falling lifeless."
@@ -375,7 +376,7 @@
passive_temp_gain = 10 // This should cause IPCs to stabilize at ~80 C in a 20 C environment.
flags = NO_BREATHE | NO_SCAN | NO_BLOOD | NO_PAIN | NO_POISON | NO_MINOR_CUT
appearance_flags = HAS_SKIN_COLOR
appearance_flags = HAS_SKIN_COLOR | HAS_HAIR_COLOR
spawn_flags = CAN_JOIN | IS_WHITELISTED
blood_color = "#1F181F"
@@ -49,6 +49,7 @@
brute_mod = 0.2 //note to self: remove is_synthetic checks for brmod and burnmod
burn_mod = 0.8 //2x was a bit too much. we'll see how this goes.
toxins_mod = 1 //they're not used to all our weird human bacteria.
breakcuffs = list(MALE,FEMALE,NEUTER)
speech_sounds = list('sound/voice/hiss1.ogg','sound/voice/hiss2.ogg','sound/voice/hiss3.ogg','sound/voice/hiss4.ogg')
speech_chance = 100
+3 -2
View File
@@ -107,7 +107,7 @@
if(HULK in mutations)
return 1
if (get_species() == "Unathi" && gender == "male")
if(src.gender in src.species.breakcuffs)
return 1
return 0
@@ -127,7 +127,8 @@
"<span class='warning'>You successfully break your [handcuffed.name].</span>"
)
say(pick("RAAAAAAAARGH!", "HNNNNNNNNNGGGGGGH!", "GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", "AAAAAAARRRGH!" ))
if((get_species() == "Unathi") || (HULK in mutations))
say(pick("RAAAAAAAARGH!", "HNNNNNNNNNGGGGGGH!", "GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", "AAAAAAARRRGH!" ))
qdel(handcuffed)
handcuffed = null