mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-25 04:57:47 +01:00
Borg Icon Optimization and Weapon Modulation (#16705)
* Streamlines borg icon generation Cross-port of https://github.com/TS-Rogue-Star/Rogue-Star/pull/708 Makes borgs not super super wonky with icon generation https://i.imgur.com/qp8K2tD.gif * Virgo Specific * Makes borgs use flags Instead of the copy-paste gore that was EVERYWHERE * Makes it a list. ADDS WARNINGS. * I don't know hexi!!! * Sit! * Changes them to the new paths * Makes cyborg guns modular * whoops i forgot a word * Makes dogborg melee modularized Makes it so you can have a generic 'melee' sprite and a 'dagger' sprite. * blade Downstream compat * Moves it to a nicer check loop
This commit is contained in:
@@ -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"
|
||||
@@ -347,20 +240,6 @@
|
||||
recharge_time = 10 //Takes ten ticks to recharge a shot, 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
|
||||
|
||||
@@ -336,7 +336,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)
|
||||
|
||||
@@ -1457,7 +1457,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)
|
||||
|
||||
@@ -28,7 +28,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
|
||||
@@ -67,7 +67,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(25000)
|
||||
synths += wood
|
||||
@@ -78,4 +78,4 @@
|
||||
|
||||
// For uwu
|
||||
src.modules += new /obj/item/dogborg/sleeper/compactor/generic(src)
|
||||
src.emag += new /obj/item/dogborg/pounce(src)
|
||||
src.emag += new /obj/item/dogborg/pounce(src)
|
||||
|
||||
@@ -479,12 +479,12 @@ 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.emag += new /obj/item/gun/energy/laser/mounted(src)
|
||||
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
|
||||
@@ -715,7 +715,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)
|
||||
|
||||
@@ -759,15 +759,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)
|
||||
|
||||
@@ -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
|
||||
@@ -35,4 +35,4 @@
|
||||
icon_state = "disabler"
|
||||
projectile_type = /obj/item/projectile/beam/stun/disabler
|
||||
charge_cost = 800
|
||||
recharge_time = 0.5 SECONDS
|
||||
recharge_time = 0.5 SECONDS
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
has_custom_open_sprites = TRUE
|
||||
has_shield_sprite = TRUE
|
||||
sprite_flags = ROBOT_HAS_SHIELD_SPRITE
|
||||
|
||||
/datum/robot_sprite/combat/uptall
|
||||
name = "Feminine Humanoid"
|
||||
@@ -88,33 +72,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!"
|
||||
@@ -127,7 +95,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"
|
||||
@@ -148,23 +116,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
|
||||
|
||||
@@ -148,12 +148,6 @@
|
||||
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)
|
||||
return
|
||||
@@ -172,7 +166,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
|
||||
|
||||
@@ -121,38 +121,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"
|
||||
@@ -167,14 +155,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
|
||||
|
||||
@@ -182,21 +168,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
|
||||
|
||||
Reference in New Issue
Block a user