diff --git a/code/game/objects/items/devices/dogborg_sleeper.dm b/code/game/objects/items/devices/dogborg_sleeper.dm index 30a3e5a9a2..68045296be 100644 --- a/code/game/objects/items/devices/dogborg_sleeper.dm +++ b/code/game/objects/items/devices/dogborg_sleeper.dm @@ -93,6 +93,7 @@ injection_chems += "toxin" target.forceMove(src) target.reset_perspective(src) + target.ExtinguishMob() //The tongue already puts out fire stacks but being put into the sleeper shouldn't allow you to keep burning. update_gut() user.visible_message("[hound.name]'s medical pod lights up and expands as [target.name] slips inside into their [src.name].", "Your medical pod lights up as [target] slips into your [src]. Life support functions engaged.") message_admins("[key_name(hound)] has sleeper'd [key_name(patient)] as a dogborg. [ADMIN_JMP(src)]") diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 8a2e5d1292..1f3019fe65 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -94,6 +94,8 @@ target.update_handcuffed() if(trashtype && !dispense) qdel(src) + if(iscyborg(user)) + playsound(user, "law", 50, 0) return /obj/item/restraints/handcuffs/sinew diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 3bac97b009..7867ec5f1e 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -80,7 +80,7 @@ return FALSE //R.speed = -2 // Gotta go fast. - //Citadel change - makes vtecs give an ability rather than reducing the borg's speed instantly + //Citadel change - makes vtecs give an ability rather than reducing the borg's speed instantly R.AddAbility(new/obj/effect/proc_holder/silicon/cyborg/vtecControl) /obj/item/borg/upgrade/vtec/deactivate(mob/living/silicon/robot/R, user = usr) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index f5cd894635..2ee079e41d 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -2062,10 +2062,16 @@ GLOBAL_LIST_EMPTY(preferences_datums) else if("xenotail" in pref_species.default_features) character.dna.species.mutant_bodyparts |= "xenotail" - if(("legs" in pref_species.default_features) && character.dna.features["legs"] == "Digitigrade Legs") - pref_species.species_traits += DIGITIGRADE - character.Digitigrade_Leg_Swap(FALSE) - else + if("legs" in pref_species.default_features) + if(character.dna.features["legs"] == "Digitigrade Legs") + pref_species.species_traits += DIGITIGRADE + character.Digitigrade_Leg_Swap(FALSE) + + if(character.dna.features["legs"] == "Normal Legs" && DIGITIGRADE in pref_species.species_traits) + pref_species.species_traits -= DIGITIGRADE + character.Digitigrade_Leg_Swap(TRUE) + + else if((!"legs" in pref_species.default_features) && DIGITIGRADE in pref_species.species_traits) pref_species.species_traits -= DIGITIGRADE character.Digitigrade_Leg_Swap(TRUE) diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index 96898051a4..4ff61f4fcc 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -64,6 +64,7 @@ clothing_flags = THICKMATERIAL //not spaceproof max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | LAVA_PROOF + tauric = TRUE //Citadel Add for tauric hardsuits slowdown = 0 armor = list("melee" = 70, "bullet" = 40, "laser" = 10, "energy" = 10, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe) @@ -134,6 +135,7 @@ armor = list("melee" = 15, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 25, "bio" = 50, "rad" = 25, "fire" = 100, "acid" = 25) allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe) resistance_flags = FIRE_PROOF | GOLIATH_WEAKNESS + tauric = TRUE //Citadel Add for tauric hardsuits /obj/item/clothing/head/hooded/seva name = "SEVA Hood" @@ -176,6 +178,7 @@ armor = list("melee" = 65, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 60, "bio" = 25, "rad" = 10, "fire" = 0, "acid" = 0) allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe) resistance_flags = FIRE_PROOF | GOLIATH_RESISTANCE + tauric = TRUE //Citadel Add for tauric hardsuits /obj/item/clothing/head/hooded/exo name = "Exo-hood" diff --git a/modular_citadel/code/game/objects/items/robot/robot_upgrades.dm b/modular_citadel/code/game/objects/items/robot/robot_upgrades.dm index 279685e94a..5f65b97173 100644 --- a/modular_citadel/code/game/objects/items/robot/robot_upgrades.dm +++ b/modular_citadel/code/game/objects/items/robot/robot_upgrades.dm @@ -1,4 +1,4 @@ -//V-tech kicked in yo +// Citadel's Vtech Controller /obj/effect/proc_holder/silicon/cyborg/vtecControl name = "vTec Control" desc = "Allows finer-grained control of the vTec speed boost." @@ -10,7 +10,6 @@ /obj/effect/proc_holder/silicon/cyborg/vtecControl/Click(mob/living/silicon/robot/user) - var/mob/living/silicon/robot/self = usr currentState = (currentState + 1) % 3 @@ -18,11 +17,11 @@ if(usr) switch(currentState) if (0) - self.speed += maxReduction + self.speed = maxReduction if (1) self.speed -= maxReduction*0.5 if (2) - self.speed -= maxReduction*0.5 + self.speed -= maxReduction*1.25 action.button_icon_state = "Chevron_State_[currentState]" action.UpdateButtonIcon() diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm index 6fe3994d20..0ac3d624e9 100644 --- a/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm +++ b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm @@ -3,31 +3,31 @@ DOG BORG EQUIPMENT HERE SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm ! */ +/obj/item/dogborg/jaws + name = "Dogborg jaws" + desc = "The jaws of the debug errors oh god." + icon = 'icons/mob/dogborg.dmi' + flags_1 = CONDUCT_1 + force = 1 + throwforce = 0 + w_class = 3 + hitsound = 'sound/weapons/bite.ogg' + sharpness = IS_SHARP + /obj/item/dogborg/jaws/big name = "combat jaws" - icon = 'icons/mob/dogborg.dmi' + desc = "The jaws of the law. Very sharp." icon_state = "jaws" - desc = "The jaws of the law." - flags_1 = CONDUCT_1 force = 12 - throwforce = 0 - hitsound = 'sound/weapons/bite.ogg' attack_verb = list("chomped", "bit", "ripped", "mauled", "enforced") - w_class = 3 - sharpness = IS_SHARP /obj/item/dogborg/jaws/small name = "puppy jaws" - icon = 'icons/mob/dogborg.dmi' + desc = "Rubberized teeth designed to protect accidental harm. Sharp enough for specialized tasks however." icon_state = "smalljaws" - desc = "The jaws of a small dog." - flags_1 = CONDUCT_1 force = 6 - throwforce = 0 - hitsound = 'sound/weapons/bite.ogg' attack_verb = list("nibbled", "bit", "gnawed", "chomped", "nommed") - w_class = 3 - sharpness = IS_SHARP + var/status = 0 /obj/item/dogborg/jaws/attack(atom/A, mob/living/silicon/robot/user) ..() @@ -36,50 +36,25 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm ! /obj/item/dogborg/jaws/small/attack_self(mob/user) var/mob/living/silicon/robot.R = user - if(R.emagged) - name = "combat jaws" - icon = 'icons/mob/dogborg.dmi' - icon_state = "jaws" - desc = "The jaws of the law." - flags_1 = CONDUCT_1 - force = 12 - throwforce = 0 - hitsound = 'sound/weapons/bite.ogg' - attack_verb = list("chomped", "bit", "ripped", "mauled", "enforced") - w_class = 3 - sharpness = IS_SHARP - else - name = "puppy jaws" - icon = 'icons/mob/dogborg.dmi' - icon_state = "smalljaws" - desc = "The jaws of a small dog." - flags_1 = CONDUCT_1 - force = 5 - throwforce = 0 - hitsound = 'sound/weapons/bite.ogg' - attack_verb = list("nibbled", "bit", "gnawed", "chomped", "nommed") - w_class = 3 - sharpness = IS_SHARP - update_icon() - - -//Cuffs - -/obj/item/restraints/handcuffs/cable/zipties/cyborg/dog/attack(mob/living/carbon/C, mob/user) - if(!C.handcuffed) - playsound(loc, 'sound/weapons/cablecuff.ogg', 60, 1, -2) - C.visible_message("[user] is trying to put zipties on [C]!", \ - "[user] is trying to put zipties on [C]!") - if(do_mob(user, C, 60)) - if(!C.handcuffed) - C.handcuffed = new /obj/item/restraints/handcuffs/cable/zipties/used(C) - C.update_inv_handcuffed(0) - to_chat(user,"You handcuff [C].") - playsound(loc, pick('sound/voice/beepsky/criminal.ogg', 'sound/voice/beepsky/justice.ogg', 'sound/voice/beepsky/freeze.ogg'), 50, FALSE) - log_combat(user, C, "handcuffed") + if(R.cell && R.cell.charge > 100) + if(R.emagged && status == 0) + name = "combat jaws" + icon_state = "jaws" + desc = "The jaws of the law." + force = 12 + attack_verb = list("chomped", "bit", "ripped", "mauled", "enforced") + status = 1 + to_chat(user, "Your jaws are now [status ? "Combat" : "Pup'd"].") else - to_chat(user,"You fail to handcuff [C]!") - + name = "puppy jaws" + icon_state = "smalljaws" + desc = "The jaws of a small dog." + force = 5 + attack_verb = list("nibbled", "bit", "gnawed", "chomped", "nommed") + status = 0 + if(R.emagged) + to_chat(user, "Your jaws are now [status ? "Combat" : "Pup'd"].") + update_icon() //Boop @@ -152,8 +127,10 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm ! /obj/item/analyzer/nose/AltClick(mob/user) //Barometer output for measuring when the next storm happens . = ..() -/obj/item/analyzer/nose/afterattack(atom/target, mob/user) +/obj/item/analyzer/nose/afterattack(atom/target, mob/user, proximity) . = ..() + if(!proximity) + return do_attack_animation(target, null, src) user.visible_message("[user] [pick(attack_verb)] \the [target.name] with their nose!") @@ -172,8 +149,8 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm ! STR.max_combined_w_class = 5 STR.max_items = 1 STR.cant_hold = typecacheof(list(/obj/item/disk/nuclear, /obj/item/radio/intercom)) -//Tongue stuff +//Tongue stuff /obj/item/soap/tongue name = "synthetic tongue" desc = "Useful for slurping mess off the floor before affectionally licking the crew members in the face." @@ -190,12 +167,6 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm ! ..() item_flags |= NOBLUDGEON //No more attack messages -/obj/item/trash/rkibble - name = "robo kibble" - desc = "A novelty bowl of assorted mech fabricator byproducts. Mockingly feed this to the sec-dog to help it recharge." - icon = 'icons/mob/dogborg.dmi' - icon_state= "kibble" - /obj/item/soap/tongue/attack_self(mob/user) var/mob/living/silicon/robot.R = user if(R.cell && R.cell.charge > 100) @@ -303,6 +274,13 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm ! target.wash_cream() return +//Dogfood + +/obj/item/trash/rkibble + name = "robo kibble" + desc = "A novelty bowl of assorted mech fabricator byproducts. Mockingly feed this to the sec-dog to help it recharge." + icon = 'icons/mob/dogborg.dmi' + icon_state= "kibble" //Defibs diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm b/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm index 8858934a53..0efe493c35 100644 --- a/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -30,7 +30,7 @@ /obj/item/robot_module/k9 name = "Security K-9 Unit" basic_modules = list( - /obj/item/restraints/handcuffs/cable/zipties/cyborg/dog, + /obj/item/restraints/handcuffs/cable/zipties, /obj/item/storage/bag/borgdelivery, /obj/item/dogborg/jaws/big, /obj/item/dogborg/pounce, diff --git a/modular_citadel/icons/mob/suit_digi.dmi b/modular_citadel/icons/mob/suit_digi.dmi index abaa0d1a42..89284dbe52 100644 Binary files a/modular_citadel/icons/mob/suit_digi.dmi and b/modular_citadel/icons/mob/suit_digi.dmi differ diff --git a/modular_citadel/icons/mob/taur_canine.dmi b/modular_citadel/icons/mob/taur_canine.dmi index e6ccd17ff1..101430f0e2 100644 Binary files a/modular_citadel/icons/mob/taur_canine.dmi and b/modular_citadel/icons/mob/taur_canine.dmi differ diff --git a/modular_citadel/icons/mob/taur_naga.dmi b/modular_citadel/icons/mob/taur_naga.dmi index 7cdd50a10e..7342b52cdb 100644 Binary files a/modular_citadel/icons/mob/taur_naga.dmi and b/modular_citadel/icons/mob/taur_naga.dmi differ