This repository was archived by the owner on May 22, 2025. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 456
The Stalwart Now Roams the Wastes (WIP) #11096
Merged
Merged
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 71ffffa
waaah
UselessTheremin 297c6f9
FUCk
UselessTheremin f25a3a7
fucken wont compile
UselessTheremin 23cd761
stole colossus code will test later
UselessTheremin dc3a605
i literally dont remember coding this but it was 5 am and i think i a…
UselessTheremin f9d728b
a single underscore
UselessTheremin fccb240
might work????? who knows its a surprise
UselessTheremin 2d4bf96
Update stalwart.dm
UselessTheremin 4e4652d
Update stalwart.dm
UselessTheremin d6e437e
nukes these stupid things whyd i put em in
UselessTheremin 7639520
i'll finish this later
UselessTheremin 054beb1
the perfect crime
UselessTheremin 4b0fb65
Update stalwart.dm
UselessTheremin b9d35ad
Merge branch 'stalwart' of https://github.com/UselessTheremin/Yogstat…
UselessTheremin e178a3b
Update energy.dmi
UselessTheremin ca3abc8
Update energy.dmi
UselessTheremin c569ca8
oh yeah its all coming together
UselessTheremin 98596b3
Update code/modules/mob/living/simple_animal/hostile/megafauna/stalwa…
UselessTheremin 75eba45
Update code/modules/mob/living/simple_animal/hostile/megafauna/stalwa…
UselessTheremin 1e69d8c
theos wants me t odo stuff might work maybe??????????????????????????…
UselessTheremin 0f7a0c7
oh yeah this is a thing too maybe??
UselessTheremin 11c1018
this is why you dont copy and paste kids
UselessTheremin bf2033c
whoops blobsweat
UselessTheremin e447d6b
ok theos i maybe fixed your thing hopefully it works
UselessTheremin c59e227
im going to brush my teeth with a fucking angle grinder
UselessTheremin 0bd5ce0
Update stalwart.dm
SomeguyManperson File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
177 changes: 177 additions & 0 deletions
177
code/modules/mob/living/simple_animal/hostile/megafauna/stalwart.dm
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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) | ||
UselessTheremin marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| /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 | ||
UselessTheremin marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| 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 not shown.
Binary file not shown.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.