New Gateway: Destroyed Asteroid Mining (#7651)

This commit is contained in:
FluffMedic
2024-01-31 15:01:18 -05:00
committed by GitHub
parent 512c558ba0
commit d6fae8b211
47 changed files with 70094 additions and 57 deletions
@@ -0,0 +1,38 @@
/obj/item/weapon/rig/ch/crystal
name = "crystal control module"
desc = "An oddly lightweight rigsuit from a strange crystaline creature."
suit_type = "crystal hardsuit"
icon = 'modular_chomp/icons/obj/rig_modules_ch.dmi'
icon_state = "aegis_rig"
armor = list(melee = 50, bullet = 50, laser = 30, energy = 30, bomb = 0, bio = 100, rad = 100)
emp_protection = 50
rigsuit_max_pressure = 12 * ONE_ATMOSPHERE
rigsuit_min_pressure = 0
chest_type = /obj/item/clothing/suit/space/rig/ch/crystal
helm_type = /obj/item/clothing/head/helmet/space/rig/ch/crystal
glove_type = /obj/item/clothing/gloves/gauntlets/rig/ch/crystal
boot_type = /obj/item/clothing/shoes/magboots/rig/ch/crystal
/obj/item/clothing/suit/space/rig/ch/crystal //to do, try and make this be able to heal you
name = "chassis"
icon = 'icons/obj/clothing/spacesuits_ch.dmi'
desc = "A heft chestplate, humming with energy."
/obj/item/clothing/head/helmet/space/rig/ch/crystal
name = "helmet"
icon = 'icons/obj/clothing/hats_ch.dmi'
desc = "A protective dome for your head."
/obj/item/clothing/gloves/gauntlets/rig/ch/crystal
name = "hardlight gloves"
icon = 'icons/obj/clothing/gloves_ch.dmi'
desc = "Gloves created with alien tech"
siemens_coefficient = 0
/obj/item/clothing/shoes/magboots/rig/ch/crystal
name = "hardlight boots"
icon = 'icons/obj/clothing/shoes_ch.dmi'
desc = "A pair of grabby boots"
slowdown = -1
+10 -1
View File
@@ -6,4 +6,13 @@
backstab_bonus = 30 // 60
reach = 2
slot_flags = SLOT_BELT
w_class = ITEMSIZE_NORMAL
w_class = ITEMSIZE_NORMAL
/obj/item/weapon/pickaxe/anamolous
name = "strange pickaxe"
icon_state = "ppickaxe"
item_state = "ppickaxe"
digspeed = 2
throwforce = 25.0
origin_tech = list(TECH_MATERIAL = 3)
desc = "This oddly lightweight pickaxe seems rather sturdy."
@@ -0,0 +1,39 @@
/mob/living/simple_mob/animal/crystalbeast
faction = "livingcrystal"
//simple gimmick boss
/mob/living/simple_mob/animal/crystalbeast/snail
name = "Crystal Goliath Snail"
desc = "A massive hulking beast made of strange crystal. Normal attacks seem like they will be ineffective. Explosions or piercing might do the trick"
health = 150
maxHealth = 150
icon = 'modular_chomp/icons/mob/eclipse.dmi'
icon_state = "crystal"
icon_dead = "crystal_dead"
armor = list(melee = 60, bullet = 60, laser = 60, energy = 60, bomb = 0, bio = 100, rad = 100)
armor_soak = list(melee = 10, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0)
min_oxy = 0
max_oxy = 0
min_tox = 0
max_tox = 0
min_co2 = 0
max_co2 = 0
min_n2 = 0
max_n2 = 0
minbodytemp = 0
heat_damage_per_tick = 0
melee_damage_lower = 5
melee_damage_upper = 65
size_multiplier = 4
melee_attack_delay = 8
movement_cooldown = 13
loot_list = list(/obj/item/weapon/rig/ch/crystal = 100,
)
//Note to self, make the angel here when energy is gained
@@ -0,0 +1,23 @@
/mob/living/simple_mob/animal/space/carp/station
name = "distant space carp"
health = 50
maxHealth = 50
faction = "station"
var/body_color
/mob/living/simple_mob/animal/space/carp/station/Initialize()
.=..()
body_color = pick(list("green","red","orange","yellow","blue"))
if(body_color == "green")
color = "#660066"
if(body_color == "red")
color = "#FF0000"
if(body_color == "orange")
color = "#FF6600"
if(body_color == "yellow")
color = "#00FF00"
if(body_color == "blue")
color = "#0099CC"
@@ -58,6 +58,9 @@
reload_max = 7 // Not the best default, but it fits the pistol
ai_holder_type = /datum/ai_holder/simple_mob/merc/eclipse/ranged
loot_list = list(/obj/item/slime_extract/sepia = 0.1,
)
special_attack_cooldown = 15 SECONDS
special_attack_min_range = 2
special_attack_max_range = 7
@@ -847,6 +850,8 @@
submunition_spread_min = 500
submunitions = list(/obj/item/projectile/energy/frostsphere = 4)
hud_state = "plasma_sphere"
/obj/item/projectile/bullet/frostshotgun/on_range()
qdel(src)
@@ -858,7 +863,8 @@
modifier_type_to_apply = /datum/modifier/cryogelled
modifier_duration = 0.25 MINUTE
speed = 2.5
range = 8
range = 12
hud_state = "water"
/datum/ai_holder/simple_mob/merc/eclipse/ranged/cyro
can_flee = TRUE // If they're even allowed to flee.
@@ -0,0 +1,365 @@
/mob/living/simple_mob/humanoid/eclipse/head
name = "Eclipse Head"
desc = "You shouldn't be seeing this. This is going to be rough"
health = 315
maxHealth = 315 //A 20 damae shot will need to land 35 times
projectile_dispersion = 8
projectile_accuracy = 0
ranged_cooldown = 5
damage_fatigue_mult = 0
armor = list(melee = 20, bullet = 20, laser = 20, energy = 20, bomb = 100, bio = 100, rad = 100)
armor_soak = list(melee = 7, bullet = 7, laser = 7, energy = 7, bomb = 0, bio = 0, rad = 0)
/mob/living/simple_mob/humanoid/eclipse/head/security
name = "Eclipse Head Of Security"
icon_state = "fleetsec"
projectiletype = /obj/item/projectile/energy/flamecrystal
special_attack_cooldown = 10 SECONDS
special_attack_min_range = 1
special_attack_max_range = 8
loot_list = list(/obj/item/weapon/gun/energy/flamegun = 100,
)
/mob/living/simple_mob/humanoid/eclipse/head/security/updatehealth()
. = ..()
if(vore_fullness == 1)
ranged_cooldown = 8
projectiletype = /obj/item/projectile/energy/flamecrystal
else if(vore_fullness == 2)
ranged_cooldown = 12
projectiletype = /obj/item/projectile/energy/fireball
else if (vore_fullness > 2)
ranged_cooldown = 16
projectiletype = /obj/item/projectile/energy/fireball
else
ranged_cooldown = 5
/mob/living/simple_mob/humanoid/eclipse/head/security/do_special_attack(atom/A)
if(vore_fullness < 2)
if(prob(50))
rapidfire(A)
else
tornado_maw(A)
else if(vore_fullness == 2)
tornado_maw(A)
else if(vore_fullness > 2)
if(prob(50))
deathtoll(A)
else
tornado_maw(A)
/mob/living/simple_mob/humanoid/eclipse/head/security/proc/rapidfire(atom/A)
var/obj/item/projectile/P = new /obj/item/projectile/energy/flamecrystal(get_turf(src))
P.launch_projectile(A, BP_TORSO, src)
sleep(1)
P.launch_projectile(A, BP_TORSO, src)
sleep(1)
P.launch_projectile(A, BP_TORSO, src)
sleep(1)
P.launch_projectile(A, BP_TORSO, src)
sleep(1)
P.launch_projectile(A, BP_TORSO, src)
/mob/living/simple_mob/humanoid/eclipse/head/security/proc/tornado_maw(atom/A)
var/turf/T = get_turf(src)
var/datum/effect/effect/system/grav_pull/s1 = new /datum/effect/effect/system/grav_pull
s1.set_up(5, 1, T)
s1.start()
/mob/living/simple_mob/humanoid/eclipse/head/security/proc/deathtoll(atom/A)
var/list/potential_targets = ai_holder.list_targets()
for(var/atom/entry in potential_targets)
if(istype(entry, /mob/living/simple_mob/humanoid/eclipse))
potential_targets -= entry
if(potential_targets.len)
var/iteration = clamp(potential_targets.len, 1, 3)
for(var/i = 0, i < iteration, i++)
if(!(potential_targets.len))
break
var/mob/target = pick(potential_targets)
potential_targets -= target
deathtollfollow(target)
/mob/living/simple_mob/humanoid/eclipse/head/security/proc/deathtollfollow(atom/target)
var/list/bomb_range = block(locate(target.x-6, target.y-6, target.z), locate(target.x+6, target.y+6, target.z))
var/obj/item/projectile/P = new /obj/item/projectile/bullet/flamegun(get_turf(src))
bomb_range -= get_turf(target)
for(var/i = 0, i < 4, i++)
var/turf/T = pick(bomb_range)
P.launch_projectile(target, BP_TORSO, src)
bomb_range -= T
/obj/item/projectile/energy/flamecrystal
name = "Flame Crystal"
icon = 'modular_chomp/icons/mob/eclipse.dmi' //commiting sin
icon_state = "firecrystal"
damage = 15
armor_penetration = 40 //Large pointy crystal
damage_type = BRUTE
check_armour = "bullet"
modifier_type_to_apply = /datum/modifier/fire/weak
modifier_duration = 0.05 MINUTE
range = 12
hud_state = "laser_sniper"
/obj/item/projectile/bullet/flamegun
use_submunitions = 1
only_submunitions = 1
range = 0
embed_chance = 0
submunition_spread_max = 800
submunition_spread_min = 200
submunitions = list(/obj/item/projectile/energy/flamecrystal = 3)
hud_state = "laser_heat"
/obj/item/projectile/bullet/flamegun/on_range()
qdel(src)
/mob/living/simple_mob/humanoid/eclipse/head/scientist
name = "Eclipse Lead Researcher"
icon_state = "fleetsci"
health = 30
special_attack_cooldown = 5 SECONDS
special_attack_min_range = 1
special_attack_max_range = 10
projectiletype = /obj/item/projectile/bullet/pistol/ap
loot_list = list(/obj/item/weapon/circuitboard/mecha/hades/targeting = 100,
/obj/item/weapon/circuitboard/mecha/hades/peripherals = 100,
/obj/item/weapon/circuitboard/mecha/hades/main = 100,
)
var/obj/item/shield_projector/shield1 = null
var/obj/item/shield_projector/shield2 = null
var/obj/item/shield_projector/shield3 = null
/mob/living/simple_mob/humanoid/eclipse/head/scientist/Initialize(mapload)
shield1 = new /obj/item/shield_projector/rectangle/automatic/eclipse(src)
shield2 = new /obj/item/shield_projector/rectangle/automatic/eclipse/medium(src)
shield3 = new /obj/item/shield_projector/rectangle/automatic/eclipse/big(src)
return ..()
/obj/item/shield_projector/rectangle/automatic/eclipse
name = "cult shield stone"
icon = 'icons/obj/device.dmi'
icon_state = "implant_melted"
shield_health = 100
max_shield_health = 100
shield_regen_delay = 120 SECONDS
shield_regen_amount = 100
size_x = 1
size_y = 1
color = "#FF6600"
high_color = "#0099CC"
low_color = "#660066"
/obj/item/shield_projector/rectangle/automatic/eclipse/medium
size_x = 2
size_y = 2
/obj/item/shield_projector/rectangle/automatic/eclipse/big
size_x = 3
size_y = 3
/mob/living/simple_mob/humanoid/eclipse/head/scientist/updatehealth()
. = ..()
if(vore_fullness == 1)
special_attack_cooldown = 10 SECONDS
else if(vore_fullness > 1)
special_attack_cooldown = 20 SECONDS
else
special_attack_cooldown = 5 SECONDS
/mob/living/simple_mob/humanoid/eclipse/head/scientist/do_special_attack(atom/A)
visible_message(span("warning", "\The [src] begins to fabricate drones!"))
sleep(3)
if(vore_fullness == 1)
new /mob/living/simple_mob/mechanical/mining_drone/scavenger/eclipse (src.loc)
else if(vore_fullness > 1)
new /mob/living/simple_mob/mechanical/mining_drone/scavenger/eclipse (src.loc)
new /mob/living/simple_mob/mechanical/mining_drone/scavenger/eclipse (src.loc)
new /mob/living/simple_mob/mechanical/hivebot/swarm/eclipse (src.loc)
new /mob/living/simple_mob/mechanical/hivebot/swarm/eclipse (src.loc)
else
new /mob/living/simple_mob/mechanical/hivebot/swarm/eclipse (src.loc)
new /mob/living/simple_mob/mechanical/hivebot/swarm/eclipse (src.loc)
/mob/living/simple_mob/mechanical/hivebot/swarm/eclipse
faction = "eclipse"
/mob/living/simple_mob/humanoid/eclipse/head/captain
name = "Eclipse Expedition Leader"
icon_state = "captain"
loot_list = list(/obj/item/slime_extract/dark = 20,
/obj/item/prop/alien/junk = 60,
/obj/random/tool/alien = 60,
/obj/random/tool/alien = 60,
/obj/item/weapon/cell/device/weapon/recharge/alien = 60,
/obj/random/tool/alien = 60,
/obj/item/weapon/cell/device/weapon/recharge/alien = 60,
/obj/item/weapon/bluespace_harpoon = 60,
/obj/item/weapon/flame/lighter/supermatter/syndismzippo = 60,
/obj/item/weapon/gun/energy/medigun = 60
)
var/obj/item/shield_projector/shield1 = null
/mob/living/simple_mob/humanoid/eclipse/head/captain/Initialize(mapload)
shield1 = new /obj/item/shield_projector/rectangle/automatic/eclipse/big(src)
/mob/living/simple_mob/humanoid/eclipse/head/captain/updatehealth() //This is a mistake
. = ..()
if(vore_fullness == 1)
ranged_cooldown = 4
projectiletype = /obj/item/projectile/energy/frostsphere
movement_cooldown = 1
melee_attack_delay = 1.3
melee_damage_lower = 20
melee_damage_upper = 35
armor = list(melee = 35, bullet = 35, laser = 35, energy = 35, bomb = 100, bio = 100, rad = 100)
armor_soak = list(melee = 7, bullet = 7, laser = 7, energy = 7, bomb = 0, bio = 0, rad = 0)
special_attack_cooldown = 15
else if(vore_fullness == 2)
ranged_cooldown = 0.5
projectiletype = /obj/item/projectile/energy/muckblob
movement_cooldown = 2
melee_attack_delay = 1.8
melee_damage_lower = 20
melee_damage_upper = 40
armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
armor_soak = list(melee = 6, bullet = 6, laser = 6, energy = 6, bomb = 0, bio = 0, rad = 0)
special_attack_cooldown = 20
else if (vore_fullness > 2)
ranged_cooldown = 16
projectiletype = /obj/item/projectile/energy/mob/ionbeam
movement_cooldown = 3
melee_attack_delay = 2
melee_damage_lower = 30
melee_damage_upper = 40
armor = list(melee = 60, bullet = 60, laser = 60, energy = 60, bomb = 100, bio = 100, rad = 100)
armor_soak = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 0, bio = 0, rad = 0)
special_attack_cooldown = 30
else
ranged_cooldown = 8
projectiletype = /obj/item/projectile/bullet/flamegun
movement_cooldown = 0
melee_attack_delay = 1.1
melee_damage_lower = 20
melee_damage_upper = 25
armor = list(melee = 20, bullet = 20, laser = 20, energy = 20, bomb = 100, bio = 100, rad = 100)
armor_soak = list(melee = 7, bullet = 7, laser = 7, energy = 7, bomb = 0, bio = 0, rad = 0)
special_attack_cooldown = 10
/mob/living/simple_mob/humanoid/eclipse/head/captain/do_special_attack(atom/A) //note to self, try to make fullness alts for this attacks
if(prob(20))
invokesec(A)
else if(prob(20))
invokesci(A)
else if(prob(20))
invokeengi(A)
else if(prob(20))
invokemedical(A)
else
invokecargo(A)
/mob/living/simple_mob/humanoid/eclipse/head/captain/proc/invokesec(atom/A)
var/list/potential_targets = ai_holder.list_targets()
for(var/atom/entry in potential_targets)
if(istype(entry, /mob/living/simple_mob/humanoid/eclipse))
potential_targets -= entry
if(potential_targets.len)
var/iteration = clamp(potential_targets.len, 1, 3)
for(var/i = 0, i < iteration, i++)
if(!(potential_targets.len))
break
var/mob/target = pick(potential_targets)
potential_targets -= target
secattack(target)
/mob/living/simple_mob/humanoid/eclipse/head/captain/proc/secattack(atom/target)
var/list/bomb_range = block(locate(target.x-4, target.y-4, target.z), locate(target.x+4, target.y+4, target.z))
var/obj/item/projectile/P = new /obj/item/projectile/energy/flamecrystal(get_turf(src))
bomb_range -= get_turf(target)
for(var/i = 0, i < 4, i++)
var/turf/T = pick(bomb_range)
P.launch_projectile(target, BP_TORSO, src)
bomb_range -= T
/mob/living/simple_mob/humanoid/eclipse/head/captain/proc/invokecargo(atom/A)
visible_message(span("warning", "\The [src] calls for their help on radio!"))
/mob/living/simple_mob/humanoid/eclipse/head/captain/proc/invokeengi(atom/A) //place holdery
var/obj/item/projectile/P = new /obj/item/projectile/temp(get_turf(src))
P.launch_projectile(A, BP_TORSO, src)
var/obj/item/projectile/P2 = new /obj/item/projectile/temp/hot(get_turf(src))
P2.launch_projectile(A, BP_TORSO, src)
/mob/living/simple_mob/humanoid/eclipse/head/captain/proc/invokesci(atom/A)
visible_message(span("warning", "\The [src] begins to fabricate drones!"))
sleep(3)
new /mob/living/simple_mob/mechanical/hivebot/swarm/eclipse (src.loc)
new /mob/living/simple_mob/mechanical/hivebot/swarm/eclipse (src.loc)
new /mob/living/simple_mob/mechanical/hivebot/swarm/eclipse (src.loc)
/mob/living/simple_mob/humanoid/eclipse/head/captain/proc/invokemedical(atom/A)
visible_message(span("warning", "\The [src] begins to tend to their wounds!"))
sleep(3)
adjustBruteLoss(-12)
adjustFireLoss(-12)
adjustToxLoss(-12)
adjustOxyLoss(-12)
adjustCloneLoss(-12)
/mob/living/simple_mob/humanoid/eclipse/head/shade
name = "???"
icon_state = "shade"
health = 300
maxHealth = 300 //18 20 damage shots
armor = list(melee = 20, bullet = 20, laser = 20, energy = 20, bomb = 100, bio = 100, rad = 100)
projectiletype = /obj/item/projectile/bullet/lightingburst
special_attack_cooldown = 10 SECONDS
special_attack_min_range = 0
special_attack_max_range = 7
loot_list = list(/obj/item/weapon/gun/energy/pulseglove = 100
)
/mob/living/simple_mob/humanoid/eclipse/head/shade/do_special_attack(atom/A)
var/list/potential_targets = ai_holder.list_targets()
for(var/atom/entry in potential_targets)
if(istype(entry, /mob/living/simple_mob/humanoid/eclipse))
potential_targets -= entry
if(potential_targets.len)
var/iteration = clamp(potential_targets.len, 1, 5)
for(var/i = 0, i < iteration, i++)
if(!(potential_targets.len))
break
var/mob/target = pick(potential_targets)
potential_targets -= target
bullethell(target)
/mob/living/simple_mob/humanoid/eclipse/head/shade/proc/bullethell(atom/target)
var/list/bomb_range = block(locate(target.x-6, target.y-6, target.z), locate(target.x+6, target.y+6, target.z))
var/obj/item/projectile/P = new /obj/item/projectile/bullet/meteorstorm(get_turf(src))
bomb_range -= get_turf(target)
for(var/i = 0, i < 4, i++)
var/turf/T = pick(bomb_range)
P.launch_projectile(target, BP_TORSO, src)
bomb_range -= T
@@ -33,4 +33,124 @@
B.emote_lists[DM_DIGEST] = list(
"Every clench of the predator's stomach grinds powerful digestive fluids into your body, forcibly churning away your strength!",)
//This is placeholder code. Going to add special vorny for each of them slowly but surely.
//This is placeholder code. Going to add special vorny for each of them slowly but surely.
/mob/living/simple_mob/humanoid/eclipse/head/scientist
vore_active = 1
vore_capacity = 6
vore_max_size = RESIZE_HUGE
vore_min_size = RESIZE_SMALL
vore_pounce_chance = 0 // Beat them into crit before eating.
can_be_drop_prey = FALSE //CHOMP Add
digestable = 0
devourable = 0
/mob/living/simple_mob/humanoid/eclipse/head/scientist/Login()
. = ..()
if(!riding_datum)
riding_datum = new /datum/riding/simple_mob(src)
verbs |= /mob/living/simple_mob/proc/animal_mount
verbs |= /mob/living/proc/toggle_rider_reins
movement_cooldown = 1
/mob/living/simple_mob/humanoid/eclipse/head/scientist/MouseDrop_T(mob/living/M, mob/living/user)
return
/mob/living/simple_mob/humanoid/eclipse/head/scientist/init_vore()
if(!voremob_loaded)
return
.=..()
var/obj/belly/B = vore_selected
B.name = "stomach"
B.desc = "The fearsome preadtor gets a firm grip upon you, before dunking you into it's maw, then with a powerful swift gulp you're sent tumbling into it's stomach.."
B.emote_lists[DM_HOLD] = list(
"Your surroundings are momentarily filled with tour predator's pleased rumbling, its hands stroking over the taut swell you make in its belly.",
"Your surrondings glow with a neon red, dashes and spirals of pitch black flowing through the red gummy flesh as if it were a strange sky.",
"Your satsified predator sways their bloated gullet happily, their warm rumbling vibrarting the stomach, and by extension you.",)
B.emote_lists[DM_DIGEST] = list(
"Every clench of the predator's stomach grinds powerful digestive fluids into your body, forcibly churning away your strength!",
"The caustic red acid splashes, and washes over your frame, your sense of smell being overwhelmed by acid and sulfur as you're turned to nutrion.",
"Every swift swap of the predator's hips sends you slamming against the glowing red sides, your vision blurring further as you contunie to weaken." ,)
/mob/living/simple_mob/humanoid/eclipse/head/security
vore_active = 1
vore_capacity = 6
vore_max_size = RESIZE_HUGE
vore_min_size = RESIZE_SMALL
vore_pounce_chance = 0 // Beat them into crit before eating.
can_be_drop_prey = FALSE //CHOMP Add
digestable = 0
devourable = 0
/mob/living/simple_mob/humanoid/eclipse/head/security/Login()
. = ..()
if(!riding_datum)
riding_datum = new /datum/riding/simple_mob(src)
verbs |= /mob/living/simple_mob/proc/animal_mount
verbs |= /mob/living/proc/toggle_rider_reins
movement_cooldown = 1
/mob/living/simple_mob/humanoid/eclipse/head/security/MouseDrop_T(mob/living/M, mob/living/user)
return
/mob/living/simple_mob/humanoid/eclipse/head/security/init_vore()
if(!voremob_loaded)
return
.=..()
var/obj/belly/B = vore_selected
B.name = "stomach"
B.desc = "The fearsome preadtor gets a firm grip upon you, before dunking you into it's maw, then with a powerful swift gulp you're sent tumbling into it's stomach.."
B.emote_lists[DM_HOLD] = list(
"Your surroundings are momentarily filled with tour predator's pleased rumbling, its hands stroking over the taut swell you make in its belly.",
"Your surrondings glow with a neon red, dashes and spirals of pitch black flowing through the red gummy flesh as if it were a strange sky.",
"Your satsified predator sways their bloated gullet happily, their warm rumbling vibrarting the stomach, and by extension you.",)
B.emote_lists[DM_DIGEST] = list(
"Every clench of the predator's stomach grinds powerful digestive fluids into your body, forcibly churning away your strength!",
"The caustic red acid splashes, and washes over your frame, your sense of smell being overwhelmed by acid and sulfur as you're turned to nutrion.",
"Every swift swap of the predator's hips sends you slamming against the glowing red sides, your vision blurring further as you contunie to weaken." ,)
/mob/living/simple_mob/humanoid/eclipse/head/captain
vore_active = 1
vore_capacity = 6
vore_max_size = RESIZE_HUGE
vore_min_size = RESIZE_SMALL
vore_pounce_chance = 0 // Beat them into crit before eating.
can_be_drop_prey = FALSE //CHOMP Add
digestable = 0
devourable = 0
/mob/living/simple_mob/humanoid/eclipse/head/captain/Login()
. = ..()
if(!riding_datum)
riding_datum = new /datum/riding/simple_mob(src)
verbs |= /mob/living/simple_mob/proc/animal_mount
verbs |= /mob/living/proc/toggle_rider_reins
movement_cooldown = 1
/mob/living/simple_mob/humanoid/eclipse/head/captain/MouseDrop_T(mob/living/M, mob/living/user)
return
/mob/living/simple_mob/humanoid/eclipse/head/captain/init_vore()
if(!voremob_loaded)
return
.=..()
var/obj/belly/B = vore_selected
B.name = "stomach"
B.desc = "The fearsome preadtor gets a firm grip upon you, before dunking you into it's maw, then with a powerful swift gulp you're sent tumbling into it's stomach.."
B.emote_lists[DM_HOLD] = list(
"Your surroundings are momentarily filled with tour predator's pleased rumbling, its hands stroking over the taut swell you make in its belly.",
"Your surrondings glow with a neon red, dashes and spirals of pitch black flowing through the red gummy flesh as if it were a strange sky.",
"Your satsified predator sways their bloated gullet happily, their warm rumbling vibrarting the stomach, and by extension you.",)
B.emote_lists[DM_DIGEST] = list(
"Every clench of the predator's stomach grinds powerful digestive fluids into your body, forcibly churning away your strength!",
"The caustic red acid splashes, and washes over your frame, your sense of smell being overwhelmed by acid and sulfur as you're turned to nutrion.",
"Every swift swap of the predator's hips sends you slamming against the glowing red sides, your vision blurring further as you contunie to weaken." ,)
@@ -17,6 +17,12 @@
/mob/living/simple_mob/slime/xenobio/ruby
)
/mob/living/simple_mob/slime/xenobio/sepia/proc/heal_aura()
for(var/mob/living/L in view(src, 2))
if(L.stat == DEAD || !IIsAlly(L))
continue
L.add_modifier(/datum/modifier/nervoushigh, null, src)
/obj/item/slime_extract/sepia
name = "sepia slime extract"
icon_state = "sepia slime extract"
@@ -34,8 +40,8 @@
/decl/chemical_reaction/instant/slime/secertslime
name = "Secert Slime "
id = "sepia_swapm"
result = "change_drug_male"
required_reagents = list("water" = 1, "blood" = 1, "phoron" = 3)
result = "change_secert"
required_reagents = list("blood" = 5, "water" = 5)
result_amount = 1
required = /obj/item/slime_extract/sepia
@@ -44,22 +50,6 @@
new /mob/living/simple_mob/slime/xenobio/redspace(get_turf(holder.my_atom))
..()
/decl/chemical_reaction/instant/slime/genderswapf
name = "Slime Change F"
id = "sepia_swapf"
result = "change_drug_female"
required_reagents = list("water" = 5)
result_amount = 30
required = /obj/item/slime_extract/sepia
/decl/chemical_reaction/instant/slime/genderswapm
name = "Slime Change M"
id = "sepia_swapf"
result = "change_drug_male"
required_reagents = list("blood" = 5)
result_amount = 30
required = /obj/item/slime_extract/sepia
/decl/chemical_reaction/instant/slime/sepia_new_slime
name = "Slime Spawn"
id = "m_sepia_spawn"
@@ -87,7 +77,7 @@
slime_mutation = list(
/mob/living/simple_mob/slime/xenobio/dark,
/mob/living/simple_mob/slime/xenobio/redspace,
/mob/living/simple_mob/slime/xenobio/bluespace,
/mob/living/simple_mob/slime/xenobio/dream,
/mob/living/simple_mob/slime/xenobio/plague
)
@@ -156,7 +146,7 @@
slime_mutation = list(
/mob/living/simple_mob/slime/xenobio/dark,
/mob/living/simple_mob/slime/xenobio/redspace,
/mob/living/simple_mob/slime/xenobio/bluespace,
/mob/living/simple_mob/slime/xenobio/dream,
/mob/living/simple_mob/slime/xenobio/plague
)
@@ -187,9 +177,67 @@
L.add_modifier(/datum/modifier/feysight, 10 MINUTES, src)
..()
/decl/chemical_reaction/instant/slime/dark_deathblood
name = "Slime Secert Painite"
id = "m_slime_painite"
required_reagents = list("deathblood" = 5)
result_amount = 1
required = /obj/item/slime_extract/dark
/decl/chemical_reaction/instant/slime/dark_deathblood/on_reaction(var/datum/reagents/holder)
new /obj/item/stack/material/painite(get_turf(holder.my_atom))
..()
/decl/chemical_reaction/instant/slime/dark_liquidlife
name = "Slime Secert Overcharge"
id = "m_slime_guardian"
required_reagents = list("liquidlife" = 5)
result_amount = 1
required = /obj/item/slime_extract/dark
/decl/chemical_reaction/instant/slime/dark_liquidfire/on_reaction(var/datum/reagents/holder)
for(var/mob/living/L in range(49, holder.my_atom))
L.add_modifier(/datum/modifier/sprinting, 5 MINUTES, src)
..()
/decl/chemical_reaction/instant/slime/dark_carpotoxin
name = "Slime Dark Secert "
id = "m_fish_slime"
required_reagents = list("carpotoxin" = 5)
result_amount = 1
required = /obj/item/slime_extract/dark
/decl/chemical_reaction/instant/slime/dark_carpotoxin/on_reaction(var/datum/reagents/holder)
holder.my_atom.visible_message("<span class='warning'>Infused with slime jelly, the core begins to quiver and grow, and soon a new baby slime emerges from it!</span>")
new /mob/living/simple_mob/slime/xenobio/oceanic(get_turf(holder.my_atom))
..()
/decl/chemical_reaction/instant/slime/dark_spidertoxin
name = "Slime Secert Dark Spooder"
id = "m_slime_guardian"
required_reagents = list("spidertoxin" = 5)
result_amount = 1
required = /obj/item/slime_extract/dark
/decl/chemical_reaction/instant/slime/dark_deathblood/on_reaction(var/datum/reagents/holder)
new /obj/effect/spider/eggcluster/royal/space(get_turf(holder.my_atom))
..()
/decl/chemical_reaction/instant/slime/dark_blood
name = "Slime Secert Void Opal"
id = "m_slime_guardian"
required_reagents = list("blood" = 5)
result_amount = 1
required = /obj/item/slime_extract/dark
/decl/chemical_reaction/instant/slime/dark_blood/on_reaction(var/datum/reagents/holder)
new /obj/item/stack/material/void_opal(get_turf(holder.my_atom))
..()
/mob/living/simple_mob/slime/xenobio/plague
desc = "This slime is rather unknown and strange."
color = "#A50021"
color = "#336600"
slime_color = "plague"
coretype = /obj/item/slime_extract/plague
@@ -198,7 +246,7 @@
slime_mutation = list(
/mob/living/simple_mob/slime/xenobio/dark,
/mob/living/simple_mob/slime/xenobio/redspace,
/mob/living/simple_mob/slime/xenobio/bluespace,
/mob/living/simple_mob/slime/xenobio/dream,
/mob/living/simple_mob/slime/xenobio/plague
)
@@ -234,4 +282,271 @@
result = "slimejelly"
required_reagents = list("water" = 5)
result_amount = 30
required = /obj/item/slime_extract/plague
required = /obj/item/slime_extract/plague
/mob/living/simple_mob/slime/xenobio/oceanic
desc = "This slime is rather unknown and strange."
color = "#336600"
slime_color = "oceanic"
coretype = /obj/item/slime_extract/oceanic
mutation_chance = 0
reagent_injected = "carpotoxin"
slime_mutation = list(
/mob/living/simple_mob/slime/xenobio/sepia,
/mob/living/simple_mob/slime/xenobio/sepia,
/mob/living/simple_mob/slime/xenobio/sepia,
/mob/living/simple_mob/slime/xenobio/oceanic
)
water_resist = 10 //I heard putting this higher makes them heal.
/mob/living/simple_mob/slime/xenobio/oceanic/handle_special()
if(stat != DEAD)
ocean_aura()
..()
/mob/living/simple_mob/slime/xenobio/oceanic/proc/ocean_aura()
for(var/mob/living/L in view(src, 4))
if(L.stat == DEAD || !IIsAlly(L))
continue
L.add_modifier(/datum/modifier/aura/slime_healingtide, null, src)
/datum/modifier/aura/slime_healingtide
name = "Aura Healing Tide"
desc = "You are filled with an overwhelming energy."
on_created_text = "<span class='critical'>Your body begins to focus on recovering!</span>"
on_expired_text = "<span class='notice'>The healing subsides.</span>"
stacks = MODIFIER_STACK_FORBID
aura_max_distance = 4
metabolism_percent = 0.5
incoming_healing_percent = 1.15 //The negative hurts less in this form
/obj/item/slime_extract/oceanic
name = "oceanic slime extract"
icon_state = "emerald slime extract"
description_info = "Who knows what will happen."
slime_type = /mob/living/simple_mob/slime/xenobio/oceanic
/decl/chemical_reaction/instant/slime/carpfren
name = "Carp Friend"
id = "m_carp_friends"
required_reagents = list("blood" = 5)
result_amount = 1
required = /obj/item/slime_extract/oceanic
/decl/chemical_reaction/instant/slime/carpfren/on_reaction(var/datum/reagents/holder)
new /mob/living/simple_mob/animal/space/carp/station(get_turf(holder.my_atom))
..()
/decl/chemical_reaction/instant/slime/oceancarp
name = "Slime Carptoxi"
id = "m_slime_carptox"
required_reagents = list("slimejelly" = 5)
result = "carpotoxin"
result_amount = 30
required = /obj/item/slime_extract/oceanic
/decl/chemical_reaction/instant/slime/waterdupe
name = "Water Duplication"
id = "m_slime_water"
required_reagents = list("water" = 5)
result = "water"
result_amount = 30
required = /obj/item/slime_extract/oceanic
/decl/chemical_reaction/instant/slime/oceanboon
name = "Carp Boon"
id = "m_carp_boon"
required_reagents = list("phoron" = 5)
result_amount = 1
required = /obj/item/slime_extract/oceanic
/decl/chemical_reaction/instant/slime/oceanboon/on_reaction(var/datum/reagents/holder)
for(var/mob/living/L in range(21, holder.my_atom))
L.add_modifier(/datum/modifier/healingtide, 10 MINUTES, src)
..()
/decl/chemical_reaction/instant/slime/warplague
name = "Nuclear Slime Summon"
id = "m_nuclear_slime"
required_reagents = list("mindbreaker" = 5)
result_amount = 1
required = /obj/item/slime_extract/plague
/decl/chemical_reaction/instant/slime/warplague/on_reaction(var/datum/reagents/holder)
holder.my_atom.visible_message("<span class='warning'>Infused with slime jelly, the core begins to quiver and grow, and soon a new baby slime emerges from it!</span>")
new /mob/living/simple_mob/slime/xenobio/nuclear(get_turf(holder.my_atom))
..()
/mob/living/simple_mob/slime/xenobio/nuclear
desc = "This slime is rather unknown and strange."
color = "#006600"
slime_color = "nuclear"
coretype = /obj/item/slime_extract/nuclear
slime_mutation = list(
/mob/living/simple_mob/slime/xenobio/sepia,
/mob/living/simple_mob/slime/xenobio/sepia,
/mob/living/simple_mob/slime/xenobio/sepia,
/mob/living/simple_mob/slime/xenobio/nuclear
)
/mob/living/simple_mob/slime/xenobio/nuclear/handle_special()
if(stat != DEAD)
nuclear_aura()
..()
/mob/living/simple_mob/slime/xenobio/nuclear/proc/nuclear_aura()
for(var/mob/living/L in view(src, 4))
if(L.stat == DEAD || !IIsAlly(L))
continue
L.add_modifier(/datum/modifier/aura/radiationhide, null, src)
/datum/modifier/aura/radiationhide
name = "Radiation Hide"
desc = "Your body defensivly warps."
on_created_text = "<span class='critical'>Your body strangly mutates!</span>"
on_expired_text = "<span class='notice'>Your body returns to normal.</span>"
stacks = MODIFIER_STACK_FORBID
aura_max_distance = 4
icon_scale_x_percent = 1.2
icon_scale_y_percent = 1.2
incoming_clone_damage_percent = 0
incoming_healing_percent = 0.5
incoming_damage_percent = 0.8
/obj/item/slime_extract/nuclear
name = "nuclear slime extract"
icon_state = "green slime extract"
description_info = "Who knows what will happen."
slime_type = /mob/living/simple_mob/slime/xenobio/nuclear
/decl/chemical_reaction/instant/slime/nuclear_radpulse
name = "Slime Radiation Pulse"
id = "m_green_radpulse"
required_reagents = list("phoron" = 5)
result_amount = 1
required = /obj/item/slime_extract/nuclear
/decl/chemical_reaction/instant/slime/nuclear_radpulse/on_reaction(var/datum/reagents/holder)
log_and_message_admins("Green extract reaction (radiation pulse) has been activated in [get_area(holder.my_atom)]. Last fingerprints: [holder.my_atom.fingerprintslast]")
playsound(holder.my_atom, 'sound/effects/phasein.ogg', 75, 1)
holder.my_atom.visible_message("<span class='danger'>\The [holder.my_atom] begins to vibrate violently!</span>")
spawn(5 SECONDS)
SSradiation.flat_radiate(src, 30, 7, TRUE)
..()
/decl/chemical_reaction/instant/slime/nuclear_emitter
name = "Slime Radiation Emitter"
id = "m_green_emitter"
required_reagents = list("blood" = 5)
result_amount = 1
required = /obj/item/slime_extract/green
/decl/chemical_reaction/instant/slime/green_emitter/on_reaction(var/datum/reagents/holder)
log_and_message_admins("Green extract reaction (radiation emitter) has been activated in [get_area(holder.my_atom)]. Last fingerprints: [holder.my_atom.fingerprintslast]")
new /obj/item/slime_irradiator(get_turf(holder.my_atom))
..()
/decl/chemical_reaction/instant/slime/nuclear_radium
name = "Slime Radium"
id = "m_green_radium"
result = "radium"
required_reagents = list("water" = 5)
result_amount = 30
required = /obj/item/slime_extract/green
/decl/chemical_reaction/instant/slime/nuclear_uranium
name = "Slime Uranium"
id = "m_green_uranium"
required_reagents = list("slimejelly" = 5)
result_amount = 1
required = /obj/item/slime_extract/green
/decl/chemical_reaction/instant/slime/green_uranium/on_reaction(var/datum/reagents/holder)
new /obj/item/stack/material/uranium(get_turf(holder.my_atom), 10)
..()
/mob/living/simple_mob/slime/xenobio/dream
desc = "This slime is rather unknown and strange."
color = "#FFFFFF"
slime_color = "dream"
coretype = /obj/item/slime_extract/dream
slime_mutation = list(
/mob/living/simple_mob/slime/xenobio/dark,
/mob/living/simple_mob/slime/xenobio/redspace,
/mob/living/simple_mob/slime/xenobio/dream,
/mob/living/simple_mob/slime/xenobio/plague
)
/obj/item/slime_extract/dream
name = "dream slime extract"
icon_state = "grey slime extract"
description_info = "Who knows what will happen."
slime_type = /mob/living/simple_mob/slime/xenobio/dream
/decl/chemical_reaction/instant/slime/nightmareslime
name = "Nightmare Slime Summon "
id = "m_nightmare_slime"
required_reagents = list("blood" = 5, "phoron" = 5, "slimejelly" = 5)
result_amount = 1
required = /obj/item/slime_extract/dream
/decl/chemical_reaction/instant/slime/nightmareslime/on_reaction(var/datum/reagents/holder)
holder.my_atom.visible_message("<span class='warning'>Infused with slime jelly, the core begins to quiver and grow, and soon a new baby slime emerges from it!</span>")
new /mob/living/simple_mob/slime/xenobio/nightmare(get_turf(holder.my_atom))
..()
/mob/living/simple_mob/slime/xenobio/nightmare
desc = "This slime is rather unknown and strange."
color = "#993366"
slime_color = "nightmare"
coretype = /obj/item/slime_extract/nightmare
slime_mutation = list(
/mob/living/simple_mob/slime/xenobio/nightmare,
/mob/living/simple_mob/slime/xenobio/nightmare,
/mob/living/simple_mob/slime/xenobio/nightmare,
/mob/living/simple_mob/slime/xenobio/nightmare
)
/mob/living/simple_mob/slime/xenobio/nightmare/handle_special()
if(stat != DEAD)
nightmare_aura()
..()
/mob/living/simple_mob/slime/xenobio/nightmare/proc/nightmare_aura()
for(var/mob/living/L in view(src, 3))
if(L.stat == DEAD)
continue
L.add_modifier(/datum/modifier/doomed, null, src)
L.add_modifier(/datum/modifier/dreamarmor, null, src)
/datum/modifier/dreamarmor
name = "dream armor"
desc = "You are highly resistant to damage."
stacks = MODIFIER_STACK_FORBID
mob_overlay_state = "cult_aura"
incoming_damage_percent = 0.3
/obj/item/slime_extract/nightmare
name = "nightmare slime extract"
icon_state = "oil slime extract"
description_info = "Who knows what will happen."
slime_type = /mob/living/simple_mob/slime/xenobio/nightmare
@@ -18,7 +18,9 @@
max_co2 = 0
min_n2 = 0
max_n2 = 0
unsuitable_atoms_damage = 2
unsuitable_atoms_damage = 0
heat_damage_per_tick = 0
melee_damage_lower = 12
melee_damage_upper = 12
@@ -43,7 +45,7 @@
user.drop_from_inventory(O)
qdel(O)
evolve()
if(istype(O, feed))
else if(istype(O, feed))
user.drop_from_inventory(O)
qdel(O)
duplicate()
@@ -0,0 +1,65 @@
/mob/living/simple_mob/vore/xeyakin
name = "xeyakin"
desc = "A strange creature, it's fur shifting, looking like liquid metal."
catalogue_data = list(/datum/category_item/catalogue/fauna/xeyakin)
meat_amount = 30
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/xeyakin
icon = 'modular_chomp/icons/mob/vore64x32_ch.dmi'
icon_state = "xeyakin" //horrid coder sprite, yay
icon_living = "xeyakin"
icon_dead = "xeyakin-dead"
melee_damage_lower = 15
melee_damage_upper = 25
melee_miss_chance = 0
melee_attack_delay = 0
movement_cooldown = 0
maxHealth = 200
attacktext = list("slashed")
see_in_dark = 8
minbodytemp = 0
maxbodytemp = 99999
min_oxy = 0
devourable = 0
old_x = -16
old_y = 0
default_pixel_x = -16
pixel_x = -16
pixel_y = 0
/datum/category_item/catalogue/fauna/xeyakin
name = "Indangered Fauna - Xeyakin"
desc = "A strange anamalous creature. There numebers were already sparse but due to the potent chemical\
within their meat, they have been culled to a near exctinct numeber."
value = CATALOGUER_REWARD_SUPERHARD //Stupidly rare, hopefully anyway
/obj/item/weapon/reagent_containers/food/snacks/meat/xeyakin
/obj/item/weapon/reagent_containers/food/snacks/meat/xeyakin/Initialize()
. = ..()
reagents.add_reagent("xeyakinblood", 2)
/datum/reagent/xeyakinblood
name = "Xeyakin Blood"
id = "xeyakinblood"
description = "The blood of a legendary beast."
taste_description = "divine"
taste_mult = 1.5
reagent_state = LIQUID
color = "#FF8000"
overdose = REAGENTS_OVERDOSE * 0.25
scannable = 0
/datum/reagent/xeyakinblood/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) //should proabaly make something more special but this isn't meant to be a proper chem
var/chem_effective = 1 * M.species.chem_strength_heal
if(alien == IS_SLIME)
M.adjustBruteLoss(12 * removed) //This will uber merc prometheans. It wants to turn them to crystal.
if(alien == IS_DIONA)
M.heal_organ_damage(0, 12 * removed * chem_effective)
if(alien != IS_DIONA)
M.heal_organ_damage(8, 8 * removed * chem_effective)
@@ -0,0 +1,184 @@
/obj/item/weapon/gun/energy/freezegun
name = "Pulse Froster Prototype"
desc = "A strange gun pulsing with energy, it's touch chilling you to the core."
icon = 'modular_chomp/icons/obj/guns/precursor/eclipse.dmi'
icon_state = "cryogun"
item_state = "cryogun"
wielded_item_state = "cryogun-wielded"
matter = list(MAT_DURASTEEL = 1000, MAT_MORPHIUM = 500)
origin_tech = list(TECH_COMBAT = 6, TECH_POWER = 5, TECH_PRECURSOR = 3)
charge_cost = 80 //How much energy is needed to fire.
accept_cell_type = /obj/item/weapon/cell/device
cell_type = /obj/item/weapon/cell/device/weapon
projectile_type = /obj/item/projectile/energy/frostsphere
recoil_mode = 0
charge_meter = 1
reload_time = 10
firemodes = list(
list(mode_name="normal", fire_delay=5, projectile_type=/obj/item/projectile/energy/frostsphere, charge_cost = 80),
list(mode_name="shotgun", fire_delay=15, projectile_type=/obj/item/projectile/bullet/frostshotgun, charge_cost = 240),
)
/obj/item/weapon/gun/energy/flamegun
name = "Flame Crystal Projector"
desc = "A strange gun pulsing with energy, it's touch warming you up."
icon = 'modular_chomp/icons/obj/guns/precursor/eclipse.dmi'
icon_state = "flamegun"
item_state = "flamegun"
wielded_item_state = "flame-wielded"
w_class = ITEMSIZE_LARGE
accept_cell_type = /obj/item/weapon/cell/device
cell_type = /obj/item/weapon/cell/device/weapon
projectile_type = /obj/item/projectile/energy/flamecrystal
matter = list(MAT_DURASTEEL = 1000, MAT_MORPHIUM = 500)
origin_tech = list(TECH_COMBAT = 6, TECH_POWER = 5, TECH_PRECURSOR = 3)
recoil_mode = 0
charge_meter = 1
charge_cost = 80
reload_time = 10
firemodes = list(
list(mode_name="normal", fire_delay=5, projectile_type=/obj/item/projectile/energy/flamecrystal, charge_cost = 80),
list(mode_name="shotgun", fire_delay=15, projectile_type=/obj/item/projectile/bullet/flamegun, charge_cost = 240),
list(mode_name="explosive", fire_delay=10, projectile_type=/obj/item/projectile/energy/fireball, charge_cost = 160),
)
/obj/item/weapon/gun/energy/elementalray
name = "Proto-type Weapon Avatar"
desc = "A strange gun vibrating with energy, lathered with diffrent buttons and switches."
icon = 'modular_chomp/icons/obj/guns/precursor/eclipse.dmi'
icon_state = "avatar"
item_state = "avatar"
wielded_item_state = "avatar-wielded"
accept_cell_type = /obj/item/weapon/cell/device
cell_type = /obj/item/weapon/cell/device/weapon
projectile_type = /obj/item/projectile/bullet/flamegun
matter = list(MAT_DURASTEEL = 1000, MAT_MORPHIUM = 500)
origin_tech = list(TECH_COMBAT = 6, TECH_POWER = 5, TECH_PRECURSOR = 3)
recoil_mode = 0
charge_meter = 1
charge_cost = 160
reload_time = 20
firemodes = list(
list(mode_name="fire", fire_delay=15, projectile_type=/obj/item/projectile/bullet/flamegun, charge_cost = 160),
list(mode_name="lighting", fire_delay=20, projectile_type=/obj/item/projectile/beam/lightingsurge, charge_cost = 480),
list(mode_name="frost", burst=3, fire_delay=15, projectile_type=/obj/item/projectile/energy/frostsphere, charge_cost = 240),
list(mode_name="acid", fire_delay=1, projectile_type=/obj/item/projectile/energy/muckblob, charge_cost = 10),
)
/obj/item/weapon/gun/energy/elementalray/emag_act(var/remaining_charges, var/mob/user)
..()
to_chat(user, "<span class='notice'>You short circuit the internal locking mechanisms of \the [src]!</span>")
firemodes = list(
list(mode_name="fire", fire_delay=15, projectile_type=/obj/item/projectile/bullet/flamegun, charge_cost = 160),
list(mode_name="lighting", fire_delay=20, projectile_type=/obj/item/projectile/beam/lightingsurge, charge_cost = 480),
list(mode_name="frost", burst=3, fire_delay=15, projectile_type=/obj/item/projectile/energy/frostsphere, charge_cost = 240),
list(mode_name="acid", fire_delay=1, projectile_type=/obj/item/projectile/energy/muckblob, charge_cost = 10),
list(mode_name="error", fire_delay=30, projectile_type=/obj/item/projectile/bullet/errorelement, charge_cost = 1040)
)
return 1
/obj/item/projectile/bullet/errorelement //You are the bullet hell
use_submunitions = 1
only_submunitions = 1
range = 0
embed_chance = 0
submunition_spread_max = 3600
submunition_spread_min = 500
submunitions = list(/obj/item/projectile/energy/flamecrystal = 2, /obj/item/projectile/energy/frostsphere = 2, /obj/item/projectile/beam/lightingsurge = 1, /obj/item/projectile/energy/muckblob = 5)
hud_state = "laser_heat"
/obj/item/projectile/beam/lightingsurge //Anti-synth laser
damage = 60
light_color = "#00CCFF"
damage_type = ELECTROMAG
/obj/item/projectile/energy/muckblob
damage = 4
damage_type = BIOACID
check_armour = "bio"
combustion = FALSE
modifier_type_to_apply = /datum/modifier/muck
modifier_duration = 5
speed = 0.6
range = 8
/datum/modifier/muck
name = "acid covered"
desc = "You are covered in acid"
mob_overlay_state = "poisoned"
on_created_text = "<span class='warning'>You are covered in muck...</span>"
on_expired_text = "<span class='notice'>You are no longer covered in muck.</span>"
stacks = MODIFIER_STACK_ALLOWED
slowdown = 0.5
/obj/item/weapon/gun/energy/pulseglove
name = "Strange Glove"
desc = "A bulky glove cladded with strange tech. It hums with energy, and the battery port is inaccessiable"
icon = 'modular_chomp/icons/obj/guns/precursor/eclipse.dmi'
icon_state = "darkglove"
item_state = "darkglove"
charge_cost = 380 // 13 shots
projectile_type = /obj/item/projectile/bullet/lightingburst
cell_type = /obj/item/weapon/cell/device/weapon/recharge/alien
battery_lock = 1
/obj/item/projectile/energy/redlighting
name = "Flame Crystal"
icon = 'modular_chomp/icons/mob/eclipse.dmi' //commiting sin
icon_state = "redlighting"
damage = 20
armor_penetration = 20
hud_state = "laser_sniper"
/obj/item/projectile/energy/darkmeteor
name = "Strange Sphere"
icon = 'modular_chomp/icons/mob/eclipse.dmi' //commiting sin
icon_state = "darkmeteor"
damage = 60
damage_type = BRUTE
check_armour = "melee"
speed = 15
/obj/item/projectile/bullet/meteorstorm
use_submunitions = 1
only_submunitions = 1
range = 0
embed_chance = 0
submunition_spread_max = 3600
submunition_spread_min = 1200
submunitions = list(/obj/item/projectile/energy/darkmeteor = 3)
/obj/item/projectile/bullet/lightingburst
use_submunitions = 1
only_submunitions = 1
range = 0
embed_chance = 0
submunition_spread_max = 1200
submunition_spread_min = 200
submunitions = list(/obj/item/projectile/energy/redlighting = 3)
hud_state = "laser_sniper"
@@ -1,25 +0,0 @@
/obj/item/weapon/gun/energy/freezegun
name = "Pulse Froster Prototype"
desc = "A strange gun pulsing with energy, it's touch chilling you to the core."
icon = 'modular_chomp/icons/obj/guns/precursor/frostgun.dmi'
icon_state = "cryogun"
item_state = "cryogun"
wielded_item_state = "cryogun-wielded"
matter = list(MAT_DURASTEEL = 1000, MAT_MORPHIUM = 500)
origin_tech = list(TECH_COMBAT = 6, TECH_POWER = 5, TECH_PRECURSOR = 3)
charge_cost = 120 //How much energy is needed to fire.
accept_cell_type = /obj/item/weapon/cell/device
cell_type = /obj/item/weapon/cell/device/weapon
projectile_type = /obj/item/projectile/energy/frostsphere
charge_meter = 1
reload_time = 10
firemodes = list(
list(mode_name="normal", fire_delay=5, projectile_type=/obj/item/projectile/energy/frostsphere, charge_cost = 120),
list(mode_name="shotgun", fire_delay=15, projectile_type=/obj/item/projectile/bullet/frostshotgun, charge_cost = 480),
)