mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 11:13:16 +00:00
Exploration Robot Rework (#7350)
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com> Co-authored-by: BlackMajor <henrydyer6@hotmail.com>
This commit is contained in:
@@ -2,6 +2,8 @@
|
|||||||
//Modular Exploration borg
|
//Modular Exploration borg
|
||||||
//This restructures how borg additions are done to make them sane/modular/maintainable
|
//This restructures how borg additions are done to make them sane/modular/maintainable
|
||||||
//Also makes it easier to make new borgs
|
//Also makes it easier to make new borgs
|
||||||
|
//CHOMPedit: Moving this all to a modular file
|
||||||
|
/*
|
||||||
/hook/startup/proc/Modular_Borg_init_Exploration()
|
/hook/startup/proc/Modular_Borg_init_Exploration()
|
||||||
robot_modules["Exploration"] = /obj/item/weapon/robot_module/robot/exploration //add to array
|
robot_modules["Exploration"] = /obj/item/weapon/robot_module/robot/exploration //add to array
|
||||||
robot_module_types += "Exploration" //Add to global list
|
robot_module_types += "Exploration" //Add to global list
|
||||||
@@ -56,3 +58,4 @@
|
|||||||
desc = "A flare-gun"
|
desc = "A flare-gun"
|
||||||
projectile_type = /obj/item/projectile/energy/flash/flare
|
projectile_type = /obj/item/projectile/energy/flash/flare
|
||||||
fire_sound = 'sound/weapons/tablehit1.ogg'
|
fire_sound = 'sound/weapons/tablehit1.ogg'
|
||||||
|
*/
|
||||||
@@ -5,3 +5,102 @@
|
|||||||
. += "<span class='notice'>[src] is wet. Just like it should be.</span>"
|
. += "<span class='notice'>[src] is wet. Just like it should be.</span>"
|
||||||
if(water.energy < 5)
|
if(water.energy < 5)
|
||||||
. += "<span class='notice'>[src] is dry.</span>"
|
. += "<span class='notice'>[src] is dry.</span>"
|
||||||
|
|
||||||
|
/obj/item/weapon/gun/energy/taser/mounted/cyborg/flare
|
||||||
|
name = "flare gun"
|
||||||
|
desc = "A flare-gun"
|
||||||
|
projectile_type = /obj/item/projectile/energy/flash/flare
|
||||||
|
fire_sound = 'sound/weapons/tablehit1.ogg'
|
||||||
|
|
||||||
|
/obj/item/shield_projector/line/exploborg
|
||||||
|
name = "expirmental shield projector"
|
||||||
|
description_info = "This creates a shield in a straight line perpendicular to the direction where the user was facing when it was activated. \
|
||||||
|
The shield allows projectiles to leave from inside but blocks projectiles from outside. Everything else can pass through the shield freely, \
|
||||||
|
including other people and thrown objects. The shield also cannot block certain effects which take place over an area, such as flashbangs or explosions."
|
||||||
|
shield_health = 35
|
||||||
|
max_shield_health = 35
|
||||||
|
shield_regen_amount = 10
|
||||||
|
line_length = 7 // How long the line is. Recommended to be an odd number.
|
||||||
|
offset_from_center = 2 // How far from the projector will the line's center be.
|
||||||
|
|
||||||
|
/obj/item/weapon/melee/combat_borgblade/explotailspear
|
||||||
|
name = "energy tail"
|
||||||
|
desc = "A glowing tail spear with a moderate range. It appears to be extremely sharp."
|
||||||
|
force = 25
|
||||||
|
armor_penetration = 25 //30 to try and make it not useless against armored mobs but not fully nullify it.
|
||||||
|
reach = 3
|
||||||
|
projectile_parry_chance = 15.
|
||||||
|
|
||||||
|
/obj/item/weapon/melee/dogborg/jaws/big/explojaws
|
||||||
|
name = "explo jaws"
|
||||||
|
desc = "Highly lethal jaws for close range combat."
|
||||||
|
force = 40
|
||||||
|
armor_penetration = 25 //To try and make it not useless against armored mobs but not fully nullify it
|
||||||
|
projectile_parry_chance = 15
|
||||||
|
|
||||||
|
/obj/item/weapon/gun/energy/medigun/mounted/smallmedigun
|
||||||
|
name = "borg directed restoration system"
|
||||||
|
desc = "An adapted version of the BL-3 'Phoenix, for expiremental useage in borgs."
|
||||||
|
projectile_type = /obj/item/projectile/beam/medical_cell/borg
|
||||||
|
accept_cell_type = /obj/item/weapon/cell/device
|
||||||
|
cell_type = /obj/item/weapon/cell/device/weapon
|
||||||
|
charge_cost = 600
|
||||||
|
fire_delay = 6
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/borg
|
||||||
|
range = 4
|
||||||
|
|
||||||
|
/obj/item/projectile/beam/medical_cell/borg/on_hit(var/mob/living/carbon/human/target)
|
||||||
|
if(istype(target, /mob/living/carbon/human))
|
||||||
|
if(target.stat != DEAD)
|
||||||
|
target.adjustBruteLoss(-3.75)
|
||||||
|
target.adjustFireLoss(-3.75)
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/item/device/self_repair_system
|
||||||
|
name = "plating repair system"
|
||||||
|
desc = "A nanite control system to repair damaged armour plating and wiring while not moving. Destroyed armour can't be restored."
|
||||||
|
icon = 'icons/obj/robot_component.dmi'
|
||||||
|
icon_state = "armor"
|
||||||
|
var/disabled_icon = "armor"
|
||||||
|
var/active_icon = "armor_broken"
|
||||||
|
var/target_component = "armour"
|
||||||
|
|
||||||
|
/obj/item/device/self_repair_system/New()
|
||||||
|
..()
|
||||||
|
flags |= NOBLUDGEON
|
||||||
|
|
||||||
|
/obj/item/device/self_repair_system/attack_self(mob/user)
|
||||||
|
var/mob/living/silicon/robot/R = user
|
||||||
|
var/datum/robot_component/C = R.components[target_component]
|
||||||
|
if(C && !istype(C.wrapped, /obj/item/broken_device))
|
||||||
|
if(C.brute_damage == 0 && C.electronics_damage == 0)
|
||||||
|
to_chat(R, "<span class='warning'>No brute or burn damage detected in [target_component].</span>")
|
||||||
|
return
|
||||||
|
to_chat(R, "<span class='notice'>Repair system initializated. Repairing plating and wiring.</span>")
|
||||||
|
icon_state = active_icon
|
||||||
|
update_icon()
|
||||||
|
src.self_repair(R, C, 25, 2.5)
|
||||||
|
icon_state = disabled_icon
|
||||||
|
update_icon()
|
||||||
|
else
|
||||||
|
to_chat(R, "<span class='warning'>Repair system initialization failed. Can't repair destroyed [target_component]'s plating or wiring.</span>")
|
||||||
|
|
||||||
|
/obj/item/device/self_repair_system/proc/self_repair(mob/living/silicon/robot/R, datum/robot_component/C, var/tick_delay, var/heal_per_tick)
|
||||||
|
if(!C || !R.cell)
|
||||||
|
return
|
||||||
|
if(R.cell.charge < 500) //We don't want to drain ourselves too far down during exploration
|
||||||
|
to_chat(R, "<span class='warning'>Not enough power to initialize the repair system.</span>")
|
||||||
|
return
|
||||||
|
if(C.brute_damage == 0 && C.electronics_damage == 0)
|
||||||
|
to_chat(R, "<span class='notice'>Repair of [target_component] completed.</span>")
|
||||||
|
return
|
||||||
|
if(do_after(R, tick_delay))
|
||||||
|
if(!C || !R.cell)
|
||||||
|
return
|
||||||
|
C.brute_damage -= min(C.brute_damage, heal_per_tick)
|
||||||
|
C.electronics_damage -= min(C.electronics_damage, heal_per_tick)
|
||||||
|
R.updatehealth()
|
||||||
|
R.cell.use(50)
|
||||||
|
src.self_repair(R, C, tick_delay, heal_per_tick)
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
/obj/item/device/dogborg/sleeper/exploration
|
||||||
|
name = "Store-Belly"
|
||||||
|
desc = "Equipment for a ExploreHound unit. A mounted portable-storage device that holds supplies/person."
|
||||||
|
icon_state = "sleeperlost"
|
||||||
|
injection_chems = null
|
||||||
|
compactor = TRUE
|
||||||
|
max_item_count = 4
|
||||||
|
medsensor = FALSE
|
||||||
|
recycles = TRUE
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
/hook/startup/proc/Modular_Borg_init_Exploration()
|
||||||
|
robot_modules["Exploration"] = /obj/item/weapon/robot_module/robot/exploration //add to array
|
||||||
|
robot_module_types += "Exploration" //Add to global list
|
||||||
|
return 1
|
||||||
|
|
||||||
|
//Explo doggos
|
||||||
|
/obj/item/weapon/robot_module/robot/exploration
|
||||||
|
name = "exploration robot module"
|
||||||
|
channels = list("Explorer" = 1)
|
||||||
|
languages = list(
|
||||||
|
LANGUAGE_SOL_COMMON = 1,
|
||||||
|
LANGUAGE_UNATHI = 1,
|
||||||
|
LANGUAGE_SIIK = 1,
|
||||||
|
LANGUAGE_AKHANI = 1,
|
||||||
|
LANGUAGE_SKRELLIAN = 1,
|
||||||
|
LANGUAGE_SKRELLIANFAR = 0,
|
||||||
|
LANGUAGE_ROOTLOCAL = 0,
|
||||||
|
LANGUAGE_TRADEBAND = 1,
|
||||||
|
LANGUAGE_GUTTER = 0,
|
||||||
|
LANGUAGE_SCHECHI = 1,
|
||||||
|
LANGUAGE_EAL = 1,
|
||||||
|
LANGUAGE_TERMINUS = 1,
|
||||||
|
LANGUAGE_SIGN = 0
|
||||||
|
)
|
||||||
|
|
||||||
|
/obj/item/weapon/robot_module/robot/exploration
|
||||||
|
can_be_pushed = 0
|
||||||
|
|
||||||
|
/obj/item/weapon/robot_module/robot/exploration/New(var/mob/living/silicon/robot/R)
|
||||||
|
src.modules += new /obj/item/device/dogborg/sleeper/exploration(src)
|
||||||
|
src.modules += new /obj/item/device/cataloguer(src)
|
||||||
|
src.modules += new /obj/item/weapon/gun/energy/taser/mounted/cyborg/flare(src)
|
||||||
|
src.modules += new /obj/item/weapon/dogborg/pounce(src)
|
||||||
|
src.modules += new /obj/item/weapon/melee/combat_borgblade/explotailspear(src)
|
||||||
|
src.modules += new /obj/item/weapon/gun/energy/medigun/mounted/smallmedigun(src)
|
||||||
|
src.modules += new /obj/item/shield_projector/line/exploborg(src)
|
||||||
|
src.modules += new /obj/item/roller_holder(src)
|
||||||
|
src.modules += new /obj/item/device/self_repair_system(src)
|
||||||
|
|
||||||
|
src.emag += new /obj/item/weapon/melee/dogborg/jaws/big/explojaws(src)
|
||||||
|
|
||||||
|
..()
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
/datum/robot_sprite/dogborg/explorer
|
/datum/robot_sprite/dogborg/explorer
|
||||||
module_type = "Exploration"
|
module_type = "Exploration"
|
||||||
sprite_icon = 'modular_chomp/icons/mob/widerobot_exp_ch.dmi'
|
sprite_icon = 'modular_chomp/icons/mob/widerobot_exp_ch.dmi'
|
||||||
|
sprite_hud_icon_state = "platform"
|
||||||
|
|
||||||
/datum/robot_sprite/dogborg/explorer/vale2
|
/datum/robot_sprite/dogborg/explorer/vale2
|
||||||
name = "Explorationhound V2"
|
name = "Explorationhound V2"
|
||||||
|
|||||||
@@ -1,3 +1,8 @@
|
|||||||
|
/obj/item/weapon/gun/energy/medigun/mounted
|
||||||
|
name = "mounted directed restoration system"
|
||||||
|
self_recharge = 1
|
||||||
|
use_external_power = 1
|
||||||
|
|
||||||
/obj/item/weapon/gun/energy/taser/disabler/slow
|
/obj/item/weapon/gun/energy/taser/disabler/slow
|
||||||
name = "plasma snare device"
|
name = "plasma snare device"
|
||||||
desc = "A modified disabler adjusted to impulse a target with a restrictive slowdown."
|
desc = "A modified disabler adjusted to impulse a target with a restrictive slowdown."
|
||||||
|
|||||||
@@ -3215,7 +3215,6 @@
|
|||||||
#include "code\modules\mob\living\silicon\robot\robot_modules\syndicate.dm"
|
#include "code\modules\mob\living\silicon\robot\robot_modules\syndicate.dm"
|
||||||
#include "code\modules\mob\living\silicon\robot\robot_modules\Widerobot_Clown_ch.dm"
|
#include "code\modules\mob\living\silicon\robot\robot_modules\Widerobot_Clown_ch.dm"
|
||||||
#include "code\modules\mob\living\silicon\robot\robot_modules\Widerobot_Command_ch.dm"
|
#include "code\modules\mob\living\silicon\robot\robot_modules\Widerobot_Command_ch.dm"
|
||||||
#include "code\modules\mob\living\silicon\robot\robot_modules\Widerobot_Exploration_ch.dm"
|
|
||||||
#include "code\modules\mob\living\silicon\robot\sprites\_sprite_datum.dm"
|
#include "code\modules\mob\living\silicon\robot\sprites\_sprite_datum.dm"
|
||||||
#include "code\modules\mob\living\silicon\robot\sprites\civilian.dm"
|
#include "code\modules\mob\living\silicon\robot\sprites\civilian.dm"
|
||||||
#include "code\modules\mob\living\silicon\robot\sprites\combat.dm"
|
#include "code\modules\mob\living\silicon\robot\sprites\combat.dm"
|
||||||
@@ -4758,7 +4757,9 @@
|
|||||||
#include "modular_chomp\code\modules\mob\living\silicon\robot\robot.dm"
|
#include "modular_chomp\code\modules\mob\living\silicon\robot\robot.dm"
|
||||||
#include "modular_chomp\code\modules\mob\living\silicon\robot\robot_movement.dm"
|
#include "modular_chomp\code\modules\mob\living\silicon\robot\robot_movement.dm"
|
||||||
#include "modular_chomp\code\modules\mob\living\silicon\robot\dogborg\dog_modules.dm"
|
#include "modular_chomp\code\modules\mob\living\silicon\robot\dogborg\dog_modules.dm"
|
||||||
|
#include "modular_chomp\code\modules\mob\living\silicon\robot\dogborg\dog_sleeper.dm"
|
||||||
#include "modular_chomp\code\modules\mob\living\silicon\robot\drone\drone_items.dm"
|
#include "modular_chomp\code\modules\mob\living\silicon\robot\drone\drone_items.dm"
|
||||||
|
#include "modular_chomp\code\modules\mob\living\silicon\robot\modules\exploration.dm"
|
||||||
#include "modular_chomp\code\modules\mob\living\silicon\robot\sprites\civilian.dm"
|
#include "modular_chomp\code\modules\mob\living\silicon\robot\sprites\civilian.dm"
|
||||||
#include "modular_chomp\code\modules\mob\living\silicon\robot\sprites\clown.dm"
|
#include "modular_chomp\code\modules\mob\living\silicon\robot\sprites\clown.dm"
|
||||||
#include "modular_chomp\code\modules\mob\living\silicon\robot\sprites\combat.dm"
|
#include "modular_chomp\code\modules\mob\living\silicon\robot\sprites\combat.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user