the plutonia experience

This commit is contained in:
Hatterhat
2020-09-19 00:57:38 -05:00
parent bf9efa4685
commit 41f7f39ed2
10 changed files with 156 additions and 17 deletions

View File

@@ -83,3 +83,18 @@
L.client.spinright()
to_chat(R, "<span class='critical'>Gyroscopic failure.</span>")
return
/obj/item/grenade/concussion/frag
name = "concussion-frag grenade"
desc = "A polymer and steel concussion grenade, optimized for disorienting personnel and being accused of war crimes."
icon_state = "concussion-red"
var/fragment_types = list(/obj/item/projectile/bullet/pellet/fragment, /obj/item/projectile/bullet/pellet/fragment/strong, /obj/item/projectile/bullet/pellet/fragment/rubber, /obj/item/projectile/bullet/pellet/fragment/rubber/strong)
var/num_fragments = 40 //total number of fragments produced by the grenade
var/spread_range = 5 // for above and below, see code\game\objects\items\weapons\grenades\explosive.dm
/obj/item/grenade/concussion/frag/detonate()
var/turf/O = get_turf(src)
if(!O)
return
src.fragmentate(O, num_fragments, spread_range, fragment_types)
..()

View File

@@ -97,6 +97,20 @@
walk(src, 0) // Because we might have called walk_away, we must stop the walk loop or BYOND keeps an internal reference to us forever.
return ..()
/obj/item/grenade/flashbang/stingbang
name = "stingbang"
desc = "A hand held grenade, with an adjustable timer, perfect for stopping riots and playing morally unthinkable pranks."
icon_state = "timeg"
var/fragment_types = list(/obj/item/projectile/bullet/pellet/fragment/rubber, /obj/item/projectile/bullet/pellet/fragment/rubber/strong)
var/num_fragments = 45 //total number of fragments produced by the grenade
var/spread_range = 6 // for above and below, see code\game\objects\items\weapons\grenades\explosive.dm
/obj/item/grenade/flashbang/stingbang/detonate()
var/turf/O = get_turf(src)
if(!O)
return
src.fragmentate(O, num_fragments, spread_range, fragment_types)
..()
/obj/item/grenade/flashbang/clusterbang//Created by Polymorph, fixed by Sieve
desc = "Use of this weapon may constiute a war crime in your area, consult your local Facility Director."

View File

@@ -54,6 +54,8 @@
say_threaten = list("You best leave, this booty is mine.", "No plank to walk on, just walk away.")
say_stand_down = list("Good.")
say_escalate = list("Yarr! The booty is mine!")
threaten_sound = 'sound/weapons/TargetOn.ogg'
stand_down_sound = 'sound/weapons/TargetOff.ogg'
// Mercs!
/datum/say_list/merc
@@ -71,6 +73,24 @@
say_threaten = list("Get out of here!", "Hey! Private Property!")
say_stand_down = list("Good.")
say_escalate = list("Your funeral!", "Bring it!")
threaten_sound = 'sound/weapons/TargetOn.ogg'
stand_down_sound = 'sound/weapons/TargetOff.ogg'
/datum/say_list/merc/elite // colder. also, actually just assholes.
speak = list("I got better pay on my last job.",
"So, y'think we'll get to shoot anyone today?",
"Fuck, I hate those guys.",
"If someone doesn't show up for me to shoot today, I swear I'd go apeshit.",
"Any of you see anything recently?")
emote_see = list("taps his foot", "looks around coldly", "checks his equipment", "rummages in his webbing")
say_understood = list("Aff.", "Affirmative.", "Copy.", "Understood.")
say_cannot = list("Neg.", "Negative.")
say_maybe_target = list("Someone's acting mighty bold...")
say_got_target = list("Oh, good, I needed more range fodder.", "I'm going to enjoy this.", "I see you.")
say_threaten = list("Hoy, private property, fuck off.", "You're acting mighty bold for someone in shooting distance.", "First and last warning; find somewhere else to be.", "I wouldn't do that if I were you.", "Back off or your field medic's getting a bonus.")
say_stand_down = list("Damn it, I was hoping they'd push their luck.", "Good call. Don't do it again.", "Harrumph.")
say_escalate = list("Oh, I'm gonna enjoy this.", "I'm going to enjoy making you regret that.", "Last mistake you'll make in that sleeve.")
/datum/say_list/malf_drone
speak = list("ALERT.","Hostile-ile-ile entities dee-twhoooo-wected.","Threat parameterszzzz- szzet.","Bring sub-sub-sub-systems uuuup to combat alert alpha-a-a.")
@@ -87,10 +107,6 @@
threaten_sound = 'sound/effects/turret/move1.wav'
stand_down_sound = 'sound/effects/turret/move2.wav'
/datum/say_list/mercenary
threaten_sound = 'sound/weapons/TargetOn.ogg'
stand_down_sound = 'sound/weapons/TargetOff.ogg'
/datum/say_list/crab
emote_hear = list("clicks")

