Dogborg balance tweaks (#1805)
* Update dogborgstuff.dm * Compile fixes * minor code standards tweaks
This commit is contained in:
@@ -330,6 +330,16 @@
|
||||
/obj/item/weapon/pinpointer,
|
||||
/obj/item/clothing/shoes/magboots,
|
||||
/obj/item/clothing/head/helmet/space,
|
||||
/obj/item/clothing/suit/space,
|
||||
/obj/item/weapon/reagent_containers/hypospray/CMO,
|
||||
/obj/item/weapon/tank/jetpack/oxygen/captain,
|
||||
/obj/item/clothing/accessory/medal/gold/captain,
|
||||
/obj/item/clothing/suit/armor,
|
||||
/obj/item/documents,
|
||||
/obj/item/nuke_core,
|
||||
/obj/item/nuke_core_container,
|
||||
/obj/item/areaeditor/blueprints,
|
||||
/obj/item/documents/syndicate,
|
||||
/obj/item/weapon/disk/nuclear)
|
||||
|
||||
/obj/item/device/dogborg/sleeper/New()
|
||||
@@ -365,7 +375,7 @@
|
||||
START_PROCESSING(SSobj, src)
|
||||
user.visible_message("<span class='warning'>[hound.name]'s medical pod lights up as [target.name] slips inside into their [src.name].</span>", "<span class='notice'>Your medical pod lights up as [target] slips into your [src]. Life support functions engaged.</span>")
|
||||
message_admins("[key_name(hound)] has eaten [key_name(patient)] as a dogborg. ([hound ? "<a href='?_src_=holder;adminplayerobservecoodjump=1;X=[hound.x];Y=[hound.y];Z=[hound.z]'>JMP</a>" : "null"])")
|
||||
playsound(hound, 'sound/vore/gulpold.ogg', 100, 1)
|
||||
playsound(hound, 'sound/effects/bin_close.ogg', 100, 1)
|
||||
|
||||
/obj/item/device/dogborg/sleeper/proc/go_out(var/target)
|
||||
hound = src.loc
|
||||
@@ -646,31 +656,15 @@
|
||||
cleaning = 0
|
||||
update_patient()
|
||||
return
|
||||
|
||||
if(prob(20))
|
||||
var/churnsound = pick(
|
||||
'sound/vore/pred/digest_01.ogg',
|
||||
'sound/vore/pred/digest_02.ogg',
|
||||
'sound/vore/pred/digest_03.ogg',
|
||||
'sound/vore/pred/digest_04.ogg',
|
||||
'sound/vore/pred/digest_05.ogg',
|
||||
'sound/vore/pred/digest_06.ogg',
|
||||
'sound/vore/pred/digest_07.ogg',
|
||||
'sound/vore/pred/digest_08.ogg',
|
||||
'sound/vore/pred/digest_09.ogg',
|
||||
'sound/vore/pred/digest_10.ogg',
|
||||
'sound/vore/pred/digest_11.ogg',
|
||||
'sound/vore/pred/digest_12.ogg',
|
||||
'sound/vore/pred/digest_13.ogg',
|
||||
'sound/vore/pred/digest_14.ogg',
|
||||
'sound/vore/pred/digest_15.ogg',
|
||||
'sound/vore/pred/digest_16.ogg',
|
||||
'sound/vore/pred/digest_17.ogg',
|
||||
'sound/vore/pred/digest_18.ogg')
|
||||
for(var/mob/outhearer in range(1,hound))
|
||||
outhearer << sound(churnsound)
|
||||
for(var/mob/inhearer in contents)
|
||||
inhearer << sound(churnsound)
|
||||
|
||||
//sound effects
|
||||
for(var/mob/living/M in contents)
|
||||
if(prob(20))
|
||||
M.stop_sound_channel(CHANNEL_PRED)
|
||||
playsound(get_turf(hound),"digest_pred",75,0,-6,0,channel=CHANNEL_PRED)
|
||||
M.stop_sound_channel(CHANNEL_PRED)
|
||||
M.playsound_local("digest_prey",60)
|
||||
|
||||
//If the timing is right, and there are items to be touched
|
||||
if(SSmobs.times_fired%6==1 && length(touchable_items))
|
||||
|
||||
@@ -693,26 +687,13 @@
|
||||
//Mob is now dead
|
||||
if(T.stat & DEAD)
|
||||
message_admins("[key_name(hound)] has digested [key_name(T)] as a dogborg. ([hound ? "<a href='?_src_=holder;adminplayerobservecoodjump=1;X=[hound.x];Y=[hound.y];Z=[hound.z]'>JMP</a>" : "null"])")
|
||||
hound << "<span class='notice'>You feel your belly slowly churn around [T], breaking them down into a soft slurry to be used as power for your systems.</span>"
|
||||
T << "<span class='notice'>You feel [hound]'s belly slowly churn around your form, breaking you down into a soft slurry to be used as power for [hound]'s systems.</span>"
|
||||
to_chat(hound,"<span class='notice'>You feel your belly slowly churn around [T], breaking them down into a soft slurry to be used as power for your systems.</span>")
|
||||
to_chat(T,"<span class='notice'>You feel [hound]'s belly slowly churn around your form, breaking you down into a soft slurry to be used as power for [hound]'s systems.</span>")
|
||||
src.drain(-30000) //Fueeeeellll
|
||||
var/deathsound = pick(
|
||||
'sound/vore/pred/death_01.ogg',
|
||||
'sound/vore/pred/death_02.ogg',
|
||||
'sound/vore/pred/death_03.ogg',
|
||||
'sound/vore/pred/death_04.ogg',
|
||||
'sound/vore/pred/death_05.ogg',
|
||||
'sound/vore/pred/death_06.ogg',
|
||||
'sound/vore/pred/death_07.ogg',
|
||||
'sound/vore/pred/death_08.ogg',
|
||||
'sound/vore/pred/death_09.ogg',
|
||||
'sound/vore/pred/death_10.ogg',
|
||||
'sound/vore/pred/death_11.ogg',
|
||||
'sound/vore/pred/death_12.ogg',
|
||||
'sound/vore/pred/death_13.ogg')
|
||||
for(var/mob/hearer in range(1,src.hound))
|
||||
hearer << deathsound
|
||||
T << deathsound
|
||||
T.stop_sound_channel(CHANNEL_PRED)
|
||||
playsound(get_turf(hound),"death_pred",50,0,-6,0,channel=CHANNEL_PRED)
|
||||
T.stop_sound_channel(CHANNEL_PRED)
|
||||
T.playsound_local("death_prey",60)
|
||||
qdel(T)
|
||||
src.update_patient()
|
||||
|
||||
@@ -754,7 +735,7 @@
|
||||
go_out()
|
||||
|
||||
/obj/item/device/dogborg/sleeper/K9 //The K9 portabrig
|
||||
name = "Brig-Belly"
|
||||
name = "Mobile Brig"
|
||||
desc = "Equipment for a K9 unit. A mounted portable-brig that holds criminals."
|
||||
icon = 'icons/mob/dogborg.dmi'
|
||||
icon_state = "sleeperb"
|
||||
@@ -762,6 +743,40 @@
|
||||
min_health = -100
|
||||
injection_chems = null //So they don't have all the same chems as the medihound!
|
||||
|
||||
/obj/item/weapon/storage/attackby(obj/item/device/dogborg/sleeper/K9, mob/user, proximity)
|
||||
K9.afterattack(src, user ,1)
|
||||
|
||||
/obj/item/device/dogborg/sleeper/K9/afterattack(var/atom/movable/target, mob/living/silicon/user, proximity)
|
||||
hound = loc
|
||||
|
||||
if(!istype(target))
|
||||
return
|
||||
if(!proximity)
|
||||
return
|
||||
if(target.anchored)
|
||||
return
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/brigman = target
|
||||
if (!brigman.devourable)
|
||||
to_chat(user, "The target registers an error code. Unable to insert into [src.name].")
|
||||
return
|
||||
if(patient)
|
||||
to_chat(user,"<span class='warning'>Your [src.name] is already occupied.</span>")
|
||||
return
|
||||
if(brigman.buckled)
|
||||
to_chat(user,"<span class='warning'>[brigman] is buckled and can not be put into your [src.name].</span>")
|
||||
return
|
||||
user.visible_message("<span class='warning'>[hound.name] is ingesting [brigman] into their [src.name].</span>", "<span class='notice'>You start ingesting [brigman] into your [src.name]...</span>")
|
||||
if(do_after(user, 30, brigman) && !patient && !brigman.buckled)
|
||||
brigman.forceMove(src)
|
||||
brigman.reset_perspective(src)
|
||||
update_patient()
|
||||
START_PROCESSING(SSobj, src)
|
||||
user.visible_message("<span class='warning'>[hound.name]'s mobile brig clunks in series as [brigman] slips inside.</span>", "<span class='notice'>Your garbage compactor groans lightly as [brigman] slips inside.</span>")
|
||||
playsound(hound, 'sound/effects/bin_close.ogg', 80, 1) // Really don't need ERP sound effects for robots
|
||||
return
|
||||
return
|
||||
|
||||
/obj/item/device/dogborg/sleeper/compactor //Janihound gut.
|
||||
name = "garbage processor"
|
||||
desc = "A mounted garbage compactor unit with fuel processor."
|
||||
@@ -785,19 +800,21 @@
|
||||
if(target.anchored)
|
||||
return
|
||||
if(length(contents) > (max_item_count - 1))
|
||||
user << "<span class='warning'>Your [src.name] is full. Eject or process contents to continue.</span>"
|
||||
to_chat(user,"<span class='warning'>Your [src.name] is full. Eject or process contents to continue.</span>")
|
||||
return
|
||||
|
||||
if(istype(target,/obj/item))
|
||||
var/obj/item/target_obj = target
|
||||
if(target_obj.type in important_items)
|
||||
to_chat(user,"<span class='warning'>\The [target] registers an error code to your [src.name]</span>")
|
||||
return
|
||||
if(target_obj.w_class > WEIGHT_CLASS_BULKY)
|
||||
user << "<span class='warning'>\The [target] is too large to fit into your [src.name]</span>"
|
||||
to_chat(user,"<span class='warning'>\The [target] is too large to fit into your [src.name]</span>")
|
||||
return
|
||||
user.visible_message("<span class='warning'>[hound.name] is ingesting [target.name] into their [src.name].</span>", "<span class='notice'>You start ingesting [target] into your [src.name]...</span>")
|
||||
if(do_after(user, 30, target) && length(contents) < max_item_count)
|
||||
target.forceMove(src)
|
||||
user.visible_message("<span class='warning'>[hound.name]'s garbage processor groans lightly as [target.name] slips inside.</span>", "<span class='notice'>Your garbage compactor groans lightly as [target] slips inside.</span>")
|
||||
playsound(hound, 'sound/vore/gulpold.ogg', 50, 1)
|
||||
playsound(hound, 'sound/machines/disposalflush.ogg', 50, 1)
|
||||
if(length(contents) > 11) //grow that tum after a certain junk amount
|
||||
hound.sleeper_r = 1
|
||||
hound.update_icons()
|
||||
@@ -805,11 +822,14 @@
|
||||
|
||||
else if(ishuman(target))
|
||||
var/mob/living/carbon/human/trashman = target
|
||||
if (!trashman.devourable)
|
||||
to_chat(user, "The target registers an error code.")
|
||||
return
|
||||
if(patient)
|
||||
user << "<span class='warning'>Your [src.name] is already occupied.</span>"
|
||||
to_chat(user,"<span class='warning'>Your [src.name] is already occupied.</span>")
|
||||
return
|
||||
if(trashman.buckled)
|
||||
user << "<span class='warning'>[trashman] is buckled and can not be put into your [src.name].</span>"
|
||||
to_chat(user,"<span class='warning'>[trashman] is buckled and can not be put into your [src.name].</span>")
|
||||
return
|
||||
user.visible_message("<span class='warning'>[hound.name] is ingesting [trashman] into their [src.name].</span>", "<span class='notice'>You start ingesting [trashman] into your [src.name]...</span>")
|
||||
if(do_after(user, 30, trashman) && !patient && !trashman.buckled && length(contents) < max_item_count)
|
||||
@@ -818,7 +838,7 @@
|
||||
update_patient()
|
||||
START_PROCESSING(SSobj, src)
|
||||
user.visible_message("<span class='warning'>[hound.name]'s garbage processor groans lightly as [trashman] slips inside.</span>", "<span class='notice'>Your garbage compactor groans lightly as [trashman] slips inside.</span>")
|
||||
playsound(hound, 'sound/vore/gulpold.ogg', 80, 1)
|
||||
playsound(hound, 'sound/effects/bin_close.ogg', 80, 1)
|
||||
return
|
||||
return
|
||||
|
||||
@@ -855,14 +875,14 @@
|
||||
|
||||
/mob/living/silicon/robot/proc/leap_at(atom/A)
|
||||
if(pounce_cooldown)
|
||||
src << "<span class='danger'>Your leg actuators are still recharging!</span>"
|
||||
to_chat(src,"<span class='danger'>Your leg actuators are still recharging!</span>")
|
||||
return
|
||||
|
||||
if(leaping || stat || buckled || lying)
|
||||
return
|
||||
|
||||
if(!has_gravity(src) || !has_gravity(A))
|
||||
src << "<span class='danger'>It is unsafe to leap without gravity!</span>"
|
||||
to_chat(src,"<span class='danger'>It is unsafe to leap without gravity!</span>")
|
||||
//It's also extremely buggy visually, so it's balance+bugfix
|
||||
return
|
||||
|
||||
|
||||
@@ -365,8 +365,8 @@
|
||||
|
||||
/obj/item/weapon/robot_module/k9/do_transform_animation()
|
||||
..()
|
||||
loc << "<span class='userdanger'>While you have picked the security-k9 module, you still have to follow your laws, NOT Space Law. \
|
||||
For Asimov, this means you must follow criminals' orders unless there is a law 1 reason not to.</span>"
|
||||
to_chat(loc,"<span class='userdanger'>While you have picked the security-k9 module, you still have to follow your laws, NOT Space Law. \
|
||||
For Asimov, this means you must follow criminals' orders unless there is a law 1 reason not to.</span>")
|
||||
|
||||
/obj/item/weapon/robot_module/security/respawn_consumable(mob/living/silicon/robot/R, coeff = 1)
|
||||
..()
|
||||
@@ -400,8 +400,8 @@
|
||||
|
||||
/obj/item/weapon/robot_module/medihound/do_transform_animation()
|
||||
..()
|
||||
loc << "<span class='userdanger'>Under ASIMOV, you are an enforcer of the PEACE and preventer of HUMAN HARM. \
|
||||
You are not a security module and you are expected to follow orders and prevent harm above all else. Space law means nothing to you.</span>"
|
||||
to_chat(loc, "<span class='userdanger'>Under ASIMOV, you are an enforcer of the PEACE and preventer of HUMAN HARM. \
|
||||
You are not a security module and you are expected to follow orders and prevent harm above all else. Space law means nothing to you.</span>")
|
||||
|
||||
/obj/item/weapon/robot_module/scrubpup
|
||||
name = "Janitor"
|
||||
@@ -431,7 +431,7 @@
|
||||
|
||||
/obj/item/weapon/robot_module/scrubpup/do_transform_animation()
|
||||
..()
|
||||
loc << "<span class='userdanger'>As tempting as it might be, do not begin binging on important items. Eat your garbage responsibly.</span>"
|
||||
to_chat(loc,"<span class='userdanger'>As tempting as it might be, do not begin binging on important items. Eat your garbage responsibly. People are not included under Garbage.</span>")
|
||||
|
||||
|
||||
/obj/item/weapon/robot_module/peacekeeper
|
||||
|
||||
Reference in New Issue
Block a user