Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Mobs & .DMI sprite set merge #487

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
364 changes: 364 additions & 0 deletions code/modules/mob/living/simple_animal/hostile/f13/raider.dm
Original file line number Diff line number Diff line change
Expand Up @@ -324,3 +324,367 @@
ranged_cooldown_time = 30
projectiletype = /obj/item/projectile/bullet/shrapnel
projectilesound = 'sound/f13weapons/auto5.ogg'

// EVENT MOBS

////////////////////
// RENEGADE MERCS //
////////////////////


// LIGHT MELEE VARIANT
/mob/living/simple_animal/hostile/renegade
name = "Renegade Prospect"
desc = "A raider recently inducted among the Renegades."
icon = 'icons/fallout/mobs/humans/renegade.dmi'
icon_state = "renegade_prospect"
icon_living = "renegade_prospect"
icon_dead = "renegade_prospect-dead"
mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
turns_per_move = 5
maxHealth = 140
health = 140
healable = 1
speed = 1.2
stat_attack = 1
obj_damage = 150
melee_damage_lower = 25
melee_damage_upper = 40
attack_verb_simple = "smacks"
attack_sound = 'sound/weapons/smash.ogg'
a_intent = INTENT_HARM
faction = list("raider")
check_friendly_fire = TRUE
status_flags = CANPUSH
del_on_death = FALSE
loot = list(/obj/item/stack/f13Cash/random/med)

/mob/living/simple_animal/hostile/renegade/Aggro()
..()
summon_backup(10)
say("Target spotted!")

// ADVANCED LIGHT MELEE VARIANT
/mob/living/simple_animal/hostile/renegade/smasher
name = "Renegade Smasher"
desc = "A raider recently inducted among the Renegades- although clearly with a fair amount of experience to draw from, a riot shield a penchant for extreme violence. He's going to make sure your dead."
armour_penetration = 0.4
health = 300
maxHealth = 300
loot = list()
icon_state = "renegade_smasher"
icon_living = "renegade_smasher"
icon_dead = "renegade_smasher-dead"
melee_damage_lower = 20
melee_damage_upper = 30
rapid_melee = 2
stat_attack = 1

// LIGHT RANGED VARIANT
/mob/living/simple_animal/hostile/renegade/grunt
name = "Renegade Grunt"
desc = "The standard issue muscle employed among the Renegades."
icon_state = "renegade_grunt"
icon_living = "renegade_grunt"
icon_dead = "renegade_grunt-dead"
ranged = TRUE
maxHealth = 200
health = 200
healable = 1
check_friendly_fire = 1
retreat_distance = 6
minimum_distance = 2
extra_projectiles = 2
ranged_cooldown_time = 10
projectiletype = /obj/item/projectile/bullet/c10mm/simple
projectilesound = 'sound/f13weapons/10mm_fire_01.ogg'
loot = list(/obj/effect/spawner/bundle/f13/m1911)
robust_searching = TRUE
speak = list("Come get some!", "Fuck off!", "Landon's going to promote me after this!", "Bullets for days!", "Renegades represent!")
speak_emote = list("says")
speak_chance = 1

// ADVANDED LIGHT RANGED VARIANT
/mob/living/simple_animal/hostile/renegade/grunt/gunner
name = "Renegade Gunner"
desc = "The standard issue muscle employed among the Renegades- equipped with an extended magazine burst-fire 10mm sub-machine gun. As if to show off his position, he's got red highlights on his shoulder pads."
extra_projectiles = 4
icon_state = "renegade_gunner"
icon_living = "renegade_gunner"
icon_dead = "renegade_gunner-dead"

// LIGHT SHOTGUN VARIANT
/mob/living/simple_animal/hostile/renegade/engie
name = "Renegade Engie"
desc = "Demolitions and engineering expert of the Renegades."
icon_state = "renegade_engie"
icon_living = "renegade_engie"
icon_dead = "renegade_engie-dead"
maxHealth = 200
health = 200
healable = 1
speed = 1.2
ranged = 1
check_friendly_fire = 1
obj_damage = 200
retreat_distance = 4
minimum_distance = 1
ranged_cooldown_time = 4
projectiletype = /obj/item/projectile/bullet/pellet/shotgun_buckshot
projectilesound = 'sound/f13weapons/shotgun.ogg'
casingtype = /obj/item/ammo_casing/shotgun
loot = list(/obj/item/stack/f13Cash/random/med, /obj/effect/spawner/lootdrop/f13/bomb/tier1, /obj/effect/spawner/lootdrop/f13/crafting)
robust_searching = TRUE
speak = list("Come get some!", "Going to blow some shit to kingdom come!", "I got the goods!", "Nades for days!", "Renegades represent!")
speak_emote = list("says")
speak_chance = 1

