mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 09:42:29 +00:00
[MIRROR] Refactor /mob/living/carbon/alien/humanoid to be /mob/living/carbon/alien/adult [MDB IGNORE] (#17044)
* Refactor `/mob/living/carbon/alien/humanoid` to be `/mob/living/carbon/alien/adult` * update modular Co-authored-by: Tim <timothymtorres@gmail.com> Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
This commit is contained in:
@@ -91,19 +91,17 @@ GLOBAL_LIST_INIT(turfs_openspace, typecacheof(list(
|
||||
//More carbon mobs
|
||||
#define isalien(A) (istype(A, /mob/living/carbon/alien))
|
||||
|
||||
#define isalienhumanoid(A) (istype(A, /mob/living/carbon/alien/humanoid))
|
||||
|
||||
#define islarva(A) (istype(A, /mob/living/carbon/alien/larva))
|
||||
|
||||
#define isalienadult(A) (istype(A, /mob/living/carbon/alien/humanoid) || istype(A, /mob/living/simple_animal/hostile/alien))
|
||||
#define isalienadult(A) (istype(A, /mob/living/carbon/alien/adult) || istype(A, /mob/living/simple_animal/hostile/alien))
|
||||
|
||||
#define isalienhunter(A) (istype(A, /mob/living/carbon/alien/humanoid/hunter))
|
||||
#define isalienhunter(A) (istype(A, /mob/living/carbon/alien/adult/hunter))
|
||||
|
||||
#define isaliensentinel(A) (istype(A, /mob/living/carbon/alien/humanoid/sentinel))
|
||||
#define isaliensentinel(A) (istype(A, /mob/living/carbon/alien/adult/sentinel))
|
||||
|
||||
#define isalienroyal(A) (istype(A, /mob/living/carbon/alien/humanoid/royal))
|
||||
#define isalienroyal(A) (istype(A, /mob/living/carbon/alien/adult/royal))
|
||||
|
||||
#define isalienqueen(A) (istype(A, /mob/living/carbon/alien/humanoid/royal/queen))
|
||||
#define isalienqueen(A) (istype(A, /mob/living/carbon/alien/adult/royal/queen))
|
||||
|
||||
//Silicon mobs
|
||||
#define issilicon(A) (istype(A, /mob/living/silicon))
|
||||
|
||||
@@ -388,7 +388,7 @@
|
||||
human_user.changeNext_move(CLICK_CD_MELEE)
|
||||
return TRUE
|
||||
else if(isalien(user))
|
||||
var/mob/living/carbon/alien/humanoid/alien_boy = user
|
||||
var/mob/living/carbon/alien/adult/alien_boy = user
|
||||
if(alien_boy.grab(src))
|
||||
alien_boy.changeNext_move(CLICK_CD_MELEE)
|
||||
return TRUE
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
/atom/movable/screen/alien/leap/Click()
|
||||
if(isalienhunter(usr))
|
||||
var/mob/living/carbon/alien/humanoid/hunter/AH = usr
|
||||
var/mob/living/carbon/alien/adult/hunter/AH = usr
|
||||
AH.toggle_leap()
|
||||
|
||||
/atom/movable/screen/alien/plasma_display
|
||||
@@ -24,7 +24,7 @@
|
||||
/datum/hud/alien
|
||||
ui_style = 'icons/hud/screen_alien.dmi'
|
||||
|
||||
/datum/hud/alien/New(mob/living/carbon/alien/humanoid/owner)
|
||||
/datum/hud/alien/New(mob/living/carbon/alien/adult/owner)
|
||||
..()
|
||||
|
||||
var/atom/movable/screen/using
|
||||
@@ -57,7 +57,7 @@
|
||||
static_inventory += action_intent
|
||||
|
||||
if(isalienhunter(mymob))
|
||||
var/mob/living/carbon/alien/humanoid/hunter/H = mymob
|
||||
var/mob/living/carbon/alien/adult/hunter/H = mymob
|
||||
H.leap_icon = new /atom/movable/screen/alien/leap()
|
||||
H.leap_icon.screen_loc = ui_alien_storage_r
|
||||
static_inventory += H.leap_icon
|
||||
@@ -126,7 +126,7 @@
|
||||
/datum/hud/alien/persistent_inventory_update()
|
||||
if(!mymob)
|
||||
return
|
||||
var/mob/living/carbon/alien/humanoid/H = mymob
|
||||
var/mob/living/carbon/alien/adult/H = mymob
|
||||
if(hud_version != HUD_STYLE_NOHUD)
|
||||
for(var/obj/item/I in H.held_items)
|
||||
I.screen_loc = ui_hand_position(H.get_held_index_of_item(I))
|
||||
|
||||
@@ -199,9 +199,9 @@
|
||||
default = list( //DEFAULTS
|
||||
/mob/living/simple_animal = 1,
|
||||
/mob/living/silicon/pai = 1,
|
||||
/mob/living/carbon/alien/humanoid/hunter = -1,
|
||||
/mob/living/carbon/alien/humanoid/royal/praetorian = 1,
|
||||
/mob/living/carbon/alien/humanoid/royal/queen = 3
|
||||
/mob/living/carbon/alien/adult/hunter = -1,
|
||||
/mob/living/carbon/alien/adult/royal/praetorian = 1,
|
||||
/mob/living/carbon/alien/adult/royal/queen = 3
|
||||
)
|
||||
|
||||
/datum/config_entry/keyed_list/multiplicative_movespeed/ValidateAndSet()
|
||||
|
||||
@@ -194,7 +194,7 @@
|
||||
stage3 = list("<span class='danger'>Your throat feels very scratchy.</span>", "Your skin feels tight.", "<span class='danger'>You can feel something move...inside.</span>")
|
||||
stage4 = list("<span class='danger'>Your skin feels very tight.</span>", "<span class='danger'>Your blood boils!</span>", "<span class='danger'>You can feel... something...inside you.</span>")
|
||||
stage5 = list("<span class='danger'>Your skin feels as if it's about to burst off!</span>")
|
||||
new_form = /mob/living/carbon/alien/humanoid/hunter
|
||||
new_form = /mob/living/carbon/alien/adult/hunter
|
||||
bantype = ROLE_ALIEN
|
||||
|
||||
|
||||
|
||||
@@ -694,7 +694,7 @@ GLOBAL_LIST_EMPTY(possible_items_special)
|
||||
captured_amount+=0.5
|
||||
continue
|
||||
captured_amount+=1
|
||||
for(var/mob/living/carbon/alien/humanoid/M in A)//Aliens are worth twice as much as humans.
|
||||
for(var/mob/living/carbon/alien/adult/M in A)//Aliens are worth twice as much as humans.
|
||||
if(isalienqueen(M))//Queens are worth three times as much as humans.
|
||||
if(M.stat == DEAD)
|
||||
captured_amount+=1.5
|
||||
|
||||
@@ -1324,7 +1324,7 @@
|
||||
loseMainPower()
|
||||
loseBackupPower()
|
||||
|
||||
/obj/machinery/door/airlock/attack_alien(mob/living/carbon/alien/humanoid/user, list/modifiers)
|
||||
/obj/machinery/door/airlock/attack_alien(mob/living/carbon/alien/adult/user, list/modifiers)
|
||||
if(isElectrified() && shock(user, 100)) //Mmm, fried xeno!
|
||||
add_fingerprint(user)
|
||||
return
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
|
||||
if (isnull(held_item))
|
||||
if(density)
|
||||
if(isalienhumanoid(living_user) || issilicon(living_user))
|
||||
if(isalienadult(living_user) || issilicon(living_user))
|
||||
context[SCREENTIP_CONTEXT_LMB] = "Open"
|
||||
return CONTEXTUAL_SCREENTIP_SET
|
||||
if(!living_user.combat_mode)
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
. = ..()
|
||||
icon_state = density ? "closed" : "open"
|
||||
|
||||
/obj/machinery/door/poddoor/attack_alien(mob/living/carbon/alien/humanoid/user, list/modifiers)
|
||||
/obj/machinery/door/poddoor/attack_alien(mob/living/carbon/alien/adult/user, list/modifiers)
|
||||
if(density & !(resistance_flags & INDESTRUCTIBLE))
|
||||
add_fingerprint(user)
|
||||
user.visible_message(span_warning("[user] begins prying open [src]."),\
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
/obj/machinery/porta_turret_cover/attacked_by(obj/item/I, mob/user)
|
||||
parent_turret.attacked_by(I, user)
|
||||
|
||||
/obj/machinery/porta_turret_cover/attack_alien(mob/living/carbon/alien/humanoid/user, list/modifiers)
|
||||
/obj/machinery/porta_turret_cover/attack_alien(mob/living/carbon/alien/adult/user, list/modifiers)
|
||||
parent_turret.attack_alien(user, modifiers)
|
||||
|
||||
/obj/machinery/porta_turret_cover/attack_animal(mob/living/simple_animal/user, list/modifiers)
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
return
|
||||
take_damage(400, BRUTE, MELEE, 0, get_dir(src, B))
|
||||
|
||||
/obj/attack_alien(mob/living/carbon/alien/humanoid/user, list/modifiers)
|
||||
/obj/attack_alien(mob/living/carbon/alien/adult/user, list/modifiers)
|
||||
if(attack_generic(user, 60, BRUTE, MELEE, 0))
|
||||
playsound(src.loc, 'sound/weapons/slash.ogg', 100, TRUE)
|
||||
|
||||
|
||||
@@ -189,7 +189,7 @@
|
||||
|
||||
//SKYRAT EDIT REMOVAL START
|
||||
/*
|
||||
/mob/living/carbon/alien/humanoid/verb/suicide()
|
||||
/mob/living/carbon/alien/adult/verb/suicide()
|
||||
set hidden = TRUE
|
||||
if(!canSuicide())
|
||||
return
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1)
|
||||
|
||||
|
||||
/mob/living/basic/attack_alien(mob/living/carbon/alien/humanoid/user, list/modifiers)
|
||||
/mob/living/basic/attack_alien(mob/living/carbon/alien/adult/user, list/modifiers)
|
||||
if(..()) //if harm or disarm intent.
|
||||
if(LAZYACCESS(modifiers, RIGHT_CLICK))
|
||||
playsound(loc, 'sound/weapons/pierce.ogg', 25, TRUE, -1)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/mob/living/carbon/alien/humanoid
|
||||
/mob/living/carbon/alien/adult
|
||||
name = "alien"
|
||||
icon_state = "alien"
|
||||
pass_flags = PASSTABLE
|
||||
@@ -30,33 +30,33 @@ GLOBAL_LIST_INIT(strippable_alien_humanoid_items, create_strippable_list(list(
|
||||
/datum/strippable_item/mob_item_slot/legcuffs,
|
||||
)))
|
||||
|
||||
/mob/living/carbon/alien/humanoid/Initialize(mapload)
|
||||
/mob/living/carbon/alien/adult/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/footstep, FOOTSTEP_MOB_CLAW, 0.5, -11)
|
||||
AddElement(/datum/element/strippable, GLOB.strippable_alien_humanoid_items)
|
||||
|
||||
/mob/living/carbon/alien/humanoid/create_internal_organs()
|
||||
/mob/living/carbon/alien/adult/create_internal_organs()
|
||||
internal_organs += new /obj/item/organ/internal/stomach/alien()
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/alien/humanoid/cuff_resist(obj/item/I)
|
||||
/mob/living/carbon/alien/adult/cuff_resist(obj/item/I)
|
||||
playsound(src, 'sound/voice/hiss5.ogg', 40, TRUE, TRUE) //Alien roars when starting to break free
|
||||
..(I, cuff_break = INSTANT_CUFFBREAK)
|
||||
|
||||
/mob/living/carbon/alien/humanoid/resist_grab(moving_resist)
|
||||
/mob/living/carbon/alien/adult/resist_grab(moving_resist)
|
||||
if(pulledby.grab_state)
|
||||
visible_message(span_danger("[src] breaks free of [pulledby]'s grip!"), \
|
||||
span_danger("You break free of [pulledby]'s grip!"))
|
||||
pulledby.stop_pulling()
|
||||
. = 0
|
||||
|
||||
/mob/living/carbon/alien/humanoid/alien_evolve(mob/living/carbon/alien/humanoid/new_xeno)
|
||||
/mob/living/carbon/alien/adult/alien_evolve(mob/living/carbon/alien/adult/new_xeno)
|
||||
drop_all_held_items()
|
||||
..()
|
||||
|
||||
//For alien evolution/promotion/queen finder procs. Checks for an active alien of that type
|
||||
/proc/get_alien_type(alienpath)
|
||||
for(var/mob/living/carbon/alien/humanoid/A in GLOB.alive_mob_list)
|
||||
for(var/mob/living/carbon/alien/adult/A in GLOB.alive_mob_list)
|
||||
if(!istype(A, alienpath))
|
||||
continue
|
||||
if(!A.key || A.stat == DEAD) //Only living aliens with a ckey are valid.
|
||||
@@ -64,17 +64,17 @@ GLOBAL_LIST_INIT(strippable_alien_humanoid_items, create_strippable_list(list(
|
||||
return A
|
||||
return FALSE
|
||||
|
||||
/mob/living/carbon/alien/humanoid/check_breath(datum/gas_mixture/breath)
|
||||
/mob/living/carbon/alien/adult/check_breath(datum/gas_mixture/breath)
|
||||
if(breath?.total_moles() > 0 && !HAS_TRAIT(src, TRAIT_ALIEN_SNEAK))
|
||||
playsound(get_turf(src), pick('sound/voice/lowHiss2.ogg', 'sound/voice/lowHiss3.ogg', 'sound/voice/lowHiss4.ogg'), 50, FALSE, -5)
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/alien/humanoid/set_name()
|
||||
/mob/living/carbon/alien/adult/set_name()
|
||||
if(numba)
|
||||
name = "[name] ([numba])"
|
||||
real_name = name
|
||||
|
||||
/mob/living/carbon/alien/humanoid/proc/grab(mob/living/carbon/human/target)
|
||||
/mob/living/carbon/alien/adult/proc/grab(mob/living/carbon/human/target)
|
||||
if(target.check_block())
|
||||
target.visible_message(span_warning("[target] blocks [src]'s grab!"), \
|
||||
span_userdanger("You block [src]'s grab!"), span_hear("You hear a swoosh!"), COMBAT_MESSAGE_RANGE, src)
|
||||
@@ -83,7 +83,7 @@ GLOBAL_LIST_INIT(strippable_alien_humanoid_items, create_strippable_list(list(
|
||||
target.grabbedby(src)
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/alien/humanoid/setGrabState(newstate)
|
||||
/mob/living/carbon/alien/adult/setGrabState(newstate)
|
||||
if(newstate == grab_state)
|
||||
return
|
||||
if(newstate > GRAB_AGGRESSIVE)
|
||||
@@ -105,13 +105,13 @@ GLOBAL_LIST_INIT(strippable_alien_humanoid_items, create_strippable_list(list(
|
||||
if(. <= GRAB_AGGRESSIVE)
|
||||
ADD_TRAIT(pulling, TRAIT_FLOORED, CHOKEHOLD_TRAIT)
|
||||
|
||||
/mob/living/carbon/alien/humanoid/MouseDrop_T(atom/dropping, atom/user)
|
||||
/mob/living/carbon/alien/adult/MouseDrop_T(atom/dropping, atom/user)
|
||||
if(devour_lad(dropping))
|
||||
return
|
||||
return ..()
|
||||
|
||||
/// Returns FALSE if we're not allowed to eat it, true otherwise
|
||||
/mob/living/carbon/alien/humanoid/proc/can_consume(atom/movable/poor_soul)
|
||||
/mob/living/carbon/alien/adult/proc/can_consume(atom/movable/poor_soul)
|
||||
if(!isliving(poor_soul) || pulling != poor_soul)
|
||||
return FALSE
|
||||
if(incapacitated() || grab_state < GRAB_AGGRESSIVE || stat != CONSCIOUS)
|
||||
@@ -121,9 +121,9 @@ GLOBAL_LIST_INIT(strippable_alien_humanoid_items, create_strippable_list(list(
|
||||
return TRUE
|
||||
|
||||
/// Attempts to devour the passed in thing in devour_time seconds
|
||||
/// The mob needs to be consumable, as decided by [/mob/living/carbon/alien/humanoid/proc/can_consume]
|
||||
/// The mob needs to be consumable, as decided by [/mob/living/carbon/alien/adult/proc/can_consume]
|
||||
/// Returns FALSE if the attempt never even started, TRUE otherwise
|
||||
/mob/living/carbon/alien/humanoid/proc/devour_lad(atom/movable/candidate, devour_time = 13.5 SECONDS)
|
||||
/mob/living/carbon/alien/adult/proc/devour_lad(atom/movable/candidate, devour_time = 13.5 SECONDS)
|
||||
setDir(get_dir(src, candidate))
|
||||
if(!can_consume(candidate))
|
||||
return FALSE
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
|
||||
/mob/living/carbon/alien/humanoid/attack_hulk(mob/living/carbon/human/user)
|
||||
/mob/living/carbon/alien/adult/attack_hulk(mob/living/carbon/human/user)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
@@ -14,7 +14,7 @@
|
||||
span_userdanger("[user] [hitverb]s you!"), span_hear("You hear a sickening sound of flesh hitting flesh!"), COMBAT_MESSAGE_RANGE, user)
|
||||
to_chat(user, span_danger("You [hitverb] [src]!"))
|
||||
|
||||
/mob/living/carbon/alien/humanoid/attack_hand(mob/living/carbon/human/user, list/modifiers)
|
||||
/mob/living/carbon/alien/adult/attack_hand(mob/living/carbon/human/user, list/modifiers)
|
||||
if(!..() || !user.combat_mode)
|
||||
return
|
||||
if(LAZYACCESS(modifiers, RIGHT_CLICK))
|
||||
@@ -48,7 +48,7 @@
|
||||
to_chat(user, span_warning("Your punch misses [src]!"))
|
||||
|
||||
|
||||
/mob/living/carbon/alien/humanoid/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect)
|
||||
/mob/living/carbon/alien/adult/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect)
|
||||
if(!no_effect && !visual_effect_icon)
|
||||
visual_effect_icon = ATTACK_EFFECT_CLAW
|
||||
..()
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
/mob/living/carbon/alien/humanoid/update_icons()
|
||||
/mob/living/carbon/alien/adult/update_icons()
|
||||
cut_overlays()
|
||||
for(var/I in overlays_standing)
|
||||
add_overlay(I)
|
||||
@@ -47,16 +47,16 @@
|
||||
update_held_items()
|
||||
update_worn_handcuffs()
|
||||
|
||||
/mob/living/carbon/alien/humanoid/regenerate_icons()
|
||||
/mob/living/carbon/alien/adult/regenerate_icons()
|
||||
if(!..())
|
||||
// update_icons() //Handled in update_transform(), leaving this here as a reminder
|
||||
update_transform()
|
||||
|
||||
/mob/living/carbon/alien/humanoid/perform_update_transform() //The old method of updating lying/standing was update_icons(). Aliens still expect that.
|
||||
/mob/living/carbon/alien/adult/perform_update_transform() //The old method of updating lying/standing was update_icons(). Aliens still expect that.
|
||||
. = ..()
|
||||
update_icons()
|
||||
|
||||
/mob/living/carbon/alien/humanoid/update_worn_handcuffs()
|
||||
/mob/living/carbon/alien/adult/update_worn_handcuffs()
|
||||
remove_overlay(HANDCUFF_LAYER)
|
||||
var/cuff_icon = "aliencuff"
|
||||
var/dmi_file = 'icons/mob/nonhuman-player/alien.dmi'
|
||||
@@ -75,7 +75,7 @@
|
||||
// AND HERE MOTHERFUCKER AHHHHHH
|
||||
|
||||
//Royals have bigger sprites, so inhand things must be handled differently.
|
||||
/mob/living/carbon/alien/humanoid/royal/update_held_items()
|
||||
/mob/living/carbon/alien/adult/royal/update_held_items()
|
||||
..()
|
||||
remove_overlay(HANDS_LAYER)
|
||||
var/list/hands = list()
|
||||
@@ -381,7 +381,7 @@ Doesn't work on other aliens/AI.*/
|
||||
/datum/action/cooldown/alien/regurgitate/Activate(atom/target)
|
||||
if(!iscarbon(owner))
|
||||
return
|
||||
var/mob/living/carbon/alien/humanoid/alieninated_owner = owner
|
||||
var/mob/living/carbon/alien/adult/alieninated_owner = owner
|
||||
var/obj/item/organ/internal/stomach/alien/melting_pot = alieninated_owner.getorganslot(ORGAN_SLOT_STOMACH)
|
||||
if(!melting_pot)
|
||||
owner.visible_message(span_clown("[src] gags, and spits up a bit of purple liquid. Ewwww."), \
|
||||
@@ -1,16 +1,16 @@
|
||||
/mob/living/carbon/alien/humanoid/drone
|
||||
/mob/living/carbon/alien/adult/drone
|
||||
name = "alien drone"
|
||||
caste = "d"
|
||||
maxHealth = 125
|
||||
health = 125
|
||||
icon_state = "aliend"
|
||||
|
||||
/mob/living/carbon/alien/humanoid/drone/Initialize(mapload)
|
||||
/mob/living/carbon/alien/adult/drone/Initialize(mapload)
|
||||
var/datum/action/cooldown/alien/evolve_to_praetorian/evolution = new(src)
|
||||
evolution.Grant(src)
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/alien/humanoid/drone/create_internal_organs()
|
||||
/mob/living/carbon/alien/adult/drone/create_internal_organs()
|
||||
internal_organs += new /obj/item/organ/internal/alien/plasmavessel/large
|
||||
internal_organs += new /obj/item/organ/internal/alien/resinspinner
|
||||
internal_organs += new /obj/item/organ/internal/alien/acid
|
||||
@@ -30,10 +30,10 @@
|
||||
if(!isturf(owner.loc))
|
||||
return FALSE
|
||||
|
||||
if(get_alien_type(/mob/living/carbon/alien/humanoid/royal))
|
||||
if(get_alien_type(/mob/living/carbon/alien/adult/royal))
|
||||
return FALSE
|
||||
|
||||
var/mob/living/carbon/alien/humanoid/royal/evolver = owner
|
||||
var/mob/living/carbon/alien/adult/royal/evolver = owner
|
||||
var/obj/item/organ/internal/alien/hivenode/node = evolver.getorgan(/obj/item/organ/internal/alien/hivenode)
|
||||
// Players are Murphy's Law. We may not expect
|
||||
// there to ever be a living xeno with no hivenode,
|
||||
@@ -44,7 +44,7 @@
|
||||
return TRUE
|
||||
|
||||
/datum/action/cooldown/alien/evolve_to_praetorian/Activate(atom/target)
|
||||
var/mob/living/carbon/alien/humanoid/evolver = owner
|
||||
var/mob/living/carbon/alien/humanoid/royal/praetorian/new_xeno = new(owner.loc)
|
||||
var/mob/living/carbon/alien/adult/evolver = owner
|
||||
var/mob/living/carbon/alien/adult/royal/praetorian/new_xeno = new(owner.loc)
|
||||
evolver.alien_evolve(new_xeno)
|
||||
return TRUE
|
||||
@@ -1,4 +1,4 @@
|
||||
/mob/living/carbon/alien/humanoid/hunter
|
||||
/mob/living/carbon/alien/adult/hunter
|
||||
name = "alien hunter"
|
||||
caste = "h"
|
||||
maxHealth = 125
|
||||
@@ -6,13 +6,13 @@
|
||||
icon_state = "alienh"
|
||||
var/atom/movable/screen/leap_icon = null
|
||||
|
||||
/mob/living/carbon/alien/humanoid/hunter/create_internal_organs()
|
||||
/mob/living/carbon/alien/adult/hunter/create_internal_organs()
|
||||
internal_organs += new /obj/item/organ/internal/alien/plasmavessel/small
|
||||
..()
|
||||
|
||||
//Hunter verbs
|
||||
|
||||
/mob/living/carbon/alien/humanoid/hunter/proc/toggle_leap(message = 1)
|
||||
/mob/living/carbon/alien/adult/hunter/proc/toggle_leap(message = 1)
|
||||
leap_on_click = !leap_on_click
|
||||
leap_icon.icon_state = "leap_[leap_on_click ? "on":"off"]"
|
||||
update_icons()
|
||||
@@ -21,7 +21,7 @@
|
||||
else
|
||||
return
|
||||
|
||||
/mob/living/carbon/alien/humanoid/hunter/ClickOn(atom/A, params)
|
||||
/mob/living/carbon/alien/adult/hunter/ClickOn(atom/A, params)
|
||||
face_atom(A)
|
||||
if(leap_on_click)
|
||||
leap_at(A)
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
#define MAX_ALIEN_LEAP_DIST 7
|
||||
|
||||
/mob/living/carbon/alien/humanoid/hunter/proc/leap_at(atom/A)
|
||||
/mob/living/carbon/alien/adult/hunter/proc/leap_at(atom/A)
|
||||
if(body_position == LYING_DOWN || HAS_TRAIT(src, TRAIT_IMMOBILIZED) || leaping)
|
||||
return
|
||||
|
||||
@@ -52,14 +52,14 @@
|
||||
ADD_TRAIT(src, TRAIT_MOVE_FLOATING, LEAPING_TRAIT) //Throwing itself doesn't protect mobs against lava (because gulag).
|
||||
throw_at(A, MAX_ALIEN_LEAP_DIST, 1, src, FALSE, TRUE, callback = CALLBACK(src, .proc/leap_end))
|
||||
|
||||
/mob/living/carbon/alien/humanoid/hunter/proc/leap_end()
|
||||
/mob/living/carbon/alien/adult/hunter/proc/leap_end()
|
||||
leaping = FALSE
|
||||
body_position_pixel_x_offset = 0
|
||||
body_position_pixel_y_offset = 0
|
||||
REMOVE_TRAIT(src, TRAIT_MOVE_FLOATING, LEAPING_TRAIT)
|
||||
update_icons()
|
||||
|
||||
/mob/living/carbon/alien/humanoid/hunter/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
|
||||
/mob/living/carbon/alien/adult/hunter/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
|
||||
|
||||
if(!leaping)
|
||||
return ..()
|
||||
@@ -1,11 +1,11 @@
|
||||
/mob/living/carbon/alien/humanoid/royal/praetorian
|
||||
/mob/living/carbon/alien/adult/royal/praetorian
|
||||
name = "alien praetorian"
|
||||
caste = "p"
|
||||
maxHealth = 250
|
||||
health = 250
|
||||
icon_state = "alienp"
|
||||
|
||||
/mob/living/carbon/alien/humanoid/royal/praetorian/Initialize(mapload)
|
||||
/mob/living/carbon/alien/adult/royal/praetorian/Initialize(mapload)
|
||||
real_name = name
|
||||
|
||||
var/datum/action/cooldown/spell/aoe/repulse/xeno/tail_whip = new(src)
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/alien/humanoid/royal/praetorian/create_internal_organs()
|
||||
/mob/living/carbon/alien/adult/royal/praetorian/create_internal_organs()
|
||||
internal_organs += new /obj/item/organ/internal/alien/plasmavessel/large
|
||||
internal_organs += new /obj/item/organ/internal/alien/resinspinner
|
||||
internal_organs += new /obj/item/organ/internal/alien/acid
|
||||
@@ -37,10 +37,10 @@
|
||||
if(!isturf(owner.loc))
|
||||
return FALSE
|
||||
|
||||
if(get_alien_type(/mob/living/carbon/alien/humanoid/royal/queen))
|
||||
if(get_alien_type(/mob/living/carbon/alien/adult/royal/queen))
|
||||
return FALSE
|
||||
|
||||
var/mob/living/carbon/alien/humanoid/royal/evolver = owner
|
||||
var/mob/living/carbon/alien/adult/royal/evolver = owner
|
||||
var/obj/item/organ/internal/alien/hivenode/node = evolver.getorgan(/obj/item/organ/internal/alien/hivenode)
|
||||
if(!node || node.recent_queen_death)
|
||||
return FALSE
|
||||
@@ -48,7 +48,7 @@
|
||||
return TRUE
|
||||
|
||||
/datum/action/cooldown/alien/evolve_to_queen/Activate(atom/target)
|
||||
var/mob/living/carbon/alien/humanoid/royal/evolver = owner
|
||||
var/mob/living/carbon/alien/humanoid/royal/queen/new_queen = new(owner.loc)
|
||||
var/mob/living/carbon/alien/adult/royal/evolver = owner
|
||||
var/mob/living/carbon/alien/adult/royal/queen/new_queen = new(owner.loc)
|
||||
evolver.alien_evolve(new_queen)
|
||||
return TRUE
|
||||
@@ -1,16 +1,16 @@
|
||||
/mob/living/carbon/alien/humanoid/sentinel
|
||||
/mob/living/carbon/alien/adult/sentinel
|
||||
name = "alien sentinel"
|
||||
caste = "s"
|
||||
maxHealth = 150
|
||||
health = 150
|
||||
icon_state = "aliens"
|
||||
|
||||
/mob/living/carbon/alien/humanoid/sentinel/Initialize(mapload)
|
||||
/mob/living/carbon/alien/adult/sentinel/Initialize(mapload)
|
||||
var/datum/action/cooldown/alien/sneak/sneaky_beaky = new(src)
|
||||
sneaky_beaky.Grant(src)
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/alien/humanoid/sentinel/create_internal_organs()
|
||||
/mob/living/carbon/alien/adult/sentinel/create_internal_organs()
|
||||
internal_organs += new /obj/item/organ/internal/alien/plasmavessel
|
||||
internal_organs += new /obj/item/organ/internal/alien/acid
|
||||
internal_organs += new /obj/item/organ/internal/alien/neurotoxin
|
||||
@@ -1,4 +1,4 @@
|
||||
/mob/living/carbon/alien/humanoid/death(gibbed)
|
||||
/mob/living/carbon/alien/adult/death(gibbed)
|
||||
if(stat == DEAD)
|
||||
return
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
status_flags |= CANPUSH
|
||||
|
||||
//When the alien queen dies, all others must pay the price for letting her die.
|
||||
/mob/living/carbon/alien/humanoid/royal/queen/death(gibbed)
|
||||
/mob/living/carbon/alien/adult/royal/queen/death(gibbed)
|
||||
if(stat == DEAD)
|
||||
return
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
|
||||
/mob/living/carbon/alien/humanoid/proc/adjust_body_temperature(current, loc_temp, boost)
|
||||
/mob/living/carbon/alien/adult/proc/adjust_body_temperature(current, loc_temp, boost)
|
||||
var/temperature = current
|
||||
var/difference = abs(current-loc_temp) //get difference
|
||||
var/increments// = difference/10 //find how many increments apart they are
|
||||
@@ -1,4 +1,4 @@
|
||||
/mob/living/carbon/alien/humanoid/royal
|
||||
/mob/living/carbon/alien/adult/royal
|
||||
//Common stuffs for Praetorian and Queen
|
||||
icon = 'icons/mob/nonhuman-player/alienqueen.dmi'
|
||||
status_flags = 0
|
||||
@@ -15,32 +15,32 @@
|
||||
|
||||
var/alt_inhands_file = 'icons/mob/nonhuman-player/alienqueen.dmi'
|
||||
|
||||
/mob/living/carbon/alien/humanoid/royal/Initialize(mapload)
|
||||
/mob/living/carbon/alien/adult/royal/Initialize(mapload)
|
||||
. = ..()
|
||||
// as a wise man once wrote: "pull over that ass too fat"
|
||||
REMOVE_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT)
|
||||
|
||||
/mob/living/carbon/alien/humanoid/royal/on_lying_down(new_lying_angle)
|
||||
/mob/living/carbon/alien/adult/royal/on_lying_down(new_lying_angle)
|
||||
. = ..()
|
||||
SET_PLANE_IMPLICIT(src, GAME_PLANE_FOV_HIDDEN) //So it won't hide smaller mobs.
|
||||
|
||||
/mob/living/carbon/alien/humanoid/royal/on_standing_up(new_lying_angle)
|
||||
/mob/living/carbon/alien/adult/royal/on_standing_up(new_lying_angle)
|
||||
. = ..()
|
||||
SET_PLANE_IMPLICIT(src, initial(plane))
|
||||
|
||||
/mob/living/carbon/alien/humanoid/royal/can_inject(mob/user, target_zone, injection_flags)
|
||||
/mob/living/carbon/alien/adult/royal/can_inject(mob/user, target_zone, injection_flags)
|
||||
return FALSE
|
||||
|
||||
/mob/living/carbon/alien/humanoid/royal/queen
|
||||
/mob/living/carbon/alien/adult/royal/queen
|
||||
name = "alien queen"
|
||||
caste = "q"
|
||||
maxHealth = 400
|
||||
health = 400
|
||||
icon_state = "alienq"
|
||||
|
||||
/mob/living/carbon/alien/humanoid/royal/queen/Initialize(mapload)
|
||||
/mob/living/carbon/alien/adult/royal/queen/Initialize(mapload)
|
||||
//there should only be one queen
|
||||
for(var/mob/living/carbon/alien/humanoid/royal/queen/Q in GLOB.carbon_list)
|
||||
for(var/mob/living/carbon/alien/adult/royal/queen/Q in GLOB.carbon_list)
|
||||
if(Q == src)
|
||||
continue
|
||||
if(Q.stat == DEAD)
|
||||
@@ -62,7 +62,7 @@
|
||||
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/alien/humanoid/royal/queen/create_internal_organs()
|
||||
/mob/living/carbon/alien/adult/royal/queen/create_internal_organs()
|
||||
internal_organs += new /obj/item/organ/internal/alien/plasmavessel/large/queen
|
||||
internal_organs += new /obj/item/organ/internal/alien/resinspinner
|
||||
internal_organs += new /obj/item/organ/internal/alien/acid
|
||||
@@ -106,7 +106,7 @@
|
||||
if(carbon_owner.getPlasma() < promotion_plasma_cost)
|
||||
return FALSE
|
||||
|
||||
if(get_alien_type(/mob/living/carbon/alien/humanoid/royal/praetorian))
|
||||
if(get_alien_type(/mob/living/carbon/alien/adult/royal/praetorian))
|
||||
return FALSE
|
||||
|
||||
return TRUE
|
||||
@@ -138,7 +138,7 @@
|
||||
item_flags = NOBLUDGEON | ABSTRACT | DROPDEL
|
||||
icon = 'icons/mob/nonhuman-player/alien.dmi'
|
||||
|
||||
/obj/item/queen_promotion/attack(mob/living/to_promote, mob/living/carbon/alien/humanoid/queen)
|
||||
/obj/item/queen_promotion/attack(mob/living/to_promote, mob/living/carbon/alien/adult/queen)
|
||||
. = ..()
|
||||
if(.)
|
||||
return
|
||||
@@ -147,7 +147,7 @@
|
||||
if(!promotion)
|
||||
CRASH("[type] was created and handled by a mob ([queen]) that didn't have a promotion action associated.")
|
||||
|
||||
if(!isalienhumanoid(to_promote) || isalienroyal(to_promote))
|
||||
if(!isalienadult(to_promote) || isalienroyal(to_promote))
|
||||
to_chat(queen, span_noticealien("You may only use this with your adult, non-royal children!"))
|
||||
return
|
||||
|
||||
@@ -166,7 +166,7 @@
|
||||
span_noticealien("The queen has granted you a promotion to Praetorian!"),
|
||||
)
|
||||
|
||||
var/mob/living/carbon/alien/humanoid/royal/praetorian/new_prae = new(to_promote.loc)
|
||||
var/mob/living/carbon/alien/adult/royal/praetorian/new_prae = new(to_promote.loc)
|
||||
to_promote.mind.transfer_to(new_prae)
|
||||
|
||||
qdel(to_promote)
|
||||
@@ -16,7 +16,7 @@
|
||||
var/link = FOLLOW_LINK(S, src)
|
||||
to_chat(S, "[link] [rendered]")
|
||||
|
||||
/mob/living/carbon/alien/humanoid/royal/queen/alien_talk(message, shown_name = name)
|
||||
/mob/living/carbon/alien/adult/royal/queen/alien_talk(message, shown_name = name)
|
||||
..(message, shown_name, TRUE)
|
||||
|
||||
/mob/living/carbon/hivecheck()
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
emote_type = EMOTE_AUDIBLE | EMOTE_VISIBLE
|
||||
|
||||
/datum/emote/living/alien/hiss/get_sound(mob/living/user)
|
||||
if(isalienhumanoid(user))
|
||||
if(isalienadult(user))
|
||||
return SFX_HISS
|
||||
|
||||
/datum/emote/living/alien/roar
|
||||
@@ -26,5 +26,5 @@
|
||||
vary = TRUE
|
||||
|
||||
/datum/emote/living/alien/roar/get_sound(mob/living/user)
|
||||
if(isalienhumanoid(user))
|
||||
if(isalienadult(user))
|
||||
return 'sound/voice/hiss5.ogg'
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
caste_options = list()
|
||||
|
||||
// This can probably be genericized in the future.
|
||||
var/mob/hunter_path = /mob/living/carbon/alien/humanoid/hunter
|
||||
var/mob/hunter_path = /mob/living/carbon/alien/adult/hunter
|
||||
var/datum/radial_menu_choice/hunter = new()
|
||||
hunter.name = "Hunter"
|
||||
hunter.image = image(icon = initial(hunter_path.icon), icon_state = initial(hunter_path.icon_state))
|
||||
@@ -64,7 +64,7 @@
|
||||
|
||||
caste_options["Hunter"] = hunter
|
||||
|
||||
var/mob/sentinel_path = /mob/living/carbon/alien/humanoid/sentinel
|
||||
var/mob/sentinel_path = /mob/living/carbon/alien/adult/sentinel
|
||||
var/datum/radial_menu_choice/sentinel = new()
|
||||
sentinel.name = "Sentinel"
|
||||
sentinel.image = image(icon = initial(sentinel_path.icon), icon_state = initial(sentinel_path.icon_state))
|
||||
@@ -74,7 +74,7 @@
|
||||
|
||||
caste_options["Sentinel"] = sentinel
|
||||
|
||||
var/mob/drone_path = /mob/living/carbon/alien/humanoid/drone
|
||||
var/mob/drone_path = /mob/living/carbon/alien/adult/drone
|
||||
var/datum/radial_menu_choice/drone = new()
|
||||
drone.name = "Drone"
|
||||
drone.image = image(icon = initial(drone_path.icon), icon_state = initial(drone_path.icon_state))
|
||||
@@ -88,14 +88,14 @@
|
||||
if(QDELETED(src) || QDELETED(owner) || !IsAvailable() || isnull(alien_caste))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/alien/humanoid/new_xeno
|
||||
var/mob/living/carbon/alien/adult/new_xeno
|
||||
switch(alien_caste)
|
||||
if("Hunter")
|
||||
new_xeno = new /mob/living/carbon/alien/humanoid/hunter(larva.loc)
|
||||
new_xeno = new /mob/living/carbon/alien/adult/hunter(larva.loc)
|
||||
if("Sentinel")
|
||||
new_xeno = new /mob/living/carbon/alien/humanoid/sentinel(larva.loc)
|
||||
new_xeno = new /mob/living/carbon/alien/adult/sentinel(larva.loc)
|
||||
if("Drone")
|
||||
new_xeno = new /mob/living/carbon/alien/humanoid/drone(larva.loc)
|
||||
new_xeno = new /mob/living/carbon/alien/adult/drone(larva.loc)
|
||||
else
|
||||
CRASH("Alien evolve was given an invalid / incorrect alien cast type. Got: [alien_caste]")
|
||||
|
||||
|
||||
@@ -41,10 +41,10 @@
|
||||
//BREATH TEMPERATURE
|
||||
handle_breath_temperature(breath)
|
||||
|
||||
/mob/living/carbon/alien/humanoid/Life(delta_time, times_fired)
|
||||
/mob/living/carbon/alien/adult/Life(delta_time, times_fired)
|
||||
. = ..()
|
||||
handle_organs(delta_time, times_fired)
|
||||
|
||||
|
||||
/mob/living/carbon/alien/handle_status_effects(delta_time, times_fired)
|
||||
..()
|
||||
//natural reduction of movement delay due to stun.
|
||||
|
||||
@@ -314,7 +314,7 @@
|
||||
shake_camera(owner, 0.3 SECONDS, 1.5)
|
||||
return
|
||||
// Failure condition
|
||||
if(isalienhumanoid(user))
|
||||
if(isalienadult(user))
|
||||
play_from.visible_message(span_danger("[user] blows a hole in [stomach_text] and escapes!"), \
|
||||
span_userdanger("As your hive's food bursts out of your stomach, one thought fills your mind. \"Oh, so this is how the other side feels\""))
|
||||
else // Just to be safe ya know?
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
/mob/living/carbon/alien/proc/findQueen()
|
||||
if(hud_used)
|
||||
hud_used.alien_queen_finder.cut_overlays()
|
||||
var/mob/queen = get_alien_type(/mob/living/carbon/alien/humanoid/royal/queen)
|
||||
var/mob/queen = get_alien_type(/mob/living/carbon/alien/adult/royal/queen)
|
||||
if(!queen)
|
||||
return
|
||||
var/turf/Q = get_turf(queen)
|
||||
@@ -29,5 +29,5 @@
|
||||
var/image/finder_eye = image('icons/hud/screen_alien.dmi', finder_icon, dir = Qdir)
|
||||
hud_used.alien_queen_finder.add_overlay(finder_eye)
|
||||
|
||||
/mob/living/carbon/alien/humanoid/royal/queen/findQueen()
|
||||
/mob/living/carbon/alien/adult/royal/queen/findQueen()
|
||||
return //Queen already knows where she is. Hopefully.
|
||||
|
||||
@@ -268,7 +268,7 @@
|
||||
|
||||
//SKYRAT EDIT REMOVAL BEGIN - SKYRAT_XENO_REDO - Moved to: modular_skyrat\modules\xenos_skyrat_redo\code\human_defense.dm
|
||||
/*
|
||||
/mob/living/carbon/human/attack_alien(mob/living/carbon/alien/humanoid/user, list/modifiers)
|
||||
/mob/living/carbon/human/attack_alien(mob/living/carbon/alien/adult/user, list/modifiers)
|
||||
if(check_shields(user, 0, "the [user.name]"))
|
||||
visible_message(span_danger("[user] attempts to touch [src]!"), \
|
||||
span_danger("[user] attempts to touch you!"), span_hear("You hear a swoosh!"), null, user)
|
||||
|
||||
@@ -937,7 +937,7 @@
|
||||
else if(direct & WEST)
|
||||
set_lying_angle(270)
|
||||
|
||||
/mob/living/carbon/alien/humanoid/lying_angle_on_movement(direct)
|
||||
/mob/living/carbon/alien/adult/lying_angle_on_movement(direct)
|
||||
return
|
||||
|
||||
/mob/living/proc/makeTrail(turf/target_turf, turf/start, direction)
|
||||
@@ -1342,12 +1342,12 @@
|
||||
|
||||
if(ckey)
|
||||
picked_xeno_type = pick(
|
||||
/mob/living/carbon/alien/humanoid/hunter,
|
||||
/mob/living/carbon/alien/humanoid/sentinel,
|
||||
/mob/living/carbon/alien/adult/hunter,
|
||||
/mob/living/carbon/alien/adult/sentinel,
|
||||
)
|
||||
else
|
||||
picked_xeno_type = pick(
|
||||
/mob/living/carbon/alien/humanoid/hunter,
|
||||
/mob/living/carbon/alien/adult/hunter,
|
||||
/mob/living/simple_animal/hostile/alien/sentinel,
|
||||
)
|
||||
new_mob = new picked_xeno_type(loc)
|
||||
|
||||
@@ -352,7 +352,7 @@
|
||||
return FALSE
|
||||
return FALSE
|
||||
|
||||
/mob/living/attack_alien(mob/living/carbon/alien/humanoid/user, list/modifiers)
|
||||
/mob/living/attack_alien(mob/living/carbon/alien/adult/user, list/modifiers)
|
||||
SEND_SIGNAL(src, COMSIG_MOB_ATTACK_ALIEN, user, modifiers)
|
||||
if(LAZYACCESS(modifiers, RIGHT_CLICK))
|
||||
user.do_attack_animation(src, ATTACK_EFFECT_DISARM)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
spark_system.start()
|
||||
return ..()
|
||||
|
||||
/mob/living/silicon/ai/attack_alien(mob/living/carbon/alien/humanoid/user, list/modifiers)
|
||||
/mob/living/silicon/ai/attack_alien(mob/living/carbon/alien/adult/user, list/modifiers)
|
||||
if(!SSticker.HasRoundStarted())
|
||||
to_chat(user, "You cannot attack people before the game has started.")
|
||||
return
|
||||
|
||||
@@ -183,7 +183,7 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real
|
||||
spark_system.start()
|
||||
return ..()
|
||||
|
||||
/mob/living/silicon/robot/attack_alien(mob/living/carbon/alien/humanoid/user, list/modifiers)
|
||||
/mob/living/silicon/robot/attack_alien(mob/living/carbon/alien/adult/user, list/modifiers)
|
||||
if (LAZYACCESS(modifiers, RIGHT_CLICK))
|
||||
if(body_position == STANDING_UP)
|
||||
user.do_attack_animation(src, ATTACK_EFFECT_DISARM)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
/mob/living/silicon/get_ear_protection()//no ears
|
||||
return 2
|
||||
|
||||
/mob/living/silicon/attack_alien(mob/living/carbon/alien/humanoid/user, list/modifiers)
|
||||
/mob/living/silicon/attack_alien(mob/living/carbon/alien/adult/user, list/modifiers)
|
||||
if(..()) //if harm or disarm intent
|
||||
var/damage = rand(user.melee_damage_lower, user.melee_damage_upper)
|
||||
if (prob(90))
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1)
|
||||
|
||||
|
||||
/mob/living/simple_animal/attack_alien(mob/living/carbon/alien/humanoid/user, list/modifiers)
|
||||
/mob/living/simple_animal/attack_alien(mob/living/carbon/alien/adult/user, list/modifiers)
|
||||
if(..()) //if harm or disarm intent.
|
||||
if(LAZYACCESS(modifiers, RIGHT_CLICK))
|
||||
playsound(loc, 'sound/weapons/pierce.ogg', 25, TRUE, -1)
|
||||
|
||||
@@ -348,7 +348,7 @@
|
||||
else
|
||||
for(var/mob/living/carbon/C in targets)
|
||||
if(!Discipline && DT_PROB(2.5, delta_time))
|
||||
if(ishuman(C) || isalienhumanoid(C))
|
||||
if(ishuman(C) || isalienadult(C))
|
||||
set_target(C)
|
||||
break
|
||||
|
||||
|
||||
@@ -351,7 +351,7 @@
|
||||
if(..()) //successful attack
|
||||
attacked += 10
|
||||
|
||||
/mob/living/simple_animal/slime/attack_alien(mob/living/carbon/alien/humanoid/user, list/modifiers)
|
||||
/mob/living/simple_animal/slime/attack_alien(mob/living/carbon/alien/adult/user, list/modifiers)
|
||||
if(..()) //if harm or disarm intent.
|
||||
attacked += 10
|
||||
discipline_slime(user)
|
||||
|
||||
@@ -194,14 +194,14 @@
|
||||
qdel(t)
|
||||
|
||||
var/alien_caste = pick("Hunter","Sentinel","Drone")
|
||||
var/mob/living/carbon/alien/humanoid/new_xeno
|
||||
var/mob/living/carbon/alien/adult/new_xeno
|
||||
switch(alien_caste)
|
||||
if("Hunter")
|
||||
new_xeno = new /mob/living/carbon/alien/humanoid/hunter(loc)
|
||||
new_xeno = new /mob/living/carbon/alien/adult/hunter(loc)
|
||||
if("Sentinel")
|
||||
new_xeno = new /mob/living/carbon/alien/humanoid/sentinel(loc)
|
||||
new_xeno = new /mob/living/carbon/alien/adult/sentinel(loc)
|
||||
if("Drone")
|
||||
new_xeno = new /mob/living/carbon/alien/humanoid/drone(loc)
|
||||
new_xeno = new /mob/living/carbon/alien/adult/drone(loc)
|
||||
|
||||
new_xeno.set_combat_mode(TRUE)
|
||||
new_xeno.key = key
|
||||
|
||||
@@ -143,7 +143,7 @@
|
||||
new_bodypart = new /obj/item/bodypart/chest/larva()
|
||||
. = new_bodypart
|
||||
|
||||
/mob/living/carbon/alien/humanoid/newBodyPart(zone)
|
||||
/mob/living/carbon/alien/adult/newBodyPart(zone)
|
||||
var/obj/item/bodypart/new_bodypart
|
||||
switch(zone)
|
||||
if(BODY_ZONE_L_ARM)
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
/datum/surgery/organ_manipulation/alien
|
||||
name = "Alien organ manipulation"
|
||||
possible_locs = list(BODY_ZONE_CHEST, BODY_ZONE_HEAD, BODY_ZONE_PRECISE_GROIN, BODY_ZONE_PRECISE_EYES, BODY_ZONE_PRECISE_MOUTH, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)
|
||||
target_mobtypes = list(/mob/living/carbon/alien/humanoid)
|
||||
target_mobtypes = list(/mob/living/carbon/alien/adult)
|
||||
steps = list(
|
||||
/datum/surgery_step/saw,
|
||||
/datum/surgery_step/incise,
|
||||
|
||||
BIN
icons/mob/animal.dmi
Normal file
BIN
icons/mob/animal.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 240 KiB |
BIN
icons/mob/animal_item_head.dmi
Normal file
BIN
icons/mob/animal_item_head.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.0 KiB |
BIN
icons/mob/cows.dmi
Normal file
BIN
icons/mob/cows.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
BIN
icons/mob/pets.dmi
Normal file
BIN
icons/mob/pets.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 80 KiB |
BIN
icons/mob/pets_held_lh.dmi
Normal file
BIN
icons/mob/pets_held_lh.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
BIN
icons/mob/pets_held_rh.dmi
Normal file
BIN
icons/mob/pets_held_rh.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
@@ -4,42 +4,38 @@ https://github.com/Skyrat-SS13/Skyrat-tg/pull/3194
|
||||
|
||||
MODULE ID: SUICIDE_VERB
|
||||
|
||||
|
||||
### Description:
|
||||
|
||||
Removes the LRP suicide verb, in the same manner as most RP servers.
|
||||
|
||||
|
||||
### TG Proc/File Changes:
|
||||
|
||||
Modified:
|
||||
|
||||
- `code/modules/client/verbs/suicide.dm`
|
||||
|
||||
Removed:
|
||||
|
||||
- `/mob/living/carbon/human/verb/suicide()`
|
||||
- `/mob/living/brain/verb/suicide()`
|
||||
- `/mob/living/silicon/ai/verb/suicide()`
|
||||
- `/mob/living/silicon/robot/verb/suicide()`
|
||||
- `/mob/living/silicon/pai/verb/suicide()`
|
||||
- `/mob/living/carbon/alien/humanoid/verb/suicide()`
|
||||
- `/mob/living/carbon/alien/adult/verb/suicide()`
|
||||
- `/mob/living/simple_animal/verb/suicide()`
|
||||
|
||||
|
||||
### Defines:
|
||||
|
||||
- N/A
|
||||
|
||||
|
||||
### Master file additions
|
||||
|
||||
- N/A
|
||||
|
||||
|
||||
### Included files that are not contained in this module:
|
||||
|
||||
- N/A
|
||||
|
||||
|
||||
### Credits:
|
||||
|
||||
Rohesie
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/// SKYRAT MODULE SKYRAT_XENO_REDO
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat
|
||||
/mob/living/carbon/alien/adult/skyrat
|
||||
name = "rare bugged alien"
|
||||
icon = 'modular_skyrat/modules/xenos_skyrat_redo/icons/big_xenos.dmi'
|
||||
rotate_on_lying = FALSE
|
||||
@@ -33,7 +33,7 @@
|
||||
var/on_fire_pixel_y = 16
|
||||
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/Initialize(mapload)
|
||||
/mob/living/carbon/alien/adult/skyrat/Initialize(mapload)
|
||||
. = ..()
|
||||
small_sprite = new /datum/action/small_sprite/skyrat_xeno()
|
||||
small_sprite.Grant(src)
|
||||
@@ -50,7 +50,7 @@
|
||||
ADD_TRAIT(src, TRAIT_XENO_HEAL_AURA, TRAIT_XENO_INNATE)
|
||||
real_name = "alien [caste]"
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/Destroy()
|
||||
/mob/living/carbon/alien/adult/skyrat/Destroy()
|
||||
QDEL_NULL(small_sprite)
|
||||
QDEL_NULL(rest_button)
|
||||
if(evolve_ability)
|
||||
@@ -58,14 +58,14 @@
|
||||
return ..()
|
||||
|
||||
/// Called when a larva or xeno evolves, adds a configurable timer on evolving again to the xeno
|
||||
/mob/living/carbon/alien/humanoid/skyrat/proc/has_just_evolved()
|
||||
/mob/living/carbon/alien/adult/skyrat/proc/has_just_evolved()
|
||||
if(has_evolved_recently)
|
||||
return
|
||||
has_evolved_recently = TRUE
|
||||
addtimer(CALLBACK(src, .proc/can_evolve_once_again), evolution_cooldown_time)
|
||||
|
||||
/// Allows xenos to evolve again if they are currently unable to
|
||||
/mob/living/carbon/alien/humanoid/skyrat/proc/can_evolve_once_again()
|
||||
/mob/living/carbon/alien/adult/skyrat/proc/can_evolve_once_again()
|
||||
if(!has_evolved_recently)
|
||||
return
|
||||
has_evolved_recently = FALSE
|
||||
@@ -79,7 +79,7 @@
|
||||
. = ..()
|
||||
if(!isalien(owner))
|
||||
return FALSE
|
||||
var/mob/living/carbon/alien/humanoid/skyrat/owner_alien = owner
|
||||
var/mob/living/carbon/alien/adult/skyrat/owner_alien = owner
|
||||
if(!can_be_used_always)
|
||||
if(owner_alien.unable_to_use_abilities)
|
||||
return FALSE
|
||||
@@ -118,7 +118,7 @@
|
||||
plasma_cost = target_alien.get_max_plasma() //This ability should always require that a xeno be at their max plasma capacity to use
|
||||
|
||||
/datum/action/cooldown/alien/skyrat/generic_evolve/Activate()
|
||||
var/mob/living/carbon/alien/humanoid/skyrat/evolver = owner
|
||||
var/mob/living/carbon/alien/adult/skyrat/evolver = owner
|
||||
|
||||
if(!istype(evolver))
|
||||
to_chat(owner, span_warning("You aren't an alien, you can't evolve!"))
|
||||
@@ -165,7 +165,7 @@
|
||||
/datum/movespeed_modifier/alien_big
|
||||
multiplicative_slowdown = 2
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/update_held_items()
|
||||
/mob/living/carbon/alien/adult/skyrat/update_held_items()
|
||||
..()
|
||||
remove_overlay(HANDS_LAYER)
|
||||
var/list/hands = list()
|
||||
@@ -199,8 +199,8 @@
|
||||
return -1
|
||||
return vessel.max_plasma
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/alien_evolve(mob/living/carbon/alien/new_xeno, is_it_a_larva)
|
||||
var/mob/living/carbon/alien/humanoid/skyrat/xeno_to_transfer_to = new_xeno
|
||||
/mob/living/carbon/alien/adult/skyrat/alien_evolve(mob/living/carbon/alien/new_xeno, is_it_a_larva)
|
||||
var/mob/living/carbon/alien/adult/skyrat/xeno_to_transfer_to = new_xeno
|
||||
|
||||
xeno_to_transfer_to.setDir(dir)
|
||||
if(!islarva(xeno_to_transfer_to))
|
||||
@@ -210,7 +210,7 @@
|
||||
mind.transfer_to(xeno_to_transfer_to)
|
||||
qdel(src)
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/update_fire_overlay(stacks, on_fire, last_icon_state, suffix = "")
|
||||
/mob/living/carbon/alien/adult/skyrat/update_fire_overlay(stacks, on_fire, last_icon_state, suffix = "")
|
||||
var/fire_icon = "generic_fire[suffix]"
|
||||
|
||||
if(!GLOB.fire_appearances[fire_icon])
|
||||
@@ -235,10 +235,10 @@
|
||||
apply_overlay(FIRE_LAYER)
|
||||
return null
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/findQueen() //Yes we really do need to do this whole thing to let the queen finder work
|
||||
/mob/living/carbon/alien/adult/skyrat/findQueen() //Yes we really do need to do this whole thing to let the queen finder work
|
||||
if(hud_used)
|
||||
hud_used.alien_queen_finder.cut_overlays()
|
||||
var/mob/queen = get_alien_type(/mob/living/carbon/alien/humanoid/skyrat/queen)
|
||||
var/mob/queen = get_alien_type(/mob/living/carbon/alien/adult/skyrat/queen)
|
||||
if(!queen)
|
||||
return
|
||||
var/turf/Q = get_turf(queen)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/// SKYRAT MODULE SKYRAT_XENO_REDO
|
||||
|
||||
/mob/living/carbon/human/attack_alien(mob/living/carbon/alien/humanoid/user, list/modifiers)
|
||||
/mob/living/carbon/human/attack_alien(mob/living/carbon/alien/adult/user, list/modifiers)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
|
||||
@@ -63,18 +63,18 @@
|
||||
caste_options[caste_name] = caste_option
|
||||
|
||||
/datum/action/cooldown/alien/larva_evolve/proc/spawn_new_xeno(alien_caste)
|
||||
var/mob/living/carbon/alien/humanoid/skyrat/new_xeno
|
||||
var/mob/living/carbon/alien/adult/skyrat/new_xeno
|
||||
var/mob/living/carbon/alien/larva/larva = owner
|
||||
|
||||
switch(alien_caste)
|
||||
if("Runner")
|
||||
new_xeno = new /mob/living/carbon/alien/humanoid/skyrat/runner(larva.loc)
|
||||
new_xeno = new /mob/living/carbon/alien/adult/skyrat/runner(larva.loc)
|
||||
if("Sentinel")
|
||||
new_xeno = new /mob/living/carbon/alien/humanoid/skyrat/sentinel(larva.loc)
|
||||
new_xeno = new /mob/living/carbon/alien/adult/skyrat/sentinel(larva.loc)
|
||||
if("Defender")
|
||||
new_xeno = new /mob/living/carbon/alien/humanoid/skyrat/defender(larva.loc)
|
||||
new_xeno = new /mob/living/carbon/alien/adult/skyrat/defender(larva.loc)
|
||||
if("Drone")
|
||||
new_xeno = new /mob/living/carbon/alien/humanoid/skyrat/drone(larva.loc)
|
||||
new_xeno = new /mob/living/carbon/alien/adult/skyrat/drone(larva.loc)
|
||||
else
|
||||
CRASH("Alien evolve was given an invalid / incorrect alien cast type. Got: [alien_caste]")
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/// SKYRAT MODULE SKYRAT_XENO_REDO
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/defender
|
||||
/mob/living/carbon/alien/adult/skyrat/defender
|
||||
name = "alien defender"
|
||||
desc = "A heavy looking alien with a wrecking ball-like tail that'd probably hurt to get hit by."
|
||||
caste = "defender"
|
||||
@@ -13,9 +13,9 @@
|
||||
var/datum/action/cooldown/mob_cooldown/charge/basic_charge/defender/charge
|
||||
/// Holds the wrecking ball tail sweep that the defender will be granted
|
||||
var/datum/action/cooldown/spell/aoe/repulse/xeno/skyrat_tailsweep/tail_sweep
|
||||
next_evolution = /mob/living/carbon/alien/humanoid/skyrat/warrior
|
||||
next_evolution = /mob/living/carbon/alien/adult/skyrat/warrior
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/defender/Initialize(mapload)
|
||||
/mob/living/carbon/alien/adult/skyrat/defender/Initialize(mapload)
|
||||
. = ..()
|
||||
tail_sweep = new /datum/action/cooldown/spell/aoe/repulse/xeno/skyrat_tailsweep()
|
||||
tail_sweep.Grant(src)
|
||||
@@ -27,12 +27,12 @@
|
||||
|
||||
add_movespeed_modifier(/datum/movespeed_modifier/alien_heavy)
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/defender/Destroy()
|
||||
/mob/living/carbon/alien/adult/skyrat/defender/Destroy()
|
||||
QDEL_NULL(charge)
|
||||
QDEL_NULL(tail_sweep)
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/defender/create_internal_organs()
|
||||
/mob/living/carbon/alien/adult/skyrat/defender/create_internal_organs()
|
||||
internal_organs += new /obj/item/organ/internal/alien/plasmavessel/small
|
||||
..()
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
if(!isalien(owner))
|
||||
return FALSE
|
||||
|
||||
var/mob/living/carbon/alien/humanoid/skyrat/owner_alien = owner
|
||||
var/mob/living/carbon/alien/adult/skyrat/owner_alien = owner
|
||||
|
||||
if(owner_alien.unable_to_use_abilities)
|
||||
return FALSE
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/// SKYRAT MODULE SKYRAT_XENO_REDO
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/drone
|
||||
/mob/living/carbon/alien/adult/skyrat/drone
|
||||
name = "alien drone"
|
||||
desc = "As plain looking as you could call an alien with armored black chitin and large claws."
|
||||
caste = "drone"
|
||||
@@ -11,18 +11,18 @@
|
||||
var/datum/action/cooldown/alien/skyrat/heal_aura/heal_aura_ability
|
||||
melee_damage_lower = 15
|
||||
melee_damage_upper = 20
|
||||
next_evolution = /mob/living/carbon/alien/humanoid/skyrat/praetorian
|
||||
next_evolution = /mob/living/carbon/alien/adult/skyrat/praetorian
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/drone/Initialize(mapload)
|
||||
/mob/living/carbon/alien/adult/skyrat/drone/Initialize(mapload)
|
||||
. = ..()
|
||||
heal_aura_ability = new /datum/action/cooldown/alien/skyrat/heal_aura()
|
||||
heal_aura_ability.Grant(src)
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/drone/Destroy()
|
||||
/mob/living/carbon/alien/adult/skyrat/drone/Destroy()
|
||||
QDEL_NULL(heal_aura_ability)
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/drone/create_internal_organs()
|
||||
/mob/living/carbon/alien/adult/skyrat/drone/create_internal_organs()
|
||||
internal_organs += new /obj/item/organ/internal/alien/plasmavessel
|
||||
internal_organs += new /obj/item/organ/internal/alien/resinspinner
|
||||
..()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/// SKYRAT MODULE SKYRAT_XENO_REDO
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/praetorian
|
||||
/mob/living/carbon/alien/adult/skyrat/praetorian
|
||||
name = "alien praetorian"
|
||||
desc = "An alien that looks like the awkward half-way point between a queen and a drone, in fact that's likely what it is."
|
||||
caste = "praetorian"
|
||||
@@ -13,9 +13,9 @@
|
||||
var/datum/action/cooldown/spell/aoe/repulse/xeno/skyrat_tailsweep/hard_throwing/tail_sweep
|
||||
melee_damage_lower = 25
|
||||
melee_damage_upper = 30
|
||||
next_evolution = /mob/living/carbon/alien/humanoid/skyrat/queen
|
||||
next_evolution = /mob/living/carbon/alien/adult/skyrat/queen
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/praetorian/Initialize(mapload)
|
||||
/mob/living/carbon/alien/adult/skyrat/praetorian/Initialize(mapload)
|
||||
. = ..()
|
||||
heal_aura_ability = new /datum/action/cooldown/alien/skyrat/heal_aura/juiced()
|
||||
heal_aura_ability.Grant(src)
|
||||
@@ -27,11 +27,11 @@
|
||||
|
||||
add_movespeed_modifier(/datum/movespeed_modifier/alien_big)
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/praetorian/Destroy()
|
||||
/mob/living/carbon/alien/adult/skyrat/praetorian/Destroy()
|
||||
QDEL_NULL(heal_aura_ability)
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/praetorian/create_internal_organs()
|
||||
/mob/living/carbon/alien/adult/skyrat/praetorian/create_internal_organs()
|
||||
internal_organs += new /obj/item/organ/internal/alien/plasmavessel/large
|
||||
internal_organs += new /obj/item/organ/internal/alien/neurotoxin/spitter
|
||||
internal_organs += new /obj/item/organ/internal/alien/resinspinner
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/// SKYRAT MODULE SKYRAT_XENO_REDO
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/queen
|
||||
/mob/living/carbon/alien/adult/skyrat/queen
|
||||
name = "alien queen"
|
||||
desc = "A hulking beast of an alien, for some reason this one seems more important than the others, you should probably quit staring at it and do something."
|
||||
caste = "queen"
|
||||
@@ -14,7 +14,7 @@
|
||||
melee_damage_lower = 30
|
||||
melee_damage_upper = 35
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/queen/Initialize(mapload)
|
||||
/mob/living/carbon/alien/adult/skyrat/queen/Initialize(mapload)
|
||||
. = ..()
|
||||
tail_sweep = new /datum/action/cooldown/spell/aoe/repulse/xeno/skyrat_tailsweep/hard_throwing()
|
||||
tail_sweep.Grant(src)
|
||||
@@ -26,19 +26,19 @@
|
||||
|
||||
add_movespeed_modifier(/datum/movespeed_modifier/alien_big)
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/queen/Destroy()
|
||||
/mob/living/carbon/alien/adult/skyrat/queen/Destroy()
|
||||
QDEL_NULL(tail_sweep)
|
||||
QDEL_NULL(screech)
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/queen/create_internal_organs()
|
||||
/mob/living/carbon/alien/adult/skyrat/queen/create_internal_organs()
|
||||
internal_organs += new /obj/item/organ/internal/alien/plasmavessel/large/queen
|
||||
internal_organs += new /obj/item/organ/internal/alien/resinspinner
|
||||
internal_organs += new /obj/item/organ/internal/alien/neurotoxin/queen
|
||||
internal_organs += new /obj/item/organ/internal/alien/eggsac
|
||||
..()
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/queen/alien_talk(message, shown_name = name)
|
||||
/mob/living/carbon/alien/adult/skyrat/queen/alien_talk(message, shown_name = name)
|
||||
..(message, shown_name, TRUE)
|
||||
|
||||
/obj/item/organ/internal/alien/neurotoxin/queen
|
||||
@@ -52,7 +52,7 @@
|
||||
/datum/action/cooldown/alien/acid/corrosion,
|
||||
)
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/queen/death(gibbed)
|
||||
/mob/living/carbon/alien/adult/skyrat/queen/death(gibbed)
|
||||
if(stat == DEAD)
|
||||
return
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
|
||||
/datum/action/cooldown/alien/skyrat/queen_screech/Activate()
|
||||
. = ..()
|
||||
var/mob/living/carbon/alien/humanoid/skyrat/queenie = owner
|
||||
var/mob/living/carbon/alien/adult/skyrat/queenie = owner
|
||||
playsound(queenie, 'modular_skyrat/modules/xenos_skyrat_redo/sound/alien_queen_screech.ogg', 100, FALSE, 8, 0.9)
|
||||
queenie.create_shriekwave()
|
||||
shake_camera(owner, 2, 2)
|
||||
@@ -87,11 +87,11 @@
|
||||
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/proc/create_shriekwave()
|
||||
/mob/living/carbon/alien/adult/skyrat/proc/create_shriekwave()
|
||||
remove_overlay(HALO_LAYER)
|
||||
overlays_standing[HALO_LAYER] = image("icon" = 'modular_skyrat/modules/xenos_skyrat_redo/icons/big_xenos.dmi', "icon_state" = "shriek_waves") //Ehh, suit layer's not being used.
|
||||
apply_overlay(HALO_LAYER)
|
||||
addtimer(CALLBACK(src, .proc/remove_shriekwave), 3 SECONDS)
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/proc/remove_shriekwave()
|
||||
/mob/living/carbon/alien/adult/skyrat/proc/remove_shriekwave()
|
||||
remove_overlay(HALO_LAYER)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
#define RAVAGER_OUTLINE_EFFECT "ravager_endure_outline"
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/ravager
|
||||
/mob/living/carbon/alien/adult/skyrat/ravager
|
||||
name = "alien ravager"
|
||||
desc = "An alien with angry red chitin, with equally intimidating looking blade-like claws in place of normal hands. That sharp tail looks like it'd probably hurt."
|
||||
caste = "ravager"
|
||||
@@ -18,7 +18,7 @@
|
||||
melee_damage_lower = 30
|
||||
melee_damage_upper = 35
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/ravager/Initialize(mapload)
|
||||
/mob/living/carbon/alien/adult/skyrat/ravager/Initialize(mapload)
|
||||
. = ..()
|
||||
tailsweep_slice = new /datum/action/cooldown/spell/aoe/repulse/xeno/skyrat_tailsweep/slicing()
|
||||
tailsweep_slice.Grant(src)
|
||||
@@ -31,14 +31,14 @@
|
||||
|
||||
REMOVE_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT)
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/ravager/Destroy()
|
||||
/mob/living/carbon/alien/adult/skyrat/ravager/Destroy()
|
||||
//QDEL_NULL(triple_charge)
|
||||
QDEL_NULL(tailsweep_slice)
|
||||
QDEL_NULL(you_cant_hurt_me_jack)
|
||||
QDEL_NULL(triple_charge)
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/ravager/create_internal_organs()
|
||||
/mob/living/carbon/alien/adult/skyrat/ravager/create_internal_organs()
|
||||
internal_organs += new /obj/item/organ/internal/alien/plasmavessel
|
||||
..()
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#define EVASION_VENTCRAWL_INABILTY_CD_PERCENTAGE 0.8
|
||||
#define RUNNER_BLUR_EFFECT "runner_evasion"
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/runner
|
||||
/mob/living/carbon/alien/adult/skyrat/runner
|
||||
name = "alien runner"
|
||||
desc = "A short alien with sleek red chitin, clearly abiding by the 'red ones go faster' theorem and almost always running on all fours."
|
||||
caste = "runner"
|
||||
@@ -14,10 +14,10 @@
|
||||
var/datum/action/cooldown/alien/skyrat/evade/evade_ability
|
||||
melee_damage_lower = 15
|
||||
melee_damage_upper = 20
|
||||
next_evolution = /mob/living/carbon/alien/humanoid/skyrat/ravager
|
||||
next_evolution = /mob/living/carbon/alien/adult/skyrat/ravager
|
||||
on_fire_pixel_y = 0
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/runner/Initialize(mapload)
|
||||
/mob/living/carbon/alien/adult/skyrat/runner/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/tackler, stamina_cost = 0, base_knockdown = 2, range = 10, speed = 2, skill_mod = 7, min_distance = 0)
|
||||
evade_ability = new /datum/action/cooldown/alien/skyrat/evade()
|
||||
@@ -25,11 +25,11 @@
|
||||
|
||||
add_movespeed_modifier(/datum/movespeed_modifier/alien_quick)
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/runner/Destroy()
|
||||
/mob/living/carbon/alien/adult/skyrat/runner/Destroy()
|
||||
QDEL_NULL(evade_ability)
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/runner/create_internal_organs()
|
||||
/mob/living/carbon/alien/adult/skyrat/runner/create_internal_organs()
|
||||
internal_organs += new /obj/item/organ/internal/alien/plasmavessel/small/tiny
|
||||
..()
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
addtimer(CALLBACK(owner, /atom.proc/remove_filter, RUNNER_BLUR_EFFECT), 0.5 SECONDS)
|
||||
return BULLET_ACT_FORCE_PIERCE
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/runner/bullet_act(obj/projectile/P, def_zone, piercing_hit = FALSE)
|
||||
/mob/living/carbon/alien/adult/skyrat/runner/bullet_act(obj/projectile/P, def_zone, piercing_hit = FALSE)
|
||||
if(evade_ability)
|
||||
var/evade_result = evade_ability.on_projectile_hit()
|
||||
if(!(evade_result == BULLET_ACT_HIT))
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/// SKYRAT MODULE SKYRAT_XENO_REDO
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/sentinel
|
||||
/mob/living/carbon/alien/adult/skyrat/sentinel
|
||||
name = "alien sentinel"
|
||||
desc = "An alien that'd be unremarkable if not for the bright coloring and visible acid glands that cover it."
|
||||
caste = "sentinel"
|
||||
@@ -9,14 +9,14 @@
|
||||
icon_state = "aliensentinel"
|
||||
melee_damage_lower = 10
|
||||
melee_damage_upper = 15
|
||||
next_evolution = /mob/living/carbon/alien/humanoid/skyrat/spitter
|
||||
next_evolution = /mob/living/carbon/alien/adult/skyrat/spitter
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/sentinel/Initialize(mapload)
|
||||
/mob/living/carbon/alien/adult/skyrat/sentinel/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
add_movespeed_modifier(/datum/movespeed_modifier/alien_slow)
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/sentinel/create_internal_organs()
|
||||
/mob/living/carbon/alien/adult/skyrat/sentinel/create_internal_organs()
|
||||
internal_organs += new /obj/item/organ/internal/alien/plasmavessel/small
|
||||
internal_organs += new /obj/item/organ/internal/alien/neurotoxin/sentinel
|
||||
..()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/// SKYRAT MODULE SKYRAT_XENO_REDO
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/spitter
|
||||
/mob/living/carbon/alien/adult/skyrat/spitter
|
||||
name = "alien spitter"
|
||||
desc = "A fairly heavy looking alien with prominent acid glands, it's mouth dripping with... some kind of toxin or acid."
|
||||
caste = "spitter"
|
||||
@@ -10,14 +10,14 @@
|
||||
melee_damage_lower = 15
|
||||
melee_damage_upper = 20
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/spitter/Initialize(mapload)
|
||||
/mob/living/carbon/alien/adult/skyrat/spitter/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
add_movespeed_modifier(/datum/movespeed_modifier/alien_heavy)
|
||||
|
||||
REMOVE_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT)
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/spitter/create_internal_organs()
|
||||
/mob/living/carbon/alien/adult/skyrat/spitter/create_internal_organs()
|
||||
internal_organs += new /obj/item/organ/internal/alien/plasmavessel
|
||||
internal_organs += new /obj/item/organ/internal/alien/neurotoxin/spitter
|
||||
..()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/// SKYRAT MODULE SKYRAT_XENO_REDO
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/warrior
|
||||
/mob/living/carbon/alien/adult/skyrat/warrior
|
||||
name = "alien warrior"
|
||||
desc = "If there are aliens to call walking tanks, this would be one of them, with both the heavy armor and strong arms to back that claim up."
|
||||
caste = "warrior"
|
||||
@@ -16,7 +16,7 @@
|
||||
/// Holds the agility ability that will be given to the warrior later
|
||||
var/datum/action/cooldown/alien/skyrat/warrior_agility/agility
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/warrior/Initialize(mapload)
|
||||
/mob/living/carbon/alien/adult/skyrat/warrior/Initialize(mapload)
|
||||
. = ..()
|
||||
tail_sweep = new /datum/action/cooldown/spell/aoe/repulse/xeno/skyrat_tailsweep()
|
||||
tail_sweep.Grant(src)
|
||||
@@ -31,13 +31,13 @@
|
||||
|
||||
add_movespeed_modifier(/datum/movespeed_modifier/alien_big)
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/warrior/Destroy()
|
||||
/mob/living/carbon/alien/adult/skyrat/warrior/Destroy()
|
||||
QDEL_NULL(charge)
|
||||
QDEL_NULL(tail_sweep)
|
||||
QDEL_NULL(agility)
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/alien/humanoid/skyrat/warrior/create_internal_organs()
|
||||
/mob/living/carbon/alien/adult/skyrat/warrior/create_internal_organs()
|
||||
internal_organs += new /obj/item/organ/internal/alien/plasmavessel
|
||||
..()
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
|
||||
/// Handles the visual indication and code activation of the warrior agility ability (say that five times fast)
|
||||
/datum/action/cooldown/alien/skyrat/warrior_agility/proc/begin_agility()
|
||||
var/mob/living/carbon/alien/humanoid/skyrat/agility_target = owner
|
||||
var/mob/living/carbon/alien/adult/skyrat/agility_target = owner
|
||||
agility_target.balloon_alert(agility_target, "agility active")
|
||||
to_chat(agility_target, span_danger("We drop onto all fours, allowing us to move at much greater speed at expense of being able to use most abilities."))
|
||||
playsound(agility_target, 'modular_skyrat/modules/xenos_skyrat_redo/sound/alien_hiss.ogg', 100, TRUE, 8, 0.9)
|
||||
@@ -76,7 +76,7 @@
|
||||
|
||||
/// Handles the visual indicators and code side of deactivating the agility ability
|
||||
/datum/action/cooldown/alien/skyrat/warrior_agility/proc/end_agility()
|
||||
var/mob/living/carbon/alien/humanoid/skyrat/agility_target = owner
|
||||
var/mob/living/carbon/alien/adult/skyrat/agility_target = owner
|
||||
agility_target.balloon_alert(agility_target, "agility ended")
|
||||
playsound(agility_target, 'modular_skyrat/modules/xenos_skyrat_redo/sound/alien_roar2.ogg', 100, TRUE, 8, 0.9) //Warrior runs up on all fours, stands upright, screams at you
|
||||
agility_target.icon_state = "alien[agility_target.caste]"
|
||||
|
||||
@@ -3638,17 +3638,17 @@
|
||||
#include "code\modules\mob\living\carbon\alien\organs.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\screen.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\status_procs.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\humanoid\alien_powers.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\humanoid\death.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\humanoid\humanoid.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\humanoid\humanoid_defense.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\humanoid\humanoid_update_icons.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\humanoid\life.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\humanoid\queen.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\humanoid\caste\drone.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\humanoid\caste\hunter.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\humanoid\caste\praetorian.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\humanoid\caste\sentinel.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\adult\adult.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\adult\adult_defense.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\adult\adult_update_icons.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\adult\alien_powers.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\adult\death.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\adult\life.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\adult\queen.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\adult\caste\drone.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\adult\caste\hunter.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\adult\caste\praetorian.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\adult\caste\sentinel.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\larva\death.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\larva\inventory.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\larva\larva.dm"
|
||||
|
||||
Reference in New Issue
Block a user