Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
545dc2e
ooga booga metal shiny man
UselessTheremin Mar 6, 2021
71ffffa
waaah
UselessTheremin Mar 6, 2021
297c6f9
FUCk
UselessTheremin Mar 6, 2021
f25a3a7
fucken wont compile
UselessTheremin Mar 6, 2021
23cd761
stole colossus code will test later
UselessTheremin Mar 7, 2021
dc3a605
i literally dont remember coding this but it was 5 am and i think i a…
UselessTheremin Mar 7, 2021
f9d728b
a single underscore
UselessTheremin Mar 11, 2021
fccb240
might work????? who knows its a surprise
UselessTheremin Mar 11, 2021
2d4bf96
Update stalwart.dm
UselessTheremin Mar 11, 2021
4e4652d
Update stalwart.dm
UselessTheremin Mar 11, 2021
d6e437e
nukes these stupid things whyd i put em in
UselessTheremin Mar 11, 2021
7639520
i'll finish this later
UselessTheremin Mar 11, 2021
054beb1
the perfect crime
UselessTheremin Mar 15, 2021
4b0fb65
Update stalwart.dm
UselessTheremin Mar 15, 2021
b9d35ad
Merge branch 'stalwart' of https://github.com/UselessTheremin/Yogstat…
UselessTheremin Mar 15, 2021
e178a3b
Update energy.dmi
UselessTheremin Mar 15, 2021
ca3abc8
Update energy.dmi
UselessTheremin Mar 15, 2021
c569ca8
oh yeah its all coming together
UselessTheremin Mar 15, 2021
98596b3
Update code/modules/mob/living/simple_animal/hostile/megafauna/stalwa…
UselessTheremin Mar 16, 2021
75eba45
Update code/modules/mob/living/simple_animal/hostile/megafauna/stalwa…
UselessTheremin Mar 16, 2021
1e69d8c
theos wants me t odo stuff might work maybe??????????????????????????…
UselessTheremin Mar 16, 2021
0f7a0c7
oh yeah this is a thing too maybe??
UselessTheremin Mar 16, 2021
11c1018
this is why you dont copy and paste kids
UselessTheremin Mar 17, 2021
bf2033c
whoops blobsweat
UselessTheremin Mar 17, 2021
e447d6b
ok theos i maybe fixed your thing hopefully it works
UselessTheremin Mar 17, 2021
c59e227
im going to brush my teeth with a fucking angle grinder
UselessTheremin Mar 18, 2021
0bd5ce0
Update stalwart.dm
SomeguyManperson Mar 25, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion code/game/turfs/simulated/floor/plating/asteroid.dm
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@
if (!mob_spawn_list)
mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/goldgrub = 1, /mob/living/simple_animal/hostile/asteroid/goliath = 5, /mob/living/simple_animal/hostile/asteroid/basilisk = 4, /mob/living/simple_animal/hostile/asteroid/hivelord = 3)
if (!megafauna_spawn_list)
megafauna_spawn_list = list(/mob/living/simple_animal/hostile/megafauna/dragon = 4, /mob/living/simple_animal/hostile/megafauna/colossus = 2, /mob/living/simple_animal/hostile/megafauna/bubblegum = SPAWN_BUBBLEGUM)
megafauna_spawn_list = list(/mob/living/simple_animal/hostile/megafauna/dragon = 4, /mob/living/simple_animal/hostile/megafauna/colossus = 2, /mob/living/simple_animal/hostile/megafauna/stalwart = 3, /mob/living/simple_animal/hostile/megafauna/bubblegum = SPAWN_BUBBLEGUM)
if (!flora_spawn_list)
flora_spawn_list = list(/obj/structure/flora/ash/leaf_shroom = 2 , /obj/structure/flora/ash/cap_shroom = 2 , /obj/structure/flora/ash/stem_shroom = 2 , /obj/structure/flora/ash/cacti = 1, /obj/structure/flora/ash/tall_shroom = 2)
if(!terrain_spawn_list)
Expand Down
15 changes: 15 additions & 0 deletions code/modules/mining/lavaland/necropolis_chests.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1392,6 +1392,21 @@
/obj/item/hierophant_club/station
z_level_check = FALSE

