-
Notifications
You must be signed in to change notification settings - Fork 68
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[MIRROR] Basic Constructs: Juggernaut [MDB IGNORE] (#24547)
* Basic Constructs: Juggernaut (#79170) ## About The Pull Request Converts juggernaut constructs to basic mobs. These guys are really simple, so this is a pretty straightforward one. The one notable thing about this PR is that I got annoyed that projectile reflection code was copy-pasted in two different places (the main one for things like the ablative trenchcoat, and right here on the juggernaut). So, trenchcoat-style reflection is now a proc on `/obj/projectile`, which is used in both places. AI-controlled juggernauts are as simple as befits these big lugs, doing nothing but slowly walking toward mobs and beating them to death with their giant fists. ## Why It's Good For The Game Removes another 5 simple animals. Not too much else to say about this one, but it's easier to make projectiles bounce off of things now if anyone wants to do that. ## Changelog :cl: refactor: Juggernaut constructs now use the basic mob framework. Please report any bugs. /:cl: --------- Co-authored-by: san7890 <the@ san7890.com> * Basic Constructs: Juggernaut * Modular * Map Reset --------- Co-authored-by: lizardqueenlexi <[email protected]> Co-authored-by: san7890 <the@ san7890.com> Co-authored-by: Giz <[email protected]>
- Loading branch information
1 parent
3dd52ac
commit bd11f35
Showing
17 changed files
with
131 additions
and
131 deletions.
There are no files selected for viewing
This file contains 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 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 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 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 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 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 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 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 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,62 @@ | ||
/mob/living/basic/construct/juggernaut | ||
name = "Juggernaut" | ||
real_name = "Juggernaut" | ||
desc = "A massive, armored construct built to spearhead attacks and soak up enemy fire." | ||
icon_state = "juggernaut" | ||
icon_living = "juggernaut" | ||
maxHealth = 150 | ||
health = 150 | ||
response_harm_continuous = "harmlessly punches" | ||
response_harm_simple = "harmlessly punch" | ||
obj_damage = 90 | ||
melee_damage_lower = 25 | ||
melee_damage_upper = 25 | ||
attack_verb_continuous = "smashes their armored gauntlet into" | ||
attack_verb_simple = "smash your armored gauntlet into" | ||
speed = 2.5 | ||
attack_sound = 'sound/weapons/punch3.ogg' | ||
status_flags = NONE | ||
mob_size = MOB_SIZE_LARGE | ||
force_threshold = 10 | ||
construct_spells = list( | ||
/datum/action/cooldown/spell/forcewall/cult, | ||
/datum/action/cooldown/spell/basic_projectile/juggernaut, | ||
/datum/action/innate/cult/create_rune/wall, | ||
) | ||
playstyle_string = span_bold("You are a Juggernaut. Though slow, your shell can withstand heavy punishment, create shield walls, rip apart enemies and walls alike, and even deflect energy weapons.") | ||
|
||
smashes_walls = TRUE | ||
|
||
/// Hostile NPC version. Pretty dumb, just attacks whoever is near. | ||
/mob/living/basic/construct/juggernaut/hostile | ||
ai_controller = /datum/ai_controller/basic_controller/juggernaut | ||
smashes_walls = FALSE | ||
|
||
/mob/living/basic/construct/juggernaut/bullet_act(obj/projectile/bullet) | ||
if(!istype(bullet, /obj/projectile/energy) && !istype(bullet, /obj/projectile/beam)) | ||
return ..() | ||
if(!prob(40 - round(bullet.damage / 3))) // reflect chance | ||
return ..() | ||
|
||
apply_damage(bullet.damage * 0.5, bullet.damage_type) | ||
visible_message( | ||
span_danger("The [bullet.name] is reflected by [src]'s armored shell!"), | ||
span_userdanger("The [bullet.name] is reflected by your armored shell!"), | ||
) | ||
|
||
bullet.reflect(src) | ||
|
||
return BULLET_ACT_FORCE_PIERCE // complete projectile permutation | ||
|
||
// Alternate juggernaut themes | ||
/mob/living/basic/construct/juggernaut/angelic | ||
theme = THEME_HOLY | ||
|
||
/mob/living/basic/construct/juggernaut/angelic/Initialize(mapload) | ||
. = ..() | ||
ADD_TRAIT(src, TRAIT_ANGELIC, INNATE_TRAIT) | ||
|
||
/mob/living/basic/construct/juggernaut/mystic | ||
theme = THEME_WIZARD | ||
|
||
/mob/living/basic/construct/juggernaut/noncult |
This file contains 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 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
79 changes: 0 additions & 79 deletions
79
code/modules/mob/living/simple_animal/hostile/constructs/juggernaut.dm
This file was deleted.
Oops, something went wrong.
This file contains 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 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 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
Oops, something went wrong.