Cleans up Modular_citadel

Yes I know it'll have merge conflicts later.
This commit is contained in:
Poojawa
2018-09-21 03:52:13 -05:00
parent 1cc0d14ec5
commit 4efdf4b0b3
12 changed files with 9 additions and 15 deletions
@@ -0,0 +1,62 @@
//we vlambeer now
/obj/proc/shake_camera(mob/M, duration, strength=1)//byond's wonky with this shit
if(!M || !M.client || duration <= 0)
return
var/client/C = M.client
if (C.prefs.screenshake==0)
return
var/oldx = C.pixel_x
var/oldy = C.pixel_y
var/clientscreenshake = (C.prefs.screenshake * 0.01)
var/max = (strength*clientscreenshake) * world.icon_size
var/min = -((strength*clientscreenshake) * world.icon_size)
for(var/i in 0 to duration-1)
if (i == 0)
animate(C, pixel_x=rand(min,max), pixel_y=rand(min,max), time=1)
else
animate(pixel_x=rand(min,max), pixel_y=rand(min,max), time=1)
animate(pixel_x=oldx, pixel_y=oldy, time=1)
/obj/item/gun/energy
recoil = 0.1
/obj/item/gun/energy/kinetic_accelerator
recoil = 0.5
/obj/item/gun/ballistic
recoil = 0.25
/obj/item/gun/ballistic/shotgun
recoil = 1
/obj/item/gun/ballistic/revolver
recoil = 0.5
/obj/item/gun/ballistic/revolver/doublebarrel
recoil = 1
/obj/item/gun/syringe
recoil = 0.1
/obj/item/pneumatic_cannon/fire_items(turf/target, mob/user)
. = ..()
shake_camera(user, (pressureSetting * 0.75 + 1), (pressureSetting * 0.75))
/obj/item/attack(mob/living/M, mob/living/user)
. = ..()
if(force >= 15)
shake_camera(user, ((force - 10) * 0.01 + 1), ((force - 10) * 0.01))
if(M.client)
switch (M.client.prefs.damagescreenshake)
if (1)
shake_camera(M, ((force - 10) * 0.015 + 1), ((force - 10) * 0.015))
if (2)
if (!M.canmove)
shake_camera(M, ((force - 10) * 0.015 + 1), ((force - 10) * 0.015))
/obj/item/attack_obj(obj/O, mob/living/user)
. = ..()
if(force >= 20)
shake_camera(user, ((force - 15) * 0.01 + 1), ((force - 15) * 0.01))
@@ -0,0 +1,57 @@
/obj/item/melee/classic_baton
var/last_hit = 0
var/stun_stam_cost_coeff = 1.25
var/hardstun_ds = 1
var/softstun_ds = 0
var/stam_dmg = 30
cooldown = 20
total_mass = 3.75
/obj/item/melee/classic_baton/attack(mob/living/target, mob/living/user)
if(!on)
return ..()
if(user.getStaminaLoss() >= STAMINA_SOFTCRIT)//CIT CHANGE - makes batons unusuable in stamina softcrit
to_chat(user, "<span class='warning'>You're too exhausted for that.</span>")//CIT CHANGE - ditto
return //CIT CHANGE - ditto
add_fingerprint(user)
if((user.has_trait(TRAIT_CLUMSY)) && prob(50))
to_chat(user, "<span class ='danger'>You club yourself over the head.</span>")
user.Knockdown(60 * force)
if(ishuman(user))
var/mob/living/carbon/human/H = user
H.apply_damage(2*force, BRUTE, BODY_ZONE_HEAD)
else
user.take_bodypart_damage(2*force)
return
if(iscyborg(target))
..()
return
if(!isliving(target))
return
if (user.a_intent == INTENT_HARM)
if(!..())
return
if(!iscyborg(target))
return
else
if(last_hit + cooldown < world.time)
if(ishuman(target))
var/mob/living/carbon/human/H = target
if (H.check_shields(src, 0, "[user]'s [name]", MELEE_ATTACK))
return
if(check_martial_counter(H, user))
return
playsound(get_turf(src), 'sound/effects/woodhit.ogg', 75, 1, -1)
target.Knockdown(softstun_ds, TRUE, FALSE, hardstun_ds, stam_dmg)
add_logs(user, target, "stunned", src)
src.add_fingerprint(user)
target.visible_message("<span class ='danger'>[user] has knocked down [target] with [src]!</span>", \
"<span class ='userdanger'>[user] has knocked down [target] with [src]!</span>")
if(!iscarbon(user))
target.LAssailant = null
else
target.LAssailant = user
last_hit = world.time
user.adjustStaminaLossBuffered(getweight())//CIT CHANGE - makes swinging batons cost stamina
@@ -0,0 +1,127 @@
//Yes, hi. This is the file that handles Citadel's turf modifications.
//But before we touch turfs, we'll take some time to define a couple of things for footstep sounds.
/mob/living
var/makesfootstepsounds
var/footstepcount
/mob/living/carbon/human
makesfootstepsounds = TRUE
/atom
var/footstepsoundoverride
//All of these sounds are from CEV Eris as of 11/25/2017, the time when the original PR adding footstep sounds was made.
GLOBAL_LIST_INIT(turf_footstep_sounds, list(
"floor" = list('modular_citadel/sound/footstep/floor1.ogg','modular_citadel/sound/footstep/floor2.ogg','modular_citadel/sound/footstep/floor3.ogg','modular_citadel/sound/footstep/floor4.ogg','modular_citadel/sound/footstep/floor5.ogg'),
"plating" = list('modular_citadel/sound/footstep/plating1.ogg','modular_citadel/sound/footstep/plating2.ogg','modular_citadel/sound/footstep/plating3.ogg','modular_citadel/sound/footstep/plating4.ogg','modular_citadel/sound/footstep/plating5.ogg'),
"wood" = list('modular_citadel/sound/footstep/wood1.ogg','modular_citadel/sound/footstep/wood2.ogg','modular_citadel/sound/footstep/wood3.ogg','modular_citadel/sound/footstep/wood4.ogg','modular_citadel/sound/footstep/wood5.ogg'),
"carpet" = list('modular_citadel/sound/footstep/carpet1.ogg','modular_citadel/sound/footstep/carpet2.ogg','modular_citadel/sound/footstep/carpet3.ogg','modular_citadel/sound/footstep/carpet4.ogg','modular_citadel/sound/footstep/carpet5.ogg'),
"hull" = list('modular_citadel/sound/footstep/hull1.ogg','modular_citadel/sound/footstep/hull2.ogg','modular_citadel/sound/footstep/hull3.ogg','modular_citadel/sound/footstep/hull4.ogg','modular_citadel/sound/footstep/hull5.ogg'),
"catwalk" = list('modular_citadel/sound/footstep/catwalk1.ogg','modular_citadel/sound/footstep/catwalk2.ogg','modular_citadel/sound/footstep/catwalk3.ogg','modular_citadel/sound/footstep/catwalk4.ogg','modular_citadel/sound/footstep/catwalk5.ogg'),
"asteroid" = list('modular_citadel/sound/footstep/asteroid1.ogg','modular_citadel/sound/footstep/asteroid2.ogg','modular_citadel/sound/footstep/asteroid3.ogg','modular_citadel/sound/footstep/asteroid4.ogg','modular_citadel/sound/footstep/asteroid5.ogg')
))
/turf/open
var/footstepsounds
/turf/open/floor
footstepsounds = "floor"
/turf/open/floor/plating
footstepsounds = "plating"
/turf/open/floor/wood
footstepsounds = "wood"
/turf/open/floor/plating/asteroid
footstepsounds = "asteroid"
/turf/open/floor/plating/dirt
footstepsounds = "asteroid"
/turf/open/floor/grass
footstepsounds = "asteroid"
/turf/open/floor/carpet
footstepsounds = "carpet"
/turf/open/floor/plasteel/grimy
footstepsounds = "carpet"
/obj/machinery/atmospherics/components/unary/vent_pump
footstepsoundoverride = "catwalk"
/obj/machinery/atmospherics/components/unary/vent_scrubber
footstepsoundoverride = "catwalk"
/obj/structure/disposalpipe
footstepsoundoverride = "catwalk"
/obj/machinery/holopad
footstepsoundoverride = "catwalk"
/obj/structure/table
footstepsoundoverride = "hull"
/obj/structure/table/wood
footstepsoundoverride = "wood"
/*
/turf/open/floor/Entered(atom/obj, atom/oldloc)
. = ..()
CitDirtify(obj, oldloc)*/
//Baystation-styled tile dirtification.
/turf/open/floor/proc/CitDirtify(atom/obj, atom/oldloc)
if(prob(50))
if(has_gravity(src) && !isobserver(obj))
var/dirtamount
var/obj/effect/decal/cleanable/dirt/dirt = locate(/obj/effect/decal/cleanable/dirt, src)
if(!dirt)
dirt = new/obj/effect/decal/cleanable/dirt(src)
dirt.alpha = 0
dirtamount = 0
dirtamount = dirt.alpha + 1
if(oldloc && istype(oldloc, /turf/open/floor))
var/obj/effect/decal/cleanable/dirt/spreadindirt = locate(/obj/effect/decal/cleanable/dirt, oldloc)
if(spreadindirt && spreadindirt.alpha)
dirtamount += round(spreadindirt.alpha * 0.05)
dirt.alpha = min(dirtamount,255)
return TRUE
//The proc that handles footsteps! It's pure, unfiltered spaghetti code.
/mob/living/proc/CitFootstep(turf/open/floor)
if(floor && istype(floor,/turf/open) && floor.footstepsounds)
if(has_gravity(floor) || prob(25))
footstepcount++
if(canmove && !lying && !buckled && makesfootstepsounds && m_intent == MOVE_INTENT_RUN && footstepcount >= 3)
footstepcount = 0
var/overriddenfootstepsound
if(footstepsoundoverride)
if(isfile(footstepsoundoverride))
overriddenfootstepsound = list(footstepsoundoverride)
else
overriddenfootstepsound = footstepsoundoverride
if(!overriddenfootstepsound && istype(src, /mob/living/carbon/human))
var/mob/living/carbon/human/H = src
if(H && H.shoes)
var/obj/item/clothing/shoes/S = H.shoes
if(S && S.footstepsoundoverride)
if(isfile(S.footstepsoundoverride))
overriddenfootstepsound = list(S.footstepsoundoverride)
else
overriddenfootstepsound = S.footstepsoundoverride
if(!overriddenfootstepsound && floor.contents)
var/objschecked
for(var/atom/childobj in floor.contents)
if(childobj.footstepsoundoverride && childobj.invisibility < INVISIBILITY_MAXIMUM)
if(isfile(childobj.footstepsoundoverride))
overriddenfootstepsound = list(childobj.footstepsoundoverride)
else
overriddenfootstepsound = childobj.footstepsoundoverride
break
objschecked++
if(objschecked >= 25)
break //walking on 50k foam darts didn't crash the server during my testing, but its better to be safe than sorry
playsound(src,(overriddenfootstepsound ? (islist(overriddenfootstepsound) ? pick(overriddenfootstepsound) : pick(GLOB.turf_footstep_sounds[overriddenfootstepsound])) : (islist(floor.footstepsounds) ? pick(floor.footstepsounds) : pick(GLOB.turf_footstep_sounds[floor.footstepsounds]))),50, 1)