mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 03:02:54 +00:00
Merge
This commit is contained in:
@@ -179,6 +179,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
|
||||
/mob/dead/observer/Move(NewLoc, direct)
|
||||
following = null
|
||||
dir = direct
|
||||
if(NewLoc)
|
||||
loc = NewLoc
|
||||
@@ -306,6 +307,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
usr << "No area available."
|
||||
|
||||
usr.loc = pick(L)
|
||||
following = null
|
||||
|
||||
/mob/dead/observer/verb/follow()
|
||||
set category = "Ghost"
|
||||
@@ -325,18 +327,14 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
following = target
|
||||
src << "\blue Now following [target]"
|
||||
spawn(0)
|
||||
var/turf/pos = get_turf(src)
|
||||
while(loc == pos && target && following == target && client)
|
||||
while(target && following == target && client)
|
||||
var/turf/T = get_turf(target)
|
||||
if(!T)
|
||||
break
|
||||
// To stop the ghost flickering.
|
||||
if(loc != T)
|
||||
loc = T
|
||||
pos = loc
|
||||
sleep(15)
|
||||
following = null
|
||||
|
||||
|
||||
/mob/dead/observer/verb/jumptomob() //Moves the ghost instead of just changing the ghosts's eye -Nodrak
|
||||
set category = "Ghost"
|
||||
@@ -361,6 +359,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
if(T && isturf(T)) //Make sure the turf exists, then move the source to that destination.
|
||||
A.loc = T
|
||||
following = null
|
||||
else
|
||||
A << "This mob is not located in the game world."
|
||||
/*
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
//Stand-in until this is made more lore-friendly.
|
||||
/datum/species/xenos
|
||||
name = "Xenomorph"
|
||||
name_plural = "Xenomorphs"
|
||||
|
||||
default_language = "Xenomorph"
|
||||
language = "Hivemind"
|
||||
unarmed_type = /datum/unarmed_attack/claws/strong
|
||||
@@ -40,7 +42,6 @@
|
||||
|
||||
has_organ = list(
|
||||
"heart" = /datum/organ/internal/heart,
|
||||
"lungs" = /datum/organ/internal/lungs,
|
||||
"brain" = /datum/organ/internal/brain/xeno,
|
||||
"plasma vessel" = /datum/organ/internal/xenos/plasmavessel,
|
||||
"hive node" = /datum/organ/internal/xenos/hivenode,
|
||||
@@ -116,7 +117,6 @@
|
||||
|
||||
has_organ = list(
|
||||
"heart" = /datum/organ/internal/heart,
|
||||
"lungs" = /datum/organ/internal/lungs,
|
||||
"brain" = /datum/organ/internal/brain/xeno,
|
||||
"plasma vessel" = /datum/organ/internal/xenos/plasmavessel/queen,
|
||||
"acid gland" = /datum/organ/internal/xenos/acidgland,
|
||||
@@ -155,7 +155,6 @@
|
||||
|
||||
has_organ = list(
|
||||
"heart" = /datum/organ/internal/heart,
|
||||
"lungs" = /datum/organ/internal/lungs,
|
||||
"brain" = /datum/organ/internal/brain/xeno,
|
||||
"plasma vessel" = /datum/organ/internal/xenos/plasmavessel/hunter,
|
||||
"hive node" = /datum/organ/internal/xenos/hivenode,
|
||||
@@ -183,7 +182,6 @@
|
||||
|
||||
has_organ = list(
|
||||
"heart" = /datum/organ/internal/heart,
|
||||
"lungs" = /datum/organ/internal/lungs,
|
||||
"brain" = /datum/organ/internal/brain/xeno,
|
||||
"plasma vessel" = /datum/organ/internal/xenos/plasmavessel/sentinel,
|
||||
"acid gland" = /datum/organ/internal/xenos/acidgland,
|
||||
@@ -214,7 +212,6 @@
|
||||
|
||||
has_organ = list(
|
||||
"heart" = /datum/organ/internal/heart,
|
||||
"lungs" = /datum/organ/internal/lungs,
|
||||
"brain" = /datum/organ/internal/brain/xeno,
|
||||
"egg sac" = /datum/organ/internal/xenos/eggsac,
|
||||
"plasma vessel" = /datum/organ/internal/xenos/plasmavessel/queen,
|
||||
|
||||
@@ -1210,7 +1210,7 @@
|
||||
src << msg
|
||||
|
||||
organ.take_damage(rand(1,3), 0, 0)
|
||||
if(!(organ.status & ORGAN_ROBOT)) //There is no blood in protheses.
|
||||
if(!(organ.status & ORGAN_ROBOT) && !(species.flags & NO_BLOOD)) //There is no blood in protheses.
|
||||
organ.status |= ORGAN_BLEEDING
|
||||
src.adjustToxLoss(rand(1,3))
|
||||
|
||||
|
||||
@@ -102,7 +102,6 @@
|
||||
if(!G) //the grab will delete itself in New if affecting is anchored
|
||||
return
|
||||
M.put_in_active_hand(G)
|
||||
grabbed_by += G
|
||||
G.synch()
|
||||
LAssailant = M
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
/mob/living/carbon/human/tajaran/New(var/new_loc)
|
||||
h_style = "Tajaran Ears"
|
||||
..(new_loc, "Tajaran")
|
||||
..(new_loc, "Tajara")
|
||||
|
||||
/mob/living/carbon/human/unathi/New(var/new_loc)
|
||||
h_style = "Unathi Horns"
|
||||
|
||||
@@ -687,6 +687,7 @@ It can still be worn/put on as normal.
|
||||
for (var/obj/item/weapon/grab/G in target.grabbed_by)
|
||||
if (G.loc == source && G.state >= GRAB_AGGRESSIVE)
|
||||
grabbing = 1
|
||||
break
|
||||
if (!grabbing)
|
||||
slot_to_process = null
|
||||
source << "\red Your grasp was broken before you could restrain [target]!"
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
/datum/species
|
||||
|
||||
var/name // Species name.
|
||||
var/name_plural
|
||||
|
||||
var/icobase = 'icons/mob/human_races/r_human.dmi' // Normal icon set.
|
||||
var/deform = 'icons/mob/human_races/r_def_human.dmi' // Mutated icon set.
|
||||
@@ -202,6 +203,7 @@
|
||||
|
||||
/datum/species/human
|
||||
name = "Human"
|
||||
name_plural = "Humans"
|
||||
language = "Sol Common"
|
||||
primitive = /mob/living/carbon/monkey
|
||||
unarmed_type = /datum/unarmed_attack/punch
|
||||
@@ -213,6 +215,7 @@
|
||||
|
||||
/datum/species/unathi
|
||||
name = "Unathi"
|
||||
name_plural = "Unathi"
|
||||
icobase = 'icons/mob/human_races/r_lizard.dmi'
|
||||
deform = 'icons/mob/human_races/r_def_lizard.dmi'
|
||||
language = "Sinta'unathi"
|
||||
@@ -239,7 +242,8 @@
|
||||
base_color = "#066000"
|
||||
|
||||
/datum/species/tajaran
|
||||
name = "Tajaran"
|
||||
name = "Tajara"
|
||||
name_plural = "Tajaran"
|
||||
icobase = 'icons/mob/human_races/r_tajaran.dmi'
|
||||
deform = 'icons/mob/human_races/r_def_tajaran.dmi'
|
||||
language = "Siik'tajr"
|
||||
@@ -264,6 +268,7 @@
|
||||
|
||||
/datum/species/skrell
|
||||
name = "Skrell"
|
||||
name_plural = "Skrell"
|
||||
icobase = 'icons/mob/human_races/r_skrell.dmi'
|
||||
deform = 'icons/mob/human_races/r_def_skrell.dmi'
|
||||
language = "Skrellian"
|
||||
@@ -278,6 +283,7 @@
|
||||
|
||||
/datum/species/vox
|
||||
name = "Vox"
|
||||
name_plural = "Vox"
|
||||
icobase = 'icons/mob/human_races/r_vox.dmi'
|
||||
deform = 'icons/mob/human_races/r_def_vox.dmi'
|
||||
default_language = "Vox-pidgin"
|
||||
@@ -324,6 +330,7 @@
|
||||
|
||||
/datum/species/vox/armalis
|
||||
name = "Vox Armalis"
|
||||
name_plural = "Vox"
|
||||
icobase = 'icons/mob/human_races/r_armalis.dmi'
|
||||
deform = 'icons/mob/human_races/r_armalis.dmi'
|
||||
rarity_value = 10
|
||||
@@ -364,6 +371,7 @@
|
||||
|
||||
/datum/species/diona
|
||||
name = "Diona"
|
||||
name_plural = "Dionaea"
|
||||
icobase = 'icons/mob/human_races/r_diona.dmi'
|
||||
deform = 'icons/mob/human_races/r_def_plant.dmi'
|
||||
language = "Rootspeak"
|
||||
@@ -428,6 +436,8 @@
|
||||
|
||||
/datum/species/machine
|
||||
name = "Machine"
|
||||
name_plural = "machines"
|
||||
|
||||
icobase = 'icons/mob/human_races/r_machine.dmi'
|
||||
deform = 'icons/mob/human_races/r_machine.dmi'
|
||||
language = "Tradeband"
|
||||
@@ -551,6 +561,7 @@
|
||||
var/has_throw = 1 // Set to draw throw button.
|
||||
var/has_resist = 1 // Set to draw resist button.
|
||||
var/has_internals = 1 // Set to draw the internals toggle button.
|
||||
var/list/equip_slots = list() // Checked by mob_can_equip().
|
||||
|
||||
// Contains information on the position and tag for all inventory slots
|
||||
// to be drawn for the mob. This is fairly delicate, try to avoid messing with it
|
||||
@@ -572,3 +583,18 @@
|
||||
"storage2" = list("loc" = ui_storage2, "slot" = slot_r_store, "state" = "pocket"),
|
||||
"belt" = list("loc" = ui_belt, "slot" = slot_belt, "state" = "belt")
|
||||
)
|
||||
|
||||
/datum/hud_data/New()
|
||||
..()
|
||||
for(var/slot in gear)
|
||||
equip_slots |= gear[slot]["slot"]
|
||||
|
||||
if(has_hands)
|
||||
equip_slots |= slot_l_hand
|
||||
equip_slots |= slot_r_hand
|
||||
equip_slots |= slot_handcuffed
|
||||
|
||||
if(slot_back in equip_slots)
|
||||
equip_slots |= slot_in_backpack
|
||||
|
||||
equip_slots |= slot_legcuffed
|
||||
@@ -177,6 +177,7 @@ var/global/list/damage_icon_parts = list()
|
||||
proc/get_damage_icon_part(damage_state, body_part)
|
||||
if(damage_icon_parts["[damage_state]/[body_part]"] == null)
|
||||
var/icon/DI = new /icon('icons/mob/dam_human.dmi', damage_state) // the damage icon for whole human
|
||||
// TODO: Convert dam_human.dmi to greyscale and blend in species.blood_colour here.
|
||||
DI.Blend(new /icon('icons/mob/dam_mask.dmi', body_part), ICON_MULTIPLY) // mask with this organ's pixels
|
||||
damage_icon_parts["[damage_state]/[body_part]"] = DI
|
||||
return DI
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
|
||||
..()
|
||||
dna.mutantrace = "tajaran"
|
||||
greaterform = "Tajaran"
|
||||
greaterform = "Tajara"
|
||||
add_language("Siik'tajr")
|
||||
|
||||
/mob/living/carbon/monkey/movement_delay()
|
||||
@@ -231,7 +231,6 @@
|
||||
|
||||
M.put_in_active_hand(G)
|
||||
|
||||
grabbed_by += G
|
||||
G.synch()
|
||||
|
||||
LAssailant = M
|
||||
@@ -256,6 +255,7 @@
|
||||
return
|
||||
|
||||
/mob/living/carbon/monkey/attack_animal(mob/living/M as mob)
|
||||
|
||||
if(M.melee_damage_upper == 0)
|
||||
M.emote("[M.friendly] [src]")
|
||||
else
|
||||
|
||||
@@ -861,6 +861,7 @@ var/list/robot_verbs_default = list(
|
||||
spark_system.start()
|
||||
return ..()
|
||||
|
||||
|
||||
/mob/living/silicon/robot/attack_slime(mob/living/carbon/slime/M as mob)
|
||||
if (!ticker)
|
||||
M << "You cannot attack people before the game has started."
|
||||
|
||||
@@ -181,6 +181,9 @@
|
||||
H.internal_organs_by_name["brain"] = B
|
||||
H.internal_organs |= B
|
||||
|
||||
var/datum/organ/external/affecting = H.get_organ("head")
|
||||
affecting.implants -= src
|
||||
|
||||
var/s2h_id = src.computer_id
|
||||
var/s2h_ip= src.lastKnownIP
|
||||
src.computer_id = null
|
||||
|
||||
@@ -250,7 +250,6 @@
|
||||
|
||||
M.put_in_active_hand(G)
|
||||
|
||||
grabbed_by += G
|
||||
G.synch()
|
||||
G.affecting = src
|
||||
LAssailant = M
|
||||
|
||||
@@ -28,6 +28,8 @@
|
||||
del(src)
|
||||
return
|
||||
|
||||
affecting.grabbed_by += src
|
||||
|
||||
hud = new /obj/screen/grab(src)
|
||||
hud.icon_state = "reinforce"
|
||||
hud.name = "reinforce grab"
|
||||
|
||||
@@ -496,7 +496,7 @@
|
||||
name = "Shaved"
|
||||
icon_state = "bald"
|
||||
gender = NEUTER
|
||||
species_allowed = list("Human","Unathi","Tajaran","Skrell","Vox","Machine")
|
||||
species_allowed = list("Human","Unathi","Tajara","Skrell","Vox","Machine")
|
||||
|
||||
watson
|
||||
name = "Watson Mustache"
|
||||
@@ -636,62 +636,62 @@
|
||||
taj_ears
|
||||
name = "Tajaran Ears"
|
||||
icon_state = "ears_plain"
|
||||
species_allowed = list("Tajaran")
|
||||
species_allowed = list("Tajara")
|
||||
|
||||
taj_ears_clean
|
||||
name = "Tajara Clean"
|
||||
icon_state = "hair_clean"
|
||||
species_allowed = list("Tajaran")
|
||||
species_allowed = list("Tajara")
|
||||
|
||||
taj_ears_bangs
|
||||
name = "Tajara Bangs"
|
||||
icon_state = "hair_bangs"
|
||||
species_allowed = list("Tajaran")
|
||||
species_allowed = list("Tajara")
|
||||
|
||||
taj_ears_braid
|
||||
name = "Tajara Braid"
|
||||
icon_state = "hair_tbraid"
|
||||
species_allowed = list("Tajaran")
|
||||
species_allowed = list("Tajara")
|
||||
|
||||
taj_ears_shaggy
|
||||
name = "Tajara Shaggy"
|
||||
icon_state = "hair_shaggy"
|
||||
species_allowed = list("Tajaran")
|
||||
species_allowed = list("Tajara")
|
||||
|
||||
taj_ears_mohawk
|
||||
name = "Tajaran Mohawk"
|
||||
icon_state = "hair_mohawk"
|
||||
species_allowed = list("Tajaran")
|
||||
species_allowed = list("Tajara")
|
||||
|
||||
taj_ears_plait
|
||||
name = "Tajara Plait"
|
||||
icon_state = "hair_plait"
|
||||
species_allowed = list("Tajaran")
|
||||
species_allowed = list("Tajara")
|
||||
|
||||
taj_ears_straight
|
||||
name = "Tajara Straight"
|
||||
icon_state = "hair_straight"
|
||||
species_allowed = list("Tajaran")
|
||||
species_allowed = list("Tajara")
|
||||
|
||||
taj_ears_long
|
||||
name = "Tajara Long"
|
||||
icon_state = "hair_long"
|
||||
species_allowed = list("Tajaran")
|
||||
species_allowed = list("Tajara")
|
||||
|
||||
taj_ears_rattail
|
||||
name = "Tajara Rat Tail"
|
||||
icon_state = "hair_rattail"
|
||||
species_allowed = list("Tajaran")
|
||||
species_allowed = list("Tajara")
|
||||
|
||||
taj_ears_spiky
|
||||
name = "Tajara Spiky"
|
||||
icon_state = "hair_tajspiky"
|
||||
species_allowed = list("Tajaran")
|
||||
species_allowed = list("Tajara")
|
||||
|
||||
taj_ears_messy
|
||||
name = "Tajara Messy"
|
||||
icon_state = "hair_messy"
|
||||
species_allowed = list("Tajaran")
|
||||
species_allowed = list("Tajara")
|
||||
|
||||
vox_quills_short
|
||||
name = "Short Vox Quills"
|
||||
@@ -703,32 +703,32 @@
|
||||
taj_sideburns
|
||||
name = "Tajara Sideburns"
|
||||
icon_state = "facial_mutton"
|
||||
species_allowed = list("Tajaran")
|
||||
species_allowed = list("Tajara")
|
||||
|
||||
taj_mutton
|
||||
name = "Tajara Mutton"
|
||||
icon_state = "facial_mutton"
|
||||
species_allowed = list("Tajaran")
|
||||
species_allowed = list("Tajara")
|
||||
|
||||
taj_pencilstache
|
||||
name = "Tajara Pencilstache"
|
||||
icon_state = "facial_pencilstache"
|
||||
species_allowed = list("Tajaran")
|
||||
species_allowed = list("Tajara")
|
||||
|
||||
taj_moustache
|
||||
name = "Tajara Moustache"
|
||||
icon_state = "facial_moustache"
|
||||
species_allowed = list("Tajaran")
|
||||
species_allowed = list("Tajara")
|
||||
|
||||
taj_goatee
|
||||
name = "Tajara Goatee"
|
||||
icon_state = "facial_goatee"
|
||||
species_allowed = list("Tajaran")
|
||||
species_allowed = list("Tajara")
|
||||
|
||||
taj_smallstache
|
||||
name = "Tajara Smallsatche"
|
||||
icon_state = "facial_smallstache"
|
||||
species_allowed = list("Tajaran")
|
||||
species_allowed = list("Tajara")
|
||||
|
||||
//skin styles - WIP
|
||||
//going to have to re-integrate this with surgery
|
||||
@@ -750,7 +750,7 @@
|
||||
name = "Default tajaran skin"
|
||||
icon_state = "default"
|
||||
icon = 'icons/mob/human_races/r_tajaran.dmi'
|
||||
species_allowed = list("Tajaran")
|
||||
species_allowed = list("Tajara")
|
||||
|
||||
unathi
|
||||
name = "Default Unathi skin"
|
||||
|
||||
@@ -8,10 +8,14 @@ mob/var/last_typed_time
|
||||
var/global/image/typing_indicator
|
||||
|
||||
/mob/proc/set_typing_indicator(var/state)
|
||||
|
||||
if(!typing_indicator)
|
||||
typing_indicator = image('icons/mob/talk.dmi',null,"typing")
|
||||
|
||||
if(client)
|
||||
if(!(client.prefs.toggles & SHOW_TYPING))
|
||||
if(!typing_indicator)
|
||||
typing_indicator = image('icons/mob/talk.dmi',null,"typing")
|
||||
if(client.prefs.toggles & SHOW_TYPING)
|
||||
overlays -= typing_indicator
|
||||
else
|
||||
if(state)
|
||||
if(!typing)
|
||||
overlays += typing_indicator
|
||||
@@ -72,5 +76,10 @@ var/global/image/typing_indicator
|
||||
set desc = "Toggles showing an indicator when you are typing emote or say message."
|
||||
prefs.toggles ^= SHOW_TYPING
|
||||
prefs.save_preferences()
|
||||
src << "You will [(prefs.toggles & CHAT_OOC) ? "no longer" : "now"] display typing indicator."
|
||||
feedback_add_details("admin_verb","TID") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
src << "You will [(prefs.toggles & SHOW_TYPING) ? "no longer" : "now"] display a typing indicator."
|
||||
|
||||
// Clear out any existing typing indicator.
|
||||
if(prefs.toggles & SHOW_TYPING)
|
||||
if(istype(mob)) mob.set_typing_indicator(0)
|
||||
|
||||
feedback_add_details("admin_verb","TID") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
Reference in New Issue
Block a user