mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
reorganise, speeen, sentinel
This commit is contained in:
@@ -303,4 +303,35 @@
|
|||||||
new /obj/effect/alien/acid(get_turf(O), O)
|
new /obj/effect/alien/acid(get_turf(O), O)
|
||||||
visible_message("<span class='alium'><B>[src] vomits globs of vile stuff all over [O]. It begins to sizzle and melt under the bubbling mess of acid!</B></span>")
|
visible_message("<span class='alium'><B>[src] vomits globs of vile stuff all over [O]. It begins to sizzle and melt under the bubbling mess of acid!</B></span>")
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
// spin blatantly stolen from BlackMajor's bigdragon
|
||||||
|
/mob/living/simple_mob/proc/speen(var/range = 2)
|
||||||
|
var/list/thrownatoms = list()
|
||||||
|
for(var/mob/living/victim in oview(range, src))
|
||||||
|
thrownatoms += victim
|
||||||
|
src.spin(12,1)
|
||||||
|
for(var/am in thrownatoms)
|
||||||
|
var/atom/movable/AM = am
|
||||||
|
if(AM == src || AM.anchored)
|
||||||
|
continue
|
||||||
|
addtimer(CALLBACK(src, .proc/speen_throw, am), 1)
|
||||||
|
playsound(src, "sound/weapons/punchmiss.ogg", 50, 1)
|
||||||
|
|
||||||
|
//Split repulse into two parts so I can recycle this later
|
||||||
|
/mob/living/simple_mob/proc/speen_throw(var/atom/movable/AM, var/gentle = 0, var/damage = 10)
|
||||||
|
var/maxthrow = 7
|
||||||
|
var/atom/throwtarget
|
||||||
|
throwtarget = get_edge_target_turf(src, get_dir(src, get_step_away(AM, src)))
|
||||||
|
|
||||||
|
if (!throwtarget) // default case is north if unset
|
||||||
|
throwtarget = locate(src.x, world.maxy, src.z)
|
||||||
|
|
||||||
|
if(isliving(AM))
|
||||||
|
var/mob/living/M = AM
|
||||||
|
M.Weaken(1.5)
|
||||||
|
if(!gentle)
|
||||||
|
M.adjustBruteLoss(damage)
|
||||||
|
to_chat(M, "<span class='userdanger'>You're thrown back by [src]!</span>")
|
||||||
|
playsound(src, get_sfx("punch"), 50, 1)
|
||||||
|
AM.throw_at(throwtarget, maxthrow, 3, src)
|
||||||
@@ -3,13 +3,9 @@
|
|||||||
|
|
||||||
// Base type (Mostly initialises as an ability-less xeno hunter
|
// Base type (Mostly initialises as an ability-less xeno hunter
|
||||||
/mob/living/simple_mob/xeno_ch
|
/mob/living/simple_mob/xeno_ch
|
||||||
name = "xenomorph"
|
name = "badly spawned xenomorph"
|
||||||
desc = "A chitin-covered bipedal creature with an eerie skittery nature."
|
desc = "A chitin-covered bipedal creature with an eerie skittery nature. this one was spawned in wrong."
|
||||||
|
|
||||||
icon_dead = "alienh_dead"
|
|
||||||
icon_living = "alienh"
|
|
||||||
icon_rest = "alienh_sleep"
|
|
||||||
icon_state = "alienh"
|
|
||||||
icon = 'modular_chomp/icons/mob/xenos_32.dmi'
|
icon = 'modular_chomp/icons/mob/xenos_32.dmi'
|
||||||
vis_height = 32
|
vis_height = 32
|
||||||
|
|
||||||
@@ -50,6 +46,38 @@
|
|||||||
'sound/voice/hiss5.ogg')
|
'sound/voice/hiss5.ogg')
|
||||||
has_hands = TRUE
|
has_hands = TRUE
|
||||||
|
|
||||||
|
can_enter_vent_with = list( /obj/item/weapon/implant,
|
||||||
|
/obj/item/device/radio/borg,
|
||||||
|
/obj/item/weapon/holder,
|
||||||
|
/obj/machinery/camera,
|
||||||
|
/obj/belly,
|
||||||
|
/obj/screen,
|
||||||
|
/atom/movable/emissive_blocker,
|
||||||
|
/obj/item/weapon/material,
|
||||||
|
/obj/item/weapon/melee,
|
||||||
|
/obj/item/stack/,
|
||||||
|
/obj/item/weapon/tool,
|
||||||
|
/obj/item/weapon/reagent_containers/food,
|
||||||
|
/obj/item/weapon/coin,
|
||||||
|
/obj/item/weapon/aliencoin,
|
||||||
|
/obj/item/weapon/ore,
|
||||||
|
/obj/item/weapon/disk/nuclear,
|
||||||
|
/obj/item/toy,
|
||||||
|
/obj/item/weapon/card,
|
||||||
|
/obj/item/device/radio,
|
||||||
|
/obj/item/device/perfect_tele_beacon,
|
||||||
|
/obj/item/weapon/clipboard,
|
||||||
|
/obj/item/weapon/paper,
|
||||||
|
/obj/item/weapon/pen,
|
||||||
|
/obj/item/canvas,
|
||||||
|
/obj/item/paint_palette,
|
||||||
|
/obj/item/paint_brush,
|
||||||
|
/obj/item/device/camera,
|
||||||
|
/obj/item/weapon/photo,
|
||||||
|
/obj/item/device/camera_film,
|
||||||
|
/obj/item/device/taperecorder,
|
||||||
|
/obj/item/device/tape)
|
||||||
|
|
||||||
var/xeno_build_time = 5 //time to build a structure
|
var/xeno_build_time = 5 //time to build a structure
|
||||||
|
|
||||||
//HUD
|
//HUD
|
||||||
@@ -58,7 +86,7 @@
|
|||||||
var/datum/action/innate/xeno_ch/xeno_acidspit/acidspit_action = new
|
var/datum/action/innate/xeno_ch/xeno_acidspit/acidspit_action = new
|
||||||
var/datum/action/innate/xeno_ch/xeno_corrode/corrode_action = new
|
var/datum/action/innate/xeno_ch/xeno_corrode/corrode_action = new
|
||||||
var/datum/action/innate/xeno_ch/xeno_pounce/pounce_action = new
|
var/datum/action/innate/xeno_ch/xeno_pounce/pounce_action = new
|
||||||
|
var/datum/action/innate/xeno_ch/xeno_spin/spin_action = new
|
||||||
|
|
||||||
/mob/living/simple_mob/xeno_ch/Initialize()
|
/mob/living/simple_mob/xeno_ch/Initialize()
|
||||||
..()
|
..()
|
||||||
@@ -75,9 +103,15 @@
|
|||||||
// Xenomorph hunter subtype
|
// Xenomorph hunter subtype
|
||||||
/mob/living/simple_mob/xeno_ch/hunter
|
/mob/living/simple_mob/xeno_ch/hunter
|
||||||
name = "xenomorph hunter"
|
name = "xenomorph hunter"
|
||||||
|
desc = "A chitin-covered bipedal creature with an eerie skittery nature."
|
||||||
|
|
||||||
movement_cooldown = 1
|
movement_cooldown = 1
|
||||||
|
|
||||||
|
icon_dead = "alienh_dead"
|
||||||
|
icon_living = "alienh"
|
||||||
|
icon_rest = "alienh_sleep"
|
||||||
|
icon_state = "alienh"
|
||||||
|
|
||||||
icon_state_prepounce = "alienh_pounce"
|
icon_state_prepounce = "alienh_pounce"
|
||||||
icon_pounce = 'modular_chomp/icons/mob/xenoleap_96.dmi'
|
icon_pounce = 'modular_chomp/icons/mob/xenoleap_96.dmi'
|
||||||
icon_state_pounce = "alienh_leap"
|
icon_state_pounce = "alienh_leap"
|
||||||
@@ -86,38 +120,6 @@
|
|||||||
icon_pounce_x = -32
|
icon_pounce_x = -32
|
||||||
icon_pounce_y = -32
|
icon_pounce_y = -32
|
||||||
|
|
||||||
can_enter_vent_with = list( /obj/item/weapon/implant,
|
|
||||||
/obj/item/device/radio/borg,
|
|
||||||
/obj/item/weapon/holder,
|
|
||||||
/obj/machinery/camera,
|
|
||||||
/obj/belly,
|
|
||||||
/obj/screen,
|
|
||||||
/atom/movable/emissive_blocker,
|
|
||||||
/obj/item/weapon/material,
|
|
||||||
/obj/item/weapon/melee,
|
|
||||||
/obj/item/stack/,
|
|
||||||
/obj/item/weapon/tool,
|
|
||||||
/obj/item/weapon/reagent_containers/food,
|
|
||||||
/obj/item/weapon/coin,
|
|
||||||
/obj/item/weapon/aliencoin,
|
|
||||||
/obj/item/weapon/ore,
|
|
||||||
/obj/item/weapon/disk/nuclear,
|
|
||||||
/obj/item/toy,
|
|
||||||
/obj/item/weapon/card,
|
|
||||||
/obj/item/device/radio,
|
|
||||||
/obj/item/device/perfect_tele_beacon,
|
|
||||||
/obj/item/weapon/clipboard,
|
|
||||||
/obj/item/weapon/paper,
|
|
||||||
/obj/item/weapon/pen,
|
|
||||||
/obj/item/canvas,
|
|
||||||
/obj/item/paint_palette,
|
|
||||||
/obj/item/paint_brush,
|
|
||||||
/obj/item/device/camera,
|
|
||||||
/obj/item/weapon/photo,
|
|
||||||
/obj/item/device/camera_film,
|
|
||||||
/obj/item/device/taperecorder,
|
|
||||||
/obj/item/device/tape)
|
|
||||||
|
|
||||||
/mob/living/simple_mob/xeno_ch/hunter/Login()
|
/mob/living/simple_mob/xeno_ch/hunter/Login()
|
||||||
. = ..()
|
. = ..()
|
||||||
verbs |= /mob/living/simple_mob/proc/pounce_toggle
|
verbs |= /mob/living/simple_mob/proc/pounce_toggle
|
||||||
@@ -125,6 +127,41 @@
|
|||||||
verbs |= /mob/living/proc/hide
|
verbs |= /mob/living/proc/hide
|
||||||
pounce_action.Grant(src)
|
pounce_action.Grant(src)
|
||||||
|
|
||||||
|
//Xenomorph Sentinel subtype
|
||||||
|
/mob/living/simple_mob/xeno_ch/sentinel
|
||||||
|
name = "xenomorph sentinel"
|
||||||
|
desc = "A chitin-covered bipedal creature with an acrid scent about it."
|
||||||
|
|
||||||
|
movement_cooldown = 1.5
|
||||||
|
|
||||||
|
icon_dead = "aliens_dead"
|
||||||
|
icon_living = "aliens"
|
||||||
|
icon_rest = "aliens_sleep"
|
||||||
|
icon_state = "aliens"
|
||||||
|
|
||||||
|
icon_state_prepounce = "aliens_pounce"
|
||||||
|
icon_pounce = 'modular_chomp/icons/mob/xenoleap_96.dmi'
|
||||||
|
icon_state_pounce = "aliens_leap"
|
||||||
|
icon_overlay_spit = "alienspit"
|
||||||
|
icon_overlay_spit_pounce = "alienspit_leap"
|
||||||
|
icon_pounce_x = -32
|
||||||
|
icon_pounce_y = -32
|
||||||
|
|
||||||
|
|
||||||
|
/mob/living/simple_mob/xeno_ch/sentinel/Login()
|
||||||
|
. = ..()
|
||||||
|
verbs |= /mob/living/simple_mob/proc/pounce_toggle
|
||||||
|
verbs |= /mob/living/proc/hide
|
||||||
|
verbs |= /mob/living/simple_mob/proc/neurotoxin
|
||||||
|
verbs |= /mob/living/simple_mob/proc/acidspit
|
||||||
|
verbs |= /mob/living/simple_mob/proc/corrosive_acid
|
||||||
|
pounce_action.Grant(src)
|
||||||
|
neurotox_action.Grant(src)
|
||||||
|
acidspit_action.Grant(src)
|
||||||
|
corrode_action.Grant(src)
|
||||||
|
|
||||||
|
|
||||||
|
//Xenomorph queen subtype
|
||||||
/mob/living/simple_mob/xeno_ch/queen
|
/mob/living/simple_mob/xeno_ch/queen
|
||||||
name = "xenomorph queen"
|
name = "xenomorph queen"
|
||||||
desc = "A towering chitin-covered bipedal creature with a rather intimidating aura about them."
|
desc = "A towering chitin-covered bipedal creature with a rather intimidating aura about them."
|
||||||
@@ -150,9 +187,11 @@
|
|||||||
verbs |= /mob/living/simple_mob/proc/neurotoxin
|
verbs |= /mob/living/simple_mob/proc/neurotoxin
|
||||||
verbs |= /mob/living/simple_mob/proc/acidspit
|
verbs |= /mob/living/simple_mob/proc/acidspit
|
||||||
verbs |= /mob/living/simple_mob/proc/corrosive_acid
|
verbs |= /mob/living/simple_mob/proc/corrosive_acid
|
||||||
|
verbs |= /mob/living/simple_mob/proc/speen
|
||||||
neurotox_action.Grant(src)
|
neurotox_action.Grant(src)
|
||||||
acidspit_action.Grant(src)
|
acidspit_action.Grant(src)
|
||||||
corrode_action.Grant(src)
|
corrode_action.Grant(src)
|
||||||
|
spin_action.Grant(src)
|
||||||
|
|
||||||
/mob/living/simple_mob/xeno_ch/queen/maid
|
/mob/living/simple_mob/xeno_ch/queen/maid
|
||||||
name = "xenomorph maid queen"
|
name = "xenomorph maid queen"
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
var/list/options = list("Resin Door","Resin Membrane","Nest","Resin Wall","Weed Node")
|
var/list/options = list("Resin Door","Resin Membrane","Nest","Resin Wall","Weed Node")
|
||||||
for(var/option in options)
|
for(var/option in options)
|
||||||
LAZYSET(options, option, image('modular_chomp/icons/effects/xenobuild_icons.dmi', option))
|
LAZYSET(options, option, image('modular_chomp/icons/mob/xeno_screen.dmi', option))
|
||||||
var/choice = show_radial_menu(src, src, options, radius = 60)
|
var/choice = show_radial_menu(src, src, options, radius = 60)
|
||||||
if(!choice || QDELETED(src) || src.incapacitated())
|
if(!choice || QDELETED(src) || src.incapacitated())
|
||||||
return FALSE
|
return FALSE
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
|
|
||||||
/datum/action/innate/xeno_ch
|
/datum/action/innate/xeno_ch
|
||||||
check_flags = AB_CHECK_RESTRAINED | AB_CHECK_STUNNED | AB_CHECK_ALIVE
|
check_flags = AB_CHECK_RESTRAINED | AB_CHECK_STUNNED | AB_CHECK_ALIVE
|
||||||
button_icon = 'modular_chomp/icons/effects/xenobuild_icons.dmi'
|
button_icon = 'modular_chomp/icons/mob/xeno_screen.dmi'
|
||||||
var/mob/living/simple_mob/xeno_ch/parent_xeno
|
var/mob/living/simple_mob/xeno_ch/parent_xeno
|
||||||
|
|
||||||
|
|
||||||
@@ -100,9 +100,18 @@
|
|||||||
/datum/action/innate/xeno_ch/xeno_pounce/Activate()
|
/datum/action/innate/xeno_ch/xeno_pounce/Activate()
|
||||||
parent_xeno.pounce_toggle()
|
parent_xeno.pounce_toggle()
|
||||||
|
|
||||||
/mob/living/simple_mob/xeno_ch/proc/grantactions()
|
/datum/action/innate/xeno_ch/xeno_spin
|
||||||
|
name = "Spin"
|
||||||
|
button_icon_state = "Spin"
|
||||||
|
|
||||||
|
/datum/action/innate/xeno_ch/xeno_spin/Activate()
|
||||||
|
parent_xeno.speen()
|
||||||
|
|
||||||
|
|
||||||
|
/mob/living/simple_mob/xeno_ch/proc/grantallactions()
|
||||||
build_action.Grant(src)
|
build_action.Grant(src)
|
||||||
neurotox_action.Grant(src)
|
neurotox_action.Grant(src)
|
||||||
acidspit_action.Grant(src)
|
acidspit_action.Grant(src)
|
||||||
corrode_action.Grant(src)
|
corrode_action.Grant(src)
|
||||||
pounce_action.Grant(src)
|
pounce_action.Grant(src)
|
||||||
|
spin_action.Grant(src)
|
||||||
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
@@ -4491,6 +4491,6 @@
|
|||||||
#include "modular_chomp\code\modules\mob\living\carbon\human\species\station\protean\protean_species.dm"
|
#include "modular_chomp\code\modules\mob\living\carbon\human\species\station\protean\protean_species.dm"
|
||||||
#include "modular_chomp\code\modules\mob\living\simple_mob\simple_mob.dm"
|
#include "modular_chomp\code\modules\mob\living\simple_mob\simple_mob.dm"
|
||||||
#include "modular_chomp\code\modules\mob\living\simple_mob\simple_mob_abilities.dm"
|
#include "modular_chomp\code\modules\mob\living\simple_mob\simple_mob_abilities.dm"
|
||||||
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\xenomorph.dm"
|
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\xenomorph.dm"
|
||||||
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\xenomorph_abilities.dm"
|
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\xenomorph_abilities.dm"
|
||||||
// END_INCLUDE
|
// END_INCLUDE
|
||||||
|
|||||||
Reference in New Issue
Block a user