//Stalwart
/obj/structure/closet/crate/sphere/stalwart
name = "silvery capsule"
desc = "It feels cold to the touch..."

/obj/structure/closet/crate/sphere/stalwart/PopulateContents()
new /obj/item/gun/energy/plasmacutter/adv/robocutter

/obj/item/gun/energy/plasmacutter/adv/robocutter
name = "energized powercutter"
desc = "Ripped out of an ancient machine, this self-recharging cutter is unmatched."
fire_delay = 4
icon = 'icons/obj/guns/energy.dmi'
icon_state = "robocutter"
selfcharge = 1
//Just some minor stuff
/obj/structure/closet/crate/necropolis/puzzle
name = "puzzling chest"
Expand Down
177 changes: 177 additions & 0 deletions code/modules/mob/living/simple_animal/hostile/megafauna/stalwart.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
/mob/living/simple_animal/hostile/megafauna/stalwart
name = "stalwart"
desc = "A graceful, floating automaton. It emits a soft hum."
health = 3000
maxHealth = 3000
attacktext = "zaps"
attack_sound = 'sound/effects/empulse.ogg'
icon_state = "stalwart"
icon_living = "stalwart"
icon_dead = ""
friendly = "scans"
icon = 'icons/mob/lavaland/64x64megafauna.dmi'
speak_emote = list("screeches")
armour_penetration = 40
melee_damage_lower = 40
melee_damage_upper = 40
speed = 5
move_to_delay = 5
ranged = TRUE
del_on_death = TRUE
pixel_x = -16
internal_type = /obj/item/gps/internal/stalwart
loot = list(/obj/structure/closet/crate/sphere/stalwart)
deathmessage = "erupts into blue flame, and screeches before violently shattering."
deathsound = 'sound/voice/borg_deathsound.ogg'
internal_type = /obj/item/gps/internal/stalwart
var/charging = FALSE
var/revving_charge = FALSE

/mob/living/simple_animal/hostile/megafauna/stalwart/OpenFire()
ranged_cooldown = world.time + 50
anger_modifier = clamp(((maxHealth - health)/50),0,20)
if(prob(20+anger_modifier)) //Major attack
stalnade()
else if(prob(20))
charge()
else
if(prob(70))
backup()
else
energy_pike()

/mob/living/simple_animal/hostile/megafauna/stalwart/proc/telegraph()
for(var/mob/M in range(10,src))
flash_color(M.client, "#6CA4E3", 1)
shake_camera(M, 4, 3)
playsound(src, 'sound/voice/borg_deathsound.ogg', 200, 1)

/mob/living/simple_animal/hostile/megafauna/stalwart/proc/shoot_projectile(turf/marker, set_angle)
if(!isnum(set_angle) && (!marker || marker == loc))
return
var/turf/startloc = get_turf(src)
var/obj/item/projectile/P = new /obj/item/projectile/stalpike(startloc)
P.preparePixelProjectile(marker, startloc)
P.firer = src
if(target)
P.original = target
P.fire(set_angle)

/mob/living/simple_animal/hostile/megafauna/stalwart/proc/bombsaway(turf/marker)
if(!marker || marker == loc)
return
var/turf/startloc = get_turf(src)
var/obj/item/projectile/P = new /obj/item/projectile/stalnade(startloc)
P.preparePixelProjectile(marker, startloc)
P.firer = src
if(target)
P.original = target
P.fire()

/mob/living/simple_animal/hostile/megafauna/stalwart/proc/stalnade(turf/marker)
for(var/d in dir)
var/turf/E = get_step(src, d)
bombsaway(E)

/mob/living/simple_animal/hostile/megafauna/stalwart/proc/backup()
visible_message("<span class='danger'>[src] constructs a flock of mini mechanoid!</span>")
for(var/turf/open/H in range(src, 2))
if(prob(25))
new /mob/living/simple_animal/hostile/asteroid/hivelordbrood/staldrone(H.loc)

