Merge remote-tracking branch 'upstream/master' into the-p-o-o-l

This commit is contained in:
Detective Google
2020-01-12 15:16:17 -06:00
60 changed files with 2186 additions and 4136 deletions
@@ -107,15 +107,15 @@ In all, this is a lot like the monkey code. /N
return
..()
switch (severity)
if (1)
if (EXPLODE_DEVASTATE)
gib()
return
if (2)
if (EXPLODE_HEAVY)
take_overall_damage(60, 60)
adjustEarDamage(30,120)
if(3)
if(EXPLODE_LIGHT)
take_overall_damage(30,0)
if(prob(50))
Unconscious(20)
@@ -392,6 +392,13 @@
. += "...?"
else
. += "[print_flavor_text()]"
if(print_flavor_text_2())
if(get_visible_name() == "Unknown") //Are we sure we know who this is? Don't show flavor text unless we can recognize them. Prevents certain metagaming with impersonation.
. += "...?"
else if(skipface) //Sometimes we're not unknown, but impersonating someone in a hardsuit, let's not reveal our flavor text then either.
. += "...?"
else
. += "[print_flavor_text_2()]"
. += "*---------*</span>"
/mob/living/proc/status_effect_examines(pronoun_replacement) //You can include this in any mob's examine() to show the examine texts of status effects!
@@ -326,38 +326,49 @@
..()
if (!severity)
return
var/b_loss = 0
var/f_loss = 0
var/bomb_armor = max(0,(100-getarmor(null, "bomb"))/100)
var/brute_loss = 0
var/burn_loss = 0
var/bomb_armor = getarmor(null, "bomb")
//200 max knockdown for EXPLODE_HEAVY
//160 max knockdown for EXPLODE_LIGHT
switch (severity)
if (1)
if(bomb_armor)
b_loss = (350*bomb_armor)+150
var/atom/throw_target = get_edge_target_turf(src, get_dir(src, get_step_away(src, src)))
throw_at(throw_target, 200, 4)
damage_clothes(400*bomb_armor, BRUTE, "bomb")
else
damage_clothes(400,BRUTE,"bomb")
if (EXPLODE_DEVASTATE)
if(bomb_armor < EXPLODE_GIB_THRESHOLD) //gibs the mob if their bomb armor is lower than EXPLODE_GIB_THRESHOLD
for(var/I in contents)
var/atom/A = I
A.ex_act(severity)
gib()
return
else
brute_loss = 500
var/atom/throw_target = get_edge_target_turf(src, get_dir(src, get_step_away(src, src)))
throw_at(throw_target, 200, 4)
damage_clothes(400 - bomb_armor, BRUTE, "bomb")
if (2)
b_loss = 60*bomb_armor
f_loss = 60*bomb_armor
damage_clothes(200*bomb_armor, BRUTE, "bomb")
if (EXPLODE_HEAVY)
brute_loss = 60
burn_loss = 60
if(bomb_armor)
brute_loss = 30*(2 - round(bomb_armor*0.01, 0.05))
burn_loss = brute_loss //damage gets reduced from 120 to up to 60 combined brute+burn
damage_clothes(200 - bomb_armor, BRUTE, "bomb")
if (!istype(ears, /obj/item/clothing/ears/earmuffs))
adjustEarDamage(30, 120)
Unconscious(200*bomb_armor)
Unconscious(20) //short amount of time for follow up attacks against elusive enemies like wizards
Knockdown(200 - (bomb_armor * 1.6)) //between ~4 and ~20 seconds of knockdown depending on bomb armor
if(3)
b_loss = 30*bomb_armor
if(EXPLODE_LIGHT)
brute_loss = 30
if(bomb_armor)
brute_loss = 15*(2 - round(bomb_armor*0.01, 0.05))
damage_clothes(max(50 - bomb_armor, 0), BRUTE, "bomb")
if (!istype(ears, /obj/item/clothing/ears/earmuffs))
adjustEarDamage(15,60)
Unconscious(100*bomb_armor)
Knockdown(160 - (bomb_armor * 1.6)) //100 bomb armor will prevent knockdown altogether
take_overall_damage(b_loss,f_loss)
take_overall_damage(brute_loss,burn_loss)
//attempt to dismember bodyparts
if(severity <= 2 || !bomb_armor)
@@ -189,18 +189,18 @@
..()
switch (severity)
if (1)
if (EXPLODE_DEVASTATE)
gib()
return
if (2)
if (EXPLODE_HEAVY)
take_overall_damage(60, 60)
damage_clothes(200, BRUTE, "bomb")
adjustEarDamage(30, 120)
if(prob(70))
Unconscious(200)
if(3)
if(EXPLODE_LIGHT)
take_overall_damage(30, 0)
damage_clothes(50, BRUTE, "bomb")
adjustEarDamage(15,60)
@@ -835,7 +835,7 @@
/obj/item/robot_module/miner/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Lavaland", "Heavy", "Sleek", "Marina", "Can", "Spider", "Asteroid", "Droid", "Blade")
var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Lavaland", "Heavy", "Sleek", "Marina", "Can", "Spider", "Asteroid", "Droid", "Blade", "Vale")
if(!borg_icon)
return FALSE
switch(borg_icon)
@@ -868,6 +868,11 @@
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
sleeper_overlay = "bladesleeper"
dogborg = TRUE
if("Vale")
cyborg_base_icon = "valemine"
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
sleeper_overlay = "valeminesleeper"
dogborg = TRUE
return ..()
/obj/item/robot_module/syndicate
@@ -122,19 +122,19 @@
..()
var/bomb_armor = getarmor(null, "bomb")
switch (severity)
if (1)
if (EXPLODE_DEVASTATE)
if(prob(bomb_armor))
adjustBruteLoss(500)
else
gib()
return
if (2)
if (EXPLODE_HEAVY)
var/bloss = 60
if(prob(bomb_armor))
bloss = bloss / 1.5
adjustBruteLoss(bloss)
if(3)
if(EXPLODE_LIGHT)
var/bloss = 30
if(prob(bomb_armor))
bloss = bloss / 1.5
@@ -0,0 +1,48 @@
/mob/living/simple_animal/pet/bumbles
name = "Bumbles"
desc = "Bumbles, the very humble bumblebee."
icon_state = "bumbles"
icon_living = "bumbles"
icon_dead = "bumbles_dead"
turns_per_move = 1
response_help = "shoos"
response_disarm = "brushes aside"
response_harm = "squashes"
speak_emote = list("bzzzs")
maxHealth = 100
health = 100
harm_intent_damage = 1
friendly = "bzzs"
density = FALSE
movement_type = FLYING
pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
ventcrawler = VENTCRAWLER_ALWAYS
mob_size = MOB_SIZE_TINY
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
gold_core_spawnable = FRIENDLY_SPAWN
verb_say = "bzzs"
verb_ask = "bzzs inquisitively"
verb_exclaim = "bzzs intensely"
verb_yell = "bzzs intensely"
/mob/living/simple_animal/pet/bumbles/Initialize()
. = ..()
verbs += /mob/living/proc/lay_down
/mob/living/simple_animal/pet/bumbles/ComponentInitialize()
. = ..()
AddElement(/datum/element/wuv, "bzzs!")
/mob/living/simple_animal/pet/bumbles/update_canmove()
..()
if(client && stat != DEAD)
if (resting)
icon_state = "[icon_living]_rest"
collar_type = "[initial(collar_type)]_rest"
else
icon_state = "[icon_living]"
collar_type = "[initial(collar_type)]"
regenerate_icons()
/mob/living/simple_animal/pet/bumbles/bee_friendly()
return TRUE //treaty signed at the Beeneeva convention
@@ -103,13 +103,13 @@
/mob/living/simple_animal/hostile/megafauna/ex_act(severity, target)
switch (severity)
if (1)
if (EXPLODE_DEVASTATE)
adjustBruteLoss(250)
if (2)
if (EXPLODE_HEAVY)
adjustBruteLoss(100)
if(3)
if(EXPLODE_LIGHT)
adjustBruteLoss(50)
/mob/living/simple_animal/hostile/megafauna/proc/SetRecoveryTime(buffer_time)
+24
View File
@@ -3,6 +3,7 @@
//////////////////////////////////////////////////////
/mob
var/flavor_text = "" //tired of fucking double checking this
var/flavor_text_2 = ""
/mob/proc/update_flavor_text()
set src in usr
@@ -16,6 +17,19 @@
flavor_text = msg
/mob/proc/update_flavor_text_2()
set src in usr
if(usr != src)
to_chat(usr, "No.")
var/msg = stripped_multiline_input(usr, "Set the temporary flavor text in your 'examine' verb. This should be used only for things pertaining to the current round!", "Short-Term Flavor Text", html_decode(flavor_text_2), MAX_MESSAGE_LEN*2, TRUE)
if(!isnull(msg))
msg = copytext(msg, 1, MAX_MESSAGE_LEN)
msg = html_encode(msg)
flavor_text_2 = msg
/mob/proc/warn_flavor_changed()
if(flavor_text && flavor_text != "") // don't spam people that don't use it!
to_chat(src, "<h2 class='alert'>OOC Warning:</h2>")
@@ -30,6 +44,16 @@
else
return "<span class='notice'>[html_encode(copytext(msg, 1, 37))]... <a href='?src=[REF(src)];flavor_more=1'>More...</span></a>"
/mob/proc/print_flavor_text_2()
if(flavor_text && flavor_text != "")
// We are decoding and then encoding to not only get correct amount of characters, but also to prevent partial escaping characters being shown.
var/msg = html_decode(replacetext(flavor_text_2, "\n", " "))
if(length(msg) <= 40)
return "<span class='notice'>[html_encode(msg)]</span>"
else
return "<span class='notice'>[html_encode(copytext(msg, 1, 37))]... <a href='?src=[REF(src)];flavor_more=1'>More...</span></a>"
/mob/proc/get_top_level_mob()
if(istype(src.loc,/mob)&&src.loc!=src)
var/mob/M=src.loc