View File

@@ -172,8 +172,8 @@
/mob/living/simple_mob/hostile/syndicate/ranged/space
name = "space mercenary" //VOREStation Edit
icon_state = "syndicaterangedpsace"
icon_living = "syndicaterangedpsace"
icon_state = "syndicaterangedspace"
icon_living = "syndicaterangedspace"
speed = 0

View File

@@ -240,9 +240,9 @@
// Ranged Space Merc
/mob/living/simple_mob/humanoid/merc/ranged/space
name = "syndicate sommando"
icon_state = "syndicaterangedpsace"
icon_living = "syndicaterangedpsace"
name = "syndicate commando"
icon_state = "syndicaterangedspace"
icon_living = "syndicaterangedspace"
movement_cooldown = 0
@@ -258,9 +258,80 @@
corpse = /obj/effect/landmark/mobcorpse/syndicatecommando
loot_list = list(/obj/item/gun/projectile/automatic/c20r = 100)
base_attack_cooldown = 5 // Two attacks a second or so.
reload_max = 20
/mob/living/simple_mob/humanoid/merc/ranged/space/Process_Spacemove(var/check_drift = 0)
return
// suppressors are just assholes and are intended to be a piss poor experience for everyone on both sides
/datum/ai_holder/simple_mob/merc/ranged/suppressor
respect_alpha = FALSE // he really just shoots you
vision_range = 10 // plutonia experience
/mob/living/simple_mob/humanoid/merc/ranged/space/suppressor // adminspawn only, and also Probably Going To Kill The Unprepared
name = "syndicate suppressor"
desc = "Geeze, weren't shotgun ops bad enough? At least when you fade these jerks you get a flashbang to the face."
icon_state = "syndi-ranged-space-sup"
icon_living = "syndi-ranged-space-sup"
armor = list(melee = 80, bullet = 65, laser = 50, energy = 15, bomb = 80, bio = 100, rad = 100) // this is the merc rig's stats
ai_holder_type = /datum/ai_holder/simple_mob/merc/ranged/suppressor
say_list_type = /datum/say_list/merc/elite
projectiletype = /obj/item/projectile/bullet/pistol/medium/ap/suppressor // it's high velocity
projectilesound = 'sound/weapons/doompistol-perkristian.ogg' // converted from a wav taken from http://www.perkristian.net/game_doom-sfx.shtml
base_attack_cooldown = 3 // three? attacks a second
reload_max = 30 // extended mags
special_attack_charges = 5
loot_list = list()
corpse = null
var/deathnade_path = /obj/item/grenade/flashbang
/mob/living/simple_mob/humanoid/merc/ranged/space/suppressor/death()
// you thought killing him would be the least of your worries?
// think again
var/obj/item/grenade/banger = new deathnade_path(get_turf(src))
banger.throw_at(ai_holder.target, 9, 9, null)
if(istype(banger, /obj/item/grenade))
banger.det_time = 2
banger.activate(null)
..()
/mob/living/simple_mob/humanoid/merc/ranged/space/suppressor/elite // really reconsider why you're spawning this dude
name = "elite mercenary suppressor"
desc = "Geeze, weren't normal suppressors bad enough? At least if you fade this jerk, you'll still have an awful time anyway."
icon_state = "syndi-ranged-space-sup-elite"
icon_living = "syndi-ranged-space-sup-elite"
armor = list(melee = 80, bullet = 70, laser = 55, energy = 15, bomb = 80, bio = 100, rad = 100) // see code for military hardsuit
projectiletype = /obj/item/projectile/bullet/pistol/medium/ap/suppressor/hitscan
base_attack_cooldown = 2 // jesus christ
grenade_type = /obj/item/grenade/concussion/frag
deathnade_path = /obj/item/grenade/flashbang/stingbang
// being Actual Professionals, they have better (read: player-level) blocking chances
/mob/living/simple_mob/humanoid/merc/ranged/space/suppressor/attackby(var/obj/item/O, var/mob/user)
if(O.force)
if(prob(50))
visible_message("<span class='danger'>\The [src] blocks \the [O] with its shield!</span>")
if(user)
ai_holder.react_to_attack(user)
return
else
..()
else
visible_message("<span class='warning'>\The [user] gently taps [src] with \the [O].</span>")
/mob/living/simple_mob/humanoid/merc/ranged/space/suppressor/bullet_act(var/obj/item/projectile/Proj)
if(!Proj) return
if(prob(50))
visible_message("<font color='red'><B>[src] blocks [Proj] with its shield!</B></font>")
if(Proj.firer)
ai_holder.react_to_attack(Proj.firer)
return
else
..()
////////////////////////////////
// PoI Mercs
////////////////////////////////
@@ -356,7 +427,7 @@
loot_list = list(/obj/item/melee/energy/sword = 100)
// They're good with the swords? I dunno. I like the idea they can deflect.
/mob/living/simple_mob/humanoid/merc/melee/sword/attackby(var/obj/item/O as obj, var/mob/user as mob)
/mob/living/simple_mob/humanoid/merc/voxpirate/boarder/attackby(var/obj/item/O, var/mob/user)
if(O.force)
if(prob(20))
visible_message("<span class='danger'>\The [src] blocks \the [O] with its sword!</span>")
@@ -369,7 +440,7 @@
to_chat(user, "<span class='warning'>This weapon is ineffective, it does no damage.</span>")
visible_message("<span class='warning'>\The [user] gently taps [src] with \the [O].</span>")
/mob/living/simple_mob/humanoid/merc/melee/sword/bullet_act(var/obj/item/projectile/Proj)
/mob/living/simple_mob/humanoid/merc/voxpirate/boarder/bullet_act(var/obj/item/projectile/Proj)
if(!Proj) return
if(prob(35))
visible_message("<font color='red'><B>[src] blocks [Proj] with its sword!</B></font>")
@@ -379,8 +450,6 @@
else
..()
ai_holder_type = /datum/ai_holder/simple_mob/merc
////////////////////////////////
// Vox Ranged
////////////////////////////////

