April sync (#360)
* Maps and things no code/icons * helpers defines globalvars * Onclick world.dm orphaned_procs * subsystems Round vote and shuttle autocall done here too * datums * Game folder * Admin - chatter modules * clothing - mining * modular computers - zambies * client * mob level 1 * mob stage 2 + simple_animal * silicons n brains * mob stage 3 + Alien/Monkey * human mobs * icons updated * some sounds * emitter y u no commit * update tgstation.dme * compile fixes * travis fixes Also removes Fast digest mode, because reasons. * tweaks for travis Mentors are broke again Also fixes Sizeray guns * oxygen loss fix for vore code. * removes unused code * some code updates * bulk fixes * further fixes * outside things * whoops. * Maint bar ported * GLOBs.
This commit is contained in:
@@ -1,22 +1,3 @@
|
||||
var/global/list/whiteness = list (
|
||||
/obj/item/clothing/under/color/white = 2,
|
||||
/obj/item/clothing/under/rank/bartender = 1,
|
||||
/obj/item/clothing/under/rank/chef = 1,
|
||||
/obj/item/clothing/under/rank/chief_engineer = 1,
|
||||
/obj/item/clothing/under/rank/scientist = 1,
|
||||
/obj/item/clothing/under/rank/chemist = 1,
|
||||
/obj/item/clothing/under/rank/chief_medical_officer = 1,
|
||||
/obj/item/clothing/under/rank/geneticist = 1,
|
||||
/obj/item/clothing/under/rank/virologist = 1,
|
||||
/obj/item/clothing/under/rank/nursesuit = 1,
|
||||
/obj/item/clothing/under/rank/medical = 1,
|
||||
/obj/item/clothing/under/rank/det = 1,
|
||||
/obj/item/clothing/under/suit_jacket/white = 0.5,
|
||||
/obj/item/clothing/under/burial = 1
|
||||
)
|
||||
|
||||
|
||||
|
||||
/mob/living/proc/check_devil_bane_multiplier(obj/item/weapon, mob/living/attacker)
|
||||
switch(mind.devilinfo.bane)
|
||||
if(BANE_WHITECLOTHES)
|
||||
@@ -24,6 +5,22 @@ var/global/list/whiteness = list (
|
||||
var/mob/living/carbon/human/H = attacker
|
||||
if(H.w_uniform && istype(H.w_uniform, /obj/item/clothing/under))
|
||||
var/obj/item/clothing/under/U = H.w_uniform
|
||||
var/static/list/whiteness = list (
|
||||
/obj/item/clothing/under/color/white = 2,
|
||||
/obj/item/clothing/under/rank/bartender = 1,
|
||||
/obj/item/clothing/under/rank/chef = 1,
|
||||
/obj/item/clothing/under/rank/chief_engineer = 1,
|
||||
/obj/item/clothing/under/rank/scientist = 1,
|
||||
/obj/item/clothing/under/rank/chemist = 1,
|
||||
/obj/item/clothing/under/rank/chief_medical_officer = 1,
|
||||
/obj/item/clothing/under/rank/geneticist = 1,
|
||||
/obj/item/clothing/under/rank/virologist = 1,
|
||||
/obj/item/clothing/under/rank/nursesuit = 1,
|
||||
/obj/item/clothing/under/rank/medical = 1,
|
||||
/obj/item/clothing/under/rank/det = 1,
|
||||
/obj/item/clothing/under/suit_jacket/white = 0.5,
|
||||
/obj/item/clothing/under/burial = 1
|
||||
)
|
||||
if(whiteness[U.type])
|
||||
src.visible_message("<span class='warning'>[src] seems to have been harmed by the purity of [attacker]'s clothes.</span>", "<span class='notice'>Unsullied white clothing is disrupting your form.</span>")
|
||||
return whiteness[U.type] + 1
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
|
||||
#define DEVILRESURRECTTIME 600
|
||||
|
||||
var/global/list/allDevils = list()
|
||||
var/global/list/lawlorify = list (
|
||||
GLOBAL_LIST_EMPTY(allDevils)
|
||||
GLOBAL_LIST_INIT(lawlorify, list (
|
||||
LORE = list(
|
||||
OBLIGATION_FOOD = "This devil seems to always offer its victims food before slaughtering them.",
|
||||
OBLIGATION_FIDDLE = "This devil will never turn down a musical challenge.",
|
||||
@@ -77,8 +77,7 @@ var/global/list/lawlorify = list (
|
||||
BANISH_DESTRUCTION = "If your corpse is destroyed, you will be unable to resurrect.",
|
||||
BANISH_FUNERAL_GARB = "If your corpse is clad in funeral garments, you will be unable to resurrect."
|
||||
)
|
||||
)
|
||||
|
||||
))
|
||||
/datum/devilinfo
|
||||
var/datum/mind/owner = null
|
||||
var/obligation
|
||||
@@ -112,11 +111,11 @@ var/global/list/lawlorify = list (
|
||||
return devil
|
||||
|
||||
/proc/devilInfo(name, saveDetails = 0)
|
||||
if(allDevils[lowertext(name)])
|
||||
return allDevils[lowertext(name)]
|
||||
if(GLOB.allDevils[lowertext(name)])
|
||||
return GLOB.allDevils[lowertext(name)]
|
||||
else
|
||||
var/datum/devilinfo/devil = randomDevilInfo(name)
|
||||
allDevils[lowertext(name)] = devil
|
||||
GLOB.allDevils[lowertext(name)] = devil
|
||||
devil.exists = saveDetails
|
||||
return devil
|
||||
|
||||
@@ -287,9 +286,9 @@ var/global/list/lawlorify = list (
|
||||
if(A)
|
||||
notify_ghosts("An arch devil has ascended in \the [A.name]. Reach out to the devil to be given a new shell for your soul.", source = owner.current, action=NOTIFY_ATTACK)
|
||||
sleep(50)
|
||||
if(!ticker.mode.devil_ascended)
|
||||
if(!SSticker.mode.devil_ascended)
|
||||
SSshuttle.emergency.request(null, 0.3)
|
||||
ticker.mode.devil_ascended++
|
||||
SSticker.mode.devil_ascended++
|
||||
form = ARCH_DEVIL
|
||||
|
||||
/datum/devilinfo/proc/remove_spells()
|
||||
@@ -415,8 +414,8 @@ var/global/list/lawlorify = list (
|
||||
check_regression()
|
||||
|
||||
/datum/devilinfo/proc/create_new_body()
|
||||
if(blobstart.len > 0)
|
||||
var/turf/targetturf = get_turf(pick(blobstart))
|
||||
if(GLOB.blobstart.len > 0)
|
||||
var/turf/targetturf = get_turf(pick(GLOB.blobstart))
|
||||
var/mob/currentMob = owner.current
|
||||
if(!currentMob)
|
||||
currentMob = owner.get_ghost()
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
devil_mind.devilinfo = devilInfo(trueName, 1)
|
||||
devil_mind.devilinfo.ascendable = ascendable
|
||||
devil_mind.store_memory("Your devilic true name is [devil_mind.devilinfo.truename]<br>[lawlorify[LAW][devil_mind.devilinfo.ban]]<br>You may not use violence to coerce someone into selling their soul.<br>You may not directly and knowingly physically harm a devil, other than yourself.<br>[lawlorify[LAW][devil_mind.devilinfo.bane]]<br>[lawlorify[LAW][devil_mind.devilinfo.obligation]]<br>[lawlorify[LAW][devil_mind.devilinfo.banish]]<br>")
|
||||
devil_mind.store_memory("Your devilic true name is [devil_mind.devilinfo.truename]<br>[GLOB.lawlorify[LAW][devil_mind.devilinfo.ban]]<br>You may not use violence to coerce someone into selling their soul.<br>You may not directly and knowingly physically harm a devil, other than yourself.<br>[GLOB.lawlorify[LAW][devil_mind.devilinfo.bane]]<br>[GLOB.lawlorify[LAW][devil_mind.devilinfo.obligation]]<br>[GLOB.lawlorify[LAW][devil_mind.devilinfo.banish]]<br>")
|
||||
devil_mind.devilinfo.owner = devil_mind
|
||||
devil_mind.devilinfo.give_base_spells(1)
|
||||
spawn(10)
|
||||
@@ -67,10 +67,10 @@
|
||||
to_chat(current, "<span class='warning'><b>However, your infernal form is not without weaknesses.</b></span>")
|
||||
to_chat(current, "You may not use violence to coerce someone into selling their soul.")
|
||||
to_chat(current, "You may not directly and knowingly physically harm a devil, other than yourself.")
|
||||
to_chat(current, lawlorify[LAW][src.devilinfo.bane])
|
||||
to_chat(current, lawlorify[LAW][src.devilinfo.ban])
|
||||
to_chat(current, lawlorify[LAW][src.devilinfo.obligation])
|
||||
to_chat(current, lawlorify[LAW][src.devilinfo.banish])
|
||||
to_chat(current, GLOB.lawlorify[LAW][src.devilinfo.bane])
|
||||
to_chat(current, GLOB.lawlorify[LAW][src.devilinfo.ban])
|
||||
to_chat(current, GLOB.lawlorify[LAW][src.devilinfo.obligation])
|
||||
to_chat(current, GLOB.lawlorify[LAW][src.devilinfo.banish])
|
||||
to_chat(current, "<br/><br/><span class='warning'>Remember, the crew can research your weaknesses if they find out your devil name.</span><br>")
|
||||
|
||||
/datum/game_mode/proc/printdevilinfo(datum/mind/ply)
|
||||
@@ -78,38 +78,38 @@
|
||||
return "Target is not a devil."
|
||||
var/text = "</br>The devil's true name is: [ply.devilinfo.truename]</br>"
|
||||
text += "The devil's bans were:</br>"
|
||||
text += " [lawlorify[LORE][ply.devilinfo.ban]]</br>"
|
||||
text += " [lawlorify[LORE][ply.devilinfo.bane]]</br>"
|
||||
text += " [lawlorify[LORE][ply.devilinfo.obligation]]</br>"
|
||||
text += " [lawlorify[LORE][ply.devilinfo.banish]]</br></br>"
|
||||
text += " [GLOB.lawlorify[LORE][ply.devilinfo.ban]]</br>"
|
||||
text += " [GLOB.lawlorify[LORE][ply.devilinfo.bane]]</br>"
|
||||
text += " [GLOB.lawlorify[LORE][ply.devilinfo.obligation]]</br>"
|
||||
text += " [GLOB.lawlorify[LORE][ply.devilinfo.banish]]</br></br>"
|
||||
return text
|
||||
|
||||
/datum/game_mode/proc/update_devil_icons_added(datum/mind/devil_mind)
|
||||
var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_DEVIL]
|
||||
var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_DEVIL]
|
||||
hud.join_hud(devil_mind.current)
|
||||
set_antag_hud(devil_mind.current, "devil")
|
||||
|
||||
/datum/game_mode/proc/update_devil_icons_removed(datum/mind/devil_mind)
|
||||
var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_DEVIL]
|
||||
var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_DEVIL]
|
||||
hud.leave_hud(devil_mind.current)
|
||||
set_antag_hud(devil_mind.current, null)
|
||||
|
||||
/datum/game_mode/proc/update_sintouched_icons_added(datum/mind/sintouched_mind)
|
||||
var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_SINTOUCHED]
|
||||
var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_SINTOUCHED]
|
||||
hud.join_hud(sintouched_mind.current)
|
||||
set_antag_hud(sintouched_mind.current, "sintouched")
|
||||
|
||||
/datum/game_mode/proc/update_sintouched_icons_removed(datum/mind/sintouched_mind)
|
||||
var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_SINTOUCHED]
|
||||
var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_SINTOUCHED]
|
||||
hud.leave_hud(sintouched_mind.current)
|
||||
set_antag_hud(sintouched_mind.current, null)
|
||||
|
||||
/datum/game_mode/proc/update_soulless_icons_added(datum/mind/soulless_mind)
|
||||
var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_SOULLESS]
|
||||
var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_SOULLESS]
|
||||
hud.join_hud(soulless_mind.current)
|
||||
set_antag_hud(soulless_mind.current, "soulless")
|
||||
|
||||
/datum/game_mode/proc/update_soulless_icons_removed(datum/mind/soulless_mind)
|
||||
var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_SOULLESS]
|
||||
var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_SOULLESS]
|
||||
hud.leave_hud(soulless_mind.current)
|
||||
set_antag_hud(soulless_mind.current, null)
|
||||
|
||||
@@ -30,9 +30,9 @@
|
||||
melee_damage_lower = 10
|
||||
melee_damage_upper = 15
|
||||
see_in_dark = 8
|
||||
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
|
||||
var/boost = 0
|
||||
bloodcrawl = BLOODCRAWL_EAT
|
||||
see_invisible = SEE_INVISIBLE_MINIMUM
|
||||
var/list/consumed_mobs = list()
|
||||
var/playstyle_string = "<B><font size=3 color='red'>You are an imp,</font> a mischevious creature from hell. You are the lowest rank on the hellish totem pole \
|
||||
Though you are not obligated to help, perhaps by aiding a higher ranking devil, you might just get a promotion. However, you are incapable \
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
explanation_text = "Ensure at least [target_amount] mortals are sintouched."
|
||||
|
||||
/datum/objective/devil/sintouch/check_completion()
|
||||
return target_amount>=ticker.mode.sintouched.len
|
||||
return target_amount>=SSticker.mode.sintouched.len
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -14,11 +14,9 @@
|
||||
ventcrawler = VENTCRAWLER_NONE
|
||||
density = 1
|
||||
pass_flags = 0
|
||||
var/ascended = 0
|
||||
var/ascended = FALSE
|
||||
sight = (SEE_TURFS | SEE_OBJS)
|
||||
status_flags = CANPUSH
|
||||
languages_spoken = ALL //The devil speaks all languages meme
|
||||
languages_understood = ALL //The devil speaks all languages meme
|
||||
mob_size = MOB_SIZE_LARGE
|
||||
var/mob/living/oldform
|
||||
var/list/devil_overlays[DEVIL_TOTAL_LAYERS]
|
||||
@@ -31,6 +29,8 @@
|
||||
create_bodyparts() //initialize bodyparts
|
||||
|
||||
create_internal_organs()
|
||||
|
||||
grant_all_languages(omnitongue=TRUE)
|
||||
..()
|
||||
|
||||
/mob/living/carbon/true_devil/create_internal_organs()
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
/mob/living/carbon/true_devil/proc/convert_to_archdevil()
|
||||
maxHealth = 5000 // not an IMPOSSIBLE amount, but still near impossible.
|
||||
ascended = 1
|
||||
ascended = TRUE
|
||||
health = maxHealth
|
||||
icon_state = "arch_devil"
|
||||
|
||||
@@ -153,7 +153,6 @@
|
||||
S.mind.objectives += newobjective
|
||||
to_chat(S, S.playstyle_string)
|
||||
to_chat(S, "<B>Objective #[1]</B>: [newobjective.explanation_text]")
|
||||
return
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -221,4 +220,4 @@
|
||||
return
|
||||
|
||||
/mob/living/carbon/true_devil/update_damage_overlays() //devils don't have damage overlays.
|
||||
return
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user