diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 93dd4a0555a..11d34afc903 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -93,6 +93,7 @@ var/humans_need_surnames = 0 var/allow_ai = 0 // allow ai job var/forbid_secborg = 0 // disallow secborg module to be chosen. + var/forbid_peaceborg = 0 var/panic_bunker = 0 // prevents new people it hasn't seen before from connecting var/notify_new_player_age = 0 // how long do we notify admins of a new player var/irc_first_connection_alert = 0 // do we notify the irc channel when somebody is connecting for the first time? @@ -560,6 +561,8 @@ config.allow_ai = 1 if("disable_secborg") config.forbid_secborg = 1 + if("disable_peaceborg") + config.forbid_peaceborg = 1 if("silent_ai") config.silent_ai = 1 if("silent_borg") diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index a674ccb0d69..72344703528 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -20,7 +20,106 @@ "[user] has prodded you with [src]!") add_logs(user, M, "stunned", src, "(INTENT: [uppertext(user.a_intent)])") +/obj/item/borg/cyborghug + name = "Hugging Module" + icon_state = "hugmodule" + desc = "For when a someone really needs a hug." + var/mode = 0 //0 = Hugs 1 = "Hug" 2 = Shock 3 = CRUSH + var/ccooldown = 0 + var/scooldown = 0 +/obj/item/borg/cyborghug/attack_self(mob/living/user) + if(isrobot(user)) + var/mob/living/silicon/robot/P = user + if(P.emagged) + if(mode < 3) + mode++ + else + mode = 0 + else if(mode < 1) + mode++ + else + mode = 0 + switch(mode) + if(0) + user << "Power reset. Hugs!" + if(1) + user << "Power increased!" + if(2) + user << "BZZT. Electrifying arms..." + if(3) + user << "ERROR: ARM ACTUATORS OVERLOADED." + +/obj/item/borg/cyborghug/attack(mob/living/M, mob/living/silicon/robot/user) + switch(mode) + if(0) + if(M.health >= 0) + if(ishuman(M)) + if(M.lying) + user.visible_message("[user] shakes [M] trying to get \him up!", \ + "You shake [M] trying to get \him up!") + else + user.visible_message("[user] hugs [M] to make \him feel better!", \ + "You hug [M] to make \him feel better!") + if(M.resting) + M.resting = 0 + M.update_canmove() + else + user.visible_message("[user] pets [M]!", \ + "You pet [M]!") + playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + if(1) + if(M.health >= 0) + if(ishuman(M)) + if(M.lying) + user.visible_message("[user] shakes [M] trying to get \him up!", \ + "You shake [M] trying to get \him up!") + else + user.visible_message("[user] hugs [M] in a firm bear-hug! [M] looks uncomfortable...", \ + "You hug [M] firmly to make \him feel better! [M] looks uncomfortable...") + if(M.resting) + M.resting = 0 + M.update_canmove() + else + user.visible_message("[user] bops [M] on the head!", \ + "You bop [M] on the head!") + playsound(loc, 'sound/weapons/tap.ogg', 50, 1, -1) + if(2) + if(!scooldown) + if(M.health >= 0) + if(ishuman(M)) + M.electrocute_act(5, "[user]", safety = 1) + user.visible_message("[user] electrocutes [M] with their touch!", \ + "You electrocute [M] with your touch!") + M.update_canmove() + else + if(!isrobot(M)) + M.adjustFireLoss(10) + user.visible_message("[user] shocks [M]!", \ + "You shock [M]!") + else + user.visible_message("[user] shocks [M]. It does not seem to have an effect", \ + "You shock [M] to no effect.") + playsound(loc, 'sound/effects/sparks2.ogg', 50, 1, -1) + user.cell.charge -= 400 + scooldown = 1 + spawn(10) + scooldown = 0 + if(3) + if(!ccooldown) + if(M.health >= 0) + if(ishuman(M)) + user.visible_message("[user] crushes [M] in their grip!", \ + "You crush [M] in your grip!") + else + user.visible_message("[user] crushes [M]!", \ + "You crush [M]!") + playsound(loc, 'sound/weapons/smash.ogg', 50, 1, -1) + M.adjustBruteLoss(10) + user.cell.charge -= 300 + ccooldown = 1 + spawn(10) + ccooldown = 0 /obj/item/borg/charger name = "power connector" @@ -146,8 +245,75 @@ user << "You stop charging [target]." +/obj/item/device/harmalarm + name = "Sonic Harm Prevention Tool" + desc = "Releases a harmless blast that confuses most organics. For when the harm is JUST TOO MUCH" + icon_state = "megaphone" + var/cooldown = 0 + var/emagged = 0 +/obj/item/device/harmalarm/emag_act(mob/user) + emagged = !emagged + if(emagged) + user << "You short out the safeties on the [src]!" + else + user << "You reset the safeties on the [src]!" +/obj/item/device/harmalarm/attack_self(mob/user) + var/safety = !emagged + if(cooldown > world.time) + user << "The device is still recharging!" + return + + if(isrobot(user)) + var/mob/living/silicon/robot/R = user + if(R.cell.charge < 1200) + user << "You don't have enough charge to do this!" + return + R.cell.charge -= 1000 + if(R.emagged) + safety = 0 + + if(safety == 1) + user.visible_message("[user] blares out a near-deafening siren from its speakers!", \ + "The siren pierces your hearing and confuses you!", \ + "The siren pierces your hearing!") + for(var/mob/living/M in get_hearers_in_view(9, user)) + if(iscarbon(M)) + if(istype(M, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + if(istype(H.ears, /obj/item/clothing/ears/earmuffs)) + continue + M.confused += 6 + M << "HUMAN HARM" + playsound(get_turf(src), 'sound/AI/harmalarm.ogg', 70, 3) + cooldown = world.time + 200 + log_game("[user.ckey]([user]) used a Cyborg Harm Alarm in ([user.x],[user.y],[user.z])") + if(isrobot(user)) + var/mob/living/silicon/robot/R = user + R.connected_ai << "
NOTICE - Peacekeeping 'HARM ALARM' used by: [user]
" + + return + + if(safety == 0) + user.visible_message("[user] blares out a sonic screech from its speakers!", \ + "You hear a sharp screech before your thoughts are interrupted and you collapse, your ears ringing!", \ + "You hear a sonic screech and collapse, your ears riniging!") + for(var/mob/living/M in get_hearers_in_view(9, user)) + if(iscarbon(M)) + if(istype(M, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + if(istype(H.ears, /obj/item/clothing/ears/earmuffs)) + continue + M.confused += 15 + M.Weaken(2) + M.stuttering += 30 + M.adjustEarDamage(0, 20) + M.Jitter(25) + M << "BZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZT" + playsound(get_turf(src), 'sound/machines/warning-buzzer.ogg', 130, 3) + cooldown = world.time + 600 + log_game("[user.ckey]([user]) used an emagged Cyborg Harm Alarm in ([user.x],[user.y],[user.z])") /********************************************************************** HUD/SIGHT things diff --git a/code/game/objects/items/weapons/RSF.dm b/code/game/objects/items/weapons/RSF.dm index ba891f89d78..72969f4abbf 100644 --- a/code/game/objects/items/weapons/RSF.dm +++ b/code/game/objects/items/weapons/RSF.dm @@ -112,3 +112,71 @@ RSF matter-- user << "The RSF now holds [matter]/30 fabrication-units." desc = "A RSF. It currently holds [matter]/30 fabrication-units." + +/obj/item/weapon/cookiesynth + name = "Cookie Synthesizer" + desc = "A self-recharging device used to rapidly deploy cookies." + icon = 'icons/obj/tools.dmi' + icon_state = "rcd" + var/matter = 10 + var/toxin = 0 + var/emagged = 0 + w_class = 3 + +/obj/item/weapon/cookiesynth/New() + desc = "A self recharging cookie fabricator. It currently holds [matter]/10 cookie-units." + +/obj/item/weapon/cookiesynth/attackby() + return + +/obj/item/weapon/cookiesynth/emag_act(mob/user) + emagged = !emagged + if(emagged) + user << "You short out the [src]'s reagent safety checker!" + else + user << "You reset the [src]'s reagent safety checker!" + toxin = 0 + +/obj/item/weapon/cookiesynth/attack_self(mob/user) + var/mob/living/silicon/robot/P = null + if(isrobot(user)) + P = user + if(emagged&&!toxin) + toxin = 1 + user << "Cookie Synthesizer Hacked" + else if(P.emagged&&!toxin) + toxin = 1 + user << "Cookie Synthesizer Hacked" + else + toxin = 0 + user << "Cookie Synthesizer Reset" + +/obj/item/weapon/cookiesynth/process() + if (matter < 10) + matter++ + +/obj/item/weapon/cookiesynth/afterattack(atom/A, mob/user, proximity) + if(!proximity) + return + if (!(istype(A, /obj/structure/table) || istype(A, /turf/open/floor))) + return + if(matter < 1) + user << "The [src] doesn't have enough matter left. Wait for it to recharge!" + return + if(isrobot(user)) + var/mob/living/silicon/robot/R = user + if(!R.cell || R.cell.charge < 400) + user << "You do not have enough power to use [src]." + return + var/turf/T = get_turf(A) + playsound(src.loc, 'sound/machines/click.ogg', 10, 1) + user << "Fabricating Cookie.." + var/obj/item/weapon/reagent_containers/food/snacks/cookie/S = new /obj/item/weapon/reagent_containers/food/snacks/cookie(T) + if(toxin) + S.reagents.add_reagent("chloralhydrate2", 10) + if (isrobot(user)) + var/mob/living/silicon/robot/R = user + R.cell.charge -= 100 + else + matter-- + desc = "A self recharging cookie fabricator. It currently holds [matter]/10 cookie-units." \ No newline at end of file diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index 103e0b3f07c..bd261f6a22c 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -305,6 +305,9 @@ /obj/item/weapon/restraints/legcuffs/beartrap/energy/attack_hand(mob/user) Crossed(user) //honk +/obj/item/weapon/restraints/legcuffs/beartrap/energy/cyborg + breakouttime = 20 // Cyborgs shouldn't have a strong restraint + /obj/item/weapon/restraints/legcuffs/bola name = "bola" desc = "A restraining device designed to be thrown at the target. Upon connecting with said target, it will wrap around their legs, making it difficult for them to move quickly." diff --git a/code/game/objects/items/weapons/holosign_creator.dm b/code/game/objects/items/weapons/holosign_creator.dm index 97a9278a63d..236bad8dc28 100644 --- a/code/game/objects/items/weapons/holosign_creator.dm +++ b/code/game/objects/items/weapons/holosign_creator.dm @@ -74,6 +74,45 @@ creation_time = 30 max_signs = 6 +/obj/item/weapon/holosign_creator/cyborg + name = "Energy Barrier Projector" + desc = "A holographic projector that creates fragile energy fields" + creation_time = 5 + max_signs = 9 + holosign_type = /obj/effect/overlay/holograph/barrier/cyborg + var/shock = 0 + +/obj/item/weapon/holosign_creator/cyborg/attack_self(mob/user) + if(isrobot(user)) + var/mob/living/silicon/robot/R = user + + if(shock) + user <<"You clear all active holograms, and reset your projector to normal." + holosign_type = /obj/effect/overlay/holograph/barrier/cyborg + creation_time = 5 + if(signs.len) + for(var/H in signs) + qdel(H) + shock = 0 + return + else if(R.emagged&&!shock) + user <<"You clear all active holograms, and overload your energy projector!" + holosign_type = /obj/effect/overlay/holograph/barrier/cyborg/hacked + creation_time = 30 + if(signs.len) + for(var/H in signs) + qdel(H) + shock = 1 + return + else + if(signs.len) + for(var/H in signs) + qdel(H) + user << "You clear all active holograms." + if(signs.len) + for(var/H in signs) + qdel(H) + user << "You clear all active holograms." /obj/effect/overlay/holograph icon = 'icons/effects/effects.dmi' @@ -185,3 +224,36 @@ /obj/effect/overlay/holograph/barrier/engineering icon_state = "holosign_engi" + +/obj/effect/overlay/holograph/barrier/cyborg + name = "Energy Field" + desc = "A fragile energy field that blocks movement" + density = 1 + holo_integrity = 1 + +/obj/effect/overlay/holograph/barrier/CanPass() + return 0 + +/obj/effect/overlay/holograph/barrier/cyborg/hacked + name = "Charged Energy Field" + desc = "A powerful energy field that blocks movement. Energy arcs off it" + holo_integrity = 3 + var/shockcd = 0 + +/obj/effect/overlay/holograph/barrier/cyborg/hacked/attack_hand(mob/living/user) + if(!shockcd) + if(ismob(user)) + var/mob/living/M = user + M.electrocute_act(15,"Energy Barrier", safety=1) + shockcd = 1 + spawn(10) + shockcd = 0 + +/obj/effect/overlay/holograph/barrier/cyborg/hacked/Bumped(atom/user) + if(!shockcd) + if(ismob(user)) + var/mob/living/M = user + M.electrocute_act(15,"Energy Barrier", safety=1) + shockcd = 1 + spawn(10) + shockcd = 0 \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 0ac2332ed47..20d3ffd0b91 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -167,6 +167,8 @@ return var/list/modulelist = list("Standard", "Engineering", "Medical", "Miner", "Janitor","Service") + if(!config.forbid_peaceborg) + modulelist += "Peacekeeper" if(!config.forbid_secborg) modulelist += "Security" @@ -235,6 +237,16 @@ status_flags &= ~CANPUSH feedback_inc("cyborg_security",1) + if("Peacekeeper") //Secborg sprites untill someone gives me some to update with + module = new /obj/item/weapon/robot_module/peacekeeper(src) + hands.icon_state = "standard" + icon_state = "peaceborg" + animation_length = 54 + modtype = "Peace" + src << "Under ASIMOV, you are an enforcer of the PEACE and preventer of HUMAN HARM. You are not a security module and you are expected to follow orders and prevent harm above all else. Space law means nothing to you." + status_flags &= ~CANPUSH + feedback_inc("cyborg_peacekeeper",1) //I'm assuming this is for logging. + if("Engineering") module = new /obj/item/weapon/robot_module/engineering(src) hands.icon_state = "engineer" diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 45257c61186..cfb56c69017 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -131,6 +131,7 @@ modules += new /obj/item/weapon/crowbar/cyborg(src) modules += new /obj/item/device/healthanalyzer(src) modules += new /obj/item/toy/crayon/spraycan/borg(src) + modules += new /obj/item/borg/cyborghug(src) emag = new /obj/item/weapon/melee/energy/sword/cyborg(src) fix_modules() @@ -155,6 +156,7 @@ modules += new /obj/item/weapon/circular_saw(src) modules += new /obj/item/weapon/extinguisher/mini(src) modules += new /obj/item/roller/robo(src) + modules += new /obj/item/borg/cyborghug(src) add_module(new /obj/item/stack/medical/gauze/cyborg()) @@ -219,6 +221,32 @@ else T.charge_tick = 0 +/obj/item/weapon/robot_module/peacekeeper + name = "peacekeeper robot module" + +/obj/item/weapon/robot_module/peacekeeper/New() + ..() + modules += new /obj/item/weapon/gun/energy/gun/dragnet/snare/cyborg(src) + modules += new /obj/item/weapon/cookiesynth(src) + modules += new /obj/item/device/harmalarm(src) + modules += new /obj/item/weapon/reagent_containers/borghypo/peace(src) + modules += new /obj/item/weapon/holosign_creator/cyborg(src) + modules += new /obj/item/borg/cyborghug(src) + modules += new /obj/item/weapon/extinguisher(src) + + emag = new /obj/item/weapon/reagent_containers/borghypo/peace/hacked(src) + +/obj/item/weapon/robot_module/peacekeeper/respawn_consumable(mob/living/silicon/robot/R, coeff = 1) + ..() + var/obj/item/weapon/gun/energy/gun/dragnet/snare/cyborg/T = locate(/obj/item/weapon/gun/energy/gun/dragnet/snare/cyborg) in get_usable_modules() + if(T) + if(T.power_supply.charge < T.power_supply.maxcharge) + var/obj/item/ammo_casing/energy/S = T.ammo_type[T.select] + T.power_supply.give(S.e_cost * coeff) + T.update_icon() + else + T.charge_tick = 0 + /obj/item/weapon/robot_module/janitor name = "janitorial robot module" var/obj/item/weapon/reagent_containers/spray/drying_agent @@ -372,4 +400,4 @@ /datum/robot_energy_storage/medical max_energy = 2500 recharge_rate = 250 - name = "Medical Synthesizer" + name = "Medical Synthesizer" \ No newline at end of file diff --git a/code/modules/projectiles/ammunition/energy.dm b/code/modules/projectiles/ammunition/energy.dm index 3d245ea9956..62b3ba8a669 100644 --- a/code/modules/projectiles/ammunition/energy.dm +++ b/code/modules/projectiles/ammunition/energy.dm @@ -167,6 +167,10 @@ obj/item/ammo_casing/energy/net projectile_type = /obj/item/projectile/energy/trap select_name = "snare" +/obj/item/ammo_casing/energy/trap/cyborg + projectile_type = /obj/item/projectile/energy/trap/cyborg + e_cost = 50 + /obj/item/ammo_casing/energy/instakill projectile_type = /obj/item/projectile/beam/instakill e_cost = 0 diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index 528ecc04816..f69cadac134 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -48,6 +48,22 @@ can_flashlight = 0 ammo_x_offset = 1 +/obj/item/weapon/gun/energy/gun/dragnet/snare + name = "Energy Snare Launcher" + desc = "Fires an energy snare that slows the target down" + ammo_type = list(/obj/item/ammo_casing/energy/trap) + +/obj/item/weapon/gun/energy/gun/dragnet/snare/cyborg + can_charge = 0 + ammo_type = list(/obj/item/ammo_casing/energy/trap/cyborg) + +/obj/item/weapon/gun/energy/gun/dragnet/snare/cyborg/newshot() + ..() + robocharge() + +/obj/item/weapon/gun/energy/gun/dragnet/snare/cyborg/emp_act() + return + /obj/item/weapon/gun/energy/gun/turret name = "hybrid turret gun" desc = "A heavy hybrid energy cannon with two settings: Stun and kill." diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 2b081c5f1bd..d5300383dbd 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -124,7 +124,7 @@ damage = 10 weaken = 4 stun = 4 - + /obj/item/projectile/bullet/honker damage = 0 weaken = 5 @@ -135,7 +135,7 @@ icon = 'icons/obj/hydroponics/harvest.dmi' icon_state = "banana" range = 200 - + /obj/item/projectile/bullet/honker/New() ..() SpinAnimation() diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index 4dde9cc6fc8..3cd537d41ad 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -111,6 +111,32 @@ new/obj/item/weapon/restraints/legcuffs/beartrap/energy(loc) ..() +/obj/item/projectile/energy/trap/cyborg + name = "Energy Bola" + icon_state = "e_snare" + nodamage = 1 + weaken = 0 + hitsound = 'sound/weapons/taserhit.ogg' + range = 10 + +/obj/item/projectile/energy/trap/cyborg/on_hit(atom/target, blocked = 0) + if(!ismob(target) || blocked >= 100) + var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread + sparks.set_up(1, 1, src) + sparks.start() + qdel(src) + if(iscarbon(target)) + var/obj/item/weapon/restraints/legcuffs/beartrap/B = new /obj/item/weapon/restraints/legcuffs/beartrap/energy/cyborg(get_turf(target)) + B.Crossed(target) + spawn(10) + qdel(src) + ..() + +/obj/item/projectile/energy/trap/cyborg/on_range() + var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread + sparks.set_up(1, 1, src) + sparks.start() + qdel(src) /obj/item/projectile/energy/declone name = "radiation beam" diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 966481e1b2d..12016ff0618 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -267,6 +267,20 @@ . = 1 ..() +/datum/reagent/toxin/chloralhydrate/delayed + id = "chloralhydrate2" + +/datum/reagent/toxin/chloralhydrate/delayed/on_mob_life(mob/living/M) + switch(current_cycle) + if(1 to 10) + return + if(10 to 20) + M.confused += 1 + M.drowsyness += 1 + if(20 to INFINITY) + M.Sleeping(2, 0) + ..() + /datum/reagent/toxin/beer2 //disguised as normal beer for use by emagged brobots name = "Beer" id = "beer2" @@ -707,3 +721,31 @@ M.adjustFireLoss(current_cycle/10, 0) // I rode a tank, held a general's rank . = 1 // When the blitzkrieg raged and the bodies stank ..() // Pleased to meet you, hope you guess my name + +/datum/reagent/toxin/peaceborg/confuse + name = "Dizzying Solution" + id = "dizzysolution" + description = "Makes the target off balance and dizzy" + toxpwr = 0 + metabolization_rate = 1.5 * REAGENTS_METABOLISM + +/datum/reagent/toxin/peaceborg/confuse/on_mob_life(mob/living/M) + M.confused += 1 + M.Dizzy(1) + if(prob(20)) + M << "You feel confused and disorientated." + ..() + +/datum/reagent/toxin/peaceborg/tire + name = "Tiring Solution" + id = "tiresolution" + description = "An extremely weak stamina-toxin that tires out the target. Completely harmless." + toxpwr = 0 + metabolization_rate = 1.5 * REAGENTS_METABOLISM + +/datum/reagent/toxin/peaceborg/tire/on_mob_life(mob/living/M) + if(M.staminaloss < 50) + M.adjustStaminaLoss(10) + if(prob(30)) + M << "You should sit down and take a rest..." + ..() \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index 679999b573c..e6188a387f5 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -207,3 +207,13 @@ Borg Shaker recharge_time = 3 reagent_ids = list("beer2") + +/obj/item/weapon/reagent_containers/borghypo/peace + name = "Peace Hypospray" + + reagent_ids = list("dizzysolution","tiresolution") + +/obj/item/weapon/reagent_containers/borghypo/peace/hacked + desc = "Everything's peaceful in death!" + icon_state = "borghypo_s" + reagent_ids = list("dizzysolution","tiresolution","tirizene","sulfonal","sodium_thiopental","cyanide","neurotoxin2") \ No newline at end of file diff --git a/config/admins.txt b/config/admins.txt index 6c712096834..b650f5e1d67 100644 --- a/config/admins.txt +++ b/config/admins.txt @@ -8,6 +8,7 @@ # NOTE: syntax was changed to allow hyphenation of ranknames, since spaces are stripped. # ############################################################################################### Optimumtact = Host +kevinz000 = Host kingofkosmos = Game Master MrStonedOne = Game Master microscopics = Game Master diff --git a/config/game_options.txt b/config/game_options.txt index 914a64e3bcf..eea6aaa7b11 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -197,9 +197,12 @@ EVENTS_MIN_PLAYERS_MUL 1 ALLOW_AI ### Secborg ### -## Uncomment to prevent the secborg module from being chosen +## Uncomment to prevent the security cyborg module from being chosen #DISABLE_SECBORG +### Peacekeeper Borg ### +## Uncomment to prevent the peacekeeper cyborg module from being chosen +#DISABLE_PEACEBORG ### AWAY MISSIONS ### diff --git a/icons/mob/robot_items.dmi b/icons/mob/robot_items.dmi index 0ac3137707f..e3c81e501ee 100644 Binary files a/icons/mob/robot_items.dmi and b/icons/mob/robot_items.dmi differ diff --git a/icons/mob/robot_transformations.dmi b/icons/mob/robot_transformations.dmi index 1cedece909f..f389bb60a02 100644 Binary files a/icons/mob/robot_transformations.dmi and b/icons/mob/robot_transformations.dmi differ diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi index 9f1ea3d8562..a7d98d699c5 100644 Binary files a/icons/mob/robots.dmi and b/icons/mob/robots.dmi differ diff --git a/sound/AI/harmalarm.ogg b/sound/AI/harmalarm.ogg new file mode 100644 index 00000000000..b9107f6e44d Binary files /dev/null and b/sound/AI/harmalarm.ogg differ