// ADVANCED LIGHT SHOTGUN VARIANT
/mob/living/simple_animal/hostile/renegade/engie/breacher
name = "Renegade Breacher"
desc = "Demolitions and engineering expert of the Renegades, wearing an old, stolen trooper helmet- equipped with a spare sledgehammer for faster wallbusting and an unholy double-barreled pump-action shotgun"
environment_smash = ENVIRONMENT_SMASH_RWALLS
extra_projectiles = 1
icon_state = "renegade_breacher"
icon_living = "renegade_breacher"
icon_dead = "renegade_breacher-dead"

// MEDIUM RANGED VARIANT
/mob/living/simple_animal/hostile/renegade/soldier
name = "Renegade Soldier"
desc = "The beefier side of the Renegade's muscle; with combat experience to back it."
icon_state = "renegade_soldier"
icon_living = "renegade_soldier"
icon_dead = "renegade_soldier-dead"
ranged = TRUE
maxHealth = 300
health = 300
healable = 1
speed = 1.1
check_friendly_fire = 1
retreat_distance = 7
minimum_distance = 3
extra_projectiles = 2
ranged_cooldown_time = 6
projectiletype = /obj/item/projectile/bullet/c10mm/simple
projectilesound = 'sound/f13weapons/combatrifle.ogg'
loot = list(/obj/item/stack/f13Cash/random/med, /obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier2)
robust_searching = TRUE
speak = list("Come get some!", "I like my odds, c'mere!", "Gonna get a promotion after this!", "Bullets for days!", "Renegades represent!")
speak_emote = list("says")
speak_chance = 1

// MEDIUM MELEE VARIANT
/mob/living/simple_animal/hostile/renegade/defender
name = "Renegade Defender"
desc = "The Renegade member who's sole purpose is to withstand punishment with layers of advanced combat armor."
icon_state = "renegade_defender"
icon_living = "renegade_defender"
icon_dead = "renegade_defender-dead"
ranged = TRUE
maxHealth = 750
health = 750
healable = 1
speed = 0.1
check_friendly_fire = 1
melee_damage_lower = 30
melee_damage_upper = 40
attack_verb_simple = "bashes"
attack_sound = 'sound/weapons/slam.ogg'
a_intent = INTENT_HARM
loot = list(/obj/effect/spawner/lootdrop/f13/weapon/melee/random, /obj/effect/spawner/lootdrop/f13/alcoholspawner, /obj/effect/spawner/lootdrop/f13/ncr_c_ration)
emote_taunt = list("bashes their shield with the mace")
robust_searching = TRUE
speak = list("COME AND TRY ME, BITCH!", "I AM THE WALL!", "LAYERS ON LAYERS OF PLATES!", "I AM TITANIUM!", "RENEGADES REPRESENT!")
speak_emote = list("says")
speak_chance = 1

// ADVANCED MEDIUM MELEE VARIANT
/mob/living/simple_animal/hostile/renegade/defender/assaulter
name = "Renegade Assaulter"
desc = "The Renegade member who's sole purpose is to withstand punishment with layers of advanced combat armor- and dish out just as much with a well placed violent mace swing. As if to flaunt who's about to smack your skull in- there's a huge red R painted into his shield."
armour_penetration = 0.6
icon_state = "renegade_assaulter"
icon_living = "renegade_assaulter"
icon_dead = "renegade_assaulter-dead"

