More Revenant Tweaks (#11146)

This commit is contained in:
Geeves
2021-02-11 22:27:48 +01:00
committed by GitHub
parent e84e55bcc4
commit 01bb640e14
15 changed files with 138 additions and 50 deletions
+1
View File
@@ -1835,6 +1835,7 @@
#include "code\modules\martial_arts\gunkata.dm"
#include "code\modules\martial_arts\martial.dm"
#include "code\modules\martial_arts\plasma_fist.dm"
#include "code\modules\martial_arts\revenant.dm"
#include "code\modules\martial_arts\skrell.dm"
#include "code\modules\martial_arts\sleeping_carp.dm"
#include "code\modules\martial_arts\sol_combat.dm"
+2
View File
@@ -322,6 +322,7 @@
#define USE_ALLOW_NON_ADJACENT 16
#define USE_FORCE_SRC_IN_USER 32
#define USE_DISALLOW_SILICONS 64
#define USE_DISALLOW_SPECIALS 128 // revenants, zombies, etc
#define USE_SUCCESS 0
#define USE_FAIL_NON_ADJACENT 1
@@ -331,6 +332,7 @@
#define USE_FAIL_INCAPACITATED 5
#define USE_FAIL_NOT_IN_USER 6
#define USE_FAIL_IS_SILICON 7
#define USE_FAIL_IS_MOB_SPECIAL 8
#define DEFAULT_SIGHT (SEE_SELF)
+1 -1
View File
@@ -12,7 +12,7 @@ var/datum/antagonist/revenant/revenants = null
hard_cap = 12
hard_cap_round = 12
var/rifts_left = 3
var/rifts_left = 1
var/kill_count = 0
var/obj/effect/portal/revenant/revenant_rift
+5
View File
@@ -160,6 +160,11 @@
to_chat(user, "<span class='notice'>How do you propose doing that without hands?</span>")
return USE_FAIL_IS_SILICON
if (HAS_FLAG(USE_DISALLOW_SPECIALS) && is_mob_special(user))
if (show_messages)
to_chat(user, "<span class='notice'>Your current mob type prevents you from doing this.</span>")
return USE_FAIL_IS_MOB_SPECIAL
if (HAS_FLAG(USE_FORCE_SRC_IN_USER) && !(src in user))
if (show_messages)
to_chat(user, "<span class='notice'>You need to be holding [src] to do that.</span>")
+3
View File
@@ -399,6 +399,9 @@
playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6)
return
else if(istype(O, /obj/structure/reagent_dispensers/fueltank) && O.Adjacent(user) && welding)
if(use_check(user, USE_DISALLOW_SPECIALS))
to_chat(user, SPAN_WARNING("A strange force prevents you from doing this.")) //there is no way to justify this icly
return
var/obj/structure/reagent_dispensers/fueltank/tank = O
if(tank.armed)
to_chat(user, "<span class='warning'>You are already heating \the [O]!</span>")
+40
View File
@@ -0,0 +1,40 @@
#define BASH_SLASH "HHH"
/datum/martial_art/revenant
name = "Revenant"
help_verb = /datum/martial_art/revenant/proc/revenant_help
no_guns = TRUE
no_guns_message = "Revenants cannot use guns."
/datum/martial_art/revenant/proc/check_streak(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
if(findtext(streak, BASH_SLASH))
streak = ""
bash_slash(A, D)
return TRUE
return FALSE
/datum/martial_art/revenant/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
add_to_streak("H", D)
if(check_streak(A, D))
return TRUE
basic_hit(A, D)
return TRUE
/datum/martial_art/revenant/proc/bash_slash(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
A.do_attack_animation(D)
D.visible_message(SPAN_DANGER("[A] bashes [D] away!"), SPAN_DANGER("[A] bashes you away!"))
D.apply_damage(rand(5, 10), BRUTE, damage_flags = DAM_SHARP)
var/throw_range = rand(1, 2)
D.throw_at(get_step_away(D, A, throw_range), throw_range, THROWNOBJ_KNOCKBACK_SPEED / 3, A, FALSE)
playsound(get_turf(D), 'sound/weapons/slash.ogg', 25, 1, -1)
return TRUE
/datum/martial_art/revenant/proc/revenant_help()
set name = "Recall Revenant Combat"
set desc = "Remember the martial techniques of the bluespace masters."
set category = "Abilities"
to_chat(usr, "<b><i>You think of your former dimension...</i></b>")
to_chat(usr, "<span class='notice'>Bash Slash</span>: Harm Harm Harm. Deliver a strong slashing strike against the enemy, pushing them away.")
#undef BASH_SLASH
@@ -123,6 +123,8 @@
H.gender = NEUTER
H.universal_understand = TRUE
H.add_language(LANGUAGE_REVENANT_RIFTSPEAK)
var/datum/martial_art/revenant/R = new /datum/martial_art/revenant()
R.teach(H)
/datum/species/revenant/get_random_name()
return "Revenant"
@@ -133,7 +135,7 @@
return FALSE
/datum/species/revenant/bullet_act(var/obj/item/projectile/P, var/def_zone, var/mob/living/carbon/human/H)
if((istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) && prob(30))
if((istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) && prob(20))
H.visible_message(SPAN_CULT("The [P.name] gets absorbed by [H]!"), SPAN_CULT("You absorb the [P.name]!"))
return -1
return ..()
+7
View File
@@ -116,6 +116,13 @@
/mob/living/carbon/alien/diona/is_diona()
return DIONA_NYMPH
/proc/is_mob_special(A) // determines special mobs. has restrictions on certain things, like welderbombing
if(isrevenant(A))
return TRUE
if(iszombie(A))
return TRUE
return FALSE
/proc/isskeleton(A)
if(istype(A, /mob/living/carbon/human) && (A:get_species() == SPECIES_SKELETON))
return 1
@@ -65,6 +65,9 @@
return
if (O.iswrench())
if(use_check(user, USE_DISALLOW_SPECIALS))
to_chat(user, SPAN_WARNING("A strange force prevents you from doing this.")) //there is no way to justify this icly
return
if(can_tamper && user.a_intent == I_HURT)
user.visible_message("<span class='warning'>\The [user] wrenches \the [src]'s faucet [is_leaking ? "closed" : "open"].</span>","<span class='warning'>You wrench \the [src]'s faucet [is_leaking ? "closed" : "open"]</span>")
is_leaking = !is_leaking
@@ -0,0 +1,10 @@
author: Geeves
delete-after: True
changes:
- rscadd: "Revenants now get a martial art that allows them to bash people away on a three hit combo. This replaces their ability to use guns."
- rscdel: "Revenants are no longer able to operate welderbombs."
- tweak: "Revenants now absorb 20% of laser fire instead of 30%."
- tweak: "Moved Revenant spawnpoints into the station."
- tweak: "Tweaked the rift gameplay, should be easier for the station to stop the revenants now."
+4 -8
View File
@@ -36,13 +36,6 @@
},
/turf/simulated/floor/carpet/rubber,
/area/engineering/cooling)
"ep" = (
/obj/structure/lattice,
/obj/effect/landmark{
name = "Revenant"
},
/turf/template_noop,
/area/template_noop)
"eu" = (
/obj/structure/table/standard,
/obj/item/storage/briefcase/inflatable,
@@ -334,6 +327,9 @@
d2 = 2;
icon_state = "0-2"
},
/obj/effect/landmark{
name = "Revenant"
},
/turf/simulated/floor/plating{
roof_type = null
},
@@ -12774,7 +12770,7 @@ CN
CN
mc
CN
ep
Ar
CN
UG
sQ
+15 -20
View File
@@ -2019,6 +2019,9 @@
pixel_y = 8;
specialfunctions = 4
},
/obj/effect/landmark{
name = "Revenant"
},
/turf/simulated/floor/tiled/freezer,
/area/engineering/bathroom)
"aeP" = (
@@ -12066,6 +12069,9 @@
dir = 1;
pixel_y = -28
},
/obj/effect/landmark{
name = "Revenant"
},
/turf/simulated/floor/wood,
/area/medical/patient_wing_gym)
"avG" = (
@@ -22398,6 +22404,9 @@
/obj/effect/floor_decal/industrial/warning{
dir = 1
},
/obj/effect/landmark{
name = "Revenant"
},
/turf/simulated/floor/tiled/white,
/area/rnd/xenobiology/xenoflora_hazard)
"aVJ" = (
@@ -29479,17 +29488,6 @@
},
/turf/simulated/floor/carpet,
/area/engineering/break_room)
"iwX" = (
/obj/effect/floor_decal/industrial/warning/dust{
dir = 1
},
/obj/effect/landmark{
name = "Revenant"
},
/turf/simulated/floor/airless{
icon_state = "asteroidplating"
},
/area/mine/unexplored)
"iAw" = (
/obj/structure/table/rack,
/obj/item/shovel{
@@ -32381,12 +32379,6 @@
/obj/machinery/power/crystal_agitator,
/turf/simulated/floor,
/area/security/penal_colony)
"oJR" = (
/obj/effect/landmark{
name = "Revenant"
},
/turf/unsimulated/floor/asteroid/ash/rocky,
/area/mine/unexplored)
"oKh" = (
/obj/effect/floor_decal/corner_wide/mauve{
dir = 10
@@ -35438,6 +35430,9 @@
pixel_x = -28
},
/obj/machinery/light/small/emergency,
/obj/effect/landmark{
name = "Revenant"
},
/turf/simulated/floor/tiled/freezer,
/area/maintenance/medsublevel_port)
"vnr" = (
@@ -52092,7 +52087,7 @@ nDL
nDL
tkm
iOl
oJR
aba
aba
aba
ale
@@ -71122,7 +71117,7 @@ aIZ
aNT
vnf
awP
iwX
aqA
ebn
ayi
akG
@@ -80887,7 +80882,7 @@ eEq
baw
cFw
nzR
oJR
aba
aba
aba
aaa
+32 -11
View File
@@ -2242,9 +2242,6 @@
"ael" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/generic,
/obj/effect/landmark{
name = "RevenantRift"
},
/turf/simulated/floor/tiled/old,
/area/maintenance/vault)
"aem" = (
@@ -4736,6 +4733,9 @@
d2 = 8;
icon_state = "2-8"
},
/obj/effect/landmark{
name = "Revenant"
},
/turf/simulated/floor/plating,
/area/maintenance/atmos_control)
"ajd" = (
@@ -60156,6 +60156,13 @@
},
/turf/simulated/floor/tiled,
/area/hallway/primary/aft)
"dKN" = (
/obj/random/junk,
/obj/effect/landmark{
name = "Revenant"
},
/turf/simulated/floor/plating,
/area/maintenance/research_port)
"dKW" = (
/obj/item/stack/rods,
/turf/simulated/floor/airless,
@@ -62319,11 +62326,22 @@
/turf/simulated/floor/plating,
/area/maintenance/substation/supply)
"icb" = (
/obj/structure/cable{
d1 = 2;
d2 = 4;
icon_state = "2-4"
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 6
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 6
},
/obj/effect/landmark{
name = "Revenant"
},
/turf/unsimulated/floor/asteroid/ash/rocky,
/area/mine/unexplored)
/turf/simulated/floor/plating,
/area/maintenance/security_starboard)
"idi" = (
/obj/structure/cable{
d1 = 1;
@@ -64020,6 +64038,9 @@
dir = 4
},
/obj/random/loot,
/obj/effect/landmark{
name = "Revenant"
},
/turf/simulated/floor/plating,
/area/maintenance/medbay)
"mnI" = (
@@ -86076,7 +86097,7 @@ aab
aab
aab
aab
icb
aab
aab
aab
aab
@@ -87879,7 +87900,7 @@ beG
bbs
bcY
bbs
beC
dKN
bbs
bcY
bbs
@@ -88589,7 +88610,7 @@ aaa
aaa
aab
aab
icb
aab
aox
qba
aij
@@ -99111,7 +99132,7 @@ aab
aab
aad
aaA
aaI
icb
aaT
aaT
aaT
@@ -99365,7 +99386,7 @@ aab
aab
aab
aab
icb
aab
aad
aaB
aaJ
@@ -113849,7 +113870,7 @@ vAC
vAC
mmQ
blN
icb
aab
aab
aab
aab
+8 -8
View File
@@ -8089,12 +8089,6 @@
},
/turf/simulated/floor/plating,
/area/maintenance/interstitial_cargo)
"zN" = (
/obj/effect/landmark{
name = "Revenant"
},
/turf/unsimulated/floor/asteroid/ash/rocky,
/area/mine/unexplored)
"zQ" = (
/obj/structure/flora/pottedplant/random,
/obj/structure/extinguisher_cabinet{
@@ -10546,6 +10540,9 @@
dir = 9
},
/obj/machinery/firealarm/east,
/obj/effect/landmark{
name = "Revenant"
},
/turf/simulated/floor/tiled,
/area/maintenance/interstitial_main)
"LD" = (
@@ -12619,6 +12616,9 @@
/obj/machinery/alarm{
pixel_y = 28
},
/obj/effect/landmark{
name = "Revenant"
},
/turf/simulated/floor/plating,
/area/maintenance/security_interstitial)
"WR" = (
@@ -42791,7 +42791,7 @@ mo
mo
mo
mo
zN
ab
ab
ab
ab
@@ -50712,7 +50712,7 @@ if
im
wo
Zt
zN
ab
ab
ab
aa
+4 -1
View File
@@ -12223,6 +12223,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 10
},
/obj/effect/landmark{
name = "Revenant"
},
/turf/simulated/floor/plating,
/area/maintenance/cargo/surface)
"kZt" = (
@@ -53955,7 +53958,7 @@ fdu
fdu
fdu
kKF
nmN
kKF
kKF
kKF
kKF