mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-01-03 05:52:43 +00:00
[MIRROR] Adds unique projectile hit messages to simplemobs
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
// Reorganized and somewhat cleaned up.
|
||||
// AI code has been made into a datum, inside the AI module folder.
|
||||
|
||||
|
||||
/mob/living/simple_mob
|
||||
name = "animal"
|
||||
desc = ""
|
||||
@@ -59,6 +60,7 @@
|
||||
var/harm_intent_damage = 3 // How much an unarmed harm click does to this mob.
|
||||
var/list/loot_list = list() // The list of lootable objects to drop, with "/path = prob%" structure
|
||||
var/obj/item/weapon/card/id/myid// An ID card if they have one to give them access to stuff.
|
||||
var/organ_names = /decl/mob_organ_names //'False' bodyparts that can be shown as hit by projectiles in place of the default humanoid bodyplan.
|
||||
|
||||
//Mob environment settings
|
||||
var/minbodytemp = 250 // Minimum "okay" temperature in kelvin
|
||||
@@ -176,11 +178,18 @@
|
||||
if(has_eye_glow)
|
||||
add_eyes()
|
||||
|
||||
<<<<<<< HEAD
|
||||
if(!IsAdvancedToolUser()) //CHOMPSTATION edit: Moved here so the verb is useable before initialising vorgans.
|
||||
verbs |= /mob/living/simple_mob/proc/animal_nom
|
||||
verbs |= /mob/living/proc/shred_limb
|
||||
verbs |= /mob/living/simple_mob/proc/nutrition_heal
|
||||
|
||||
||||||| parent of e5346a3920... Merge pull request #11675 from VOREStation/upstream-merge-8250
|
||||
=======
|
||||
if(organ_names)
|
||||
organ_names = GET_DECL(organ_names)
|
||||
|
||||
>>>>>>> e5346a3920... Merge pull request #11675 from VOREStation/upstream-merge-8250
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/Destroy()
|
||||
@@ -297,4 +306,7 @@
|
||||
if(understands_common && speaking?.name == LANGUAGE_GALCOM)
|
||||
return TRUE
|
||||
return ..()
|
||||
//Vorestation Add End
|
||||
//Vorestation Add End
|
||||
|
||||
/decl/mob_organ_names
|
||||
var/list/hit_zones = list("body") //When in doubt, it's probably got a body.
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
response_disarm = "shoos"
|
||||
response_harm = "hits"
|
||||
|
||||
organ_names = /decl/mob_organ_names/quadruped
|
||||
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/melee
|
||||
|
||||
internal_organs = list(\
|
||||
@@ -20,3 +22,6 @@
|
||||
butchery_loot = list(\
|
||||
/obj/item/stack/animalhide = 3\
|
||||
)
|
||||
|
||||
/decl/mob_organ_names/quadruped //Most subtypes have this basic body layout.
|
||||
hit_zones = list("head", "torso", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "tail")
|
||||
@@ -16,6 +16,8 @@
|
||||
attacktext = list("nipped")
|
||||
friendly = list("prods")
|
||||
|
||||
organ_names = /decl/mob_organ_names/borer
|
||||
|
||||
status_flags = CANPUSH
|
||||
pass_flags = PASSTABLE
|
||||
movement_cooldown = 5
|
||||
@@ -266,3 +268,7 @@
|
||||
continue
|
||||
else if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears))
|
||||
to_chat(M, "[src.true_name] whispers to [host], \"[message]\"")
|
||||
|
||||
|
||||
/decl/mob_organ_names/borer
|
||||
hit_zones = list("head", "central segment", "tail segment")
|
||||
@@ -20,6 +20,8 @@ GLOBAL_VAR_INIT(chicken_count, 0) // How mant chickens DO we have?
|
||||
response_harm = "kicks"
|
||||
attacktext = list("pecked")
|
||||
|
||||
organ_names = /decl/mob_organ_names/chicken
|
||||
|
||||
has_langs = list("Bird")
|
||||
|
||||
say_list_type = /datum/say_list/chicken
|
||||
@@ -159,9 +161,16 @@ GLOBAL_VAR_INIT(chicken_count, 0) // How mant chickens DO we have?
|
||||
speak = list("Cherp.","Cherp?","Chirrup.","Cheep!")
|
||||
emote_hear = list("cheeps")
|
||||
emote_see = list("pecks at the ground","flaps its tiny wings")
|
||||
<<<<<<< HEAD
|
||||
|
||||
//YW Addition
|
||||
/mob/living/simple_mob/animal/passive/chicken/clucky
|
||||
name = "Commander Clucky"
|
||||
real_name = "Commander Clucky"
|
||||
desc = "It's Commander Clucky!"
|
||||
||||||| parent of e5346a3920... Merge pull request #11675 from VOREStation/upstream-merge-8250
|
||||
=======
|
||||
|
||||
/decl/mob_organ_names/chicken
|
||||
hit_zones = list("head", "body", "left wing", "right wing", "left leg", "right leg", "tendies")
|
||||
>>>>>>> e5346a3920... Merge pull request #11675 from VOREStation/upstream-merge-8250
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
response_harm = "kicks"
|
||||
attacktext = list("kicked")
|
||||
|
||||
organ_names = /decl/mob_organ_names/cow
|
||||
|
||||
say_list_type = /datum/say_list/cow
|
||||
|
||||
meat_amount = 6
|
||||
@@ -64,4 +66,7 @@
|
||||
/datum/say_list/cow
|
||||
speak = list("moo?","moo","MOOOOOO")
|
||||
emote_hear = list("brays", "moos","moos hauntingly")
|
||||
emote_see = list("shakes its head")
|
||||
emote_see = list("shakes its head")
|
||||
|
||||
/decl/mob_organ_names/cow
|
||||
hit_zones = list("head", "torso", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "udder")
|
||||
@@ -83,6 +83,9 @@
|
||||
response_disarm = "gently pushes aside"
|
||||
response_harm = "punches"
|
||||
|
||||
organ_names = /decl/mob_organ_names/spider
|
||||
|
||||
|
||||
melee_damage_lower = 18
|
||||
melee_damage_upper = 30
|
||||
attack_sharp = TRUE
|
||||
@@ -141,3 +144,6 @@
|
||||
|
||||
if(poison_per_bite)
|
||||
poison_per_bite *= 1.3
|
||||
|
||||
/decl/mob_organ_names/spider
|
||||
hit_zones = list("cephalothorax", "abdomen", "left forelegs", "right forelegs", "left hind legs", "right hind legs", "pedipalp", "mouthparts")
|
||||
@@ -16,6 +16,8 @@
|
||||
response_harm = "stomps"
|
||||
friendly = "pinches"
|
||||
|
||||
organ_names = /decl/mob_organ_names/crab
|
||||
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/crab
|
||||
|
||||
say_list_type = /datum/say_list/crab
|
||||
@@ -54,4 +56,7 @@
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat/crab
|
||||
name = "meat"
|
||||
desc = "A chunk of meat."
|
||||
icon_state = "crustacean-meat"
|
||||
icon_state = "crustacean-meat"
|
||||
|
||||
/decl/mob_organ_names/crab
|
||||
hit_zones = list("cephalothorax", "abdomen", "left walking legs", "right walking legs", "left swimming legs", "right swimming legs", "left pincer", "right pincer")
|
||||
@@ -18,6 +18,8 @@
|
||||
plane = TURF_PLANE
|
||||
layer = UNDERWATER_LAYER
|
||||
|
||||
organ_names = /decl/mob_organ_names/fish
|
||||
|
||||
holder_type = /obj/item/weapon/holder/fish
|
||||
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat/fish
|
||||
@@ -320,3 +322,6 @@
|
||||
catalogue_data = list(/datum/category_item/catalogue/fauna/murkin)
|
||||
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat/sif/murkfish
|
||||
|
||||
/decl/mob_organ_names/fish
|
||||
hit_zones = list("head", "body", "dorsal fin", "left pectoral fin", "right pectoral fin", "tail fin")
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
icon_dead = "yithian_dead"
|
||||
icon = 'icons/jungle.dmi'
|
||||
|
||||
organ_names = /decl/mob_organ_names/yithian
|
||||
|
||||
// Same stats as lizards.
|
||||
health = 5
|
||||
maxHealth = 5
|
||||
@@ -23,7 +25,15 @@
|
||||
icon_dead = "tindalos_dead"
|
||||
icon = 'icons/jungle.dmi'
|
||||
|
||||
organ_names = /decl/mob_organ_names/tindalos
|
||||
|
||||
// Same stats as lizards.
|
||||
health = 5
|
||||
maxHealth = 5
|
||||
mob_size = MOB_MINISCULE
|
||||
mob_size = MOB_MINISCULE
|
||||
|
||||
/decl/mob_organ_names/yithian
|
||||
hit_zones = list("head", "abdomen", "left foreleg", "right foreleg", "left hind leg", "right hind leg")
|
||||
|
||||
/decl/mob_organ_names/tindalos
|
||||
hit_zones = list("head", "thorax", "abdomen", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "left middle leg", "right middle leg")
|
||||
@@ -14,6 +14,8 @@
|
||||
response_disarm = "pushes aside"
|
||||
response_harm = "hits"
|
||||
|
||||
organ_names = /decl/mob_organ_names/penguin
|
||||
|
||||
harm_intent_damage = 5
|
||||
melee_damage_lower = 10
|
||||
melee_damage_upper = 15
|
||||
@@ -25,3 +27,6 @@
|
||||
name = "Tux"
|
||||
desc = "A penguin that has been known to associate with gnus."
|
||||
speak_emote = list("interjects")
|
||||
|
||||
/decl/mob_organ_names/penguin
|
||||
hit_zones = list("chest", "left leg", "right leg", "left flipper", "right flipper", "head")
|
||||
@@ -74,10 +74,10 @@
|
||||
|
||||
/datum/ai_holder/simple_mob/passive/possum/poppy
|
||||
var/static/list/aaa_words = list(
|
||||
"delaminat",
|
||||
"meteor",
|
||||
"fire",
|
||||
"breach",
|
||||
"delaminat",
|
||||
"meteor",
|
||||
"fire",
|
||||
"breach",
|
||||
"loose",
|
||||
"level 7",
|
||||
"level seven",
|
||||
@@ -127,6 +127,7 @@
|
||||
response_disarm = "gently pushes aside"
|
||||
response_harm = "stamps on"
|
||||
density = FALSE
|
||||
organ_names = /decl/mob_organ_names/possum
|
||||
minbodytemp = 223
|
||||
maxbodytemp = 323
|
||||
universal_speak = FALSE
|
||||
@@ -195,5 +196,12 @@
|
||||
icon_dead = "poppy_dead"
|
||||
icon_rest = "poppy_dead"
|
||||
tt_desc = "Didelphis astrum salutem"
|
||||
organ_names = /decl/mob_organ_names/poppy
|
||||
holder_type = /obj/item/weapon/holder/possum/poppy
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/passive/possum/poppy
|
||||
|
||||
/decl/mob_organ_names/possum
|
||||
hit_zones = list("head", "body", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "pouch")
|
||||
|
||||
/decl/mob_organ_names/poppy
|
||||
hit_zones = list("head", "body", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "pouch", "cute little jacket")
|
||||
@@ -29,6 +29,7 @@
|
||||
response_help = "pets"
|
||||
response_disarm = "gently moves aside"
|
||||
response_harm = "swats"
|
||||
organ_names = /decl/mob_organ_names/bird
|
||||
|
||||
say_list_type = /datum/say_list/bird
|
||||
holder_type = /obj/item/weapon/holder/bird
|
||||
@@ -84,3 +85,6 @@
|
||||
tt_desc = "E Streptopelia risoria" // This is actually disputed IRL but since we can't tell the future it'll stay the same for 500+ years.
|
||||
icon_scale_x = 0.5
|
||||
icon_scale_y = 0.5
|
||||
|
||||
/decl/mob_organ_names/bird
|
||||
hit_zones = list("head", "chest", "left leg", "right leg", "left wing", "right wing")
|
||||
@@ -89,6 +89,7 @@
|
||||
icon_living = "corgi"
|
||||
icon_dead = "corgi_dead"
|
||||
holder_type = /obj/item/weapon/holder/corgi
|
||||
organ_names = /decl/mob_organ_names/corgi
|
||||
|
||||
/mob/living/simple_mob/animal/passive/dog/corgi/puppy
|
||||
name = "corgi puppy"
|
||||
@@ -280,4 +281,7 @@
|
||||
desc = "It's a brittany spaniel."
|
||||
icon_state = "brittany"
|
||||
icon_living = "brittany"
|
||||
icon_dead = "brittany_dead"
|
||||
icon_dead = "brittany_dead"
|
||||
|
||||
/decl/mob_organ_names/corgi
|
||||
hit_zones = list("head", "body", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "tail", "heart") //You monster.
|
||||
@@ -38,6 +38,8 @@
|
||||
attack_edge = 1 // Razor-edged wings, and 'claws' made for digging through ice.
|
||||
attacktext = list("nipped", "bit", "cut", "clawed")
|
||||
|
||||
organ_names = /decl/mob_organ_names/bird
|
||||
|
||||
tame_items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/sliceable/bread = 90,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/slice/bread = 25
|
||||
|
||||
@@ -47,6 +47,8 @@
|
||||
base_attack_cooldown = 1.5 SECONDS
|
||||
attacktext = list("nipped", "bit", "pinched")
|
||||
|
||||
organ_names = /decl/mob_organ_names/frostfly
|
||||
|
||||
projectiletype = /obj/item/projectile/energy/blob/freezing
|
||||
|
||||
special_attack_cooldown = 5 SECONDS
|
||||
@@ -170,3 +172,6 @@
|
||||
|
||||
F.energy = max(0, F.energy - 1) // The AI will eventually flee.
|
||||
|
||||
|
||||
/decl/mob_organ_names/frostfly
|
||||
hit_zones = list("head", "thorax", "abdomen", "left vestigal wing", "right vestigal wing", "left legs", "right legs")
|
||||
@@ -52,6 +52,8 @@
|
||||
|
||||
attacktext = list("bit", "buffeted", "slashed")
|
||||
|
||||
organ_names = /decl/mob_organ_names/smallflying
|
||||
|
||||
tame_items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown = 90,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat/crab = 10,
|
||||
@@ -123,3 +125,6 @@
|
||||
return
|
||||
else if(prob(1))
|
||||
hostile = initial(hostile)
|
||||
|
||||
/decl/mob_organ_names/smallflying
|
||||
hit_zones = list("body", "left wing", "right wing") //For flying things too tiny to be granular
|
||||
@@ -58,6 +58,9 @@
|
||||
response_disarm = "nudges"
|
||||
response_harm = "kicks"
|
||||
|
||||
organ_names = /decl/mob_organ_names/hare
|
||||
|
||||
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
|
||||
say_list_type = /datum/say_list/hare
|
||||
@@ -65,4 +68,7 @@
|
||||
/datum/say_list/hare
|
||||
speak = list("Snrf...","Crk!")
|
||||
emote_hear = list("crackles","sniffles")
|
||||
emote_see = list("stomps the ground", "sniffs the air", "chews on something")
|
||||
emote_see = list("stomps the ground", "sniffs the air", "chews on something")
|
||||
|
||||
/decl/mob_organ_names/hare
|
||||
hit_zones = list("head", "chest", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "left head spike", "right head spike")
|
||||
@@ -81,6 +81,8 @@
|
||||
attacktext = list("clawed", "pinched", "crushed")
|
||||
speak_emote = list("clicks")
|
||||
|
||||
organ_names = /decl/mob_organ_names/crab
|
||||
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/melee/hooligan
|
||||
say_list_type = /datum/say_list/crab
|
||||
|
||||
|
||||
@@ -47,6 +47,8 @@
|
||||
base_attack_cooldown = 2 SECONDS
|
||||
attacktext = list("gouged", "bit", "cut", "clawed", "whipped")
|
||||
|
||||
organ_names = /decl/mob_organ_names/kururak
|
||||
|
||||
armor = list(
|
||||
"melee" = 30,
|
||||
"bullet" = 15,
|
||||
@@ -421,3 +423,6 @@
|
||||
evasion = 20
|
||||
bleeding_rate_percent = 0.7
|
||||
attack_speed_percent = 0.8
|
||||
|
||||
/decl/mob_organ_names/kururak
|
||||
hit_zones = list("head", "chest", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "far left tail", "far right tail", "left middle tail", "right middle tail")
|
||||
@@ -69,6 +69,8 @@
|
||||
attack_sharp = TRUE
|
||||
attacktext = list("nipped", "bit", "pinched")
|
||||
|
||||
organ_names = /decl/mob_organ_names/leech
|
||||
|
||||
armor = list(
|
||||
"melee" = 10,
|
||||
"bullet" = 15,
|
||||
@@ -497,3 +499,6 @@
|
||||
holder.a_intent = I_HURT
|
||||
else
|
||||
holder.a_intent = I_HURT
|
||||
|
||||
/decl/mob_organ_names/leech
|
||||
hit_zones = list("mouthparts", "central segment", "tail segment")
|
||||
@@ -48,6 +48,8 @@
|
||||
base_attack_cooldown = 1.5 SECONDS
|
||||
attacktext = list("nipped", "bit", "pinched")
|
||||
|
||||
organ_names = /decl/mob_organ_names/moth
|
||||
|
||||
projectiletype = /obj/item/projectile/energy/blob
|
||||
|
||||
special_attack_cooldown = 10 SECONDS
|
||||
@@ -78,7 +80,6 @@
|
||||
threaten_sound = 'sound/effects/spray3.ogg'
|
||||
stand_down_sound = 'sound/effects/squelch1.ogg'
|
||||
|
||||
|
||||
/obj/effect/effect/smoke/elemental/mothspore
|
||||
name = "spore cloud"
|
||||
desc = "A dust cloud filled with disorienting bacterial spores."
|
||||
@@ -141,3 +142,6 @@
|
||||
if(energy >= 20)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/decl/mob_organ_names/moth
|
||||
hit_zones = list("head", "thorax", "abdomen", "left forewing", "left hindwing", "right forewing", "right hindwing", "left foreleg", "right foreleg", "left hindleg", "right hindleg")
|
||||
@@ -29,6 +29,8 @@
|
||||
response_disarm = "rolls over"
|
||||
response_harm = "stomps on"
|
||||
|
||||
organ_names = /decl/mob_organ_names/pillbug
|
||||
|
||||
armor = list(
|
||||
"melee" = 30,
|
||||
"bullet" = 10,
|
||||
@@ -39,7 +41,6 @@
|
||||
"rad" = 100
|
||||
)
|
||||
|
||||
// The frostfly's body is incredibly cold at all times, natural resistance to things trying to burn it.
|
||||
armor_soak = list(
|
||||
"melee" = 10,
|
||||
"bullet" = 0,
|
||||
@@ -48,4 +49,7 @@
|
||||
"bomb" = 0,
|
||||
"bio" = 0,
|
||||
"rad" = 0
|
||||
)
|
||||
)
|
||||
|
||||
/decl/mob_organ_names/pillbug
|
||||
hit_zones = list("cephalon", "pereon", "pleon", "left forelegs", "right forelegs", "left hind legs", "right hind legs")
|
||||
@@ -42,6 +42,8 @@
|
||||
melee_attack_delay = 1 SECOND
|
||||
attacktext = list("mauled")
|
||||
|
||||
organ_names = /decl/mob_organ_names/savik
|
||||
|
||||
player_msg = "You have the ability to <b>berserk at will</b>, which will grant strong physical bonuses for \
|
||||
a short period of time, however it will tire you and you will be much weaker for awhile after it expires."
|
||||
|
||||
@@ -79,4 +81,13 @@
|
||||
set desc = "Enrage and become vastly stronger for a period of time, however you will be weaker afterwards."
|
||||
set category = "Abilities"
|
||||
|
||||
<<<<<<< HEAD
|
||||
add_modifier(/datum/modifier/berserk, 30 SECONDS)
|
||||
||||||| parent of e5346a3920... Merge pull request #11675 from VOREStation/upstream-merge-8250
|
||||
add_modifier(/datum/modifier/berserk, 30 SECONDS)
|
||||
=======
|
||||
add_modifier(/datum/modifier/berserk, 30 SECONDS)
|
||||
|
||||
/decl/mob_organ_names/savik
|
||||
hit_zones = list("head", "torso", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "right bone plate", "left bone plate", "tail", "left claw", "right claw")
|
||||
>>>>>>> e5346a3920... Merge pull request #11675 from VOREStation/upstream-merge-8250
|
||||
|
||||
@@ -55,6 +55,8 @@
|
||||
attack_edge = TRUE
|
||||
attacktext = list("gouged")
|
||||
|
||||
organ_names = /decl/mob_organ_names/shantak
|
||||
|
||||
say_list_type = /datum/say_list/shantak
|
||||
|
||||
/datum/say_list/shantak
|
||||
@@ -107,3 +109,6 @@
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/passive
|
||||
makes_dirt = 0
|
||||
faction = "neutral"
|
||||
|
||||
/decl/mob_organ_names/shantak
|
||||
hit_zones = list("head", "torso", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "tail", "mane", "snout")
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
response_disarm = "gently pushes aside the"
|
||||
response_harm = "hits the"
|
||||
|
||||
organ_names = /decl/mob_organ_names/smallflying
|
||||
|
||||
harm_intent_damage = 10
|
||||
|
||||
melee_damage_lower = 5
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
attack_sound = 'sound/weapons/bite.ogg'
|
||||
attacktext = list("bitten")
|
||||
|
||||
organ_names = /decl/mob_organ_names/fish
|
||||
|
||||
meat_amount = 1
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
attacktext = list("pecked")
|
||||
attack_sound = 'sound/weapons/bite.ogg'
|
||||
|
||||
organ_names = /decl/mob_organ_names/goose
|
||||
|
||||
has_langs = list("Bird")
|
||||
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
@@ -41,4 +43,7 @@
|
||||
set desc = "Enrage and become vastly stronger for a period of time, however you will be weaker afterwards."
|
||||
set category = "Abilities"
|
||||
|
||||
add_modifier(/datum/modifier/berserk, 30 SECONDS)
|
||||
add_modifier(/datum/modifier/berserk, 30 SECONDS)
|
||||
|
||||
/decl/mob_organ_names/goose
|
||||
hit_zones = list("head", "chest", "left leg", "right leg", "left wing", "right wing", "neck")
|
||||
@@ -29,6 +29,8 @@
|
||||
|
||||
attacktext = list("slammed")
|
||||
|
||||
organ_names = /decl/mob_organ_names
|
||||
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/inert
|
||||
|
||||
mob_class = MOB_CLASS_ABERRATION // It's a monster.
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
pass_flags = PASSBLOB | PASSTABLE
|
||||
faction = "blob"
|
||||
|
||||
organ_names = /decl/mob_organ_names/blob
|
||||
|
||||
heat_damage_per_tick = 0
|
||||
cold_damage_per_tick = 0
|
||||
min_oxy = 0
|
||||
@@ -82,3 +84,6 @@
|
||||
break
|
||||
|
||||
return ally
|
||||
|
||||
/decl/mob_organ_names/blob
|
||||
hit_zones = list("mass")
|
||||
@@ -24,6 +24,8 @@
|
||||
attack_sound = 'sound/effects/slime_squish.ogg'
|
||||
say_list_type = /datum/say_list/spore
|
||||
|
||||
organ_names = /decl/mob_organ_names/spore
|
||||
|
||||
var/mob/living/carbon/human/infested = null // The human this thing is totally not making into a zombie.
|
||||
var/can_infest = FALSE
|
||||
var/is_infesting = FALSE
|
||||
@@ -151,3 +153,6 @@
|
||||
if(helpers)
|
||||
to_chat(src, span("notice", "Your attack is assisted by [helpers] other spore\s."))
|
||||
return damage_to_do
|
||||
|
||||
/decl/mob_organ_names/spore
|
||||
hit_zones = list("sporangium", "stolon", "sporangiophore")
|
||||
|
||||
@@ -22,8 +22,13 @@
|
||||
attacktext = list("attacked")
|
||||
attack_sound = 'sound/items/bikehorn.ogg'
|
||||
|
||||
organ_names = /decl/mob_organ_names/clown
|
||||
|
||||
say_list_type = /datum/say_list/clown
|
||||
|
||||
/datum/say_list/clown
|
||||
speak = list("HONK", "Honk!", "Welcome to clown planet!")
|
||||
emote_see = list("honks")
|
||||
emote_see = list("honks")
|
||||
|
||||
/decl/mob_organ_names/clown
|
||||
hit_zones = list("head", "torso", "pie-hole", "honker", "left funny bone", "right funny bone", "left foot", "right foot", "unmentionables")
|
||||
@@ -15,6 +15,8 @@
|
||||
health = 150 // Point of human crit, as of commenting
|
||||
maxHealth = 150
|
||||
|
||||
organ_names = /decl/mob_organ_names/humanoid
|
||||
|
||||
// Most humans leave a corpse
|
||||
var/corpse = null
|
||||
|
||||
@@ -23,4 +25,7 @@
|
||||
if(corpse)
|
||||
new corpse (src.loc)
|
||||
qdel(src)
|
||||
return
|
||||
return
|
||||
|
||||
/decl/mob_organ_names/humanoid
|
||||
hit_zones = list("head", "torso", "left leg", "right leg", "left arm", "right arm", "left hand", "right hand", "left foot", "right foot") //Same as real people!
|
||||
@@ -54,6 +54,8 @@
|
||||
response_disarm = "gently pushes aside"
|
||||
response_harm = "hits"
|
||||
|
||||
organ_names = /decl/mob_organ_names/combatdrone
|
||||
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/ranged/kiting/threatening
|
||||
say_list_type = /datum/say_list/malf_drone
|
||||
|
||||
@@ -107,3 +109,6 @@
|
||||
// It won't wander away from its spawn point
|
||||
/mob/living/simple_mob/mechanical/combat_drone/event
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/ranged/kiting/threatening/event
|
||||
|
||||
/decl/mob_organ_names/combatdrone
|
||||
hit_zones = list("chassis", "comms array", "sensor suite", "left weapons module", "right weapons module", "maneuvering thruster")
|
||||
@@ -40,6 +40,8 @@
|
||||
response_disarm = "gently pushes aside"
|
||||
response_harm = "hits"
|
||||
|
||||
organ_names = /decl/mob_organ_names/miningdrone
|
||||
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/ranged/kiting/threatening
|
||||
say_list_type = /datum/say_list/malf_drone
|
||||
|
||||
@@ -124,3 +126,6 @@
|
||||
src.Beam(OB, icon_state = "rped_upgrade", time = 1 SECONDS)
|
||||
for(var/obj/item/I in my_storage)
|
||||
my_storage.remove_from_storage(I, OB)
|
||||
|
||||
/decl/mob_organ_names/miningdrone
|
||||
hit_zones = list("chassis", "comms array", "sensor suite", "left excavator module", "right excavator module", "maneuvering thruster")
|
||||
@@ -16,6 +16,8 @@
|
||||
harm_intent_damage = 3
|
||||
friendly = "hugs"
|
||||
|
||||
organ_names = /decl/mob_organ_names/golem
|
||||
|
||||
melee_damage_lower = 30 // It has a built in esword.
|
||||
melee_damage_upper = 30
|
||||
attack_armor_pen = 20
|
||||
@@ -151,3 +153,6 @@
|
||||
/mob/living/simple_mob/mechanical/technomancer_golem/special_post_animation(atom/A)
|
||||
casting = FALSE
|
||||
ranged_post_animation(A)
|
||||
|
||||
/decl/mob_organ_names/golem
|
||||
hit_zones = list("helmet", "cuirass", "left tasset", "right tasset", "left gauntlet", "right gauntlet", "weapon")
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
attacktext = list("clawed")
|
||||
projectilesound = 'sound/weapons/Gunshot_old.ogg'
|
||||
|
||||
organ_names = /decl/mob_organ_names/hivebot
|
||||
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/hivebot
|
||||
say_list_type = /datum/say_list/hivebot
|
||||
|
||||
@@ -52,4 +54,13 @@
|
||||
pointblank = TRUE
|
||||
conserve_ammo = TRUE
|
||||
firing_lanes = TRUE
|
||||
<<<<<<< HEAD
|
||||
can_flee = FALSE // Fearless dumb machines.
|
||||
||||||| parent of e5346a3920... Merge pull request #11675 from VOREStation/upstream-merge-8250
|
||||
can_flee = FALSE // Fearless dumb machines.
|
||||
=======
|
||||
can_flee = FALSE // Fearless dumb machines.
|
||||
|
||||
/decl/mob_organ_names/hivebot
|
||||
hit_zones = list("central chassis", "positioning servo", "head", "sensor suite", "manipulator arm", "shoulder weapon mount", "weapons array", "front right leg", "front left leg", "rear left leg", "rear right leg")
|
||||
>>>>>>> e5346a3920... Merge pull request #11675 from VOREStation/upstream-merge-8250
|
||||
|
||||
@@ -118,6 +118,8 @@
|
||||
icon_state = "red"
|
||||
icon_living = "red"
|
||||
|
||||
organ_names = /decl/mob_organ_names/hivebotsiege
|
||||
|
||||
player_msg = "You are capable of firing <b>very long range bombardment attacks</b>.<br>\
|
||||
To use, click on a tile or enemy at a long range. Note that the projectile arcs in the air, \
|
||||
so it will fly over everything inbetween you and the target.<br>\
|
||||
@@ -153,4 +155,13 @@
|
||||
/mob/living/simple_mob/mechanical/hivebot/ranged_damage/siege/fragmentation
|
||||
name = "anti-personnel artillery hivebot"
|
||||
desc = "A large robot capable of delivering fragmentation shells to rip apart their fleshy enemies."
|
||||
<<<<<<< HEAD
|
||||
projectiletype = /obj/item/projectile/arc/fragmentation
|
||||
||||||| parent of e5346a3920... Merge pull request #11675 from VOREStation/upstream-merge-8250
|
||||
projectiletype = /obj/item/projectile/arc/fragmentation
|
||||
=======
|
||||
projectiletype = /obj/item/projectile/arc/fragmentation
|
||||
|
||||
/decl/mob_organ_names/hivebotsiege
|
||||
hit_zones = list("central chassis", "armor plating", "reinforced positioning servo", "head", "sensor suite", "manipulator arm", "heavy weapons mount", "advanced weapons array", "front right leg", "front left leg", "rear left leg", "rear right leg")
|
||||
>>>>>>> e5346a3920... Merge pull request #11675 from VOREStation/upstream-merge-8250
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
melee_damage_lower = 2
|
||||
melee_damage_upper = 2
|
||||
|
||||
organ_names = /decl/mob_organ_names/hivebotsupport
|
||||
|
||||
// This hivebot supplies a general buff to nearby hivebots that improve their performance.
|
||||
// Note that the commander itself does not receive the buff.
|
||||
@@ -85,3 +86,6 @@
|
||||
to_chat(src, span("notice", "You have resupplied \the [SM]."))
|
||||
last_resupply = world.time
|
||||
break // Only one resupply per pulse.
|
||||
|
||||
/decl/mob_organ_names/hivebotsupport
|
||||
hit_zones = list("central chassis", "positioning servo", "head", "sensor suite", "manipulator arm", "battle analytics mount", "weapons array", "front right leg", "front left leg", "rear left leg", "rear right leg")
|
||||
@@ -9,6 +9,8 @@
|
||||
melee_damage_lower = 3
|
||||
melee_damage_upper = 3
|
||||
attack_sound = 'sound/weapons/Egloves.ogg'
|
||||
organ_names = /decl/mob_organ_names/hivebottank
|
||||
|
||||
|
||||
// All tank hivebots apply a modifier to their target, and force them to attack them if they're AI controlled.
|
||||
/mob/living/simple_mob/mechanical/hivebot/tank/apply_melee_effects(atom/A)
|
||||
@@ -166,3 +168,6 @@
|
||||
return -1 // complete projectile permutation
|
||||
|
||||
return (..(P))
|
||||
|
||||
/decl/mob_organ_names/hivebottank
|
||||
hit_zones = list("central chassis", "armor plating", "component shielding", "positioning servo", "head", "sensor suite", "heavy manipulator arm", "shoulder weapon mount", "weapons array", "front right leg", "front left leg", "rear left leg", "rear right leg")
|
||||
@@ -28,6 +28,8 @@
|
||||
projectiletype = /obj/item/projectile/beam
|
||||
base_attack_cooldown = 2 SECONDS
|
||||
|
||||
organ_names = /decl/mob_organ_names/hoverpod
|
||||
|
||||
var/datum/effect/effect/system/ion_trail_follow/ion_trail
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/hoverpod/manned
|
||||
@@ -39,5 +41,8 @@
|
||||
ion_trail.start()
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/hoverpod/Process_Spacemove(var/check_drift = 0)
|
||||
return TRUE
|
||||
/mob/living/simple_mob/mechanical/mecha/hoverpod/Process_Spacemove(var/check_drift = 0)
|
||||
return TRUE
|
||||
|
||||
/decl/mob_organ_names/hoverpod
|
||||
hit_zones = list("central chassis", "control module", "hydraulics", "left manipulator", "right manipulator", "left landing strut", "right landing strut", "maneuvering thruster", "sensor suite", "radiator", "power supply")
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
maxHealth = 300
|
||||
mob_size = MOB_LARGE
|
||||
|
||||
organ_names = /decl/mob_organ_names/mecha
|
||||
|
||||
// Very close to the base 'damage_absorption' var on the base mecha class.
|
||||
armor = list(
|
||||
"melee" = 20,
|
||||
@@ -139,3 +141,6 @@
|
||||
severity++ // This somewhat misleadingly makes it less severe.
|
||||
deflect_sprite()
|
||||
..(severity)
|
||||
|
||||
/decl/mob_organ_names/mecha
|
||||
hit_zones = list("central chassis", "control module", "hydraulics", "left arm", "right arm", "left leg", "right leg", "sensor suite", "radiator", "power supply", "left equipment mount", "right equipment mount")
|
||||
|
||||
@@ -45,6 +45,8 @@
|
||||
attack_sound = 'sound/weapons/bladeslice.ogg'
|
||||
attacktext = list("cut", "sliced")
|
||||
|
||||
organ_names = /decl/mob_organ_names/viscerator
|
||||
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive
|
||||
|
||||
/mob/living/simple_mob/mechanical/viscerator/death()
|
||||
@@ -93,3 +95,6 @@
|
||||
attack_armor_pen = 20
|
||||
base_attack_cooldown = 10 // One attack a second or so.
|
||||
movement_cooldown = 0.5
|
||||
|
||||
/decl/mob_organ_names/viscerator
|
||||
hit_zones = list("chassis", "rotor blades", "sensor array")
|
||||
@@ -15,6 +15,8 @@
|
||||
response_harm = "punches"
|
||||
faction = "wards" // Needed as most human mobs are in neutral faction. The owner is generally except from any ward hostility regardless.
|
||||
|
||||
organ_names = /decl/mob_organ_names/ward
|
||||
|
||||
maxHealth = 15
|
||||
health = 15
|
||||
movement_cooldown = 0
|
||||
@@ -39,4 +41,7 @@
|
||||
/mob/living/simple_mob/mechanical/ward/IIsAlly(mob/living/L)
|
||||
if(owner == L)
|
||||
return TRUE
|
||||
return ..()
|
||||
return ..()
|
||||
|
||||
/decl/mob_organ_names/ward
|
||||
hit_zones = list("chassis", "sensor array", "hover thruster")
|
||||
@@ -16,6 +16,7 @@
|
||||
harm_intent_damage = 5
|
||||
melee_damage_lower = 15 //It's not the strongest of the bunch, but that doesn't mean it can't hurt you.
|
||||
melee_damage_upper = 20
|
||||
organ_names = /decl/mob_organ_names/artificer
|
||||
attacktext = list("rammed")
|
||||
attack_sound = 'sound/weapons/rapidslice.ogg'
|
||||
construct_spells = list(/spell/aoe_turf/conjure/construct/lesser,
|
||||
@@ -27,4 +28,7 @@
|
||||
/spell/aoe_turf/conjure/grille,
|
||||
/spell/targeted/occult_repair_aura,
|
||||
/spell/targeted/construct_advanced/mend_acolyte
|
||||
)
|
||||
)
|
||||
|
||||
/decl/mob_organ_names/artificer
|
||||
hit_zones = list("body", "carapace", "right manipulator", "left manipulator", "upper left appendage", "upper right appendage", "eye")
|
||||
@@ -17,6 +17,7 @@
|
||||
attack_sharp = TRUE
|
||||
attacktext = list("violently stabbed")
|
||||
friendly = list("caresses")
|
||||
organ_names = /decl/mob_organ_names/harvester
|
||||
movement_cooldown = 0
|
||||
|
||||
// environment_smash = 1 // Whatever this gets renamed to, Harvesters need to break things
|
||||
@@ -37,4 +38,7 @@
|
||||
/spell/targeted/construct_advanced/inversion_beam,
|
||||
/spell/targeted/construct_advanced/agonizing_sphere,
|
||||
/spell/rune_write
|
||||
)
|
||||
)
|
||||
|
||||
/decl/mob_organ_names/harvester
|
||||
hit_zones = list("cephalothorax", "eye", "carapace", "energy crystal", "mandible")
|
||||
@@ -19,6 +19,7 @@
|
||||
attack_armor_pen = 60 //Being punched by a living, floating statue.
|
||||
attacktext = list("smashed their armoured gauntlet into")
|
||||
friendly = list("pats")
|
||||
organ_names = /decl/mob_organ_names/juggernaut
|
||||
mob_size = MOB_HUGE
|
||||
|
||||
|
||||
@@ -141,4 +142,7 @@
|
||||
|
||||
return -1 // complete projectile permutation
|
||||
|
||||
return (..(P))
|
||||
return (..(P))
|
||||
|
||||
/decl/mob_organ_names/juggernaut
|
||||
hit_zones = list("body", "left pauldron", "right pauldron", "left arm", "right arm", "eye", "head", "crystaline spike")
|
||||
@@ -20,6 +20,8 @@
|
||||
attack_armor_pen = 100 //It's a ghost/horror from beyond, I ain't gotta explain 100 AP
|
||||
attacktext = list("drained the life from")
|
||||
|
||||
organ_names = /decl/mob_organ_names/shade
|
||||
|
||||
minbodytemp = 0
|
||||
maxbodytemp = 4000
|
||||
min_oxy = 0
|
||||
@@ -45,4 +47,7 @@
|
||||
|
||||
ghostize()
|
||||
qdel(src)
|
||||
return
|
||||
return
|
||||
|
||||
/decl/mob_organ_names/shade
|
||||
hit_zones = list("spectral robe", "featureless visage", "haunting glow")
|
||||
@@ -19,6 +19,7 @@
|
||||
attack_edge = 1
|
||||
attacktext = list("slashed")
|
||||
friendly = list("pinches")
|
||||
organ_names = /decl/mob_organ_names/wraith
|
||||
movement_cooldown = 0
|
||||
attack_sound = 'sound/weapons/rapidslice.ogg'
|
||||
construct_spells = list(/spell/targeted/ethereal_jaunt/shift,
|
||||
@@ -30,4 +31,7 @@
|
||||
/mob/living/simple_mob/construct/wraith/apply_melee_effects(var/atom/A)
|
||||
if(isliving(A))
|
||||
var/mob/living/L = A
|
||||
L.add_modifier(/datum/modifier/deep_wounds, 30 SECONDS)
|
||||
L.add_modifier(/datum/modifier/deep_wounds, 30 SECONDS)
|
||||
|
||||
/decl/mob_organ_names/wraith
|
||||
hit_zones = list("body", "eye", "crystaline spike", "left claw", "right claw")
|
||||
@@ -24,6 +24,8 @@
|
||||
attacktext = list("chomped")
|
||||
attack_sound = 'sound/weapons/bite.ogg'
|
||||
|
||||
organ_names = /decl/mob_organ_names/abberation
|
||||
|
||||
speak_emote = list("gibbers")
|
||||
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/melee
|
||||
@@ -65,4 +67,7 @@
|
||||
|
||||
harm_intent_damage = 5
|
||||
melee_damage_lower = 13
|
||||
melee_damage_upper = 25
|
||||
melee_damage_upper = 25
|
||||
|
||||
/decl/mob_organ_names/abberation
|
||||
hit_zones = list("fleshy mass", "maw", "eye(?)", "orifice(?)")
|
||||
@@ -25,6 +25,8 @@
|
||||
attacktext = list("gripped")
|
||||
attack_sound = 'sound/hallucinations/growl1.ogg'
|
||||
|
||||
organ_names = /decl/mob_organ_names/faithless
|
||||
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/melee
|
||||
|
||||
|
||||
@@ -74,4 +76,7 @@
|
||||
|
||||
harm_intent_damage = 5
|
||||
melee_damage_lower = 13
|
||||
melee_damage_upper = 28
|
||||
melee_damage_upper = 28
|
||||
|
||||
/decl/mob_organ_names/faithless
|
||||
hit_zones = list("body", "left appendage", "right appendage", "shadowy tendrils", "head", "right stump", "left stump", "infernal eye")
|
||||
@@ -17,6 +17,8 @@
|
||||
response_disarm = "pushes aside"
|
||||
response_harm = "smacks"
|
||||
|
||||
organ_names = /decl/mob_organ_names/tomato
|
||||
|
||||
harm_intent_damage = 5
|
||||
melee_damage_upper = 15
|
||||
melee_damage_lower = 10
|
||||
@@ -25,3 +27,6 @@
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/melee
|
||||
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/tomatomeat
|
||||
|
||||
/decl/mob_organ_names/tomato
|
||||
hit_zones = list("flesh", "leaf", "mouth")
|
||||
@@ -25,6 +25,8 @@
|
||||
attacktext = list("bitten")
|
||||
attack_sound = 'sound/weapons/bite.ogg'
|
||||
|
||||
organ_names = /decl/mob_organ_names/tree
|
||||
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/xenomeat
|
||||
|
||||
pixel_x = -16
|
||||
@@ -40,4 +42,7 @@
|
||||
..(null,"is hacked into pieces!")
|
||||
playsound(src, 'sound/effects/woodcutting.ogg', 100, 1)
|
||||
new /obj/item/stack/material/wood(loc)
|
||||
qdel(src)
|
||||
qdel(src)
|
||||
|
||||
/decl/mob_organ_names/tree
|
||||
hit_zones = list("trunk", "branches", "twigs")
|
||||
@@ -40,6 +40,8 @@ var/list/_slime_default_emotes = list(
|
||||
|
||||
response_help = "pets"
|
||||
|
||||
organ_names = /decl/mob_organ_names/slime
|
||||
|
||||
// Atmos stuff.
|
||||
minbodytemp = T0C-30
|
||||
heat_damage_per_tick = 0
|
||||
@@ -241,4 +243,7 @@ var/list/_slime_default_emotes = list(
|
||||
|
||||
/mob/living/simple_mob/slime/proc/squish()
|
||||
playsound(src, 'sound/effects/slime_squish.ogg', 50, 0)
|
||||
visible_message("<b>\The [src]</b> squishes!")
|
||||
visible_message("<b>\The [src]</b> squishes!")
|
||||
|
||||
/decl/mob_organ_names/slime
|
||||
hit_zones = list("cytoplasmic membrane")
|
||||
@@ -679,17 +679,23 @@
|
||||
playsound(target_mob, "bullet_miss", 75, 1)
|
||||
return FALSE
|
||||
|
||||
var/impacted_organ = parse_zone(def_zone)
|
||||
if(istype(target_mob, /mob/living/simple_mob))
|
||||
var/mob/living/simple_mob/SM = target_mob
|
||||
var/decl/mob_organ_names/organ_plan = SM.organ_names
|
||||
impacted_organ = pick(organ_plan.hit_zones)
|
||||
|
||||
//hit messages
|
||||
if(silenced)
|
||||
playsound(target_mob, hitsound, 5, 1, -1)
|
||||
to_chat(target_mob, span("critical", "You've been hit in the [parse_zone(def_zone)] by \the [src]!"))
|
||||
to_chat(target_mob, span("critical", "You've been hit in the [impacted_organ] by \the [src]!"))
|
||||
else
|
||||
var/volume = vol_by_damage()
|
||||
playsound(target_mob, hitsound, volume, 1, -1)
|
||||
// X has fired Y is now given by the guns so you cant tell who shot you if you could not see the shooter
|
||||
target_mob.visible_message(
|
||||
span("danger", "\The [target_mob] was hit in the [parse_zone(def_zone)] by \the [src]!"),
|
||||
span("critical", "You've been hit in the [parse_zone(def_zone)] by \the [src]!")
|
||||
span("danger", "\The [target_mob] was hit in the [impacted_organ] by \the [src]!"),
|
||||
span("critical", "You've been hit in the [impacted_organ] by \the [src]!")
|
||||
)
|
||||
|
||||
//admin logs
|
||||
|
||||
Reference in New Issue
Block a user