mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-24 21:40:55 +01:00
Added a new mob and a weapon for Purpose. (#18500)
* extreme measures * hunter killer * Adds a new mob and a weapon for Purpose. * cl * Update code/modules/clothing/spacesuits/rig/suits/terminator.dm Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com> Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it> * Update code/modules/projectiles/guns/energy/scythe.dm Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com> Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it> * Update code/modules/projectiles/guns/energy/scythe.dm Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com> Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it> * Update code/modules/projectiles/guns/energy/scythe.dm Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com> Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it> * Update code/modules/projectiles/guns/energy/scythe.dm Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com> Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it> --------- Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it> Co-authored-by: Matt Atlas <liermattia@gmail.com> Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
This commit is contained in:
co-authored by
SleepyGemmy
Matt Atlas
parent
c04df46244
commit
13cbf1267e
@@ -3033,6 +3033,7 @@
|
||||
#include "code\modules\projectiles\guns\energy\nuclear.dm"
|
||||
#include "code\modules\projectiles\guns\energy\pulse.dm"
|
||||
#include "code\modules\projectiles\guns\energy\rifle.dm"
|
||||
#include "code\modules\projectiles\guns\energy\scythe.dm"
|
||||
#include "code\modules\projectiles\guns\energy\special.dm"
|
||||
#include "code\modules\projectiles\guns\energy\stun.dm"
|
||||
#include "code\modules\projectiles\guns\energy\temperature.dm"
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
#define SPECIES_IPC_XION_REMOTE "Remote Xion Industrial Frame"
|
||||
#define SPECIES_IPC_UNBRANDED "Unbranded Frame"
|
||||
#define SPECIES_IPC_UNBRANDED_REMOTE "Remote Unbranded Frame"
|
||||
#define SPECIES_IPC_TERMINATOR "Military Frame"
|
||||
#define SPECIES_IPC_PURPOSE_HK "Hunter-Killer"
|
||||
|
||||
#define SPECIES_SLIMEPERSON "Slime"
|
||||
|
||||
|
||||
@@ -400,7 +400,7 @@
|
||||
if(!(S.status & ORGAN_ASSISTED) || user.a_intent != I_HELP)
|
||||
return ..()
|
||||
|
||||
if(H.isSynthetic() && H == user && !(H.get_species() == SPECIES_IPC_TERMINATOR))
|
||||
if(H.isSynthetic() && H == user && !(H.get_species() == SPECIES_IPC_PURPOSE_HK))
|
||||
to_chat(user, SPAN_WARNING("You can't repair damage to your own body - it's against OH&S."))
|
||||
return
|
||||
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
/obj/item/rig/terminator
|
||||
name = "\improper Military Frame exoskeleton"
|
||||
desc = "A robust synth exoskeleton outfitted with state of the art infiltration tools. Creepy."
|
||||
icon = 'icons/clothing/rig/terminator.dmi'
|
||||
icon_state = "terminator_rig"
|
||||
/obj/item/rig/hunter_killer
|
||||
name = "\improper Purpose combat layer"
|
||||
desc = "An unknown, sleek mechanical construction that doesn't conform to any technology, culture, or even creature you know. \
|
||||
It seems largely impervious to any wear and tear."
|
||||
icon = 'icons/clothing/rig/hunter_killer.dmi'
|
||||
icon_state = "hunterkiller_rig"
|
||||
suit_type = "synthetic exoskeleton"
|
||||
armor = list(
|
||||
melee = ARMOR_MELEE_VERY_HIGH,
|
||||
@@ -30,7 +31,7 @@
|
||||
/obj/item/handcuffs
|
||||
)
|
||||
|
||||
helm_type = /obj/item/clothing/head/helmet/space/rig/terminator
|
||||
helm_type = /obj/item/clothing/head/helmet/space/rig/hunter_killer
|
||||
|
||||
initial_modules = list(
|
||||
/obj/item/rig_module/maneuvering_jets,
|
||||
@@ -49,12 +50,12 @@
|
||||
species_restricted = list(BODYTYPE_IPC_INDUSTRIAL)
|
||||
allowed_module_types = MODULE_GENERAL | MODULE_LIGHT_COMBAT | MODULE_HEAVY_COMBAT | MODULE_SPECIAL | MODULE_MEDICAL | MODULE_UTILITY | MODULE_VAURCA
|
||||
|
||||
/obj/item/clothing/head/helmet/space/rig/terminator
|
||||
/obj/item/clothing/head/helmet/space/rig/hunter_killer
|
||||
species_restricted = list(BODYTYPE_IPC_INDUSTRIAL)
|
||||
light_overlay = "helmet_light_terminator"
|
||||
light_color = LIGHT_COLOR_RED
|
||||
|
||||
/obj/item/rig/terminator/equipped
|
||||
/obj/item/rig/hunter_killer/equipped
|
||||
initial_modules = list(
|
||||
/obj/item/rig_module/maneuvering_jets,
|
||||
/obj/item/rig_module/grenade_launcher/frag,
|
||||
|
||||
@@ -396,7 +396,7 @@ var/list/worths = list(
|
||||
/obj/item/rig/internalaffairs = 9000,
|
||||
/obj/item/rig/merc = 25000,
|
||||
/obj/item/rig/military = 30000,
|
||||
/obj/item/rig/terminator = 30000,
|
||||
/obj/item/rig/hunter_killer = 30000,
|
||||
/obj/item/rig = 15000,
|
||||
/obj/item/forensics = 65,
|
||||
/obj/item/evidencebag = 5,
|
||||
|
||||
@@ -82,22 +82,6 @@
|
||||
key = "y"
|
||||
flags = RESTRICTED | HIVEMIND
|
||||
|
||||
/datum/language/terminator
|
||||
name = LANGUAGE_TERMINATOR
|
||||
desc = "A heavily encrypted communication network that piggybacks off of the state telecomms relays to covertly link Hephaestus black ops droids to their control AIs."
|
||||
speech_verb = list("buzzes")
|
||||
ask_verb = list("buzzes")
|
||||
exclaim_verb = list("buzzes")
|
||||
sing_verb = list("buzzes")
|
||||
colour = "bad"
|
||||
key = "hd"
|
||||
flags = RESTRICTED | HIVEMIND
|
||||
syllables = list("beep","beep","beep","beep","beep","boop","boop","boop","bop","bop","dee","dee","doo","doo","hiss","hss","buzz","buzz","bzz","ksssh","keey","wurr","wahh","tzzz")
|
||||
space_chance = 10
|
||||
|
||||
/datum/language/terminator/get_random_name()
|
||||
return "HK [pick(list("Hera","Zeus","Artemis","Athena","Ares","Hades","Poseidon","Demeter","Apollo","Aphrodite","Hermes","Hestia","Dionysus","Persephone","Kronos","Odysseus","Ajax","Agamemnon","Chiron","Charon"))]-[rand(100, 999)]"
|
||||
|
||||
/datum/language/revenant
|
||||
name = LANGUAGE_REVENANT
|
||||
desc = "The language of the forsaken bluespace inhabitants."
|
||||
@@ -207,3 +191,6 @@
|
||||
flags = RESTRICTED | NO_STUTTER | HIVEMIND
|
||||
syllables = list("beep","beep","beep","beep","beep","boop","boop","boop","bop","bop","dee","dee","doo","doo","hiss","hss","buzz","buzz","bzz","ksssh","keey","wurr","wahh","tzzz")
|
||||
space_chance = 10
|
||||
|
||||
/datum/language/purpose/get_random_name()
|
||||
return "[pick(list("HERA","ZEUS","ARTEMIS","ATHENA","ARES","HADES","POSEIDON","DEMETER","APOLLO","APHORDITE","HERMES","HESTIA","DIONYSUS","PERSEPHONE","KRONOS","ODYSSEUS","AJAX","AGAMENON","CHIRON","CHARON"))][rand(100, 999)]"
|
||||
|
||||
@@ -408,7 +408,7 @@
|
||||
last_special = world.time + 100
|
||||
|
||||
/mob/living/carbon/human/proc/detonate_flechettes()
|
||||
set category = "Military Frame"
|
||||
set category = "Abilities"
|
||||
set name = "Detonate Flechettes"
|
||||
set desc = "Detonate all explosive flechettes in a range of seven meters."
|
||||
|
||||
@@ -417,7 +417,7 @@
|
||||
return
|
||||
|
||||
for(var/mob/living/M in range(7, src))
|
||||
to_chat(M, 'sound/effects/EMPulse.ogg')
|
||||
playsound(M, 'sound/effects/EMPulse.ogg')
|
||||
for(var/obj/item/material/shard/shrapnel/flechette/F in M.contents)
|
||||
playsound(F, 'sound/items/countdown.ogg', 125, 1)
|
||||
spawn(20)
|
||||
@@ -434,7 +434,7 @@
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/state_laws()
|
||||
set category = "Military Frame"
|
||||
set category = "Abilities"
|
||||
set name = "State Laws"
|
||||
set desc = "State your laws aloud."
|
||||
|
||||
@@ -520,7 +520,7 @@
|
||||
last_special = world.time + 200
|
||||
|
||||
/mob/living/carbon/human/proc/self_destruct()
|
||||
set category = "Military Frame"
|
||||
set category = "Abilities"
|
||||
set name = "Engage Self-Destruct"
|
||||
set desc = "When all else has failed, bite the bullet."
|
||||
|
||||
|
||||
@@ -262,8 +262,8 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy/mannequin)
|
||||
remote_network = REMOTE_BUNKER_ROBOT
|
||||
SSvirtualreality.add_robot(src, remote_network)
|
||||
|
||||
/mob/living/carbon/human/terminator/Initialize(mapload)
|
||||
. = ..(mapload, SPECIES_IPC_TERMINATOR)
|
||||
/mob/living/carbon/human/hunter_killer/Initialize(mapload)
|
||||
. = ..(mapload, SPECIES_IPC_PURPOSE_HK)
|
||||
add_language(LANGUAGE_SOL_COMMON, 1)
|
||||
add_language(LANGUAGE_ELYRAN_STANDARD, 1)
|
||||
add_language(LANGUAGE_UNATHI, 1)
|
||||
@@ -272,17 +272,13 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy/mannequin)
|
||||
add_language(LANGUAGE_TRADEBAND, 1)
|
||||
add_language(LANGUAGE_GUTTER, 1)
|
||||
add_language(LANGUAGE_EAL, 1)
|
||||
src.equip_to_slot_or_del(new /obj/item/rig/terminator(src),slot_back)
|
||||
src.equip_to_slot_or_del(new /obj/item/gun/projectile/automatic/terminator(src),slot_l_hand)
|
||||
accent = ACCENT_TTS
|
||||
src.equip_to_slot_or_del(new /obj/item/gun/energy/scythe(src),slot_l_hand)
|
||||
src.equip_to_slot_or_del(new /obj/item/clothing/under/gearharness, slot_w_uniform)
|
||||
src.equip_to_slot_or_del(new /obj/item/device/radio/headset/syndicate(src), slot_l_ear)
|
||||
src.equip_to_slot_or_del(new /obj/item/grenade/frag(src), slot_l_store)
|
||||
src.equip_to_slot_or_del(new /obj/item/melee/energy/sword(src), slot_r_store)
|
||||
|
||||
var/obj/item/storage/belt/security/tactical/commando_belt = new(src)
|
||||
commando_belt.contents += new /obj/item/ammo_magazine/flechette
|
||||
commando_belt.contents += new /obj/item/ammo_magazine/flechette/explosive
|
||||
commando_belt.contents += new /obj/item/ammo_magazine/flechette/explosive
|
||||
commando_belt.contents += new /obj/item/melee/baton/loaded
|
||||
commando_belt.contents += new /obj/item/shield/energy
|
||||
commando_belt.contents += new /obj/item/handcuffs
|
||||
@@ -291,7 +287,7 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy/mannequin)
|
||||
src.equip_to_slot_or_del(commando_belt, slot_belt)
|
||||
src.gender = NEUTER
|
||||
|
||||
/mob/living/carbon/human/terminator
|
||||
/mob/living/carbon/human/hunter_killer
|
||||
mob_size = 30
|
||||
|
||||
/mob/living/carbon/human/golem/Initialize(mapload)
|
||||
|
||||
@@ -190,8 +190,8 @@
|
||||
/datum/species/machine/industrial/handle_death(var/mob/living/carbon/human/H)
|
||||
return
|
||||
|
||||
/datum/species/machine/terminator
|
||||
name = SPECIES_IPC_TERMINATOR
|
||||
/datum/species/machine/hunter_killer
|
||||
name = SPECIES_IPC_PURPOSE_HK
|
||||
short_name = "hks"
|
||||
name_plural = "HKs"
|
||||
bald = 1
|
||||
@@ -200,8 +200,8 @@
|
||||
|
||||
blurb = "\[REDACTED\]"
|
||||
|
||||
icobase = 'icons/mob/human_races/ipc/r_terminator.dmi'
|
||||
deform = 'icons/mob/human_races/ipc/r_terminator.dmi'
|
||||
icobase = 'icons/mob/human_races/ipc/r_hunter_killer.dmi'
|
||||
deform = 'icons/mob/human_races/ipc/r_hunter_killer.dmi'
|
||||
|
||||
light_range = 0
|
||||
light_power = 0
|
||||
@@ -209,8 +209,8 @@
|
||||
unarmed_types = list(/datum/unarmed_attack/terminator)
|
||||
rarity_value = 20
|
||||
|
||||
language = LANGUAGE_TERMINATOR
|
||||
name_language = LANGUAGE_TERMINATOR
|
||||
language = LANGUAGE_PURPOSE
|
||||
name_language = LANGUAGE_PURPOSE
|
||||
|
||||
eyes = "eyes_terminator"
|
||||
has_floating_eyes = 1
|
||||
@@ -288,10 +288,10 @@
|
||||
sprint_temperature_factor = 0.6
|
||||
move_charge_factor = 0.3
|
||||
|
||||
/datum/species/machine/terminator/get_light_color()
|
||||
/datum/species/machine/hunter_killer/get_light_color()
|
||||
return
|
||||
|
||||
/datum/species/machine/terminator/handle_death(var/mob/living/carbon/human/H)
|
||||
/datum/species/machine/hunter_killer/handle_death(var/mob/living/carbon/human/H)
|
||||
..()
|
||||
playsound(H.loc, 'sound/items/countdown.ogg', 125, 1)
|
||||
spawn(15)
|
||||
|
||||
@@ -102,8 +102,8 @@ GLOBAL_DATUM(basic_robolimb, /datum/robolimb)
|
||||
|
||||
/datum/robolimb/terminator
|
||||
company = PROSTHETIC_HK
|
||||
desc = "A ludicrously expensive and EMP shielded component, these types of limbs are best suited for highly specialized cyborgs."
|
||||
icon = 'icons/mob/human_races/ipc/r_terminator.dmi'
|
||||
desc = "A ludicrously complex prosthetic created for Purpose Hunter-Killers."
|
||||
icon = 'icons/mob/human_races/ipc/r_hunter_killer.dmi'
|
||||
unavailable_at_chargen = TRUE
|
||||
allows_internal = FALSE
|
||||
|
||||
|
||||
@@ -572,7 +572,7 @@ By design, d1 is the smallest direction and d2 is the highest
|
||||
if(!(S.status & ORGAN_ASSISTED) || user.a_intent != I_HELP)
|
||||
return ..()
|
||||
|
||||
if(M.isSynthetic() && M == user && !(M.get_species() == SPECIES_IPC_TERMINATOR))
|
||||
if(M.isSynthetic() && M == user && !(M.get_species() == SPECIES_IPC_PURPOSE_HK))
|
||||
to_chat(user, SPAN_WARNING("You can't repair damage to your own body - it's against OH&S."))
|
||||
return
|
||||
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
/obj/item/gun/energy/scythe
|
||||
name = "\improper Purpose munitions scythe"
|
||||
desc = "<span class='warning'>A seemingly innocuous metal construction the size of a human arm. Through forces unknown, it produces alloy flechettes \
|
||||
capable of piercing even the strongest armor known to the Spur.</span>"
|
||||
icon = 'icons/obj/guns/scythe.dmi'
|
||||
icon_state = "hunterkiller_scythe"
|
||||
item_state = "hunterkiller_scythe"
|
||||
w_class = ITEMSIZE_HUGE
|
||||
force = 25
|
||||
armor_penetration = 30
|
||||
slot_flags = SLOT_BACK
|
||||
fire_sound = 'sound/weapons/railgun.ogg'
|
||||
safetyoff_sound = 'sound/weapons/railgun_insert.ogg'
|
||||
hitsound = 'sound/weapons/heavysmash.ogg'
|
||||
can_suppress = FALSE
|
||||
has_safety = FALSE
|
||||
has_item_ratio = FALSE
|
||||
|
||||
max_shots = 20
|
||||
self_recharge = TRUE
|
||||
reliability = 100
|
||||
projectile_type = /obj/item/projectile/bullet/flechette
|
||||
|
||||
firemodes = list(
|
||||
list(mode_name="semiauto", burst=1, projectile_type=/obj/item/projectile/bullet/flechette),
|
||||
list(mode_name="3-round bursts", burst=3, burst_delay=ROF_SUPERHEAVY, burst_accuracy=list(2,1,1), dispersion=list(0, 10, 15), projectile_type=/obj/item/projectile/bullet/flechette),
|
||||
list(mode_name="explosive", burst=1, projectile_type=/obj/item/projectile/bullet/flechette/explosive)
|
||||
)
|
||||
|
||||
|
||||
fire_delay = ROF_UNWIELDY
|
||||
accuracy = 2
|
||||
scoped_accuracy = 3
|
||||
|
||||
/obj/item/gun/energy/scythe/get_cell()
|
||||
return DEVICE_NO_CELL
|
||||
|
||||
/obj/item/gun/energy/scythe/fire_checks(atom/target, mob/living/user, clickparams, pointblank, reflex)
|
||||
if(!ishuman(user))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/terminator = user
|
||||
|
||||
if(!isipc(terminator))
|
||||
to_chat(terminator, SPAN_WARNING("You have no idea how to even use this. Where's the trigger...?"))
|
||||
return FALSE
|
||||
|
||||
if(!istype(terminator.species, /datum/species/machine/hunter_killer))
|
||||
to_chat(terminator, SPAN_WARNING("You can't interface with this weapon's systems at all. It feels entirely alien."))
|
||||
return FALSE
|
||||
|
||||
. = ..()
|
||||
|
||||
/obj/item/gun/energy/scythe/verb/scope()
|
||||
set category = "Object"
|
||||
set name = "Use Scope"
|
||||
set src in usr
|
||||
|
||||
if(!ishuman(usr))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/terminator = usr
|
||||
if(!terminator.use_check_and_message())
|
||||
return
|
||||
|
||||
if(!isipc(terminator))
|
||||
to_chat(terminator, SPAN_WARNING("You have no idea where to even look..."))
|
||||
return
|
||||
|
||||
if(!istype(terminator.species, /datum/species/machine/hunter_killer))
|
||||
to_chat(terminator, SPAN_WARNING("These systems are far too alien for even you to figure out."))
|
||||
return
|
||||
|
||||
if(wielded)
|
||||
playsound(terminator, 'sound/items/goggles_charge.ogg')
|
||||
toggle_scope(2, terminator)
|
||||
else
|
||||
to_chat(terminator, SPAN_WARNING("You can't look through the scope without stabilizing the rifle!"))
|
||||
@@ -432,6 +432,7 @@
|
||||
icon = 'icons/obj/terminator.dmi'
|
||||
icon_state = "flechette_bullet"
|
||||
damage = 40
|
||||
armor_penetration = 15
|
||||
damage_type = DAMAGE_BRUTE
|
||||
check_armor = "bullet"
|
||||
embed = 1
|
||||
@@ -444,6 +445,7 @@
|
||||
shrapnel_type = /obj/item/material/shard/shrapnel/flechette
|
||||
penetrating = 0
|
||||
damage = 10
|
||||
armor_penetration = 60
|
||||
|
||||
/obj/item/projectile/bullet/gauss
|
||||
name = "slug"
|
||||
|
||||
@@ -85,10 +85,10 @@ GLOBAL_VAR_INIT(running_create_and_destroy, FALSE)
|
||||
/obj/structure/mech_wreckage/powerloader,
|
||||
|
||||
// Sleeps in init
|
||||
/mob/living/carbon/human/terminator,
|
||||
/mob/living/carbon/human/hunter_killer,
|
||||
|
||||
// Mysterious failure in init, with gcdelete -1
|
||||
/mob/living/carbon/human/terminator,
|
||||
/mob/living/carbon/human/hunter_killer,
|
||||
|
||||
/obj/spellbutton,
|
||||
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
################################
|
||||
# Example Changelog File
|
||||
#
|
||||
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
|
||||
#
|
||||
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
|
||||
# When it is, any changes listed below will disappear.
|
||||
#
|
||||
# Valid Prefixes:
|
||||
# bugfix
|
||||
# wip (For works in progress)
|
||||
# tweak
|
||||
# soundadd
|
||||
# sounddel
|
||||
# rscadd (general adding of nice things)
|
||||
# rscdel (general deleting of nice things)
|
||||
# imageadd
|
||||
# imagedel
|
||||
# maptweak
|
||||
# spellcheck (typo fixes)
|
||||
# experiment
|
||||
# balance
|
||||
# admin
|
||||
# backend
|
||||
# security
|
||||
# refactor
|
||||
#################################
|
||||
|
||||
# Your name.
|
||||
author: MattAtlas (Code), Noble Row (Sprites)
|
||||
|
||||
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
|
||||
delete-after: True
|
||||
|
||||
# Any changes you've made. See valid prefix list above.
|
||||
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
|
||||
# SCREW THIS UP AND IT WON'T WORK.
|
||||
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
|
||||
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
|
||||
changes:
|
||||
- rscadd: "Added a new mob and a weapon for Purpose."
|
||||
- rscadd: "Gave flechette ammunition AP."
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 7.9 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 12 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.5 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.3 KiB |
Reference in New Issue
Block a user