View File

@@ -114,6 +114,19 @@
embed_chance = -1
holy = TRUE
/obj/item/projectile/bullet/pistol/medium/ap/suppressor // adminspawn only
name = "suppressor bullet" // this guy is Important and also Hates You
fire_sound = 'sound/weapons/doompistol-perkristian.ogg' // converted from a wav taken from http://www.perkristian.net/game_doom-sfx.shtml
damage = 15 // high rof kinda fucked up lets be real
agony = 8 // brute easily heals, agony not so much
armor_penetration = 30 // reduces shield blockchance
accuracy = 50 // he don't miss
speed = 0.4 // if the pathfinder gets a funny burst rifle, they deserve a rival
// that's double projectile speed btw
/obj/item/projectile/bullet/pistol/medium/ap/suppressor/hitscan // spicy boys
hitscan = TRUE
/obj/item/projectile/bullet/pistol/strong // .357 and .44 caliber stuff. High power pistols like the Mateba or Desert Eagle. Sacrifice capacity for power.
fire_sound = 'sound/weapons/gunshot4.ogg'
damage = 60

View File

@@ -76,6 +76,18 @@
damage = 4
armor_penetration = 40
/obj/item/projectile/bullet/pellet/fragment/rubber
name = "stingball shrapnel"
damage = 3
agony = 8
sharp = FALSE
edge = FALSE
check_armour = "melee"
/obj/item/projectile/bullet/pellet/fragment/rubber/strong
damage = 8
agony = 16
// Tank rupture fragments
/obj/item/projectile/bullet/pellet/fragment/tank
name = "metal fragment"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 KiB

After

Width:  |  Height:  |  Size: 302 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.