mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
[MIRROR] Borg Icon Optimization and Weapon Modulation (#9655)
Co-authored-by: Cameron Lennox <killer65311@gmail.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
c5fb5d13ae
commit
0192924910
61
code/__defines/borg_overlays.dm
Normal file
61
code/__defines/borg_overlays.dm
Normal file
@@ -0,0 +1,61 @@
|
||||
/// This file contains everything that involves the borg overlay system that is applied to borgs in robot/sprites_sprite_datum.dm
|
||||
|
||||
/// These are applied ON /datum/robot_sprite to tell it what overlays it can or can not have.
|
||||
|
||||
/// If you make a borg that has a laser, taser, and shield, here's an Example:
|
||||
/// sprite_flags = ROBOT_HAS_LASER_SPRITE | ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_SHIELD_SPRITE
|
||||
|
||||
/// NOTES: You are NOT EXPECTED TO HAVE A GUN SPRITE IF YOU HAVE A DEDICATED LASER/TASER/DISABLER SPRITE. Doing so will cause BAD THINGS to happen!!!
|
||||
/// IMPORTANT: Flags operate on a 1 2 4 8 10 20 40 80 100 200 400 800 1000 2000 4000 8000 etc system. Not 1 2 4 8 16 32 64 like I thought at first (oops)
|
||||
#define ROBOT_HAS_SPEED_SPRITE 0x1 //Ex: /obj/item/borg/combat/mobility Replaces old has_speed_sprite
|
||||
#define ROBOT_HAS_SHIELD_SPRITE 0x2 //Ex: /obj/item/borg/combat/shield Replaces old has_shield_sprite
|
||||
#define ROBOT_HAS_SHIELD_SPEED_SPRITE 0x4 //Ex: Has a sprite for when both is activated AND has /obj/item/borg/combat/mobility
|
||||
#define ROBOT_HAS_LASER_SPRITE 0x8 //Ex: /obj/item/gun/energy/robotic/laser Replaces old has_laser_sprite
|
||||
#define ROBOT_HAS_TASER_SPRITE 0x10 //Ex: /obj/item/gun/energy/robotic/taser Replaces old has_taser_sprite
|
||||
#define ROBOT_HAS_GUN_SPRITE 0x20 //Ex: Has a general gun sprite. Replaces old has_gun_sprite
|
||||
#define ROBOT_HAS_DISABLER_SPRITE 0x40 //Ex: /obj/item/gun/energy/taser/mounted/cyborg/ertgun HOWEVER it is not used on this codebase (Virgo) but may be used downstream.
|
||||
|
||||
#define ROBOT_HAS_MELEE_SPRITE 0x80 //Ex: Generic borg melee
|
||||
#define ROBOT_HAS_DAGGER_SPRITE 0x100 //Ex: Specialized dagger.
|
||||
#define ROBOT_HAS_BLADE_SPRITE 0x200 //Ex: Specialized blade
|
||||
/// For sanity's sake for you spriters out there that don't want to dig through the code, attach the below as a suffix for your sprites:
|
||||
/// Speed: -roll
|
||||
/// Shield: -shield
|
||||
/// Both: -speed_shield
|
||||
|
||||
/// Laser: -laser
|
||||
/// Taser: -taser
|
||||
/// Gun: -gun
|
||||
/// Disabler: -disabler
|
||||
|
||||
/// Melee: -melee
|
||||
/// Blade: -blade
|
||||
/// Dagger: -dagger
|
||||
|
||||
/// GUN DEFINES
|
||||
/// These are applied on GUNS to classify them as a GUN, TASER, OR LASER.
|
||||
/// So every borg weapon is a child of '/obj/item/gun/energy/robotic' and given the 'laser' 'taser' 'gun' etc flag. ALL guns have 'gun' by default.
|
||||
#define COUNTS_AS_ROBOT_GUN 0x1
|
||||
#define COUNTS_AS_ROBOT_TASER 0x2
|
||||
#define COUNTS_AS_ROBOT_LASER 0x4
|
||||
#define COUNTS_AS_ROBOT_DISABLER 0x8
|
||||
|
||||
/// MELEE WEAPON DEFINES
|
||||
/// These are applied on MELEE WEAPONS to classify them as MELEE WEAPONS that give sprites.
|
||||
/// Use 'melee' if your borg ONLY has a generic melee sprite. If they have more unique sprites, use the other ones!
|
||||
/// Currently, only the borg blade is used. But you could expand this define list!
|
||||
#define COUNTS_AS_ROBOTIC_MELEE 0x1
|
||||
#define COUNTS_AS_ROBOT_DAGGER 0x2
|
||||
#define COUNTS_AS_ROBOT_BLADE 0x4
|
||||
|
||||
/// ADDITIONAL NOTES:
|
||||
/// If you want to have a special type of item that will be used on borgs that is NOT a gun OR is not included above that causes an overlay, have no fear!
|
||||
/// Currently, the SHIELD, SPEED, and both are included. If you want your borg to have a cool special overlay, use 'handle_extra_icon_updates'!
|
||||
/// Here's an example:
|
||||
|
||||
/*
|
||||
/datum/robot_sprite/combat/fluff/foopwotch/handle_extra_icon_updates(var/mob/living/silicon/robot/ourborg) //Make sure the path is correct!
|
||||
..() //THIS IS ESSENTIAL. IF YOU FORGET THIS LINE, YOU WILL NOT GET THE NORMAL SPRITES.
|
||||
if(ourborg.has_active_type(/obj/item/weapon/combat_borgblade))
|
||||
ourborg.add_overlay("[sprite_icon_state]-dagger")
|
||||
*/
|
||||
@@ -365,7 +365,7 @@
|
||||
generic_error(R, type)
|
||||
return 0
|
||||
|
||||
var/obj/T = R.has_upgrade_module(/obj/item/gun/energy/taser/mounted/cyborg)
|
||||
var/obj/T = R.has_upgrade_module(/obj/item/gun/energy/robotic/taser)
|
||||
if(!T)
|
||||
to_chat(usr, span_warning("This robot has had its taser removed!"))
|
||||
return 0
|
||||
@@ -375,7 +375,7 @@
|
||||
to_chat(usr, "There's no room for another cooling unit!")
|
||||
return 0
|
||||
|
||||
var/obj/item/gun/energy/taser/mounted/cyborg/B = T
|
||||
var/obj/item/gun/energy/robotic/taser/B = T
|
||||
B.recharge_time = max(2 , B.recharge_time - 4)
|
||||
return 1
|
||||
|
||||
|
||||
@@ -1,110 +1,3 @@
|
||||
/obj/item/melee/dogborg/jaws
|
||||
icon = 'icons/mob/dogborg_vr.dmi'
|
||||
hitsound = 'sound/weapons/bite.ogg'
|
||||
throwforce = 0
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
pry = 1
|
||||
tool_qualities = list(TOOL_CROWBAR)
|
||||
|
||||
/obj/item/melee/dogborg/jaws/big
|
||||
name = "combat jaws"
|
||||
icon_state = "jaws"
|
||||
desc = "The jaws of the law."
|
||||
force = 25
|
||||
armor_penetration = 25
|
||||
defend_chance = 15
|
||||
attack_verb = list("chomped", "bit", "ripped", "mauled", "enforced")
|
||||
|
||||
/obj/item/melee/dogborg/jaws/small
|
||||
name = "puppy jaws"
|
||||
icon_state = "smalljaws"
|
||||
desc = "The jaws of a small dog."
|
||||
force = 10
|
||||
defend_chance = 5
|
||||
attack_verb = list("nibbled", "bit", "gnawed", "chomped", "nommed")
|
||||
var/emagged = 0
|
||||
|
||||
/obj/item/melee/dogborg/jaws/small/attack_self(mob/user)
|
||||
var/mob/living/silicon/robot/R = user
|
||||
if(R.emagged || R.emag_items)
|
||||
emagged = !emagged
|
||||
if(emagged)
|
||||
name = "combat jaws"
|
||||
icon_state = "jaws"
|
||||
desc = "The jaws of the law."
|
||||
force = 25
|
||||
armor_penetration = 25
|
||||
defend_chance = 15
|
||||
attack_verb = list("chomped", "bit", "ripped", "mauled", "enforced")
|
||||
else
|
||||
name = "puppy jaws"
|
||||
icon_state = "smalljaws"
|
||||
desc = "The jaws of a small dog."
|
||||
force = 10
|
||||
armor_penetration = 0
|
||||
defend_chance = 5
|
||||
attack_verb = list("nibbled", "bit", "gnawed", "chomped", "nommed")
|
||||
update_icon()
|
||||
|
||||
// Baton chompers
|
||||
/obj/item/melee/borg_combat_shocker
|
||||
name = "combat shocker"
|
||||
icon = 'icons/mob/dogborg_vr.dmi'
|
||||
icon_state = "combatshocker"
|
||||
desc = "Shocking!"
|
||||
force = 15
|
||||
throwforce = 0
|
||||
hitsound = 'sound/weapons/genhit1.ogg'
|
||||
attack_verb = list("hit")
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
var/charge_cost = 15
|
||||
var/dogborg = FALSE
|
||||
|
||||
/obj/item/melee/borg_combat_shocker/apply_hit_effect(mob/living/target, mob/living/user, var/hit_zone)
|
||||
if(isrobot(target))
|
||||
return ..()
|
||||
|
||||
var/agony = 60 // Copied from stun batons
|
||||
var/stun = 0 // ... same
|
||||
|
||||
var/obj/item/organ/external/affecting = null
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/H = target
|
||||
affecting = H.get_organ(hit_zone)
|
||||
|
||||
if(user.a_intent == I_HURT)
|
||||
// Parent handles messages
|
||||
. = ..()
|
||||
//whacking someone causes a much poorer electrical contact than deliberately prodding them.
|
||||
agony *= 0.5
|
||||
stun *= 0.5
|
||||
else
|
||||
if(affecting)
|
||||
if(dogborg)
|
||||
target.visible_message(span_danger("[target] has been zap-chomped in the [affecting.name] with [src] by [user]!"))
|
||||
else
|
||||
target.visible_message(span_danger("[target] has been zapped in the [affecting.name] with [src] by [user]!"))
|
||||
else
|
||||
if(dogborg)
|
||||
target.visible_message(span_danger("[target] has been zap-chomped with [src] by [user]!"))
|
||||
else
|
||||
target.visible_message(span_danger("[target] has been zapped with [src] by [user]!"))
|
||||
playsound(src, 'sound/weapons/Egloves.ogg', 50, 1, -1)
|
||||
|
||||
// Try to use power
|
||||
var/stunning = FALSE
|
||||
if(isrobot(loc))
|
||||
var/mob/living/silicon/robot/R = loc
|
||||
if(R.cell?.use(charge_cost) == charge_cost)
|
||||
stunning = TRUE
|
||||
|
||||
if(stunning)
|
||||
target.stun_effect_act(stun, agony, hit_zone, src)
|
||||
msg_admin_attack("[key_name(user)] stunned [key_name(target)] with the [src].")
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/H = target
|
||||
H.forcesay(hit_appends)
|
||||
|
||||
//Boop //New and improved, now a simple reagent sniffer.
|
||||
/obj/item/boop_module
|
||||
name = "boop module"
|
||||
@@ -419,20 +312,6 @@
|
||||
recharge_time = 1 //Takes ten ticks to recharge a laser, so don't waste them all!
|
||||
//cell_type = null //Same cell as a taser until edits are made.
|
||||
|
||||
/obj/item/melee/combat_borgblade
|
||||
name = "energy blade"
|
||||
icon = 'icons/mob/dogborg_vr.dmi'
|
||||
icon_state = "swordtail"
|
||||
desc = "A glowing dagger. It appears to be extremely sharp."
|
||||
force = 35 //Takes 3 hits to 100-0
|
||||
armor_penetration = 70
|
||||
sharp = TRUE
|
||||
edge = TRUE
|
||||
throwforce = 0 //This shouldn't be thrown in the first place.
|
||||
hitsound = 'sound/weapons/blade1.ogg'
|
||||
attack_verb = list("slashed", "stabbed", "jabbed", "mauled", "sliced")
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
|
||||
/obj/item/lightreplacer/dogborg
|
||||
name = "light replacer"
|
||||
desc = "A device to automatically replace lights. This version is capable to produce a few replacements using your internal matter reserves."
|
||||
|
||||
@@ -135,13 +135,25 @@
|
||||
else
|
||||
return 0
|
||||
|
||||
/mob/living/silicon/robot/proc/get_active_modules()
|
||||
return list(module_state_1, module_state_2, module_state_3)
|
||||
|
||||
// This one takes an object's type instead of an instance, as above.
|
||||
/mob/living/silicon/robot/proc/has_active_type(var/type_to_compare, var/explicit = FALSE)
|
||||
var/list/active_modules = list(module_state_1, module_state_2, module_state_3)
|
||||
var/list/active_modules = get_active_modules()
|
||||
if(is_type_in_modules(type_to_compare, active_modules, explicit))
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/// Searches through a provided list to see if we have a module that is in that list.
|
||||
/mob/living/silicon/robot/proc/has_active_type_list(var/list/type_to_compare, var/explicit = FALSE)
|
||||
var/list/active_modules = get_active_modules()
|
||||
if(islist(type_to_compare))
|
||||
for(var/object_to_compare in type_to_compare)
|
||||
if(is_type_in_modules(object_to_compare, active_modules, explicit))
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/mob/living/silicon/robot/proc/is_type_in_modules(var/type, var/list/modules, var/explicit = FALSE)
|
||||
for(var/atom/module in modules)
|
||||
if(explicit && isatom(module))
|
||||
@@ -284,6 +296,7 @@
|
||||
contents += O
|
||||
if(istype(module_state_1,/obj/item/borg/sight))
|
||||
sight_mode |= module_state_1:sight_mode
|
||||
update_icon()
|
||||
else if(!module_state_2)
|
||||
module_state_2 = O
|
||||
O.hud_layerise()
|
||||
@@ -291,6 +304,7 @@
|
||||
contents += O
|
||||
if(istype(module_state_2,/obj/item/borg/sight))
|
||||
sight_mode |= module_state_2:sight_mode
|
||||
update_icon()
|
||||
else if(!module_state_3)
|
||||
module_state_3 = O
|
||||
O.hud_layerise()
|
||||
@@ -298,6 +312,7 @@
|
||||
contents += O
|
||||
if(istype(module_state_3,/obj/item/borg/sight))
|
||||
sight_mode |= module_state_3:sight_mode
|
||||
update_icon()
|
||||
else
|
||||
to_chat(src, span_notice("You need to disable a module first!"))
|
||||
return
|
||||
|
||||
@@ -340,7 +340,7 @@
|
||||
module_state_2:screen_loc = ui_inv2
|
||||
if(module_state_3)
|
||||
module_state_3:screen_loc = ui_inv3
|
||||
update_icon()
|
||||
//update_icon() //Removed and moved to robot/inventory.dm so it's not being called EVERY LIFE TICK
|
||||
|
||||
/mob/living/silicon/robot/proc/process_killswitch()
|
||||
if(killswitch)
|
||||
|
||||
@@ -1500,7 +1500,7 @@
|
||||
else
|
||||
return FALSE
|
||||
if(given_type == /obj/item/borg/upgrade/restricted/tasercooler)
|
||||
var/obj/item/gun/energy/taser/mounted/cyborg/T = has_upgrade_module(/obj/item/gun/energy/taser/mounted/cyborg)
|
||||
var/obj/item/gun/energy/robotic/taser/T = has_upgrade_module(/obj/item/gun/energy/robotic/taser)
|
||||
if(T && T.recharge_time <= 2)
|
||||
return T
|
||||
else if(!T)
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
can_be_pushed = 0
|
||||
/obj/item/robot_module/robot/exploration/New(var/mob/living/silicon/robot/R)
|
||||
src.modules += new /obj/item/dogborg/sleeper/exploration(src)
|
||||
src.modules += new /obj/item/gun/energy/locked/phasegun/unlocked/mounted/cyborg(src)
|
||||
src.modules += new /obj/item/gun/energy/robotic/phasegun(src)
|
||||
src.modules += new /obj/item/cataloguer(src)
|
||||
src.modules += new /obj/item/roller_holder(src)
|
||||
src.modules += new /obj/item/gun/energy/taser/mounted/cyborg/flare(src)
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
src.modules += new /obj/item/robotanalyzer(src)
|
||||
|
||||
// Potato
|
||||
src.emag += new /obj/item/gun/energy/retro/mounted(src)
|
||||
src.emag += new /obj/item/gun/energy/robotic/laser/retro(src)
|
||||
|
||||
var/datum/matter_synth/wire = new /datum/matter_synth/wire()
|
||||
synths += wire
|
||||
@@ -68,7 +68,7 @@
|
||||
src.modules += new /obj/item/gripper/gravekeeper(src)
|
||||
|
||||
// For really persistent looters
|
||||
src.emag += new /obj/item/gun/energy/retro/mounted(src)
|
||||
src.emag += new /obj/item/gun/energy/robotic/laser/retro(src)
|
||||
|
||||
var/datum/matter_synth/wood = new /datum/matter_synth/wood(50000) //CHOMPEdit - "Buffing this to 50k on account of broken code not letting us pick up more stacks. Wee."
|
||||
synths += wood
|
||||
|
||||
@@ -517,13 +517,13 @@ var/global/list/robot_modules = list(
|
||||
..()
|
||||
src.modules += new /obj/item/handcuffs/cyborg(src)
|
||||
src.modules += new /obj/item/melee/baton/robot(src)
|
||||
src.modules += new /obj/item/gun/energy/taser/mounted/cyborg(src)
|
||||
src.modules += new /obj/item/gun/energy/robotic/taser(src)
|
||||
src.modules += new /obj/item/taperoll/police(src)
|
||||
src.modules += new /obj/item/reagent_containers/spray/pepper(src)
|
||||
src.modules += new /obj/item/gripper/security(src)
|
||||
src.modules += new /obj/item/ticket_printer(src) //VOREStation Add
|
||||
src.modules += new /obj/item/gun/energy/locked/phasegun/unlocked/mounted/cyborg(src) // CHOMPedit: Phasegun for regular sec cyborg.
|
||||
src.emag += new /obj/item/gun/energy/laser/mounted(src)
|
||||
src.modules += new /obj/item/gun/energy/robotic/phasegun(src) // CHOMPedit: Phasegun for regular sec cyborg.
|
||||
src.emag += new /obj/item/gun/energy/robotic/laser/rifle(src)
|
||||
|
||||
src.modules += new /obj/item/dogborg/sleeper/K9(src) //Eat criminals. Bring them to the brig.
|
||||
src.modules += new /obj/item/dogborg/pounce(src) //Pounce
|
||||
@@ -722,7 +722,7 @@ var/global/list/robot_modules = list(
|
||||
src.modules += new /obj/item/gripper/miner(src)
|
||||
src.modules += new /obj/item/mining_scanner(src)
|
||||
src.modules += new /obj/item/card/id/cargo/miner/borg(src)
|
||||
src.modules += new /obj/item/gun/energy/locked/phasegun/unlocked/mounted/cyborg(src) //CHOMPedit: Phasegun for regular mining cyborg.
|
||||
src.modules += new /obj/item/gun/energy/robotic/phasegun(src) //CHOMPedit: Phasegun for regular mining cyborg.
|
||||
src.modules += new /obj/item/vac_attachment(src) //CHOMPAdd
|
||||
src.emag += new /obj/item/kinetic_crusher/machete/dagger(src)
|
||||
|
||||
@@ -757,7 +757,7 @@ var/global/list/robot_modules = list(
|
||||
src.modules += new /obj/item/storage/part_replacer(src)
|
||||
src.modules += new /obj/item/shockpaddles/robot/jumper(src)
|
||||
src.modules += new /obj/item/melee/baton/slime/robot(src)
|
||||
src.modules += new /obj/item/gun/energy/taser/xeno/robot(src)
|
||||
src.modules += new /obj/item/gun/energy/robotic/taser/xeno(src)
|
||||
src.modules += new /obj/item/xenoarch_multi_tool(src)
|
||||
src.modules += new /obj/item/pickaxe/excavationdrill(src)
|
||||
|
||||
@@ -801,15 +801,15 @@ var/global/list/robot_modules = list(
|
||||
..()
|
||||
src.modules += new /obj/item/handcuffs/cyborg(src)
|
||||
src.modules += new /obj/item/taperoll/police(src)
|
||||
src.modules += new /obj/item/gun/energy/laser/mounted(src)
|
||||
src.modules += new /obj/item/gun/energy/taser/mounted/cyborg/ertgun(src)
|
||||
src.modules += new /obj/item/gun/energy/robotic/laser/rifle(src)
|
||||
src.modules += new /obj/item/gun/energy/robotic/disabler(src)
|
||||
src.modules += new /obj/item/pickaxe/plasmacutter/borg(src)
|
||||
src.modules += new /obj/item/melee/combat_borgblade(src)
|
||||
src.modules += new /obj/item/melee/robotic/dagger(src)
|
||||
src.modules += new /obj/item/borg/combat/shield(src)
|
||||
src.modules += new /obj/item/borg/combat/mobility(src)
|
||||
src.modules += new /obj/item/melee/borg_combat_shocker(src)
|
||||
src.modules += new /obj/item/melee/robotic/borg_combat_shocker(src)
|
||||
src.modules += new /obj/item/ticket_printer(src)
|
||||
src.emag += new /obj/item/gun/energy/lasercannon/mounted(src)
|
||||
src.emag += new /obj/item/gun/energy/robotic/laser/heavy(src)
|
||||
|
||||
src.modules += new /obj/item/dogborg/sleeper/K9/ert(src)
|
||||
src.modules += new /obj/item/dogborg/pounce(src)
|
||||
@@ -930,5 +930,5 @@ var/global/list/robot_modules = list(
|
||||
src.modules += new /obj/item/pickaxe/borgdrill(src)
|
||||
src.modules += new /obj/item/storage/bag/ore(src)
|
||||
src.modules += new /obj/item/storage/bag/sheetsnatcher/borg(src)
|
||||
src.modules += new /obj/item/gun/energy/locked/phasegun/unlocked/mounted/cyborg(src) //Chompedit, makes the mining borg able to defend itself.
|
||||
src.modules += new /obj/item/gun/energy/robotic/phasegun(src) //Chompedit, makes the mining borg able to defend itself.
|
||||
src.emag += new /obj/item/pickaxe/diamonddrill(src)
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
src.modules += new /obj/item/flash/robot(src)
|
||||
src.modules += new /obj/item/handcuffs/cable/tape/cyborg(src)
|
||||
src.modules += new /obj/item/melee/baton/robot(src)
|
||||
src.modules += new /obj/item/gun/energy/taser/mounted/cyborg/swarm(src)
|
||||
src.modules += new /obj/item/gun/energy/robotic/taser/swarm(src)
|
||||
src.modules += new /obj/item/matter_decompiler/swarm(src)
|
||||
|
||||
/obj/item/robot_module/drone/swarm/ranged
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
/obj/item/robot_module/robot/syndicate/protector/create_equipment(var/mob/living/silicon/robot/robot)
|
||||
..()
|
||||
src.modules += new /obj/item/shield_projector/rectangle/weak(src)
|
||||
src.modules += new /obj/item/gun/energy/dakkalaser(src)
|
||||
src.modules += new /obj/item/gun/energy/robotic/laser/dakkalaser(src)
|
||||
src.modules += new /obj/item/handcuffs/cyborg(src)
|
||||
src.modules += new /obj/item/melee/baton/robot(src)
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
var/name
|
||||
var/module_type
|
||||
var/default_sprite = FALSE
|
||||
var/sprite_flags
|
||||
|
||||
var/sprite_icon
|
||||
var/sprite_icon_state
|
||||
@@ -27,7 +28,60 @@
|
||||
var/whitelist_ckey
|
||||
var/whitelist_charname
|
||||
|
||||
/// Determines if the borg has the proper flags to show an overlay.
|
||||
/datum/robot_sprite/proc/sprite_flag_check(var/flag_to_check)
|
||||
return (sprite_flags & flag_to_check)
|
||||
|
||||
/datum/robot_sprite/proc/handle_extra_icon_updates(var/mob/living/silicon/robot/ourborg)
|
||||
if(ourborg.resting) //Don't do ANY of the overlay code if we're resting. It just won't look right!
|
||||
return
|
||||
if(sprite_flag_check(ROBOT_HAS_SHIELD_SPEED_SPRITE))
|
||||
if(ourborg.has_active_type(/obj/item/borg/combat/shield) && ourborg.has_active_type(/obj/item/borg/combat/mobility))
|
||||
ourborg.add_overlay("[sprite_icon_state]-speed_shield")
|
||||
return //Stop here. No need to add more overlays. Nothing else is compatible.
|
||||
|
||||
if(sprite_flag_check(ROBOT_HAS_SPEED_SPRITE) && ourborg.has_active_type(/obj/item/borg/combat/mobility))
|
||||
ourborg.icon_state = "[sprite_icon_state]-roll"
|
||||
return //Stop here. No need to add more overlays. Nothing else is compatible.
|
||||
|
||||
if(sprite_flag_check(ROBOT_HAS_SHIELD_SPRITE))
|
||||
if(ourborg.has_active_type(/obj/item/borg/combat/shield))
|
||||
var/obj/item/borg/combat/shield/shield = locate() in ourborg
|
||||
if(shield && shield.active)
|
||||
ourborg.add_overlay("[sprite_icon_state]-shield")
|
||||
|
||||
for(var/thing_to_check in ourborg.get_active_modules()) //We look at our active modules. Let's peep!
|
||||
|
||||
//Melee Check
|
||||
if(istype(thing_to_check, /obj/item/melee/robotic))
|
||||
var/obj/item/melee/robotic/melee = thing_to_check
|
||||
if(sprite_flag_check(ROBOT_HAS_MELEE_SPRITE) && melee.weapon_flag_check(COUNTS_AS_ROBOTIC_MELEE))
|
||||
ourborg.add_overlay("[sprite_icon_state]-melee")
|
||||
continue
|
||||
if(sprite_flag_check(ROBOT_HAS_DAGGER_SPRITE) && melee.weapon_flag_check(COUNTS_AS_ROBOT_DAGGER))
|
||||
ourborg.add_overlay("[sprite_icon_state]-dagger")
|
||||
continue
|
||||
if(sprite_flag_check(ROBOT_HAS_BLADE_SPRITE) && melee.weapon_flag_check(COUNTS_AS_ROBOT_BLADE))
|
||||
ourborg.add_overlay("[sprite_icon_state]-blade")
|
||||
continue
|
||||
|
||||
//Gun Check
|
||||
if(istype(thing_to_check, /obj/item/gun/energy/robotic))
|
||||
var/obj/item/gun/energy/robotic/gun = thing_to_check
|
||||
if(sprite_flag_check(ROBOT_HAS_GUN_SPRITE) && gun.gun_flag_check(COUNTS_AS_ROBOT_GUN))
|
||||
ourborg.add_overlay("[sprite_icon_state]-gun")
|
||||
continue
|
||||
if(sprite_flag_check(ROBOT_HAS_LASER_SPRITE) && gun.gun_flag_check(COUNTS_AS_ROBOT_LASER))
|
||||
ourborg.add_overlay("[sprite_icon_state]-laser")
|
||||
continue
|
||||
if(sprite_flag_check(ROBOT_HAS_TASER_SPRITE) && gun.gun_flag_check(COUNTS_AS_ROBOT_TASER))
|
||||
ourborg.add_overlay("[sprite_icon_state]-taser")
|
||||
continue
|
||||
if(sprite_flag_check(ROBOT_HAS_DISABLER_SPRITE) && gun.gun_flag_check(COUNTS_AS_ROBOT_DISABLER))
|
||||
ourborg.add_overlay("[sprite_icon_state]-disabler")
|
||||
continue
|
||||
else //We are NEITHER a melee or a gun (Or whatever else you add in here in the future)
|
||||
continue //Go on to the next.
|
||||
return
|
||||
|
||||
/datum/robot_sprite/proc/get_belly_overlay(var/mob/living/silicon/robot/ourborg, var/size = 1, var/b_class) //CHOMPEdit, allows use of our multi belly system
|
||||
|
||||
@@ -4,18 +4,6 @@
|
||||
module_type = "Combat"
|
||||
sprite_icon = 'icons/mob/robot/combat.dmi'
|
||||
|
||||
var/has_speed_sprite = FALSE
|
||||
var/has_shield_sprite = FALSE
|
||||
|
||||
/datum/robot_sprite/combat/handle_extra_icon_updates(var/mob/living/silicon/robot/ourborg)
|
||||
if(has_speed_sprite && istype(ourborg.module_active, /obj/item/borg/combat/mobility))
|
||||
ourborg.icon_state = "[sprite_icon_state]-roll"
|
||||
if(has_shield_sprite)
|
||||
if(ourborg.has_active_type(/obj/item/borg/combat/shield))
|
||||
var/obj/item/borg/combat/shield/shield = locate() in ourborg
|
||||
if(shield && shield.active)
|
||||
ourborg.add_overlay("[sprite_icon_state]-shield")
|
||||
|
||||
/datum/robot_sprite/combat/default
|
||||
name = DEFAULT_ROBOT_SPRITE_NAME
|
||||
default_sprite = TRUE
|
||||
@@ -24,17 +12,15 @@
|
||||
/datum/robot_sprite/combat/marina
|
||||
name = "Haruka"
|
||||
sprite_icon_state = "marina"
|
||||
has_speed_sprite = TRUE
|
||||
has_shield_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_SPEED_SPRITE | ROBOT_HAS_SHIELD_SPRITE
|
||||
|
||||
/datum/robot_sprite/combat/droid
|
||||
name = "Android"
|
||||
sprite_icon_state = "droid"
|
||||
has_speed_sprite = TRUE
|
||||
has_shield_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_SPEED_SPRITE | ROBOT_HAS_SHIELD_SPRITE
|
||||
|
||||
/datum/robot_sprite/combat/droid/get_eyes_overlay(var/mob/living/silicon/robot/ourborg)
|
||||
if(istype(ourborg.module_active,/obj/item/borg/combat/mobility))
|
||||
if(ourborg.has_active_type(/obj/item/borg/combat/mobility))
|
||||
return
|
||||
else
|
||||
return ..()
|
||||
@@ -42,32 +28,30 @@
|
||||
/datum/robot_sprite/combat/insekt
|
||||
name = "Insekt"
|
||||
sprite_icon_state = "insekt"
|
||||
has_shield_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_SHIELD_SPRITE
|
||||
|
||||
/datum/robot_sprite/combat/decapod
|
||||
name = "Decapod"
|
||||
sprite_icon_state = "decapod"
|
||||
has_custom_open_sprites = TRUE
|
||||
has_shield_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_SHIELD_SPRITE
|
||||
|
||||
/datum/robot_sprite/combat/mechoid
|
||||
name = "Acheron"
|
||||
sprite_icon_state = "mechoid"
|
||||
has_speed_sprite = TRUE
|
||||
has_shield_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_SPEED_SPRITE | ROBOT_HAS_SHIELD_SPRITE
|
||||
|
||||
/datum/robot_sprite/combat/zoomba
|
||||
name = "ZOOM-BA"
|
||||
sprite_icon_state = "zoomba"
|
||||
has_dead_sprite = TRUE
|
||||
has_speed_sprite = TRUE
|
||||
has_shield_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_SPEED_SPRITE | ROBOT_HAS_SHIELD_SPRITE
|
||||
|
||||
/datum/robot_sprite/combat/worm
|
||||
name = "W02M"
|
||||
sprite_icon_state = "worm-combat" //CHOMPEdit
|
||||
has_custom_open_sprites = TRUE
|
||||
has_shield_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_SHIELD_SPRITE
|
||||
sprite_icon = 'modular_chomp/icons/mob/wormborg.dmi' //CHOMPEdit
|
||||
has_vore_belly_sprites = TRUE //CHOMPEdit
|
||||
has_dead_sprite = TRUE //CHOMPEdit
|
||||
@@ -91,33 +75,17 @@
|
||||
sprite_icon = 'icons/mob/robot/combat_large.dmi'
|
||||
has_custom_equipment_sprites = TRUE
|
||||
|
||||
var/has_gun_sprite = FALSE
|
||||
var/has_speed_sprite = FALSE
|
||||
var/has_shield_sprite = FALSE
|
||||
|
||||
/datum/robot_sprite/dogborg/tall/combat/handle_extra_icon_updates(var/mob/living/silicon/robot/ourborg)
|
||||
if(has_gun_sprite && (istype(ourborg.module_active, /obj/item/gun/energy/laser/mounted) || istype(ourborg.module_active, /obj/item/gun/energy/taser/mounted/cyborg/ertgun) || istype(ourborg.module_active, /obj/item/gun/energy/lasercannon/mounted)))
|
||||
ourborg.add_overlay("[sprite_icon_state]-gun")
|
||||
if(has_speed_sprite && (istype(ourborg.module_active, /obj/item/borg/combat/mobility)))
|
||||
ourborg.icon_state = "[sprite_icon_state]-roll"
|
||||
if(has_shield_sprite)
|
||||
if(ourborg.has_active_type(/obj/item/borg/combat/shield))
|
||||
var/obj/item/borg/combat/shield/shield = locate() in ourborg
|
||||
if(shield && shield.active)
|
||||
ourborg.add_overlay("[sprite_icon_state]-shield")
|
||||
|
||||
|
||||
/datum/robot_sprite/dogborg/tall/combat/do_equipment_glamour(var/obj/item/robot_module/module)
|
||||
if(!has_custom_equipment_sprites)
|
||||
return
|
||||
|
||||
..()
|
||||
|
||||
var/obj/item/melee/combat_borgblade/CBB = locate() in module.modules
|
||||
var/obj/item/melee/robotic/dagger/CBB = locate() in module.modules
|
||||
if(CBB)
|
||||
CBB.name = "sword tail"
|
||||
CBB.desc = "A glowing dagger normally attached to the end of a cyborg's tail. It appears to be extremely sharp."
|
||||
var/obj/item/melee/borg_combat_shocker/BCS = locate() in module.modules
|
||||
var/obj/item/melee/robotic/borg_combat_shocker/BCS = locate() in module.modules
|
||||
if(BCS)
|
||||
BCS.name = "combat jaws"
|
||||
BCS.desc = "Shockingly chompy!"
|
||||
@@ -130,7 +98,7 @@
|
||||
name = "ERT"
|
||||
sprite_icon_state = "derg"
|
||||
rest_sprite_options = list("Default")
|
||||
has_gun_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_GUN_SPRITE
|
||||
|
||||
/datum/robot_sprite/dogborg/tall/combat/hound
|
||||
name = "Hound"
|
||||
@@ -151,23 +119,21 @@
|
||||
sprite_icon_state = "raptor"
|
||||
sprite_hud_icon_state = "ert"
|
||||
rest_sprite_options = list("Default", "Bellyup")
|
||||
has_gun_sprite = TRUE
|
||||
has_eye_light_sprites = TRUE
|
||||
has_shield_sprite = TRUE
|
||||
has_speed_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_GUN_SPRITE | ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_SPEED_SPRITE
|
||||
|
||||
/datum/robot_sprite/dogborg/tall/combat/raptor/get_eyes_overlay(var/mob/living/silicon/robot/ourborg)
|
||||
if(istype(ourborg.module_active,/obj/item/borg/combat/mobility))
|
||||
if(ourborg.has_active_type(/obj/item/borg/combat/mobility))
|
||||
return
|
||||
else
|
||||
return ..()
|
||||
/datum/robot_sprite/dogborg/tall/combat/raptor/get_eye_light_overlay(var/mob/living/silicon/robot/ourborg)
|
||||
if(istype(ourborg.module_active,/obj/item/borg/combat/mobility))
|
||||
if(ourborg.has_active_type(/obj/item/borg/combat/mobility))
|
||||
return
|
||||
else
|
||||
return ..()
|
||||
/datum/robot_sprite/dogborg/tall/combat/raptor/get_belly_overlay(var/mob/living/silicon/robot/ourborg)
|
||||
if(istype(ourborg.module_active,/obj/item/borg/combat/mobility))
|
||||
if(ourborg.has_active_type(/obj/item/borg/combat/mobility))
|
||||
return
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -8,19 +8,10 @@
|
||||
module_type = "Lost"
|
||||
sprite_icon = 'icons/mob/robot/lost.dmi'
|
||||
|
||||
var/has_shield_sprite = FALSE
|
||||
|
||||
/datum/robot_sprite/lost/handle_extra_icon_updates(var/mob/living/silicon/robot/ourborg)
|
||||
if(has_shield_sprite)
|
||||
if(ourborg.has_active_type(/obj/item/borg/combat/shield))
|
||||
var/obj/item/borg/combat/shield/shield = locate() in ourborg
|
||||
if(shield && shield.active)
|
||||
ourborg.add_overlay("[sprite_icon_state]-shield")
|
||||
|
||||
/datum/robot_sprite/lost/drone
|
||||
name = "AG Model"
|
||||
sprite_icon_state = "drone"
|
||||
has_shield_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_SHIELD_SPRITE
|
||||
|
||||
// Wide/dogborg sprites
|
||||
|
||||
@@ -54,23 +45,10 @@
|
||||
sprite_icon = 'icons/mob/robot/lost_large.dmi'
|
||||
sprite_hud_icon_state = "lost"
|
||||
|
||||
var/has_shield_sprite = FALSE
|
||||
var/has_laser_sprite = FALSE
|
||||
|
||||
/datum/robot_sprite/dogborg/tall/lost/handle_extra_icon_updates(var/mob/living/silicon/robot/ourborg)
|
||||
if(has_laser_sprite && istype(ourborg.module_active, /obj/item/gun/energy/retro/mounted))
|
||||
ourborg.add_overlay("[sprite_icon_state]-laser")
|
||||
if(has_shield_sprite)
|
||||
if(ourborg.has_active_type(/obj/item/borg/combat/shield))
|
||||
var/obj/item/borg/combat/shield/shield = locate() in ourborg
|
||||
if(shield && shield.active)
|
||||
ourborg.add_overlay("[sprite_icon_state]-shield")
|
||||
|
||||
/datum/robot_sprite/dogborg/tall/lost/raptor
|
||||
name = "Raptor V-4"
|
||||
sprite_icon_state = "raptor"
|
||||
has_shield_sprite = TRUE
|
||||
has_laser_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_LASER_SPRITE
|
||||
|
||||
|
||||
// Gravekeeper
|
||||
@@ -82,24 +60,15 @@
|
||||
sprite_icon = 'icons/mob/robot/gravekeeper.dmi'
|
||||
sprite_hud_icon_state = "lost"
|
||||
|
||||
var/has_shield_sprite = FALSE
|
||||
|
||||
/datum/robot_sprite/gravekeeper/handle_extra_icon_updates(var/mob/living/silicon/robot/ourborg)
|
||||
if(has_shield_sprite)
|
||||
if(ourborg.has_active_type(/obj/item/borg/combat/shield))
|
||||
var/obj/item/borg/combat/shield/shield = locate() in ourborg
|
||||
if(shield && shield.active)
|
||||
ourborg.add_overlay("[sprite_icon_state]-shield")
|
||||
|
||||
/datum/robot_sprite/gravekeeper/drone
|
||||
name = "AG Model"
|
||||
sprite_icon_state = "drone"
|
||||
has_shield_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_SHIELD_SPRITE
|
||||
|
||||
/datum/robot_sprite/gravekeeper/sleek
|
||||
name = "WTOperator"
|
||||
sprite_icon_state = "sleek"
|
||||
has_shield_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_SHIELD_SPRITE
|
||||
|
||||
|
||||
// Tall sprites
|
||||
@@ -109,20 +78,7 @@
|
||||
sprite_icon = 'icons/mob/robot/gravekeeper_large.dmi'
|
||||
sprite_hud_icon_state = "lost"
|
||||
|
||||
var/has_shield_sprite = FALSE
|
||||
var/has_laser_sprite = FALSE
|
||||
|
||||
/datum/robot_sprite/dogborg/tall/gravekeeper/handle_extra_icon_updates(var/mob/living/silicon/robot/ourborg)
|
||||
if(has_laser_sprite && istype(ourborg.module_active, /obj/item/gun/energy/retro/mounted))
|
||||
ourborg.add_overlay("[sprite_icon_state]-laser")
|
||||
if(has_shield_sprite)
|
||||
if(ourborg.has_active_type(/obj/item/borg/combat/shield))
|
||||
var/obj/item/borg/combat/shield/shield = locate() in ourborg
|
||||
if(shield && shield.active)
|
||||
ourborg.add_overlay("[sprite_icon_state]-shield")
|
||||
|
||||
/datum/robot_sprite/dogborg/tall/gravekeeper/raptor
|
||||
name = "Raptor V-4"
|
||||
sprite_icon_state = "raptor"
|
||||
has_shield_sprite = TRUE
|
||||
has_laser_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_LASER_SPRITE
|
||||
|
||||
@@ -84,12 +84,6 @@
|
||||
whitelist_ckey = "jademanique"
|
||||
whitelist_charname = "B.A.U-Kingside"
|
||||
|
||||
/datum/robot_sprite/fluff/jademanique/handle_extra_icon_updates(var/mob/living/silicon/robot/ourborg)
|
||||
if(istype(ourborg.module_active, /obj/item/gun/energy/laser/mounted))
|
||||
ourborg.add_overlay("[sprite_icon_state]-laser")
|
||||
if(istype(ourborg.module_active, /obj/item/gun/energy/taser/mounted/cyborg))
|
||||
ourborg.add_overlay("[sprite_icon_state]-taser")
|
||||
|
||||
// L
|
||||
|
||||
/datum/robot_sprite/fluff/lunarfleet
|
||||
|
||||
@@ -150,11 +150,6 @@
|
||||
/datum/robot_sprite/dogborg/tall/science
|
||||
module_type = "Research"
|
||||
sprite_icon = 'icons/mob/robot/science_large.dmi'
|
||||
var/has_taser_sprite = FALSE
|
||||
|
||||
/datum/robot_sprite/dogborg/tall/science/handle_extra_icon_updates(var/mob/living/silicon/robot/ourborg)
|
||||
if(has_taser_sprite && istype(ourborg.module_active, /obj/item/gun/energy/taser/xeno/robot))
|
||||
ourborg.add_overlay("[sprite_icon_state]-taser")
|
||||
|
||||
/datum/robot_sprite/dogborg/tall/science/do_equipment_glamour(var/obj/item/robot_module/module)
|
||||
if(!has_custom_equipment_sprites)
|
||||
@@ -173,7 +168,7 @@
|
||||
name = "Raptor V-4"
|
||||
sprite_icon_state = "raptor"
|
||||
has_custom_equipment_sprites = TRUE
|
||||
has_taser_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_TASER_SPRITE
|
||||
rest_sprite_options = list("Default", "Bellyup")
|
||||
|
||||
/datum/robot_sprite/dogborg/tall/science/meka
|
||||
|
||||
@@ -124,38 +124,26 @@
|
||||
module_type = "Security"
|
||||
sprite_icon = 'icons/mob/robot/security_wide.dmi'
|
||||
|
||||
var/has_laser_sprite = FALSE
|
||||
var/has_taser_sprite = FALSE
|
||||
|
||||
/datum/robot_sprite/dogborg/security/handle_extra_icon_updates(var/mob/living/silicon/robot/ourborg)
|
||||
if(has_laser_sprite && istype(ourborg.module_active, /obj/item/gun/energy/laser/mounted))
|
||||
ourborg.add_overlay("[sprite_icon_state]-laser")
|
||||
if(has_taser_sprite && istype(ourborg.module_active, /obj/item/gun/energy/taser/mounted/cyborg))
|
||||
ourborg.add_overlay("[sprite_icon_state]-taser")
|
||||
|
||||
/datum/robot_sprite/dogborg/security/k9
|
||||
name = "K9"
|
||||
sprite_icon_state = "k9"
|
||||
sprite_hud_icon_state = "k9"
|
||||
has_eye_light_sprites = TRUE
|
||||
has_laser_sprite = TRUE
|
||||
has_taser_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE
|
||||
|
||||
/datum/robot_sprite/dogborg/security/k92
|
||||
name = "K9 Alt"
|
||||
sprite_icon_state = "k92"
|
||||
sprite_hud_icon_state = "k9"
|
||||
has_eye_sprites = FALSE
|
||||
has_laser_sprite = TRUE
|
||||
has_taser_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE
|
||||
|
||||
/datum/robot_sprite/dogborg/security/vale
|
||||
name = "Hound V2"
|
||||
sprite_icon_state = "vale"
|
||||
sprite_hud_icon_state = "k9"
|
||||
has_eye_light_sprites = TRUE
|
||||
has_laser_sprite = TRUE
|
||||
has_taser_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE
|
||||
|
||||
/datum/robot_sprite/dogborg/security/borgi
|
||||
name = "Borgi"
|
||||
@@ -170,14 +158,12 @@
|
||||
sprite_icon_state = "otie"
|
||||
sprite_hud_icon_state = "k9"
|
||||
has_eye_light_sprites = TRUE
|
||||
has_laser_sprite = TRUE
|
||||
has_taser_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE
|
||||
|
||||
/datum/robot_sprite/dogborg/security/drake
|
||||
name = "Drake"
|
||||
sprite_icon_state = "drake"
|
||||
has_laser_sprite = TRUE
|
||||
has_taser_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE
|
||||
|
||||
// Tall sprites
|
||||
|
||||
@@ -185,21 +171,11 @@
|
||||
module_type = "Security"
|
||||
sprite_icon = 'icons/mob/robot/security_large.dmi'
|
||||
|
||||
var/has_laser_sprite = FALSE
|
||||
var/has_taser_sprite = FALSE
|
||||
|
||||
/datum/robot_sprite/dogborg/tall/security/handle_extra_icon_updates(var/mob/living/silicon/robot/ourborg)
|
||||
if(has_laser_sprite && istype(ourborg.module_active, /obj/item/gun/energy/laser/mounted))
|
||||
ourborg.add_overlay("[sprite_icon_state]-laser")
|
||||
if(has_taser_sprite && istype(ourborg.module_active, /obj/item/gun/energy/taser/mounted/cyborg))
|
||||
ourborg.add_overlay("[sprite_icon_state]-taser")
|
||||
|
||||
/datum/robot_sprite/dogborg/tall/security/raptor
|
||||
name = "Raptor V-4"
|
||||
sprite_icon_state = "raptor"
|
||||
has_custom_equipment_sprites = TRUE
|
||||
has_laser_sprite = TRUE
|
||||
has_taser_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE
|
||||
rest_sprite_options = list("Default", "Bellyup")
|
||||
|
||||
/datum/robot_sprite/dogborg/tall/security/meka
|
||||
|
||||
@@ -114,17 +114,11 @@
|
||||
sprite_icon = 'icons/mob/robot/syndie_large.dmi'
|
||||
sprite_hud_icon_state = "malf"
|
||||
|
||||
var/has_gun_sprite = FALSE
|
||||
|
||||
/datum/robot_sprite/dogborg/tall/protector/handle_extra_icon_updates(var/mob/living/silicon/robot/ourborg)
|
||||
if(has_gun_sprite && istype (ourborg.module_active, /obj/item/gun/energy/dakkalaser))
|
||||
ourborg.add_overlay("[sprite_icon_state]-gun")
|
||||
|
||||
/datum/robot_sprite/dogborg/tall/protector/syndiprotraptor
|
||||
name = "Raptor V-4"
|
||||
sprite_icon_state = "syndiprotraptor"
|
||||
has_eye_light_sprites = TRUE
|
||||
has_gun_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_GUN_SPRITE
|
||||
rest_sprite_options = list("Default", "Bellyup")
|
||||
|
||||
// Mechanist
|
||||
|
||||
@@ -64,8 +64,7 @@
|
||||
modules += bandaid
|
||||
synths += medicine
|
||||
|
||||
var/obj/item/gun/energy/locked/phasegun/unlocked/mounted/cyborg/phasegun = new(src) //CHOMP Edit
|
||||
modules += phasegun
|
||||
modules += new /obj/item/gun/energy/robotic/phasegun(src) //CHOMP Edit
|
||||
|
||||
emag += new /obj/item/chainsaw(src)
|
||||
|
||||
|
||||
279
code/modules/projectiles/guns/energy/cyborg.dm
Normal file
279
code/modules/projectiles/guns/energy/cyborg.dm
Normal file
@@ -0,0 +1,279 @@
|
||||
/// This file PRIMARILY contains guns for borgs. The key word being PRIMARILY.
|
||||
/// Some things are included in here for relevence's sake (like the dogborg blade)
|
||||
|
||||
|
||||
/obj/item/gun/energy/robotic/proc/gun_flag_check(var/flag_to_check) //Checks for the flag of the gun.
|
||||
return (borg_flags & flag_to_check)
|
||||
|
||||
/obj/item/melee/robotic/proc/weapon_flag_check(var/flag_to_check) //Checks for the flag of the gun.
|
||||
return (borg_flags & flag_to_check)
|
||||
|
||||
/// The base gun types. Build off these four.
|
||||
/obj/item/gun/energy/robotic
|
||||
name = "Cybernetic Gun"
|
||||
desc = "A gun commonly used by cyborgs and other robotic lifeforms to stun"
|
||||
var/borg_flags = COUNTS_AS_ROBOT_GUN //We add flags to this!
|
||||
self_recharge = 1
|
||||
use_external_power = 1
|
||||
projectile_type = /obj/item/projectile/beam/lasertag //This is the base gun and should never be used.
|
||||
|
||||
/obj/item/gun/energy/robotic/laser
|
||||
borg_flags = COUNTS_AS_ROBOT_GUN | COUNTS_AS_ROBOT_LASER
|
||||
projectile_type = /obj/item/projectile/beam
|
||||
|
||||
/obj/item/gun/energy/robotic/taser
|
||||
name = "Cybernetic Taser"
|
||||
desc = "An integrated taser that is used to neutralize foes."
|
||||
borg_flags = COUNTS_AS_ROBOT_GUN | COUNTS_AS_ROBOT_TASER
|
||||
icon_state = "taser"
|
||||
item_state = null //so the human update icon uses the icon_state instead.
|
||||
projectile_type = /obj/item/projectile/beam/stun
|
||||
charge_cost = 400
|
||||
recharge_time = 7 //Time it takes for shots to recharge (in ticks)
|
||||
|
||||
/obj/item/gun/energy/robotic/disabler
|
||||
borg_flags = COUNTS_AS_ROBOT_GUN | COUNTS_AS_ROBOT_DISABLER
|
||||
name = "disabler"
|
||||
desc = "A small and nonlethal gun produced by NT.."
|
||||
icon = 'icons/mob/dogborg_vr.dmi'
|
||||
icon_state = "ertgunstun"
|
||||
fire_sound = 'sound/weapons/eLuger.ogg'
|
||||
projectile_type = /obj/item/projectile/beam/disable
|
||||
charge_cost = 240
|
||||
recharge_time = 10
|
||||
|
||||
|
||||
|
||||
/// Variant gun types
|
||||
|
||||
|
||||
/// Tasers
|
||||
/obj/item/gun/energy/robotic/taser/xeno
|
||||
name = "xeno taser gun"
|
||||
desc = "Straight out of NT's testing laboratories, this small gun is used to subdue non-humanoid xeno life forms. \
|
||||
While marketed towards handling slimes, it may be useful for other creatures."
|
||||
icon_state = "taserblue"
|
||||
fire_sound = 'sound/weapons/taser2.ogg'
|
||||
charge_cost = 120
|
||||
projectile_type = /obj/item/projectile/beam/stun/xeno
|
||||
accuracy = 30
|
||||
description_info = "This gun will stun a slime or other lesser slimy lifeform for about two seconds if hit with the projectile it fires."
|
||||
description_fluff = "An easy to use weapon designed by NanoTrasen, for NanoTrasen. This weapon is based on the NT Mk30 NL, \
|
||||
it's core components swaped out for a new design made to subdue lesser slime-based xeno lifeforms at a distance. It is \
|
||||
ineffective at stunning non-slimy lifeforms such as humanoids."
|
||||
recharge_time = 3
|
||||
|
||||
/obj/item/gun/energy/robotic/taser/swarm
|
||||
name = "disabler"
|
||||
desc = "An archaic device which attacks the target's nervous-system or control circuits."
|
||||
icon_state = "disabler"
|
||||
projectile_type = /obj/item/projectile/beam/stun/disabler
|
||||
charge_cost = 800
|
||||
recharge_time = 5 //0.5 SECONDS
|
||||
|
||||
|
||||
/// Lasers
|
||||
/obj/item/gun/energy/robotic/laser/retro
|
||||
name = "retro laser"
|
||||
icon_state = "retro"
|
||||
item_state = "retro"
|
||||
desc = "A 23rd century model of the basic lasergun. Nevertheless, it is still quite deadly and easy to maintain, making it a favorite amongst pirates and other outlaws."
|
||||
projectile_type = /obj/item/projectile/beam
|
||||
fire_delay = 10
|
||||
|
||||
/obj/item/gun/energy/robotic/laser/rifle
|
||||
name = "Mounted Laser Rifle"
|
||||
desc = "A Hephaestus Industries G40E rifle, designed to kill with concentrated energy blasts. This variant has the ability to \
|
||||
switch between standard fire and a more efficent but weaker 'suppressive' fire."
|
||||
description_fluff = "The leading arms producer in the SCG, Hephaestus typically only uses its 'top level' branding for its military-grade equipment used by armed forces across human space."
|
||||
icon_state = "laser"
|
||||
item_state = "laser"
|
||||
wielded_item_state = "laser-wielded"
|
||||
fire_delay = 8
|
||||
force = 10
|
||||
projectile_type = /obj/item/projectile/beam/midlaser
|
||||
firemodes = list(
|
||||
list(mode_name="normal", fire_delay=8, projectile_type=/obj/item/projectile/beam/midlaser, charge_cost = 240),
|
||||
list(mode_name="suppressive", fire_delay=5, projectile_type=/obj/item/projectile/beam/weaklaser, charge_cost = 60),
|
||||
)
|
||||
one_handed_penalty = 0
|
||||
|
||||
/obj/item/gun/energy/robotic/laser/heavy
|
||||
name = "mounted laser cannon"
|
||||
desc = "With the laser cannon, the lasing medium is enclosed in a tube lined with uranium-235 and subjected to high neutron \
|
||||
flux in a nuclear reactor core. This incredible technology may help YOU achieve high excitation rates with small laser volumes!"
|
||||
icon_state = "lasercannon"
|
||||
item_state = null
|
||||
wielded_item_state = "mhdhowitzer-wielded" //Placeholder (Sure it is.)
|
||||
projectile_type = /obj/item/projectile/beam/heavylaser //Fun fact: This isn't actually the normal cannon.
|
||||
recharge_time = 10
|
||||
accuracy = 0
|
||||
one_handed_penalty = 0
|
||||
charge_cost = 400
|
||||
fire_delay = 20
|
||||
|
||||
/obj/item/gun/energy/robotic/laser/dakkalaser
|
||||
name = "suppression gun"
|
||||
desc = "A massive weapon designed to pressure the opposition by raining down a torrent of energy pellets."
|
||||
icon_state = "dakkalaser"
|
||||
item_state = "dakkalaser"
|
||||
wielded_item_state = "dakkalaser-wielded"
|
||||
charge_cost = 24
|
||||
projectile_type = /obj/item/projectile/energy/blue_pellet
|
||||
cell_type = /obj/item/cell/device/weapon/recharge //This one doesn't use borg power, it has it's own power cell. I don't know why, but I'm not here to balance/unbalance it.
|
||||
self_recharge = 0 //Ditto
|
||||
use_external_power = 0 //Ditto
|
||||
accuracy = 75 // Suppressive weapons don't work too well if there's no risk of being hit.
|
||||
burst_delay = 1 // Burst faster than average.
|
||||
|
||||
firemodes = list(
|
||||
list(mode_name="single shot", burst = 1, burst_accuracy = list(75), dispersion = list(0), charge_cost = 24),
|
||||
list(mode_name="five shot burst", burst = 5, burst_accuracy = list(75,75,75,75,75), dispersion = list(1,1,1,1,1)),
|
||||
list(mode_name="ten shot burst", burst = 10, burst_accuracy = list(75,75,75,75,75,75,75,75,75,75), dispersion = list(2,2,2,2,2,2,2,2,2,2)),
|
||||
)
|
||||
|
||||
|
||||
/// MELEE WEAPONS
|
||||
|
||||
/obj/item/melee/robotic //Just the parent. Don't use this one.
|
||||
name = "Robotic Appendage"
|
||||
desc = "A robotic weapon of some sort."
|
||||
icon = 'icons/mob/dogborg_vr.dmi'
|
||||
icon_state = "swordtail"
|
||||
var/borg_flags = COUNTS_AS_ROBOTIC_MELEE
|
||||
|
||||
/obj/item/melee/robotic/jaws
|
||||
icon = 'icons/mob/dogborg_vr.dmi'
|
||||
hitsound = 'sound/weapons/bite.ogg'
|
||||
throwforce = 0
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
pry = 1
|
||||
tool_qualities = list(TOOL_CROWBAR)
|
||||
|
||||
/obj/item/melee/robotic/jaws/big
|
||||
name = "combat jaws"
|
||||
icon_state = "jaws"
|
||||
desc = "The jaws of the law."
|
||||
force = 25
|
||||
armor_penetration = 25
|
||||
defend_chance = 15
|
||||
attack_verb = list("chomped", "bit", "ripped", "mauled", "enforced")
|
||||
|
||||
/obj/item/melee/robotic/jaws/small
|
||||
name = "puppy jaws"
|
||||
icon_state = "smalljaws"
|
||||
desc = "The jaws of a small dog."
|
||||
force = 10
|
||||
defend_chance = 5
|
||||
attack_verb = list("nibbled", "bit", "gnawed", "chomped", "nommed")
|
||||
var/emagged = 0
|
||||
/obj/item/melee/robotic/jaws/small/attack_self(mob/user)
|
||||
var/mob/living/silicon/robot/R = user
|
||||
if(R.emagged || R.emag_items)
|
||||
emagged = !emagged
|
||||
if(emagged)
|
||||
name = "combat jaws"
|
||||
icon_state = "jaws"
|
||||
desc = "The jaws of the law."
|
||||
force = 25
|
||||
armor_penetration = 25
|
||||
defend_chance = 15
|
||||
attack_verb = list("chomped", "bit", "ripped", "mauled", "enforced")
|
||||
else
|
||||
name = "puppy jaws"
|
||||
icon_state = "smalljaws"
|
||||
desc = "The jaws of a small dog."
|
||||
force = 10
|
||||
armor_penetration = 0
|
||||
defend_chance = 5
|
||||
attack_verb = list("nibbled", "bit", "gnawed", "chomped", "nommed")
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/item/melee/robotic/borg_combat_shocker
|
||||
name = "combat shocker"
|
||||
icon = 'icons/mob/dogborg_vr.dmi'
|
||||
icon_state = "combatshocker"
|
||||
desc = "Shocking!"
|
||||
force = 15
|
||||
throwforce = 0
|
||||
hitsound = 'sound/weapons/genhit1.ogg'
|
||||
attack_verb = list("hit")
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
var/charge_cost = 15
|
||||
var/dogborg = FALSE
|
||||
|
||||
/obj/item/melee/robotic/borg_combat_shocker/apply_hit_effect(mob/living/target, mob/living/user, var/hit_zone)
|
||||
if(isrobot(target))
|
||||
return ..()
|
||||
|
||||
var/agony = 60 // Copied from stun batons
|
||||
var/stun = 0 // ... same
|
||||
|
||||
var/obj/item/organ/external/affecting = null
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/H = target
|
||||
affecting = H.get_organ(hit_zone)
|
||||
|
||||
if(user.a_intent == I_HURT)
|
||||
// Parent handles messages
|
||||
. = ..()
|
||||
//whacking someone causes a much poorer electrical contact than deliberately prodding them.
|
||||
agony *= 0.5
|
||||
stun *= 0.5
|
||||
else
|
||||
if(affecting)
|
||||
if(dogborg)
|
||||
target.visible_message(span_danger("[target] has been zap-chomped in the [affecting.name] with [src] by [user]!"))
|
||||
else
|
||||
target.visible_message(span_danger("[target] has been zapped in the [affecting.name] with [src] by [user]!"))
|
||||
else
|
||||
if(dogborg)
|
||||
target.visible_message(span_danger("[target] has been zap-chomped with [src] by [user]!"))
|
||||
else
|
||||
target.visible_message(span_danger("[target] has been zapped with [src] by [user]!"))
|
||||
playsound(src, 'sound/weapons/Egloves.ogg', 50, 1, -1)
|
||||
|
||||
// Try to use power
|
||||
var/stunning = FALSE
|
||||
if(isrobot(loc))
|
||||
var/mob/living/silicon/robot/R = loc
|
||||
if(R.cell?.use(charge_cost) == charge_cost)
|
||||
stunning = TRUE
|
||||
|
||||
if(stunning)
|
||||
target.stun_effect_act(stun, agony, hit_zone, src)
|
||||
msg_admin_attack("[key_name(user)] stunned [key_name(target)] with the [src].")
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/H = target
|
||||
H.forcesay(hit_appends)
|
||||
|
||||
/obj/item/melee/robotic/blade //For downstreams that use blade
|
||||
name = "Robotic Blade"
|
||||
desc = "A glowing blade. It appears to be extremely sharp."
|
||||
borg_flags = COUNTS_AS_ROBOTIC_MELEE | COUNTS_AS_ROBOT_BLADE
|
||||
icon = 'icons/mob/dogborg_vr.dmi'
|
||||
icon_state = "swordtail"
|
||||
force = 35 //Takes 3 hits to 100-0
|
||||
armor_penetration = 70
|
||||
sharp = TRUE
|
||||
edge = TRUE
|
||||
throwforce = 0 //This shouldn't be thrown in the first place.
|
||||
hitsound = 'sound/weapons/blade1.ogg'
|
||||
attack_verb = list("slashed", "stabbed", "jabbed", "mauled", "sliced")
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
|
||||
/obj/item/melee/robotic/dagger //For downstreams that use dagger
|
||||
name = "Robotic Dagger"
|
||||
desc = "A glowing dagger. It appears to be extremely sharp."
|
||||
borg_flags = COUNTS_AS_ROBOTIC_MELEE | COUNTS_AS_ROBOT_DAGGER
|
||||
icon = 'icons/mob/dogborg_vr.dmi'
|
||||
icon_state = "swordtail"
|
||||
force = 35 //Takes 3 hits to 100-0
|
||||
armor_penetration = 70
|
||||
sharp = TRUE
|
||||
edge = TRUE
|
||||
throwforce = 0 //This shouldn't be thrown in the first place.
|
||||
hitsound = 'sound/weapons/blade1.ogg'
|
||||
attack_verb = list("slashed", "stabbed", "jabbed", "mauled", "sliced")
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
@@ -6,12 +6,6 @@
|
||||
if(water.energy < 5)
|
||||
. += span_notice("[src] is dry.")
|
||||
|
||||
/obj/item/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. \
|
||||
@@ -23,41 +17,6 @@
|
||||
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/melee/combat_borgblade/explotailspear
|
||||
name = "energy tail"
|
||||
desc = "A glowing tail spear with a moderate range. It appears to be extremely sharp."
|
||||
force = 45
|
||||
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/melee/dogborg/jaws/big/explojaws
|
||||
name = "explo jaws"
|
||||
desc = "Highly lethal jaws for close range combat."
|
||||
force = 60
|
||||
armor_penetration = 25 //To try and make it not useless against armored mobs but not fully nullify it
|
||||
projectile_parry_chance = 15
|
||||
|
||||
/obj/item/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/cell/device
|
||||
cell_type = /obj/item/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
|
||||
|
||||
// To repair a single module
|
||||
/obj/item/self_repair_system
|
||||
name = "plating repair system"
|
||||
@@ -133,3 +92,69 @@
|
||||
power_tick = 10
|
||||
repair_time = 15
|
||||
repair_amount = 3
|
||||
|
||||
// Robot Weapons
|
||||
/obj/item/gun/energy/robotic/flare
|
||||
name = "flare gun"
|
||||
desc = "A flare-gun"
|
||||
projectile_type = /obj/item/projectile/energy/flash/flare
|
||||
fire_sound = 'sound/weapons/tablehit1.ogg'
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "taser"
|
||||
charge_cost = 480
|
||||
borg_flags = COUNTS_AS_ROBOT_GUN | COUNTS_AS_ROBOT_TASER
|
||||
|
||||
/obj/item/gun/energy/robotic/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/cell/device
|
||||
cell_type = /obj/item/cell/device/weapon
|
||||
charge_cost = 600
|
||||
fire_delay = 6
|
||||
force = 5
|
||||
icon_state = "medbeam"
|
||||
icon = 'icons/obj/gun_vr.dmi'
|
||||
accuracy = 100
|
||||
fire_sound = 'sound/weapons/eluger.ogg'
|
||||
self_recharge = 1
|
||||
use_external_power = 1
|
||||
|
||||
/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/melee/robotic/blade/explotailspear
|
||||
name = "energy tail"
|
||||
desc = "A glowing tail spear with a moderate range. It appears to be extremely sharp."
|
||||
force = 45
|
||||
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/melee/robotic/jaws/big/explojaws
|
||||
name = "explo jaws"
|
||||
desc = "Highly lethal jaws for close range combat."
|
||||
force = 60
|
||||
armor_penetration = 25 //To try and make it not useless against armored mobs but not fully nullify it
|
||||
projectile_parry_chance = 15
|
||||
|
||||
/obj/item/gun/energy/robotic/phasegun
|
||||
name = "EW26 Artemis Mounted"
|
||||
desc = "The RayZar EW26 Artemis, also known as the 'phase carbine', is a downsized energy-based weapon specifically designed for use against wildlife. This one has a safety interlock that prevents firing while in proximity to the facility." //ChompEDIT
|
||||
description_fluff = "RayZar is Ward-Takahashi’s main consumer weapons brand, known for producing and licensing a wide variety of specialist energy weapons of various types and quality primarily for the civilian market."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "phasecarbine"
|
||||
charge_cost = 160
|
||||
recharge_time = 16
|
||||
projectile_type = /obj/item/projectile/energy/phase
|
||||
use_external_power = 1
|
||||
self_recharge = 1
|
||||
borg_flags = COUNTS_AS_ROBOT_GUN | COUNTS_AS_ROBOT_LASER
|
||||
|
||||
@@ -29,15 +29,15 @@
|
||||
/obj/item/robot_module/robot/exploration/New(var/mob/living/silicon/robot/R)
|
||||
src.modules += new /obj/item/dogborg/sleeper/exploration(src)
|
||||
src.modules += new /obj/item/cataloguer(src)
|
||||
src.modules += new /obj/item/gun/energy/taser/mounted/cyborg/flare(src)
|
||||
src.modules += new /obj/item/gun/energy/robotic/flare(src)
|
||||
src.modules += new /obj/item/dogborg/pounce(src)
|
||||
src.modules += new /obj/item/melee/combat_borgblade/explotailspear(src)
|
||||
src.modules += new /obj/item/gun/energy/medigun/mounted/smallmedigun(src)
|
||||
src.modules += new /obj/item/melee/robotic/blade/explotailspear(src)
|
||||
src.modules += new /obj/item/gun/energy/robotic/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/self_repair_system(src)
|
||||
src.modules += new /obj/item/card/id/exploration/borg(src)
|
||||
|
||||
src.emag += new /obj/item/melee/dogborg/jaws/big/explojaws(src)
|
||||
src.emag += new /obj/item/melee/robotic/jaws/big/explojaws(src)
|
||||
|
||||
..()
|
||||
|
||||
@@ -27,17 +27,7 @@
|
||||
/datum/robot_sprite/dogborg/wide/combat
|
||||
module_type = "Combat"
|
||||
has_custom_equipment_sprites = TRUE
|
||||
var/has_gun_sprite = FALSE
|
||||
var/has_taser_sprite = FALSE
|
||||
var/has_blade_sprite = FALSE
|
||||
|
||||
/datum/robot_sprite/dogborg/wide/combat/handle_extra_icon_updates(var/mob/living/silicon/robot/ourborg)
|
||||
if(has_gun_sprite && (istype(ourborg.module_active, /obj/item/gun/energy/laser/mounted) || istype(ourborg.module_active, /obj/item/gun/energy/lasercannon/mounted)))
|
||||
ourborg.add_overlay("[sprite_icon_state]-laser")
|
||||
if (has_taser_sprite && (istype(ourborg.module_active, /obj/item/gun/energy/taser/mounted/cyborg/ertgun)))
|
||||
ourborg.add_overlay("[sprite_icon_state]-taser")
|
||||
if (has_blade_sprite && (istype(ourborg.module_active, /obj/item/melee/combat_borgblade)))
|
||||
ourborg.add_overlay("[sprite_icon_state]-blade")
|
||||
has_eye_sprites = FALSE
|
||||
|
||||
/datum/robot_sprite/dogborg/wide/combat/blade/do_equipment_glamour(var/obj/item/robot_module/module)
|
||||
if(!has_custom_equipment_sprites)
|
||||
@@ -45,11 +35,11 @@
|
||||
|
||||
..()
|
||||
|
||||
var/obj/item/melee/combat_borgblade/CBB = locate() in module.modules
|
||||
var/obj/item/melee/robotic/blade/CBB = locate() in module.modules
|
||||
if(CBB)
|
||||
CBB.name = "combat saw"
|
||||
CBB.desc = "A high frequency blade attached to the end of a cyborg's tail. It appears to be extremely sharp."
|
||||
var/obj/item/melee/borg_combat_shocker/BCS = locate() in module.modules
|
||||
var/obj/item/melee/robotic/borg_combat_shocker/BCS = locate() in module.modules
|
||||
if(BCS)
|
||||
BCS.name = "combat jaws"
|
||||
BCS.desc = "Shockingly chompy!"
|
||||
@@ -64,6 +54,4 @@
|
||||
sprite_icon_state = "blade"
|
||||
sprite_hud_icon_state = "ert"
|
||||
rest_sprite_options = list()
|
||||
has_gun_sprite = TRUE
|
||||
has_taser_sprite = TRUE
|
||||
has_blade_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_LASER_SPRITE | ROBOT_HAS_DISABLER_SPRITE | ROBOT_HAS_DAGGER_SPRITE
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
sprite_icon_state = "secvale"
|
||||
sprite_hud_icon_state = "k9"
|
||||
has_eye_light_sprites = TRUE
|
||||
has_laser_sprite = FALSE //Missing from the dmi
|
||||
has_taser_sprite = FALSE //ditto
|
||||
|
||||
/datum/robot_sprite/dogborg/security/cat
|
||||
name = "Cat"
|
||||
@@ -13,8 +11,6 @@
|
||||
sprite_icon_state = "vixsec"
|
||||
sprite_hud_icon_state = "k9"
|
||||
has_eye_light_sprites = TRUE
|
||||
has_laser_sprite = FALSE //Missing from the dmi
|
||||
has_taser_sprite = FALSE //ditto
|
||||
|
||||
|
||||
/datum/robot_sprite/dogborg/tall/security/dullahan
|
||||
@@ -25,8 +21,6 @@
|
||||
name = "Dullahan"
|
||||
sprite_icon_state = "dullahansec"
|
||||
sprite_hud_icon_state = "k9"
|
||||
has_laser_sprite = FALSE //Missing from the dmi
|
||||
has_taser_sprite = FALSE //ditto
|
||||
has_eye_light_sprites = TRUE
|
||||
has_vore_belly_sprites = TRUE
|
||||
|
||||
@@ -34,8 +28,6 @@
|
||||
name = "Dullahan v2"
|
||||
sprite_icon_state = "dullahansec_alt"
|
||||
sprite_hud_icon_state = "k9"
|
||||
has_laser_sprite = FALSE //Missing from the dmi
|
||||
has_taser_sprite = FALSE //ditto
|
||||
has_eye_light_sprites = TRUE
|
||||
has_vore_belly_sprites = TRUE
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 190 KiB After Width: | Height: | Size: 169 KiB |
@@ -46,6 +46,7 @@
|
||||
#include "code\__defines\belly_modes_ch.dm"
|
||||
#include "code\__defines\belly_modes_vr.dm"
|
||||
#include "code\__defines\blueprints.dm"
|
||||
#include "code\__defines\borg_overlays.dm"
|
||||
#include "code\__defines\callbacks.dm"
|
||||
#include "code\__defines\chat.dm"
|
||||
#include "code\__defines\chemistry.dm"
|
||||
@@ -4088,6 +4089,7 @@
|
||||
#include "code\modules\projectiles\guns\energy\altevian_vr.dm"
|
||||
#include "code\modules\projectiles\guns\energy\bsharpoon_vr.dm"
|
||||
#include "code\modules\projectiles\guns\energy\crestrose_vr.dm"
|
||||
#include "code\modules\projectiles\guns\energy\cyborg.dm"
|
||||
#include "code\modules\projectiles\guns\energy\dominator_vr.dm"
|
||||
#include "code\modules\projectiles\guns\energy\gunsword_vr.dm"
|
||||
#include "code\modules\projectiles\guns\energy\hooklauncher.dm"
|
||||
|
||||
Reference in New Issue
Block a user