/mob/living/simple_animal/hostile/megafauna/stalwart/proc/energy_pike()
ranged_cooldown = world.time + 40
dir_shots(GLOB.diagonals)
dir_shots(GLOB.cardinals)
SLEEP_CHECK_DEATH(10)

/mob/living/simple_animal/hostile/megafauna/stalwart/proc/dir_shots(list/dirs)
if(!islist(dirs))
dirs = GLOB.alldirs.Copy()
playsound(src, 'sound/effects/pop_expl.ogg', 200, 1, 2)
for(var/d in dirs)
var/turf/E = get_step(src, d)
shoot_projectile(E)

/mob/living/simple_animal/hostile/megafauna/stalwart/proc/charge(var/atom/chargeat = target, var/delay = 5)
if(!chargeat)
return
var/chargeturf = get_turf(chargeat)
if(!chargeturf)
return
var/dir = get_dir(src, chargeturf)
var/turf/T = get_ranged_target_turf(chargeturf, dir, 2)
if(!T)
return
charging = TRUE
revving_charge = TRUE
telegraph(src)
walk(src, 0)
setDir(dir)
SLEEP_CHECK_DEATH(delay)
revving_charge = FALSE
var/movespeed = 1
walk_towards(src, T, movespeed)
SLEEP_CHECK_DEATH(get_dist(src, T) * movespeed)
walk(src, 0) // cancel the movement
charging = FALSE

/mob/living/simple_animal/hostile/megafauna/stalwart/Move()
if(revving_charge)
return FALSE
if(charging)
DestroySurroundings() // code stolen from chester stolen from bubblegum i am the ultimate shitcoder
..()

//Projectiles and such

/mob/living/simple_animal/hostile/asteroid/hivelordbrood/staldrone
name = "mini mechanoid"
desc = "It's staring at you intently. Do not taunt."
icon_state = "drone_gem"
faction = list("mining")
weather_immunities = list("lava","ash")

/obj/item/gps/internal/stalwart
icon_state = null
gpstag = "Ancient Signal"
desc = "Bzz bizzop boop blip beep"
invisibility = 100

/obj/item/projectile/stalpike
name = "energy pike"
icon_state = "arcane_barrage"
damage = 20
armour_penetration = 100
speed = 5
eyeblur = 0
damage_type = BURN
pass_flags = PASSTABLE
color = "#6CA4E3"

/obj/item/projectile/stalnade
name = "volatile orb"
icon_state = "wipe"
damage = 300
armour_penetration = 100
speed = 1
eyeblur = 0
pass_flags = PASSTABLE

/obj/item/projectile/stalnade/Move()
. = ..()
var/turf/location = get_turf(src)
if(location)
new /obj/effect/temp_visual/hierophant/wall/stalwart(location)

/obj/effect/temp_visual/hierophant/wall/stalwart
name = "azure barrier"
icon = 'icons/effects/fire.dmi'
icon_state = "3"
duration = 100
smooth = SMOOTH_FALSE
color = "#6CA4E3"

/mob/living/simple_animal/hostile/megafauna/stalwart/devour(mob/living/L)
visible_message("<span class='danger'>[src] melts [L]!</span>")
L.dust()
Binary file modified icons/mob/lavaland/64x64megafauna.dmi
Binary file not shown.
Binary file modified icons/obj/guns/energy.dmi
Binary file not shown.
1 change: 1 addition & 0 deletions yogstation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -2390,6 +2390,7 @@
#include "code\modules\mob\living\simple_animal\hostile\megafauna\hierophant.dm"
#include "code\modules\mob\living\simple_animal\hostile\megafauna\legion.dm"
#include "code\modules\mob\living\simple_animal\hostile\megafauna\megafauna.dm"
#include "code\modules\mob\living\simple_animal\hostile\megafauna\stalwart.dm"
#include "code\modules\mob\living\simple_animal\hostile\megafauna\swarmer.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\basilisk.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\curse_blob.dm"
Expand Down