Merge pull request #2921 from Citadel-Station-13/upstream-merge-30593
[MIRROR] Rare Spider Variants!
This commit is contained in:
@@ -15,8 +15,6 @@
|
||||
if(L.reagents)
|
||||
L.reagents.add_reagent(poison_type, poison_per_bite)
|
||||
|
||||
|
||||
|
||||
//basic spider mob, these generally guard nests
|
||||
/mob/living/simple_animal/hostile/poison/giant_spider
|
||||
name = "giant spider"
|
||||
@@ -104,6 +102,64 @@
|
||||
poison_per_bite = 5
|
||||
move_to_delay = 5
|
||||
|
||||
//vipers are the rare variant of the hunter, no IMMEDIATE damage but so much poison medical care will be needed fast.
|
||||
/mob/living/simple_animal/hostile/poison/giant_spider/hunter/viper
|
||||
name = "viper"
|
||||
desc = "Furry and black, it makes you shudder to look at it. This one has effervescent purple eyes."
|
||||
icon_state = "viper"
|
||||
icon_living = "viper"
|
||||
icon_dead = "viper_dead"
|
||||
maxHealth = 40
|
||||
health = 40
|
||||
melee_damage_lower = 1
|
||||
melee_damage_upper = 1
|
||||
poison_per_bite = 12
|
||||
move_to_delay = 4
|
||||
poison_type = "venom" //all in venom, glass cannon. you bite 5 times and they are DEFINITELY dead, but 40 health and you are extremely obvious. Ambush, maybe?
|
||||
speed = 1
|
||||
|
||||
//tarantulas are really tanky, regenerating (maybe), hulky monster but are also extremely slow, so.
|
||||
/mob/living/simple_animal/hostile/poison/giant_spider/tarantula
|
||||
name = "tarantula"
|
||||
desc = "Furry and black, it makes you shudder to look at it. This one has abyssal red eyes."
|
||||
icon_state = "tarantula"
|
||||
icon_living = "tarantula"
|
||||
icon_dead = "tarantula_dead"
|
||||
maxHealth = 300 // woah nelly
|
||||
health = 300
|
||||
melee_damage_lower = 35
|
||||
melee_damage_upper = 40
|
||||
poison_per_bite = 0
|
||||
move_to_delay = 8
|
||||
speed = 7
|
||||
status_flags = NONE
|
||||
mob_size = MOB_SIZE_LARGE
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/giant_spider/tarantula/movement_delay()
|
||||
var/turf/T = get_turf(src)
|
||||
if(locate(/obj/structure/spider/stickyweb) in T)
|
||||
speed = 2
|
||||
else
|
||||
speed = 7
|
||||
. = ..()
|
||||
|
||||
//midwives are the queen of the spiders, can send messages to all them and web faster. That rare round where you get a queen spider and turn your 'for honor' players into 'r6siege' players will be a fun one.
|
||||
/mob/living/simple_animal/hostile/poison/giant_spider/nurse/midwife
|
||||
name = "midwife"
|
||||
desc = "Furry and black, it makes you shudder to look at it. This one has scintillating green eyes."
|
||||
icon_state = "midwife"
|
||||
icon_living = "midwife"
|
||||
icon_dead = "midwife_dead"
|
||||
maxHealth = 40
|
||||
health = 40
|
||||
var/datum/action/innate/spider/comm/letmetalkpls
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/giant_spider/nurse/midwife/Initialize()
|
||||
. = ..()
|
||||
letmetalkpls = new
|
||||
letmetalkpls.Grant(src)
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/giant_spider/ice //spiders dont usually like tempatures of 140 kelvin who knew
|
||||
name = "giant ice spider"
|
||||
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
|
||||
@@ -296,6 +352,39 @@
|
||||
busy = SPIDER_IDLE
|
||||
stop_automated_movement = FALSE
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/giant_spider/Login()
|
||||
. = ..()
|
||||
GLOB.spidermobs[src] = TRUE
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/giant_spider/Destroy()
|
||||
GLOB.spidermobs -= src
|
||||
return ..()
|
||||
|
||||
/datum/action/innate/spider/comm
|
||||
name = "Command"
|
||||
button_icon_state = "cult_comms"
|
||||
|
||||
/datum/action/innate/spider/comm/IsAvailable()
|
||||
if(!istype(owner, /mob/living/simple_animal/hostile/poison/giant_spider/nurse/midwife))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/datum/action/innate/spider/comm/Trigger()
|
||||
var/input = stripped_input(usr, "Input a message for your legions to follow.", "Command", "")
|
||||
if(QDELETED(src) || !input || !IsAvailable())
|
||||
return FALSE
|
||||
spider_command(usr, input)
|
||||
return TRUE
|
||||
|
||||
/datum/action/innate/spider/comm/proc/spider_command(mob/living/user, message)
|
||||
if(!message)
|
||||
return
|
||||
var/my_message
|
||||
my_message = "<FONT size = 3><b>COMMAND FROM SPIDER QUEEN:</b> [message]</FONT>"
|
||||
for(var/mob/living/simple_animal/hostile/poison/giant_spider/M in GLOB.spidermobs)
|
||||
to_chat(M, my_message)
|
||||
log_talk(user, "SPIDERCOMMAND: [key_name(user)] : [message]",LOGSAY)
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/giant_spider/handle_temperature_damage()
|
||||
if(bodytemperature < minbodytemp)
|
||||
adjustBruteLoss(20)
|
||||
|
||||
Reference in New Issue
Block a user