Small combat balancing: Small crawling nerf, Esword buff (#5937)

* adds a delay and message to crawling underneath people

* makes eswords take less stamloss to swing around, lays down groundwork for later parts of combat reworks

* FUCK
This commit is contained in:
deathride58
2018-03-16 10:27:30 +00:00
committed by kevinz000
parent c2e95fc233
commit 8923bb9488
9 changed files with 53 additions and 2 deletions
+3
View File
@@ -115,3 +115,6 @@
#define STAMINA_CRIT 140 //crit for stamina damage. forces a rest, and stops movement until stamina goes back to stamina softcrit
#define STAMINA_SOFTCRIT_TRADITIONAL 0 //same as STAMINA_SOFTCRIT except for the more traditional health calculations
#define STAMINA_CRIT_TRADITIONAL -40 //ditto, but for STAMINA_CRIT
#define MIN_MELEE_STAMCOST 1.25 //Minimum cost for swinging items around. Will be extra useful when stats and skills are introduced.
#define CRAWLUNDER_DELAY 30 //Delay for crawling under a standing mob
+21
View File
@@ -139,6 +139,27 @@
to_chat(src, "<span class='warning'>[L] is restraining [P], you cannot push past.</span>")
return 1
//CIT CHANGES START HERE - makes it so resting stops you from moving through standing folks without a short delay
if(resting && !L.resting)
if(attemptingcrawl)
return TRUE
if(staminaloss >= STAMINA_SOFTCRIT)
to_chat(src, "<span class='warning'>You're too exhausted to crawl under [L].</span>")
return TRUE
attemptingcrawl = TRUE
var/origtargetloc = L.loc
visible_message("<span class='notice'>[src] is attempting to crawl under [L].</span>", "<span class='notice'>You are now attempting to crawl under [L].</span>")
if(do_after(src, CRAWLUNDER_DELAY, target = src))
if(resting)
var/src_passmob = (pass_flags & PASSMOB)
pass_flags |= PASSMOB
Move(origtargetloc)
if(!src_passmob)
pass_flags &= ~PASSMOB
attemptingcrawl = FALSE
return TRUE
//END OF CIT CHANGES
if(moving_diagonally)//no mob swap during diagonal moves.
return 1
+1 -1
View File
@@ -20,6 +20,6 @@
/obj/item/proc/getweight()
if(total_mass)
return total_mass
return max(total_mass,MIN_MELEE_STAMCOST)
else
return w_class*1.25
+1 -1
View File
@@ -1,2 +1,2 @@
/obj/item
var/total_mass
var/total_mass //Total mass in arbitrary pound-like values. If there's no balance reasons for an item to have otherwise, this var should be the item's weight in pounds.
@@ -0,0 +1,3 @@
/obj/item/melee/transforming/energy/sword
total_mass = 0.375 //Survival flashlights typically weigh around 5 ounces.
total_mass_on = 3.4 //The typical medieval sword, on the other hand, weighs roughly 3 pounds.
@@ -0,0 +1,11 @@
/obj/item/melee/transforming
var/total_mass_on //Total mass in ounces when transformed. Primarily for balance purposes. Don't think about it too hard.
/obj/item/melee/transforming/getweight()
if(total_mass && total_mass_on)
if(active)
return max(total_mass_on,MIN_MELEE_STAMCOST)
else
return max(total_mass,MIN_MELEE_STAMCOST)
else
return initial(w_class)*1.25
@@ -1,6 +1,16 @@
/mob/living/carbon
var/combatmode = FALSE //literally lifeweb
/mob/living/carbon/CanPass(atom/movable/mover, turf/target)
. = ..()
if(.)
var/mob/living/mobdude = mover
if(istype(mobdude))
if(!resting && mobdude.resting)
if(!(mobdude.pass_flags & PASSMOB))
return FALSE
return .
/mob/living/carbon/proc/toggle_combat_mode()
if(recoveringstam)
return TRUE
@@ -6,6 +6,7 @@
var/aimingdownsights = FALSE
var/attemptingstandup = FALSE
var/intentionalresting = FALSE
var/attemptingcrawl = FALSE
/mob/living/movement_delay(ignorewalk = 0)
. = ..()
+2
View File
@@ -2632,7 +2632,9 @@
#include "modular_citadel\code\game\objects\items\devices\radio\encryptionkey.dm"
#include "modular_citadel\code\game\objects\items\devices\radio\headset.dm"
#include "modular_citadel\code\game\objects\items\devices\radio\shockcollar.dm"
#include "modular_citadel\code\game\objects\items\melee\energy.dm"
#include "modular_citadel\code\game\objects\items\melee\eutactic_blades.dm"
#include "modular_citadel\code\game\objects\items\melee\transforming.dm"
#include "modular_citadel\code\game\objects\structures\beds_chairs\chair.dm"
#include "modular_citadel\code\game\objects\structures\beds_chairs\sofa.dm"
#include "modular_citadel\code\game\objects\structures\crates_lockers\closets\fitness.dm"