Merge branch 'master' into upstream-merge-29611
This commit is contained in:
@@ -31,6 +31,16 @@
|
||||
color_src = 0
|
||||
icon = 'icons/mob/mam_bodyparts.dmi'
|
||||
|
||||
/datum/sprite_accessory/tails/human/bear
|
||||
name = "Bear"
|
||||
icon_state = "bear"
|
||||
icon = 'icons/mob/mam_bodyparts.dmi'
|
||||
|
||||
/datum/sprite_accessory/ears/human/bear
|
||||
name = "Bear"
|
||||
icon_state = "bear"
|
||||
icon = 'icons/mob/mam_bodyparts.dmi'
|
||||
|
||||
/datum/sprite_accessory/tails/human/catbig
|
||||
name = "Cat, Big"
|
||||
icon_state = "catbig"
|
||||
@@ -234,6 +244,16 @@
|
||||
extra = 1
|
||||
extra_color_src = MUTCOLORS2
|
||||
|
||||
/datum/sprite_accessory/mam_tails/bear
|
||||
name = "Bear"
|
||||
icon_state = "bear"
|
||||
icon = 'icons/mob/mam_bodyparts.dmi'
|
||||
|
||||
/datum/sprite_accessory/mam_ears/bear
|
||||
name = "Bear"
|
||||
icon_state = "bear"
|
||||
icon = 'icons/mob/mam_bodyparts.dmi'
|
||||
|
||||
/datum/sprite_accessory/mam_ears/catbig
|
||||
name = "Cat, Big"
|
||||
icon_state = "cat"
|
||||
@@ -444,7 +464,6 @@
|
||||
/datum/sprite_accessory/mam_tails/rabbit
|
||||
name = "Rabbit"
|
||||
icon_state = "rabbit"
|
||||
color_src = 0
|
||||
icon = 'icons/mob/mam_bodyparts.dmi'
|
||||
|
||||
/datum/sprite_accessory/mam_ears/rabbit
|
||||
@@ -575,6 +594,13 @@
|
||||
extra2 = 1
|
||||
icon = 'icons/mob/mam_body_markings.dmi'
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/xeno
|
||||
name = "Xeno"
|
||||
icon_state = "xeno"
|
||||
color_src = MUTCOLORS2
|
||||
extra_color_src = MUTCOLORS3
|
||||
gender_specific = 1
|
||||
|
||||
/******************************************
|
||||
************ Taur Bodies ******************
|
||||
*******************************************/
|
||||
@@ -653,49 +679,67 @@
|
||||
|
||||
//Xeno Dorsal Tubes
|
||||
/datum/sprite_accessory/xeno_dorsal
|
||||
icon = 'icons/mob/exotic_bodyparts.dmi'
|
||||
color_src = 0
|
||||
icon = 'icons/mob/xeno_parts_greyscale.dmi'
|
||||
|
||||
/datum/sprite_accessory/xeno_dorsal/none
|
||||
name = "None"
|
||||
|
||||
/datum/sprite_accessory/xeno_dorsal/normal
|
||||
name = "Dorsal Tubes"
|
||||
icon_state = "dortubes"
|
||||
/datum/sprite_accessory/xeno_dorsal/standard
|
||||
name = "Standard"
|
||||
icon_state = "standard"
|
||||
icon = 'icons/mob/xeno_parts_greyscale.dmi'
|
||||
|
||||
/datum/sprite_accessory/xeno_dorsal/royal
|
||||
name = "Royal"
|
||||
icon_state = "royal"
|
||||
icon = 'icons/mob/xeno_parts_greyscale.dmi'
|
||||
|
||||
/datum/sprite_accessory/xeno_dorsal/down
|
||||
name = "Dorsal Down"
|
||||
icon_state = "down"
|
||||
icon = 'icons/mob/xeno_parts_greyscale.dmi'
|
||||
|
||||
//Xeno Tail
|
||||
/datum/sprite_accessory/xeno_tail
|
||||
icon = 'icons/mob/exotic_bodyparts.dmi'
|
||||
color_src = 0
|
||||
icon = 'icons/mob/xeno_parts_greyscale.dmi'
|
||||
|
||||
/datum/sprite_accessory/xeno_tail/none
|
||||
name = "None"
|
||||
|
||||
/datum/sprite_accessory/xeno_tail/normal
|
||||
/datum/sprite_accessory/xeno_tail/standard
|
||||
name = "Xenomorph Tail"
|
||||
icon_state = "xeno"
|
||||
icon = 'icons/mob/xeno_parts_greyscale.dmi'
|
||||
|
||||
//Xeno Caste Heads
|
||||
//unused as of October 3, 2016
|
||||
/datum/sprite_accessory/xeno_head
|
||||
icon = 'icons/mob/exotic_bodyparts.dmi'
|
||||
color_src = 0
|
||||
icon = 'icons/mob/xeno_parts_greyscale.dmi'
|
||||
|
||||
/datum/sprite_accessory/xeno_head/none
|
||||
name = "None"
|
||||
|
||||
/datum/sprite_accessory/xeno_head/standard
|
||||
name = "Standard"
|
||||
icon_state = "standard"
|
||||
icon = 'icons/mob/xeno_parts_greyscale.dmi'
|
||||
|
||||
/datum/sprite_accessory/xeno_head/hunter
|
||||
name = "Hunter"
|
||||
icon_state = "hunter"
|
||||
|
||||
/datum/sprite_accessory/xeno_head/drone
|
||||
name = "Drone"
|
||||
icon_state = "drone"
|
||||
/datum/sprite_accessory/xeno_head/royal
|
||||
name = "royal"
|
||||
icon_state = "royal"
|
||||
icon = 'icons/mob/xeno_parts_greyscale.dmi'
|
||||
|
||||
/datum/sprite_accessory/xeno_head/hollywood
|
||||
name = "hollywood"
|
||||
icon_state = "hollywood"
|
||||
icon = 'icons/mob/xeno_parts_greyscale.dmi'
|
||||
|
||||
/datum/sprite_accessory/xeno_head/warrior
|
||||
name = "warrior"
|
||||
icon_state = "warrior"
|
||||
icon = 'icons/mob/xeno_parts_greyscale.dmi'
|
||||
|
||||
/datum/sprite_accessory/xeno_head/sentinel
|
||||
name = "Sentinel"
|
||||
icon_state = "sentinel"
|
||||
/*
|
||||
//Slimecoon Parts
|
||||
/datum/sprite_accessory/slimecoon_ears
|
||||
|
||||
@@ -51,9 +51,10 @@
|
||||
|
||||
var/obj/item/item_in_hand = src.get_active_held_item()
|
||||
if(item_in_hand) //this segment checks if the item in your hand is twohanded.
|
||||
if(istype(item_in_hand, /obj/item/weapon/twohanded))
|
||||
if(item_in_hand:wielded == 1)
|
||||
to_chat(usr, "<span class='warning'>Your other hand is too busy holding the [item_in_hand.name]</span>")
|
||||
var/obj/item/weapon/twohanded/TH = item_in_hand
|
||||
if(istype(TH))
|
||||
if(TH.wielded == 1)
|
||||
to_chat(usr, "<span class='warning'>Your other hand is too busy holding [TH]</span>")
|
||||
return
|
||||
var/oindex = active_hand_index
|
||||
active_hand_index = held_index
|
||||
@@ -240,6 +241,12 @@
|
||||
/mob/living/carbon/is_muzzled()
|
||||
return(istype(src.wear_mask, /obj/item/clothing/mask/muzzle))
|
||||
|
||||
/mob/living/carbon/hallucinating()
|
||||
if(hallucination)
|
||||
return TRUE
|
||||
else
|
||||
return FALSE
|
||||
|
||||
/mob/living/carbon/resist_buckle()
|
||||
if(restrained())
|
||||
changeNext_move(CLICK_CD_BREAKOUT)
|
||||
@@ -812,3 +819,4 @@
|
||||
.["Make AI"] = "?_src_=vars;makeai=\ref[src]"
|
||||
.["Modify bodypart"] = "?_src_=vars;editbodypart=\ref[src]"
|
||||
.["Modify organs"] = "?_src_=vars;editorgans=\ref[src]"
|
||||
.["Hallucinate"] = "?_src_=vars;hallucinate=\ref[src]"
|
||||
|
||||
@@ -9,11 +9,11 @@
|
||||
real_name = "Test Dummy"
|
||||
status_flags = GODMODE|CANPUSH
|
||||
|
||||
/mob/living/carbon/human/dummy/New(loc)
|
||||
INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy)
|
||||
|
||||
/mob/living/carbon/human/dummy/Destroy()
|
||||
..()
|
||||
if(!initialized)
|
||||
args[1] = FALSE
|
||||
Initialize(arglist(args))
|
||||
return QDEL_HINT_QUEUE
|
||||
|
||||
/mob/living/carbon/human/dummy/Life()
|
||||
return
|
||||
|
||||
@@ -143,7 +143,7 @@
|
||||
var/protection = (prot["head"] + prot["arms"] + prot["feet"] + prot["legs"] + prot["groin"] + prot["chest"] + prot["hands"])/7
|
||||
return protection
|
||||
|
||||
/mob/living/carbon/human/can_use_guns(var/obj/item/weapon/gun/G)
|
||||
/mob/living/carbon/human/can_use_guns(var/obj/item/weapon/G)
|
||||
. = ..()
|
||||
|
||||
if(G.trigger_guard == TRIGGER_GUARD_NORMAL)
|
||||
|
||||
@@ -63,6 +63,7 @@
|
||||
return list(
|
||||
head,
|
||||
wear_mask,
|
||||
wear_neck,
|
||||
glasses,
|
||||
ears,
|
||||
)
|
||||
@@ -171,7 +172,7 @@
|
||||
dropItemToGround(belt)
|
||||
w_uniform = null
|
||||
update_suit_sensors()
|
||||
if(!QDELETED(src))
|
||||
if(!QDELETED(src))
|
||||
update_inv_w_uniform()
|
||||
else if(I == gloves)
|
||||
gloves = null
|
||||
|
||||
@@ -79,6 +79,30 @@ datum/species/mammal
|
||||
return TRUE
|
||||
//HERBIVOROUS//
|
||||
|
||||
//Alien//
|
||||
/datum/species/xeno
|
||||
// A cloning mistake, crossing human and xenomorph DNA
|
||||
name = "xeno"
|
||||
id = "xeno"
|
||||
say_mod = "hisses"
|
||||
default_color = "00FF00"
|
||||
species_traits = list(MUTCOLORS,LIPS,DIGITIGRADE,PIERCEIMMUNE)
|
||||
mutant_bodyparts = list("xenotail", "xenohead", "xenodorsal", "taur","mam_body_markings")
|
||||
default_features = list("xenotail"="xeno","xenohead"="standard","xenodorsal"="standard","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None","mam_body_markings" = "xeno")
|
||||
armor = 15
|
||||
heatmod = 1.7
|
||||
no_equip = list(slot_head)
|
||||
attack_verb = "slash"
|
||||
attack_sound = 'sound/weapons/slash.ogg'
|
||||
miss_sound = 'sound/weapons/slashmiss.ogg'
|
||||
meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno
|
||||
skinned_type = /obj/item/stack/sheet/animalhide/xeno
|
||||
exotic_bloodtype = "L"
|
||||
damage_overlay_type = "xeno"
|
||||
roundstart = 1
|
||||
|
||||
//Praise the Omnissiah, A challange worthy of my skills - HS
|
||||
|
||||
//EXOTIC//
|
||||
//These races will likely include lots of downsides and upsides. Keep them relatively balanced.//
|
||||
/*
|
||||
|
||||
@@ -378,8 +378,7 @@
|
||||
adjust_drugginess(-1)
|
||||
|
||||
if(hallucination)
|
||||
spawn handle_hallucinations()
|
||||
hallucination = max(hallucination-2,0)
|
||||
handle_hallucinations()
|
||||
|
||||
//used in human and monkey handle_environment()
|
||||
/mob/living/carbon/proc/natural_bodytemperature_stabilization()
|
||||
|
||||
@@ -140,7 +140,7 @@
|
||||
return 0
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/monkey/can_use_guns(var/obj/item/weapon/gun/G)
|
||||
/mob/living/carbon/monkey/can_use_guns(var/obj/item/weapon/G)
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/monkey/angry
|
||||
|
||||
@@ -326,7 +326,7 @@
|
||||
/datum/emote/living/surrender
|
||||
key = "surrender"
|
||||
key_third_person = "surrenders"
|
||||
message = "puts their hands on their head and falls to the ground, they surrender%s!"
|
||||
message = "puts their hands on their head and falls to the ground, they surrender!"
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
|
||||
/datum/emote/living/surrender/run_emote(mob/user, params)
|
||||
|
||||
@@ -754,7 +754,7 @@
|
||||
var/turf/T = get_turf(src)
|
||||
if(!T)
|
||||
return 0
|
||||
if(T.z == ZLEVEL_CENTCOM) //dont detect mobs on centcomm
|
||||
if(T.z == ZLEVEL_CENTCOM) //dont detect mobs on centcom
|
||||
return 0
|
||||
if(T.z >= ZLEVEL_SPACEMAX)
|
||||
return 0
|
||||
@@ -795,7 +795,7 @@
|
||||
else
|
||||
to_chat(src, "<span class='warning'>You don't have the dexterity to do this!</span>")
|
||||
return
|
||||
/mob/living/proc/can_use_guns(var/obj/item/weapon/gun/G)
|
||||
/mob/living/proc/can_use_guns(var/obj/item/weapon/G)
|
||||
if (G.trigger_guard != TRIGGER_GUARD_ALLOW_ALL && !IsAdvancedToolUser())
|
||||
to_chat(src, "<span class='warning'>You don't have the dexterity to do this!</span>")
|
||||
return 0
|
||||
|
||||
@@ -18,7 +18,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
|
||||
|
||||
// Faction
|
||||
"t" = "Syndicate",
|
||||
"y" = "Centcom",
|
||||
"y" = "CentCom",
|
||||
|
||||
// Species
|
||||
"b" = "binary",
|
||||
@@ -53,7 +53,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
|
||||
|
||||
// Faction
|
||||
"å" = "Syndicate",
|
||||
"í" = "Centcom",
|
||||
"í" = "CentCom",
|
||||
|
||||
// Species
|
||||
"è" = "binary",
|
||||
|
||||
@@ -331,7 +331,7 @@
|
||||
/mob/living/silicon/pai/proc/downloadSoftware()
|
||||
var/dat = ""
|
||||
|
||||
dat += "<h2>Centcom pAI Module Subversion Network</h2><br>"
|
||||
dat += "<h2>CentCom pAI Module Subversion Network</h2><br>"
|
||||
dat += "<pre>Remaining Available Memory: [src.ram]</pre><br>"
|
||||
dat += "<p style=\"text-align:center\"><b>Trunks available for checkout</b><br>"
|
||||
|
||||
@@ -619,7 +619,8 @@
|
||||
src.paiInterface()
|
||||
if(hackprogress >= 100)
|
||||
src.hackprogress = 0
|
||||
src.cable.machine:open()
|
||||
var/obj/machinery/door/D = cable.machine
|
||||
D.open()
|
||||
sleep(50) // Update every 5 seconds
|
||||
|
||||
// Digital Messenger
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
desc = "It's Officer Beep O'sky's smaller, just-as aggressive cousin, Pipsqueak."
|
||||
|
||||
/mob/living/simple_animal/bot/secbot/beepsky/jr/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
resize = 0.8
|
||||
update_transform()
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
radio_channel = "AI Private"
|
||||
|
||||
/mob/living/simple_animal/bot/secbot/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
icon_state = "secbot[on]"
|
||||
spawn(3)
|
||||
var/datum/job/detective/J = new/datum/job/detective
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
break
|
||||
|
||||
/mob/living/simple_animal/pet/dog/corgi/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
regenerate_icons()
|
||||
|
||||
|
||||
@@ -296,7 +296,7 @@
|
||||
var/saved_head //path
|
||||
|
||||
/mob/living/simple_animal/pet/dog/corgi/Ian/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
//parent call must happen first to ensure IAN
|
||||
//is not in nullspace when child puppies spawn
|
||||
Read_Memory()
|
||||
|
||||
@@ -176,7 +176,7 @@
|
||||
else
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/drone/cogscarab/can_use_guns(obj/item/weapon/gun/G)
|
||||
/mob/living/simple_animal/drone/cogscarab/can_use_guns(obj/item/weapon/G)
|
||||
return GLOB.ratvar_awakens
|
||||
|
||||
/mob/living/simple_animal/drone/cogscarab/get_armor_effectiveness()
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/mob/living/simple_animal/hostile/guardian/fire/AttackingTarget()
|
||||
. = ..()
|
||||
if(. && ishuman(target) && target != summoner)
|
||||
new /obj/effect/hallucination/delusion(target.loc,target,"custom",200,0, icon_state,icon)
|
||||
new /datum/hallucination/delusion(target,TRUE,"custom",200,0, icon_state,icon)
|
||||
|
||||
/mob/living/simple_animal/hostile/guardian/fire/Crossed(AM as mob|obj)
|
||||
..()
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
loot = list(/obj/effect/decal/cleanable/robot_debris)
|
||||
|
||||
/mob/living/simple_animal/hostile/hivebot/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
deathmessage = "[src] blows apart!"
|
||||
|
||||
/mob/living/simple_animal/hostile/hivebot/range
|
||||
@@ -63,4 +63,4 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/hivebot/death(gibbed)
|
||||
do_sparks(3, TRUE, src)
|
||||
..(1)
|
||||
..(1)
|
||||
|
||||
@@ -57,6 +57,7 @@ Difficulty: Hard
|
||||
ranged_cooldown_time = 40
|
||||
aggro_vision_range = 21 //so it can see to one side of the arena to the other
|
||||
loot = list(/obj/item/weapon/hierophant_club)
|
||||
crusher_loot = list(/obj/item/weapon/hierophant_club)
|
||||
wander = FALSE
|
||||
var/burst_range = 3 //range on burst aoe
|
||||
var/beam_range = 5 //range on cross blast beams
|
||||
|
||||
@@ -325,6 +325,9 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
|
||||
return B.eye_blind
|
||||
return 0
|
||||
|
||||
/mob/proc/hallucinating()
|
||||
return FALSE
|
||||
|
||||
/proc/is_special_character(mob/M) // returns 1 for special characters and 2 for heroes of gamemode //moved out of admins.dm because things other than admin procs were calling this.
|
||||
if(!SSticker.HasRoundStarted())
|
||||
return 0
|
||||
|
||||
Reference in New Issue
Block a user