Skip to content

Commit

Permalink
I'll just push my shitty ass code and call it a day.
Browse files Browse the repository at this point in the history
  • Loading branch information
Zattarra committed Aug 18, 2024
1 parent 867f8cc commit 967b41e
Show file tree
Hide file tree
Showing 7 changed files with 105 additions and 6 deletions.
29 changes: 29 additions & 0 deletions maplestation_modules/story_content/deepred_warfare/code/curios.dm
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,34 @@
drop_sound = 'maplestation_modules/sound/items/drop/card.ogg'
pickup_sound = 'maplestation_modules/sound/items/pickup/card.ogg'

/obj/item/ammo_casing/shotgun/godslayer
name = "godslayer round"
desc = "A strange 12 gauge slug made of an unknown alloy. It's heavy and seems to be humming with energy. You feel that shooting this would be a really bad idea."
icon = 'maplestation_modules/story_content/deepred_warfare/icons/curios.dmi'
icon_state = "godslayer"
projectile_type = /obj/projectile/bullet/godslayer
custom_materials = list(/datum/material/aerialite=SHEET_MATERIAL_AMOUNT*2)
fire_sound = 'maplestation_modules/story_content/deepred_warfare/sound/godslayer.ogg'
// delay = 0.1 * SECONDS

/obj/item/ammo_casing/shotgun/godslayer/Initialize(mapload)
. = ..()
AddElement(/datum/element/caseless)

/obj/item/ammo_casing/shotgun/godslayer/fire_casing(atom/target, mob/living/user, params, distro, quiet, zone_override, spread, atom/fired_from)
if(isgun(fired_from))
var/obj/item/gun/shot_from = fired_from
shot_from.fire_sound_volume = 0
shot_from.recoil = inital(shot_from.recoil) + 2

Check failure on line 55 in maplestation_modules/story_content/deepred_warfare/code/curios.dm

View workflow job for this annotation

GitHub Actions / Run Linters

undefined proc: "inital" on /obj/item/ammo_casing/shotgun/godslayer

. = ..()
playsound(src, fire_sound, 50)

if(isgun(fired_from))
var/obj/item/gun/shot_from = fired_from
shot_from.fire_sound_volume = initial(shot_from.fire_sound_volume)
shot_from.recoil = inital(shot_from.recoil)

Check failure on line 63 in maplestation_modules/story_content/deepred_warfare/code/curios.dm

View workflow job for this annotation

GitHub Actions / Run Linters

undefined proc: "inital" on /obj/item/ammo_casing/shotgun/godslayer

/obj/item/redtech_nan_sample
name = "crimson nanite sample"
desc = "A small, hard cube that glows a deep red at its seams. It seems to move and shift geometrically in place."
Expand All @@ -54,6 +82,7 @@
name = "persuasion needle"
desc = "A large, sharp needle designed for throwing. It has a small, intricate yin-yang design etched into the side."
w_class = WEIGHT_CLASS_NORMAL
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF

icon = 'maplestation_modules/story_content/deepred_warfare/icons/curios.dmi'
icon_state = "needle"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@
projectile_piercing = ALL
hit_prone_targets = TRUE
can_hit_turfs = TRUE
parried = TRUE

var/explosion_tile_cooldown = 6
var/forcedust_on_hit = FALSE
var/forcedust_on_hit = TRUE // Collector moment.

/obj/projectile/kajari_lance/prehit_pierce()
return PROJECTILE_PIERCE_HIT
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,23 @@
name ="10mm coilslug"
icon = 'maplestation_modules/story_content/deepred_warfare/icons/projectiles.dmi'
icon_state = "coilslug"
range = 80
range = 40
damage = 10
armour_penetration = 0

/obj/projectile/bullet/coil/highvelo
name ="high velocity 10mm coilslug"
icon_state = "high_velo"
speed = 0.4
range = 120
range = 80
damage = 20
armour_penetration = 20

/obj/projectile/bullet/coil/red_lightning
name = "charged 10mm coilslug"
icon_state = "red_lightning"
range = 120
damage = 20
range = 80
damage = 10
armour_penetration = 60

var/extra_damage = 20 // Damage done by shock aftereffect (or straight damage to mechs).
Expand All @@ -44,7 +44,7 @@
var/mob/living/carbon/shocked_fellow = target
shocked_fellow.electrocute_act(extra_damage, src, 1, SHOCK_NOSTUN | SHOCK_NOGLOVES)
if(ismecha(target))
target.take_damage(extra_damage, BURN, BULLET, FALSE)
target.take_damage(extra_damage * 2, BURN, BULLET, FALSE)

/obj/effect/projectile/muzzle/RLcoil
name = "charged coilslug muzzle flash"
Expand All @@ -60,3 +60,71 @@
name = "charged coilslug impact"
icon = 'maplestation_modules/story_content/deepred_warfare/icons/projectiles.dmi'
icon_state = "rl_coil_impact"

/obj/projectile/bullet/godslayer
name = "godslayer round"
icon = 'maplestation_modules/story_content/deepred_warfare/icons/projectiles.dmi'
icon_state = "godslayer"
range = 120
damage = 120
armour_penetration = 100

dismemberment = 10
catastropic_dismemberment = TRUE
parried = TRUE

projectile_piercing = PASSMOB|PASSVEHICLE

muzzle_type = /obj/effect/projectile/muzzle/godslayer
tracer_type = /obj/effect/projectile/tracer/godslayer
impact_type = /obj/effect/projectile/impact/godslayer
hitscan = TRUE
impact_effect_type = null
hitscan_light_intensity = 3
hitscan_light_range = 0.75
hitscan_light_color_override = COLOR_BLUE_LIGHT
muzzle_flash_intensity = 5
muzzle_flash_range = 1
muzzle_flash_color_override = COLOR_BLUE_LIGHT
impact_light_intensity = 5
impact_light_range = 1
impact_light_color_override = COLOR_BLUE_LIGHT

var/marked_target

/obj/projectile/bullet/godslayer/on_hit(atom/target, blocked = 0, pierce_hit)
. = ..()
if(. == BULLET_ACT_HIT)
warp()
return
if(marked_target)
return
if(isliving(target) || ismecha(target))
marked_target = target

/obj/projectile/bullet/godslayer/proc/warp()
if(marked_target)
var/obj/projectile/A = new /obj/projectile/beam/laser(get_turf(firer))
A.preparePixelProjectile(marked_target, get_turf(firer))
A.firer = firer
A.fired_from = firer
A.fire(null, marked_target)

/obj/effect/projectile/muzzle/godslayer
name = "godslayer muzzle flash"
icon = 'maplestation_modules/story_content/deepred_warfare/icons/projectiles.dmi'
icon_state = "godslayer_muzzle"

/obj/effect/projectile/tracer/godslayer
name = "godslayer tracer"
icon = 'maplestation_modules/story_content/deepred_warfare/icons/projectiles.dmi'
icon_state = "godslayer_tracer"

/obj/effect/projectile/impact/godslayer
name = "godslayer warp site"
icon = 'maplestation_modules/story_content/deepred_warfare/icons/projectiles.dmi'
icon_state = "godslayer_impact"

/obj/projectile/bullet/godslayer/generate_hitscan_tracers(cleanup = TRUE, duration = 3 SECONDS, impacting = TRUE)
duration = 3 SECONDS
. = ..()
Binary file modified maplestation_modules/story_content/deepred_warfare/icons/curios.dmi
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
godslayer.ogg is a sample taken from Xtrullor's Supernova under CC: ATTRIBUTION 3.0 UNPORTED.
Binary file not shown.

0 comments on commit 967b41e

Please sign in to comment.