// HEAVY RANGED VARIANT
/mob/living/simple_animal/hostile/renegade/drifter
name = "Renegade Drifter"
desc = "A veteran of the Renegades, specializing in recon and long range engagements."
icon_state = "renegade_drifter"
icon_living = "renegade_drifter"
icon_dead = "renegade_drifter-dead"
ranged = TRUE
maxHealth = 280
health = 280
healable = 1
speed = 1.3
vision_range = 12
aggro_vision_range = 15
check_friendly_fire = 1
retreat_distance = 10
minimum_distance = 6
ranged_cooldown_time = 10
projectiletype = /obj/item/projectile/bullet/a762/sport/simple
projectilesound = 'sound/f13weapons/hunting_rifle.ogg'
loot = list(/obj/item/stack/f13Cash/random/high, /obj/effect/spawner/bundle/f13/remington, /obj/effect/spawner/lootdrop/f13/armor/random)
robust_searching = TRUE
speak = list("Come get some!", "I am the shadow!", "One shot, one kill.", "Adjusting my scope.", "Renegades represent!")
speak_emote = list("says")
speak_chance = 1

// ADVANCED HEAVY RANGED VARIANT
/mob/living/simple_animal/hostile/renegade/drifter/sniper
name = "Enclave Sniper"
desc = "A stone-hearted killer. A marksman of the Enclave, armed with a DKS-501 sniper rifle and a red gleam in his eyes. You should probably start running."
armour_penetration = 0.2
check_friendly_fire = 0
health = 300
maxHealth = 300
minimum_distance = 8
vision_range = 15
icon_state = "renegade_sniper"
icon_living = "renegade_sniper"
icon_dead = "renegade_sniper-dead"
speak = list("...", "That's that, and this is this.", "One shot, one kill.", "Adjusting my scope.", "That's just how this wasteland is.")

// HEAVY SHOTGUN VARIANT
/mob/living/simple_animal/hostile/renegade/guardian
name = "Renegade Guardian"
desc = "A veteran of the Renegades,specializing in close quarters and crowd control.. with an automatic shotgun."
icon_state = "renegade_guardian"
icon_living = "renegade_guardian"
icon_dead = "renegade_guardian-dead"
ranged = TRUE
maxHealth = 420
health = 420
healable = 1
speed = 0.9
check_friendly_fire = 1
minimum_distance = 2
ranged_cooldown_time = 3
projectiletype = /obj/item/projectile/bullet/pellet/shotgun_buckshot
projectilesound = 'sound/f13weapons/auto5.ogg'
casingtype = /obj/item/ammo_casing/shotgun
loot = list(/obj/effect/spawner/bundle/f13/trenchshotgun, /obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier1, /obj/item/stack/f13Cash/random/low, /obj/item/clothing/suit/armor/f13/plates)
robust_searching = TRUE
speak = list("GET SOME!", "ON THE GROUND!", "GOING TO SHOVE THIS WHERE THE SUN DON'T SHINE!", "C'MERE, I GOT LEAD!", "RENEGADES REPRESENT!")
speak_emote = list("says")
speak_chance = 1

// ADVANCED HEAVY SHOTGUN VARIANT
/mob/living/simple_animal/hostile/renegade/guardian/shotgunner
name = "Renegade Shotgunner"
desc = "A veteran of the Renegades,specializing in close quarters and crowd control.. with an automatic full-metal burst-fire slug shotgun and advanced CQC training. Akin to certain gunners, this shotgunner has painted his shoulder-pads with red highlights."
armour_penetration = 5
extra_projectiles = 2
melee_queue_distance = 2
rapid_melee = 2
icon_state = "renegade_shotgunner"
icon_living = "renegade_shotgunner"
icon_dead = "renegade_shotgunner-dead"

// POWER ARMOR VARIANT
/mob/living/simple_animal/hostile/renegade/meister
name = "Renegade Meister"
desc = "Is that a merc in power armor?!"
icon_state = "renegade_meister"
icon_living = "renegade_meister"
icon_dead = "renegade_meister-dead"
maxHealth = 1000
health = 1000
healable = 1
melee_damage_lower = 50
melee_damage_upper = 50
retreat_distance = 3
minimum_distance = 1
ranged = 1
attack_verb_simple = "power-fists"
attack_sound = 'sound/weapons/slam.ogg'
ranged_cooldown_time = 30
extra_projectiles = 5
projectiletype = /obj/item/projectile/bullet/a556/match
projectilesound = 'sound/f13weapons/automaticrifle_BAR.ogg'
loot = list(/obj/item/stack/f13Cash/random/high, /obj/item/advanced_crafting_components/alloys, /obj/item/stack/sheet/plasteel/five)
speak = list("POWER TO THE ARMOR!", "I AM GOING TO BREAK YOU IN HALF!", "YEAH I COMPENSATE WITH BIG FUCKIN' GUNS", "DODGE THIS!", "PEAK RENEGADE PERFORMANCE!")
speak_emote = list("says")
speak_chance = 1

