Adminspawn Cultstuff (#8296)

This commit is contained in:
Geeves
2020-09-02 10:49:57 +02:00
committed by GitHub
parent f060df8b24
commit a24d2ce434
22 changed files with 281 additions and 37 deletions
+30 -1
View File
@@ -380,4 +380,33 @@
r_pocket = null
l_hand = null
backpack_contents = null
backpack_contents = null
/datum/outfit/admin/syndicate/cultist
name = "Cultist"
allow_backbag_choice = FALSE
head = /obj/item/clothing/head/culthood/alt
uniform = /obj/item/clothing/under/serviceoveralls
suit = /obj/item/clothing/suit/cultrobes/alt
back = /obj/item/storage/backpack/cultpack
belt = /obj/item/book/tome
gloves = null
shoes = /obj/item/clothing/shoes/cult
l_ear = null
id = null
r_pocket = null
backpack_contents = null
r_hand = /obj/item/melee/cultblade
/datum/outfit/admin/syndicate/cultist/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
return
/datum/outfit/admin/syndicate/cultist/super
name = "Super Cultist"
head = /obj/item/clothing/head/helmet/space/cult
suit = /obj/item/clothing/suit/space/cult
suit_store = /obj/item/gun/energy/rifle/cult
+1 -7
View File
@@ -150,10 +150,4 @@
update_desc()
update_connections(1)
update_icon()
update_material()
/obj/structure/table/holotable/cultify()
return
/obj/structure/window/cult/cultify()
return
update_material()
+2 -2
View File
@@ -31,7 +31,7 @@
item_state = "cult_armor"
desc = "A bulky armored voidsuit, bristling with menacing spikes. It looks space proof."
w_class = ITEMSIZE_NORMAL
allowed = list(/obj/item/book/tome, /obj/item/melee/cultblade, /obj/item/tank, /obj/item/device/suit_cooling_unit)
allowed = list(/obj/item/book/tome, /obj/item/melee/cultblade, /obj/item/gun/energy/rifle/cult, /obj/item/tank, /obj/item/device/suit_cooling_unit)
slowdown = 1
armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 30, bio = 30, rad = 30)
siemens_coefficient = 0
@@ -39,4 +39,4 @@
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL|HIDESHOES
/obj/item/clothing/suit/space/cult/cultify()
return
return
+20 -1
View File
@@ -37,4 +37,23 @@
/obj/item/clothing/suit/cultrobes/alt
icon_state = "cultrobesalt"
item_state = "cultrobesalt"
item_state = "cultrobesalt"
/obj/item/clothing/shoes/cult
name = "ragged boots"
desc = "A ragged, dusty pair of boots."
icon_state = "cult"
item_state = "cult"
force = 5
silent = 1
siemens_coefficient = 0.35 //antags don't get exceptions, it's just heavy armor by magical standards
armor = list(melee = 50, bullet = 30, laser = 50, energy = 20, bomb = 25, bio = 10, rad = 0)
cold_protection = FEET
min_cold_protection_temperature = SHOE_MIN_COLD_PROTECTION_TEMPERATURE
heat_protection = FEET
max_heat_protection_temperature = SHOE_MAX_HEAT_PROTECTION_TEMPERATURE
species_restricted = null
/obj/item/clothing/shoes/cult/cultify()
return
+8 -2
View File
@@ -7,7 +7,7 @@
item_state = "cultblade"
contained_sprite = TRUE
w_class = 4
force = 30
force = 25
throwforce = 10
slot_flags = SLOT_BELT
edge = TRUE
@@ -16,6 +16,7 @@
drop_sound = 'sound/items/drop/sword.ogg'
pickup_sound = /decl/sound_category/sword_pickup_sound
equip_sound = /decl/sound_category/sword_equip_sound
var/does_cult_check = TRUE
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
can_embed = FALSE //can't get stuck anymore, because blood magic
@@ -24,7 +25,7 @@
return
/obj/item/melee/cultblade/attack(mob/living/M, mob/living/user, var/target_zone)
if(iscultist(user))
if(iscultist(user) || !does_cult_check)
return ..()
var/zone = (user.hand ? BP_L_ARM:BP_R_ARM)
@@ -60,3 +61,8 @@
var/obj/item/material/sword/blade = new(get_turf(src))
blade.force = 15
qdel(src)
/obj/item/melee/cultblade/mounted
name = "daemon doomblade"
force = 40
does_cult_check = FALSE
@@ -55,6 +55,11 @@
else if (dries)
dry()
/obj/effect/decal/cleanable/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/gun/energy/rifle/cult))
return
..()
/obj/effect/decal/cleanable/blood/update_icon()
if(basecolor == "rainbow") basecolor = get_random_colour(1)
color = basecolor
@@ -27,6 +27,11 @@
desc = "They look like the remains of a small reptile."
icon_state = "lizard"
/obj/effect/decal/remains/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/gun/energy/rifle/cult))
return
..()
//Target turns to ash.
/obj/effect/decal/remains/proc/crumble()
var/turf/simulated/floor/F = get_turf(src)
@@ -92,25 +92,6 @@ obj/item/clothing/shoes/sandal/clogs
else
playsound(src, /decl/sound_category/clown_sound, 50, 1) // Running is louder.
/obj/item/clothing/shoes/cult
name = "ragged boots"
desc = "A ragged, dusty pair of boots."
icon_state = "cult"
item_state = "cult"
force = 5
silent = 1
siemens_coefficient = 0.35 //antags don't get exceptions, it's just heavy armor by magical standards
armor = list(melee = 50, bullet = 30, laser = 50,energy = 20, bomb = 25, bio = 10, rad = 0)
cold_protection = FEET
min_cold_protection_temperature = SHOE_MIN_COLD_PROTECTION_TEMPERATURE
heat_protection = FEET
max_heat_protection_temperature = SHOE_MAX_HEAT_PROTECTION_TEMPERATURE
species_restricted = null
/obj/item/clothing/shoes/cult/cultify()
return
/obj/item/clothing/shoes/cyborg
name = "cyborg boots"
desc = "Shoes for a cyborg costume"
@@ -16,6 +16,7 @@ var/global/list/mecha_damage_overlay_cache = list()
#define MECH_SOFTWARE_MEDICAL "medical support systems" // Sleeper.
#define MECH_SOFTWARE_WEAPONS "ballistic weapon systems" // Ballistics.
#define MECH_SOFTWARE_ADVWEAPONS "advanced weapon systems" // Railguns, ion rifle, missile launcher.
#define MECH_SOFTWARE_CULT "daemon systems" // Souljavelin, Doomblade
#define MECH_SOFTWARE_ENGINEERING "advanced engineering systems" // RCD.
// EMP damage points before various effects occur.
@@ -0,0 +1,27 @@
/obj/item/mecha_equipment/mounted_system/soul_javelin
name = "mounted soul javelin"
desc = "A heavy duty daemon shardlauncher, not for the faint of heart."
icon_state = "mecha_souljavelin"
holding_type = /obj/item/gun/energy/rifle/cult/mounted
equipment_delay = -2
restricted_hardpoints = list(HARDPOINT_LEFT_HAND, HARDPOINT_RIGHT_HAND)
restricted_software = list(MECH_SOFTWARE_CULT)
/obj/item/mecha_equipment/doomblade
name = "daemon doomblade"
desc = "A large blade menacing with demonic energy, try to not touch the red parts."
icon_state = "mecha_doomblade"
equipment_delay = 5
restricted_hardpoints = list(HARDPOINT_LEFT_HAND, HARDPOINT_RIGHT_HAND)
restricted_software = list(MECH_SOFTWARE_CULT)
origin_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
var/obj/item/melee/cultblade/doomblade
/obj/item/mecha_equipment/doomblade/Initialize()
. = ..()
doomblade = new /obj/item/melee/cultblade/mounted(src)
/obj/item/mecha_equipment/doomblade/attack(mob/living/M, mob/living/user)
if(!owner)
return
doomblade.attack(M, user, user.zone_sel.selecting)
@@ -190,7 +190,6 @@
name = "floodlight"
desc = "An exosuit-mounted light."
icon_state = "mech_floodlight"
item_state = "mech_floodlight"
restricted_hardpoints = list(HARDPOINT_HEAD)
mech_layer = MECH_INTERMEDIATE_LAYER
@@ -220,6 +219,7 @@
on = FALSE
update_icon()
. = ..()
#define CATAPULT_SINGLE 1
#define CATAPULT_AREA 2
@@ -37,16 +37,20 @@
/mob/living/heavy_vehicle/premade/proc/add_parts()
if(!head && e_head)
head = new e_head(src)
head.color = e_color
if(e_color)
head.color = e_color
if(!body && e_body)
body = new e_body(src)
body.color = e_color
if(e_color)
body.color = e_color
if(!arms && e_arms)
arms = new e_arms(src)
arms.color = e_color
if(e_color)
arms.color = e_color
if(!legs && e_arms)
legs = new e_legs(src)
legs.color = e_color
if(e_color)
legs.color = e_color
/mob/living/heavy_vehicle/premade/proc/do_decals()
if(arms)
@@ -0,0 +1,76 @@
// adminspawn only
/mob/living/heavy_vehicle/premade/cult
name = "Daemon Exosuit"
desc = "An unholy construction, a mecha ripped from the jaws of the underworld, here to wreak havoc on the living."
icon_state = "durand"
e_head = /obj/item/mech_component/sensors/cult
e_body = /obj/item/mech_component/chassis/cult
e_arms = /obj/item/mech_component/manipulators/cult
e_legs = /obj/item/mech_component/propulsion/cult
e_color = null // Uses pre-coloured assets
h_head = /obj/item/mecha_equipment/light/cult
h_back = /obj/item/mecha_equipment/quick_enter
h_r_hand = /obj/item/mecha_equipment/doomblade
/mob/living/heavy_vehicle/premade/cult/super
h_l_hand = /obj/item/mecha_equipment/mounted_system/soul_javelin
/obj/item/mech_component/manipulators/cult
name = "daemon arms"
desc = "Forged by the Great Unknown, these arms wield dark weapons gifted by Nar'Sie."
exosuit_desc_string = "bloodpact reinforced manipulators"
icon_state = "cult_arms"
melee_damage = 50
action_delay = 5
max_damage = 90
power_use = 7500
punch_sound = 'sound/mecha/mech_punch_slow.ogg'
/obj/item/mech_component/propulsion/cult
name = "daemon legs"
desc = "Moving with purpose, these legs can take a follower of Nar'Sie where judgement must be executed."
exosuit_desc_string = "bloodbound hydraulic legs"
icon_state = "cult_legs"
move_delay = 5
max_damage = 90
power_use = 5000
trample_damage = 45
/obj/item/mech_component/sensors/cult
name = "daemon sensors"
desc = "A hard shell to protect those that follow the Great One, these sensors assist in the slaughter."
exosuit_desc_string = "oozing sensor array"
icon_state = "cult_head"
max_damage = 120
power_use = 0
/obj/item/mech_component/sensors/cult/prebuild()
..()
software = new(src)
software.installed_software = list(MECH_SOFTWARE_WEAPONS, MECH_SOFTWARE_CULT)
/obj/item/mech_component/chassis/cult
name = "daemon exosuit chassis"
desc = "Despite its looks, this protective chassis provides supreme comfort to its pilot during their conquest."
hatch_descriptor = "bloodied ribcage"
pilot_coverage = 100
exosuit_desc_string = "a bloodied chassis"
icon_state = "cult_body"
max_damage = 150
mech_health = 500
power_use = 5000
/obj/item/mech_component/chassis/cult/prebuild()
. = ..()
mech_armor = new /obj/item/robot_parts/robot_component/armor/mech/combat(src)
/obj/item/mecha_equipment/light/cult
name = "daemon floatlights"
desc = "Levitating floatlamps held aloft by daemon energy. Casts a crimson light."
icon_state = "mecha_bulb"
mech_layer = MECH_GEAR_LAYER
restricted_software = list(MECH_SOFTWARE_CULT)
light_color = LIGHT_COLOR_EMERGENCY
@@ -0,0 +1,78 @@
/obj/item/gun/energy/rifle/cult
name = "bloodpike"
desc = "A ranged weapon of demonic origin, surely. It menaces with crimson spikes."
desc_info = null
desc_fluff = null
desc_antag = "This weapon can be recharged by clicking on blood or remains with it, remains recharge more than simple blood."
icon = 'icons/obj/guns/bloodpike.dmi'
icon_state = "bloodpike"
item_state = "bloodpike"
fire_sound = 'sound/weapons/laserstrong.ogg'
slot_flags = SLOT_BACK
w_class = ITEMSIZE_LARGE
force = 10
max_shots = 5
fire_delay = 25
accuracy = -1
can_turret = FALSE
can_switch_modes = FALSE
charge_failure_message = " cannot be rearmed by normal means."
has_icon_ratio = TRUE
has_item_ratio = FALSE
light_color = COLOR_RED // muzzle flash
fire_delay_wielded = 1
accuracy_wielded = 2
projectile_type = /obj/item/projectile/bullet/shard
secondary_projectile_type = null
secondary_fire_sound = null
firemodes = list()
modifystate = null
var/does_process = TRUE
matter = null
origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 2, TECH_MAGNET = 3, TECH_ARCANE = 2, TECH_ILLEGAL = 3)
is_wieldable = TRUE // see if i can get a sprite for this
/obj/item/gun/energy/rifle/cult/Initialize()
. = ..()
if(does_process)
START_PROCESSING(SSprocessing, src)
/obj/item/gun/energy/rifle/cult/Destroy()
STOP_PROCESSING(SSprocessing, src)
return ..()
/obj/item/gun/energy/rifle/cult/afterattack(atom/A, mob/living/user, adjacent, params)
if(adjacent && iscultist(user))
if(istype(A, /obj/effect/decal/remains) || istype(A, /obj/effect/decal/cleanable/blood))
do_absorb(user, A)
return
..()
/obj/item/gun/energy/rifle/cult/proc/do_absorb(var/mob/user, var/atom/A)
var/did_absorb
if(istype(A, /obj/effect/decal/remains))
power_supply.give(power_supply.maxcharge / 2) // remains are hard to get, so they give a full half-recharge
did_absorb = TRUE
else if(istype(A, /obj/effect/decal/cleanable/blood))
power_supply.give(charge_cost)
did_absorb = TRUE
if(did_absorb)
user.visible_message("<b>[user]</b> runs \the [src] over \the [A], which it absorbs!", SPAN_CULT("\The [src] absorbs \the [A], powering it up!"))
playsound(get_turf(src), 'sound/effects/blobattack.ogg', 30, TRUE)
qdel(A)
update_icon()
/obj/item/gun/energy/rifle/cult/mounted
max_shots = 15
use_external_power = TRUE
self_recharge = TRUE
has_safety = FALSE
does_process = FALSE
projectile_type = /obj/item/projectile/bullet/shard/heavy
@@ -390,3 +390,12 @@
new /obj/effect/temp_visual/nuke(A.loc)
explosion(A,2,5,9)
..()
/obj/item/projectile/bullet/shard
name = "shard"
icon_state = "shard"
damage = 15
muzzle_type = /obj/effect/projectile/muzzle/bolt
/obj/item/projectile/bullet/shard/heavy
damage = 30