reorganise, speeen, sentinel

This commit is contained in:
Rae
2022-05-09 17:29:26 +02:00
parent eb07c4d247
commit 9d66079aff
5 changed files with 125 additions and 46 deletions

View File

@@ -303,4 +303,35 @@
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>")
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)

View File

@@ -3,13 +3,9 @@
// Base type (Mostly initialises as an ability-less xeno hunter
/mob/living/simple_mob/xeno_ch
name = "xenomorph"
desc = "A chitin-covered bipedal creature with an eerie skittery nature."
name = "badly spawned xenomorph"
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'
vis_height = 32
@@ -50,6 +46,38 @@
'sound/voice/hiss5.ogg')
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
//HUD
@@ -58,7 +86,7 @@
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_pounce/pounce_action = new
var/datum/action/innate/xeno_ch/xeno_spin/spin_action = new
/mob/living/simple_mob/xeno_ch/Initialize()
..()
@@ -75,9 +103,15 @@
// Xenomorph hunter subtype
/mob/living/simple_mob/xeno_ch/hunter
name = "xenomorph hunter"
desc = "A chitin-covered bipedal creature with an eerie skittery nature."
movement_cooldown = 1
icon_dead = "alienh_dead"
icon_living = "alienh"
icon_rest = "alienh_sleep"
icon_state = "alienh"
icon_state_prepounce = "alienh_pounce"
icon_pounce = 'modular_chomp/icons/mob/xenoleap_96.dmi'
icon_state_pounce = "alienh_leap"
@@ -86,38 +120,6 @@
icon_pounce_x = -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()
. = ..()
verbs |= /mob/living/simple_mob/proc/pounce_toggle
@@ -125,6 +127,41 @@
verbs |= /mob/living/proc/hide
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
name = "xenomorph queen"
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/acidspit
verbs |= /mob/living/simple_mob/proc/corrosive_acid
verbs |= /mob/living/simple_mob/proc/speen
neurotox_action.Grant(src)
acidspit_action.Grant(src)
corrode_action.Grant(src)
spin_action.Grant(src)
/mob/living/simple_mob/xeno_ch/queen/maid
name = "xenomorph maid queen"

View File

@@ -5,7 +5,7 @@
var/list/options = list("Resin Door","Resin Membrane","Nest","Resin Wall","Weed Node")
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)
if(!choice || QDELETED(src) || src.incapacitated())
return FALSE
@@ -52,7 +52,7 @@
/datum/action/innate/xeno_ch
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
@@ -100,9 +100,18 @@
/datum/action/innate/xeno_ch/xeno_pounce/Activate()
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)
neurotox_action.Grant(src)
acidspit_action.Grant(src)
corrode_action.Grant(src)
pounce_action.Grant(src)
pounce_action.Grant(src)
spin_action.Grant(src)

View File

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -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\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\subtypes\vore\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.dm"
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\xenomorph_abilities.dm"
// END_INCLUDE