/mob/living/simple_animal/hostile/renegade/meister/movement_delay()
return 6

/mob/living/simple_animal/hostile/renegade/meister/heavy
name = "Renegade Heavy"
desc = "Is that a merc in layered advanced combat armor, high on drugs?! Holy shit, that's a big gun!"
aggro_vision_range = 14
armour_penetration = 0.8
check_friendly_fire = 0
environment_smash = ENVIRONMENT_SMASH_RWALLS
extra_projectiles = 7
rapid_melee = 2
retreat_distance = 2
icon_state = "renegade_heavy"
icon_living = "renegade_heavy"
icon_dead = "renegade_heavy-dead"

// HEALER VARIANT
/mob/living/simple_animal/hostile/renegade/doc
name = "Renegade Doc"
desc = "A veteran of the Renegades, this one specializing in field first aid."
icon_state = "renegade_doc"
icon_living = "renegade_doc"
icon_dead = "renegade_doc-dead"
ranged = TRUE
maxHealth = 250
health = 250
healable = 1
check_friendly_fire = 1
retreat_distance = 6
minimum_distance = 8
projectiletype = /obj/item/projectile/bullet/m44/simple
projectilesound = 'sound/f13weapons/44mag.ogg'
casingtype = /obj/item/ammo_casing/m44
robust_searching = TRUE
speak = list("Running low on meds.", "Could do with extra combat chems.", "Where'd I put the Syringer?", "I GOT THE MED-BAG!", "Renegades represent and all that jazz.")
speak_emote = list("says")
speak_chance = 1
loot = list(/obj/effect/spawner/lootdrop/f13/medical/vault/meds, /obj/effect/spawner/lootdrop/f13/weapon/revolver44variants, /obj/effect/spawner/lootdrop/f13/medical/surgical/blood)

/mob/living/simple_animal/hostile/renegade/doc/Initialize(mapload)
. = ..()
// we only heal BRUTELOSS because each type directly heals a simplemob's health
// therefore setting it to BRUTELOSS | FIRELOSS | TOXLOSS | OXYLOSS would mean healing 4x as much
// aka 40% of max life every tick, which is basically unkillable
// TODO: refactor this if simple_animals ever get damage types
AddComponent(/datum/component/glow_heal, chosen_targets = /mob/living/simple_animal/hostile/renegade, allow_revival = FALSE, restrict_faction = list("raider"), type_healing = BRUTELOSS)

// ADVANCED HEALER VARIANT
/mob/living/simple_animal/hostile/renegade/doc/medic
name = "Renegade Medic"
desc = "A veteran of the Renegades, this one specializing in field first aid with a rapid-fanning .44 magnum revolver. He seems to know if you're alive or dead, if the way he's checking a health scanner is anything to go off. No fooling this guy- he's making sure you're dead."
extra_projectiles = 2
stat_attack = 1

// THE BOSS. THE BIG ONE. THE BIG CHEESE
/mob/living/simple_animal/hostile/raider/junker/boss/renegade
name = "Enclave Gunnery Sergeant"
desc = "An Enclave sergeant, wielding USMC Marine Armour and a massive machinegun. He's had it with your shit."
faction = list("raider","wastebot","hostile","supermutant","ghoul")
aggro_vision_range = 15
armour_penetration = 0.8
environment_smash = ENVIRONMENT_SMASH_RWALLS
extra_projectiles = 7
health = 1250
maxHealth = 1250
melee_damage_upper = 50
minimum_distance = 0
obj_damage = 500
rapid_melee = 2
retreat_distance = 0
vision_range = 15
icon = 'icons/fallout/mobs/humans/renegade.dmi'
icon_state = "renegade_boss"
icon_living = "renegade_boss"
icon_dead = "renegade_boss-dead"
speak = list("Your end is now.", "I'm going to crush you.", "+Judgement.+", "Die.", "You're weak.")
Binary file added icons/fallout/mobs/humans/renegade.dmi
Binary file not shown.
Binary file added icons/fallout/mobs/humans/renegade_updated.dmi
Binary file not shown.
Loading