diff --git a/code/__HELPERS/sanitize_values.dm b/code/__HELPERS/sanitize_values.dm index c065fec9b81..cf840584c6f 100644 --- a/code/__HELPERS/sanitize_values.dm +++ b/code/__HELPERS/sanitize_values.dm @@ -30,7 +30,6 @@ else return default return default - /proc/sanitize_hexcolor(color, desired_format=3, include_crunch=0, default) var/crunch = include_crunch ? "#" : "" if(!istext(color)) diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index c050d2cdc6a..9d11eeeca28 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -305,6 +305,9 @@ var/list/binary = list("0","1") /proc/random_short_color() return random_string(3, hex_characters) +/proc/random_color() + return random_string(6, hex_characters) + /proc/add_zero2(t, u) var/temp1 while (length(t) < u) diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm index 4b5a086baf3..0f13c6f4f7c 100644 --- a/code/_globalvars/misc.dm +++ b/code/_globalvars/misc.dm @@ -1,6 +1,6 @@ var/global/obj/effect/overlay/plmaster = null // atmospheric overlay for plasma var/global/obj/effect/overlay/slmaster = null // atmospheric overlay for sleeping gas -var/admin_notice = null // Admin notice that all clients see when joining the server +var/admin_notice = "" // Admin notice that all clients see when joining the server // nanomanager, the manager for Nano UIs diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 14b8ac47f88..4b1a3e225ea 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -189,22 +189,15 @@ L.resist() if("mov_intent") - if(iscarbon(usr)) - var/mob/living/carbon/C = usr - if(C.legcuffed) - C << "You are legcuffed! You cannot run until you get [C.legcuffed] removed!" - C.m_intent = "walk" //Just incase - C.hud_used.move_intent.icon_state = "walking" - return 1 - switch(usr.m_intent) - if("run") - usr.m_intent = "walk" - usr.hud_used.move_intent.icon_state = "walking" - if("walk") - usr.m_intent = "run" - usr.hud_used.move_intent.icon_state = "running" - if(istype(usr,/mob/living/carbon/alien/humanoid)) - usr.update_icons() + switch(usr.m_intent) + if("run") + usr.m_intent = "walk" + usr.hud_used.move_intent.icon_state = "walking" + if("walk") + usr.m_intent = "run" + usr.hud_used.move_intent.icon_state = "running" + if(istype(usr,/mob/living/carbon/alien/humanoid)) + usr.update_icons() if("Reset Machine") usr.unset_machine() if("internal") diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 058f68705d1..a25d52aca69 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -183,6 +183,7 @@ throwforce = 0 w_class = 3.0 origin_tech = "materials=1" + slowdown = 7 var/breakouttime = 300 //Deciseconds = 30s = 0.5 minute /obj/item/weapon/legcuffs/beartrap @@ -194,7 +195,7 @@ var/armed = 0 suicide_act(mob/user) - viewers(user) << "\red [user] is putting the [src.name] on \his head! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is putting the [src.name] on \his head! It looks like \he's trying to commit suicide." return (BRUTELOSS) /obj/item/weapon/legcuffs/beartrap/attack_self(mob/user as mob) diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index 8f2081b683d..43d97cb2edb 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -52,6 +52,7 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology", wordhide=pick(runewords) runewords-=wordhide + /obj/effect/rune desc = "" anchored = 1 @@ -210,9 +211,10 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology", return check_icon() + src.color = rgb(255, 0, 0) if(word1 == wordtravel && word2 == wordself) icon_state = "2" - src.icon += rgb(0, 0 , 255) + src.color = rgb(0, 0, 255) return if(word1 == wordjoin && word2 == wordblood && word3 == wordself) icon_state = "3" @@ -222,7 +224,7 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology", return if(word1 == wordsee && word2 == wordblood && word3 == wordhell) icon_state = "5" - src.icon += rgb(0, 0 , 255) + src.color = rgb(0, 0 , 255) return if(word1 == worddestr && word2 == wordsee && word3 == wordtech) icon_state = "5" @@ -232,73 +234,73 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology", return if(word1 == wordsee && word2 == wordhell && word3 == wordjoin) icon_state = "4" - src.icon += rgb(0, 0 , 255) + src.color = rgb(0, 0 , 255) return if(word1 == wordblood && word2 == wordjoin && word3 == wordhell) icon_state = "1" return if(word1 == wordhide && word2 == wordsee && word3 == wordblood) icon_state = "1" - src.icon += rgb(0, 0 , 255) + src.color = rgb(0, 0 , 255) return if(word1 == wordhell && word2 == wordtravel && word3 == wordself) icon_state = "6" - src.icon += rgb(0, 0 , 255) + src.color = rgb(0, 0 , 255) return if(word1 == wordblood && word2 == wordsee && word3 == wordtravel) icon_state = "6" return if(word1 == wordhell && word2 == wordtech && word3 == wordjoin) icon_state = "3" - src.icon += rgb(0, 0 , 255) + src.color = rgb(0, 0 , 255) return if(word1 == wordhell && word2 == wordblood && word3 == wordjoin) icon_state = "[rand(1,6)]" - src.icon += rgb(255, 255, 255) + src.color = rgb(255, 255, 255) return if(word1 == wordblood && word2 == wordsee && word3 == wordhide) icon_state = "4" - src.icon += rgb(255, 255, 255) + src.color = rgb(255, 255, 255) return if(word1 == worddestr && word2 == wordtravel && word3 == wordself) icon_state = "1" - src.icon += rgb(255, 0, 0) + src.color = rgb(255, 0, 0) return if(word1 == wordtravel && word2 == wordtech && word3 == wordother) icon_state = "4" - src.icon += rgb(255, 0, 255) + src.color = rgb(255, 0, 255) return if(word1 == wordjoin && word2 == wordother && word3 == wordself) icon_state = "2" - src.icon += rgb(0, 255, 0) + src.color = rgb(0, 255, 0) return if(word1 == wordhide && word2 == wordother && word3 == wordsee) icon_state = "4" - src.icon += rgb(0, 255, 0) + src.color = rgb(0, 255, 0) return if(word1 == worddestr && word2 == wordsee && word3 == wordother) icon_state = "4" - src.icon += rgb(0, 0, 255) + src.color = rgb(0, 0, 255) return if(word1 == worddestr && word2 == wordsee && word3 == wordblood) icon_state = "4" - src.icon += rgb(255, 0, 0) + src.color = rgb(255, 0, 0) return if(word1 == wordself && word2 == wordother && word3 == wordtech) icon_state = "3" - src.icon += rgb(200, 0, 0) + src.color = rgb(200, 0, 0) return if(word1 == wordtravel && word2 == wordother) icon_state = "1" - src.icon += rgb(200, 0, 0) + src.color = rgb(200, 0, 0) return if(word1 == wordjoin && word2 == wordhide && word3 == wordtech) icon_state = "2" - src.icon += rgb(100, 0, 100) + src.color = rgb(100, 0, 100) return icon_state="[rand(1,6)]" //random shape and color for dummy runes - src.icon -= rgb(255,255,255) - src.icon += rgb(rand(1,255),rand(1,255),rand(1,255)) + src.color = rgb(rand(1,255),rand(1,255),rand(1,255)) + /obj/item/weapon/tome name = "arcane tome" diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 31773227ac8..733113a0172 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -60,7 +60,6 @@ var/datum/wires/alarm/wires = null var/wiresexposed = 0 // If it's been screwdrivered open. var/aidisabled = 0 - var/AAlarmwires = 31 var/shorted = 0 var/buildstage = 2 // 2 = complete, 1 = no wires, 0 = circuit gone @@ -658,7 +657,7 @@ table tr:first-child th:first-child { border: none;} if(wiresexposed) switch(buildstage) if(2) - if(src.AAlarmwires == 0) // All wires cut + if(wires.wires_status == (2 ** wires.wire_count) - 1) // All wires cut icon_state = "alarm_b2" else icon_state = "alarmx" @@ -767,7 +766,7 @@ table tr:first-child th:first-child { border: none;} /obj/machinery/alarm/attackby(obj/item/W as obj, mob/user as mob) switch(buildstage) if(2) - if(istype(W, /obj/item/weapon/wirecutters) && AAlarmwires == 0) + if(istype(W, /obj/item/weapon/wirecutters) && wires.wires_status == (2 ** wires.wire_count) - 1) //this checks for all wires to be cut, disregard the ammount of wires, binary fuckery with the wires_status playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1) user << "You cut the final wires." var/obj/item/weapon/cable_coil/cable = new /obj/item/weapon/cable_coil( src.loc ) @@ -797,7 +796,7 @@ table tr:first-child th:first-child { border: none;} user << "\red Access denied." return if(1) - if(istype(W, /obj/item/weapon/crowbar) && AAlarmwires == 0) + if(istype(W, /obj/item/weapon/crowbar) && wires.wires_status == (2 ** wires.wire_count) - 1) user << "You pry out the circuit." playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1) spawn(20) @@ -820,7 +819,7 @@ table tr:first-child th:first-child { border: none;} del(cable) user << "You wire the air alarm!" - src.AAlarmwires = 31 + wires.wires_status = 0 buildstage = 2 update_icon() return diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm index 8300a0f7448..32308c33174 100644 --- a/code/game/objects/effects/decals/crayon.dm +++ b/code/game/objects/effects/decals/crayon.dm @@ -1,7 +1,8 @@ /obj/effect/decal/cleanable/crayon name = "rune" desc = "A rune drawn in crayon." - icon = 'icons/obj/rune.dmi' + icon = 'icons/effects/crayondecal.dmi' + icon_state = "rune1" layer = 2.1 anchored = 1 @@ -12,7 +13,7 @@ return - New(location,main = "#FFFFFF",shade = "#000000",var/type = "rune") + New(location,main = "#FFFFFF", var/type = "rune") ..() loc = location @@ -25,11 +26,6 @@ if("graffiti") type = pick("amyjon","face","matt","revolution","engie","guy","end","dwarf","uboa") - var/icon/mainOverlay = new/icon('icons/effects/crayondecal.dmi',"[type]",2.1) - var/icon/shadeOverlay = new/icon('icons/effects/crayondecal.dmi',"[type]s",2.1) - mainOverlay.Blend(main,ICON_ADD) - shadeOverlay.Blend(shade,ICON_ADD) - - overlays += mainOverlay - overlays += shadeOverlay \ No newline at end of file + icon_state = type + color = main \ No newline at end of file diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm index f4f81c07388..6440d78203b 100644 --- a/code/game/objects/effects/effect_system.dm +++ b/code/game/objects/effects/effect_system.dm @@ -544,7 +544,7 @@ steam.start() -- spawns the effect chemholder.reagents.copy_to(smoke, chemholder.reagents.total_volume / number) // copy reagents to each smoke, divide evenly if(color) - smoke.icon += color // give the smoke color, if it has any to begin with + smoke.color = color // give the smoke color, if it has any to begin with else // if no color, just use the old smoke icon smoke.icon = 'icons/effects/96x96.dmi' diff --git a/code/game/objects/explosion.dm b/code/game/objects/explosion.dm index 933baa31e02..9f440d4b4fa 100644 --- a/code/game/objects/explosion.dm +++ b/code/game/objects/explosion.dm @@ -54,7 +54,7 @@ proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impa if(adminlog) message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z])") - log_game("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area [epicenter.loc.name] ") + log_game("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z])") // Play sounds; we want sounds to be different depending on distance so we will manually do it ourselves. // Stereo users will also hear the direction of the explosion! diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 35f84590fad..6456e670447 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -1,21 +1,18 @@ /obj/item/toy/crayon/red icon_state = "crayonred" colour = "#DA0000" - shadeColour = "#810C0C" colourName = "red" /obj/item/toy/crayon/orange icon_state = "crayonorange" colour = "#FF9300" - shadeColour = "#A55403" colourName = "orange" /obj/item/toy/crayon/yellow icon_state = "crayonyellow" colour = "#FFF200" - shadeColour = "#886422" colourName = "yellow" @@ -23,21 +20,18 @@ /obj/item/toy/crayon/green icon_state = "crayongreen" colour = "#A8E61D" - shadeColour = "#61840F" colourName = "green" /obj/item/toy/crayon/blue icon_state = "crayonblue" colour = "#00B7EF" - shadeColour = "#0082A8" colourName = "blue" /obj/item/toy/crayon/purple icon_state = "crayonpurple" colour = "#DA00FF" - shadeColour = "#810CFF" colourName = "purple" @@ -46,31 +40,26 @@ icon_state = "crayonmime" desc = "A very sad-looking crayon." colour = "#FFFFFF" - shadeColour = "#000000" colourName = "mime" uses = 0 /obj/item/toy/crayon/mime/attack_self(mob/living/user as mob) //inversion - if(colour != "#FFFFFF" && shadeColour != "#000000") + if(colour != "#FFFFFF") colour = "#FFFFFF" - shadeColour = "#000000" - user << "You will now draw in white and black with this crayon." + user << "You will now draw in white with this crayon." else colour = "#000000" - shadeColour = "#FFFFFF" - user << "You will now draw in black and white with this crayon." + user << "You will now draw in black with this crayon." return /obj/item/toy/crayon/rainbow icon_state = "crayonrainbow" colour = "#FFF000" - shadeColour = "#000FFF" colourName = "rainbow" uses = 0 /obj/item/toy/crayon/rainbow/attack_self(mob/living/user as mob) colour = input(user, "Please select the main colour.", "Crayon colour") as color - shadeColour = input(user, "Please select the shade colour.", "Crayon colour") as color return /obj/item/toy/crayon/afterattack(atom/target, mob/user as mob, proximity) @@ -86,7 +75,7 @@ if("rune") user << "You start drawing a rune on the [target.name]." if(instant || do_after(user, 50)) - new /obj/effect/decal/cleanable/crayon(target,colour,shadeColour,drawtype) + new /obj/effect/decal/cleanable/crayon(target,colour,drawtype) user << "You finish drawing." if(uses) uses-- diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm index 2e1096009d7..9f8f0f484d0 100644 --- a/code/game/objects/items/devices/flash.dm +++ b/code/game/objects/items/devices/flash.dm @@ -159,11 +159,6 @@ del(animation) for(var/mob/living/carbon/M in oviewers(3, null)) - if(prob(50)) - if (locate(/obj/item/weapon/cloaking_device, M)) - for(var/obj/item/weapon/cloaking_device/S in M) - S.active = 0 - S.icon_state = "shield0" var/safety = M:eyecheck() if(!safety) if(!M.blinded) diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index ccb2501541f..1798038265e 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -94,6 +94,8 @@ "[user] activates \the [src]!", \ "You activate \the [src]!", "You hear a click.") + message_admins("Power sink activated by [key_name(user, user.client)](?) at ([x],[y],[z] - JMP)") + log_game("Power sink activated by [key_name(user)] at ([x],[y],[z])") set_mode(OPERATING) if(OPERATING) @@ -131,7 +133,9 @@ A.charging = 1 // It's no longer full if(power_drained > max_power * 0.95) + message_admins("Power sink at ([x],[y],[z] - JMP) is about to explode") playsound(src, 'sound/effects/screech.ogg', 100, 1, 1) + if(power_drained >= max_power) processing_objects.Remove(src) explosion(src.loc, 3,6,9,12) diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 6f501762296..cdf7b874461 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -250,8 +250,8 @@ attack_verb = list("stabbed", "slashed", "sliced", "cut") suicide_act(mob/user) - viewers(user) << pick("\red [user] is slitting \his wrists with the shard of glass! It looks like \he's trying to commit suicide.", \ - "\red [user] is slitting \his throat with the shard of glass! It looks like \he's trying to commit suicide.") + viewers(user) << pick("[user] is slitting \his wrists with the shard of glass! It looks like \he's trying to commit suicide.", \ + "[user] is slitting \his throat with the shard of glass! It looks like \he's trying to commit suicide.") return (BRUTELOSS) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 1b5d5549e30..04b6144a5d7 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -411,12 +411,11 @@ w_class = 1.0 attack_verb = list("attacked", "coloured") var/colour = "#FF0000" //RGB - var/shadeColour = "#220000" //RGB var/uses = 30 //0 for unlimited uses var/instant = 0 var/colourName = "red" //for updateIcon purposes suicide_act(mob/user) - viewers(user) << "\red [user] is jamming the [src.name] up \his nose and into \his brain. It looks like \he's trying to commit suicide." + viewers(user) << "[user] is jamming the [src.name] up \his nose and into \his brain. It looks like \he's trying to commit suicide." return (BRUTELOSS|OXYLOSS) New() ..() diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index b00dd4efbf3..d68111bcea5 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -21,7 +21,7 @@ /obj/item/weapon/plastique/suicide_act(var/mob/user) . = (BRUTELOSS) - viewers(user) << "\red [user] activates the C4 and holds it above his head! It looks like \he's going out with a bang!" + viewers(user) << "[user] activates the C4 and holds it above his head! It looks like \he's going out with a bang!" var/message_say = "FOR NO RAISIN!" if(user.mind) if(user.mind.special_role) @@ -34,6 +34,7 @@ message_say = "FOR NARSIE!" user.say(message_say) target = user + message_admins("[key_name(user, user.client)](?) suicided with C4 at ([x],[y],[z] - JMP)",0,1) explode(get_turf(user)) return . @@ -72,6 +73,12 @@ if (ismob(target)) add_logs(user, target, "planted [name] on") user.visible_message("\red [user.name] finished planting an explosive on [target.name]!") + message_admins("[key_name(user, user.client)](?) planted C4 on [key_name(target)](?) with [timer] second fuse",0,1) + log_game("[key_name(user)] planted C4 on [key_name(target)] with [timer] second fuse") + + else + message_admins("[key_name(user, user.client)](?) planted C4 on [target.name] at ([target.x],[target.y],[target.z] - JMP) with [timer] second fuse",0,1) + log_game("[key_name(user)] planted C4 on [target.name] at ([target.x],[target.y],[target.z]) with [timer] second fuse") target.overlays += image('icons/obj/assemblies.dmi', "plastic-explosive2") user << "Bomb has been planted. Timer counting down from [timer]." diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm index 36ea6b5521e..52503c244d7 100644 --- a/code/game/objects/items/weapons/grenades/flashbang.dm +++ b/code/game/objects/items/weapons/grenades/flashbang.dm @@ -22,12 +22,11 @@ B.update_icon() del(src) -/obj/item/weapon/grenade/flashbang/proc/bang(var/turf/T , var/mob/living/carbon/M) // Added a new proc called 'bang' that takes a location and a person to be banged. - if (locate(/obj/item/weapon/cloaking_device, M)) // Called during the loop that bangs people in lockers/containers and when banging - for(var/obj/item/weapon/cloaking_device/S in M) // people in normal view. Could theroetically be called during other explosions. - S.active = 0 // -- Polymorph - S.icon_state = "shield0" - +/obj/item/weapon/grenade/flashbang/proc/bang(var/turf/T , var/mob/living/carbon/M) + // Added a new proc called 'bang' that takes a location and a person to be banged. + // Called during the loop that bangs people in lockers/containers and when banging + // people in normal view. Could theroetically be called during other explosions. + // -- Polymorph M << "\red BANG" playsound(src.loc, 'sound/effects/bang.ogg', 25, 1) diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm index e5f13167d13..950938ffe16 100644 --- a/code/game/objects/items/weapons/kitchen.dm +++ b/code/game/objects/items/weapons/kitchen.dm @@ -82,9 +82,9 @@ throwforce = 10.0 suicide_act(mob/user) - viewers(user) << pick("\red [user] is slitting \his wrists with the [src.name]! It looks like \he's trying to commit suicide.", \ - "\red [user] is slitting \his throat with the [src.name]! It looks like \he's trying to commit suicide.", \ - "\red [user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.") + viewers(user) << pick("[user] is slitting \his wrists with the [src.name]! It looks like \he's trying to commit suicide.", \ + "[user] is slitting \his throat with the [src.name]! It looks like \he's trying to commit suicide.", \ + "[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.") return (BRUTELOSS) /obj/item/weapon/kitchen/utensil/knife/attack(target as mob, mob/living/user as mob) @@ -114,9 +114,9 @@ attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") suicide_act(mob/user) - viewers(user) << pick("\red [user] is slitting \his wrists with the [src.name]! It looks like \he's trying to commit suicide.", \ - "\red [user] is slitting \his throat with the [src.name]! It looks like \he's trying to commit suicide.", \ - "\red [user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.") + viewers(user) << pick("[user] is slitting \his wrists with the [src.name]! It looks like \he's trying to commit suicide.", \ + "[user] is slitting \his throat with the [src.name]! It looks like \he's trying to commit suicide.", \ + "[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.") return (BRUTELOSS) /obj/item/weapon/kitchenknife/ritual diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index 3167d70bc40..4cf38f86e70 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -2,8 +2,8 @@ var/active = 0 /obj/item/weapon/melee/energy/suicide_act(mob/user) - viewers(user) << pick("\red [user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.", \ - "\red [user] is falling on the [src.name]! It looks like \he's trying to commit suicide.") + viewers(user) << pick("[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.", \ + "[user] is falling on the [src.name]! It looks like \he's trying to commit suicide.") return (BRUTELOSS|FIRELOSS) /obj/item/weapon/melee/energy/rejects_blood() @@ -23,7 +23,7 @@ attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut") /obj/item/weapon/melee/energy/axe/suicide_act(mob/user) - viewers(user) << "\red [user] swings the [src.name] towards /his head! It looks like \he's trying to commit suicide." + viewers(user) << "[user] swings the [src.name] towards /his head! It looks like \he's trying to commit suicide." return (BRUTELOSS|FIRELOSS) /obj/item/weapon/melee/energy/axe/attack_self(mob/user) diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm index 8d9a12edccd..2c6de107607 100644 --- a/code/game/objects/items/weapons/melee/misc.dm +++ b/code/game/objects/items/weapons/melee/misc.dm @@ -12,7 +12,7 @@ attack_verb = list("flogged", "whipped", "lashed", "disciplined") /obj/item/weapon/melee/chainofcommand/suicide_act(mob/user) - viewers(user) << "\red [user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide." return (OXYLOSS) diff --git a/code/game/objects/items/weapons/paint.dm b/code/game/objects/items/weapons/paint.dm index e335729519a..48809459247 100644 --- a/code/game/objects/items/weapons/paint.dm +++ b/code/game/objects/items/weapons/paint.dm @@ -1,6 +1,5 @@ //NEVER USE THIS IT SUX -PETETHEGOAT - -var/global/list/cached_icons = list() +//IT SUCKS A BIT LESS -GIACOM /obj/item/weapon/paint gender= PLURAL @@ -85,17 +84,7 @@ var/global/list/cached_icons = list() return if(!istype(target) || istype(target, /turf/space)) return - var/ind = "[initial(target.icon)][item_color]" - if(!cached_icons[ind]) - var/icon/overlay = new/icon(initial(target.icon)) - overlay.Blend("#[item_color]",ICON_MULTIPLY) - overlay.SetIntensity(1.4) - target.icon = overlay - cached_icons[ind] = target.icon - paintleft-- - else - target.icon = cached_icons[ind] - paintleft-- + target.color = "#" + item_color return /obj/item/weapon/paint/paint_remover @@ -105,6 +94,6 @@ var/global/list/cached_icons = list() afterattack(turf/target, mob/user as mob,proximity) if(!proximity) return - if(istype(target) && target.icon != initial(target.icon)) - target.icon = initial(target.icon) + if(istype(target) && target.color != initial(target.color)) + target.color = initial(target.color) return diff --git a/code/game/objects/items/weapons/power_cells.dm b/code/game/objects/items/weapons/power_cells.dm index 92487dd540b..c3d89478410 100644 --- a/code/game/objects/items/weapons/power_cells.dm +++ b/code/game/objects/items/weapons/power_cells.dm @@ -20,7 +20,7 @@ var/construction_time=100 suicide_act(mob/user) - viewers(user) << "\red [user] is licking the electrodes of the [src.name]! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is licking the electrodes of the [src.name]! It looks like \he's trying to commit suicide." return (FIRELOSS) /obj/item/weapon/cell/crap diff --git a/code/game/objects/items/weapons/shields.dm b/code/game/objects/items/weapons/shields.dm index be08bb6b867..7796799294b 100644 --- a/code/game/objects/items/weapons/shields.dm +++ b/code/game/objects/items/weapons/shields.dm @@ -76,40 +76,4 @@ playsound(user, 'sound/weapons/saberoff.ogg', 50, 1) user << "[src] can now be concealed." reflect_chance = 0 - add_fingerprint(user) - - - -/obj/item/weapon/cloaking_device - name = "cloaking device" - desc = "Use this to become invisible to the human eyesocket." - icon = 'icons/obj/device.dmi' - icon_state = "shield0" - var/active = 0.0 - flags = CONDUCT - item_state = "electronic" - throwforce = 10.0 - throw_speed = 2 - throw_range = 10 - w_class = 2.0 - origin_tech = "magnets=3;syndicate=4" - - -/obj/item/weapon/cloaking_device/attack_self(mob/user as mob) - src.active = !( src.active ) - if (src.active) - user << "\blue The cloaking device is now active." - src.icon_state = "shield1" - else - user << "\blue The cloaking device is now inactive." - src.icon_state = "shield0" - src.add_fingerprint(user) - user.update_icons() - return - -/obj/item/weapon/cloaking_device/emp_act(severity) - active = 0 - icon_state = "shield0" - if(ismob(loc)) - loc:update_icons() - ..() + add_fingerprint(user) diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index cceaf7e281d..cf31fa357d4 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -15,7 +15,7 @@ var/hitcost = 1000 suicide_act(mob/user) - viewers(user) << "\red [user] is putting the live [name] in \his mouth! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is putting the live [name] in \his mouth! It looks like \he's trying to commit suicide." return (FIRELOSS) /obj/item/weapon/melee/baton/New() diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index a17fed909f4..7ad0e51004d 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -49,8 +49,8 @@ attack_verb = list("stabbed") suicide_act(mob/user) - viewers(user) << pick("\red [user] is stabbing the [src.name] into \his temple! It looks like \he's trying to commit suicide.", \ - "\red [user] is stabbing the [src.name] into \his heart! It looks like \he's trying to commit suicide.") + viewers(user) << pick("[user] is stabbing the [src.name] into \his temple! It looks like \he's trying to commit suicide.", \ + "[user] is stabbing the [src.name] into \his heart! It looks like \he's trying to commit suicide.") return(BRUTELOSS) /obj/item/weapon/screwdriver/New() diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index f9d03caf9e0..a4ac8a098f6 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -11,7 +11,7 @@ attack_verb = list("banned") /obj/item/weapon/banhammer/suicide_act(mob/user) - viewers(user) << "\red [user] is hitting \himself with the [src.name]! It looks like \he's trying to ban \himself from life." + viewers(user) << "[user] is hitting \himself with the [src.name]! It looks like \he's trying to ban \himself from life." return (BRUTELOSS|FIRELOSS|TOXLOSS|OXYLOSS) /obj/item/weapon/banhammer/attack(mob/M, mob/user) @@ -32,7 +32,7 @@ w_class = 1 suicide_act(mob/user) - viewers(user) << "\red [user] is impaling \himself with the [src.name]! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is impaling \himself with the [src.name]! It looks like \he's trying to commit suicide." return (BRUTELOSS|FIRELOSS) /obj/item/weapon/sord @@ -48,7 +48,7 @@ attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") suicide_act(mob/user) - viewers(user) << "\red [user] is impaling \himself with the [src.name]! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is impaling \himself with the [src.name]! It looks like \he's trying to commit suicide." return(BRUTELOSS) /obj/item/weapon/claymore @@ -67,7 +67,7 @@ return 1 suicide_act(mob/user) - viewers(user) << "\red [user] is falling on the [src.name]! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is falling on the [src.name]! It looks like \he's trying to commit suicide." return(BRUTELOSS) /obj/item/weapon/claymore/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) @@ -88,7 +88,7 @@ attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") suicide_act(mob/user) - viewers(user) << "\red [user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku." + viewers(user) << "[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku." return(BRUTELOSS) /obj/item/weapon/katana/IsShield() diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index 124a568281b..2224652f68b 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -27,6 +27,8 @@ new /obj/item/clothing/under/rank/bartender(src) new /obj/item/clothing/tie/waistcoat(src) new /obj/item/clothing/tie/waistcoat(src) + new /obj/item/clothing/head/soft/black(src) + new /obj/item/clothing/head/soft/black(src) new /obj/item/clothing/shoes/black(src) new /obj/item/clothing/shoes/black(src) @@ -46,6 +48,10 @@ new /obj/item/clothing/under/waiter(src) new /obj/item/device/radio/headset/headset_srv(src) new /obj/item/device/radio/headset/headset_srv(src) + new /obj/item/clothing/tie/waistcoat(src) + new /obj/item/clothing/tie/waistcoat(src) + new /obj/item/clothing/head/soft/black(src) + new /obj/item/clothing/head/soft/black(src) new /obj/item/weapon/storage/box/mousetraps(src) new /obj/item/weapon/storage/box/mousetraps(src) new /obj/item/clothing/under/rank/chef(src) diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index 04cb0538675..8b26ac4ced2 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -64,6 +64,9 @@ new /obj/item/clothing/head/that(src) new /obj/item/clothing/head/that(src) new /obj/item/clothing/head/that(src) + new /obj/item/clothing/head/soft/black(src) + new /obj/item/clothing/head/soft/black(src) + new /obj/item/clothing/head/soft/black(src) return @@ -231,6 +234,8 @@ new /obj/item/clothing/shoes/black(src) new /obj/item/clothing/gloves/black(src) new /obj/item/clothing/gloves/black(src) + new /obj/item/clothing/head/soft/black(src) + new /obj/item/clothing/head/soft/black(src) return diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index c1325504845..3e41725b4aa 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -545,18 +545,21 @@ var/global/floorIsLava = 0 set desc ="Set an announcement that appears to everyone who joins the server. Only lasts this round" if(!check_rights(0)) return - admin_notice = input(src,"Set a public notice for this round. Everyone who joins the server will see it.\n(Leaving it blank will delete the current notice):","Set Notice",admin_notice) as null|message - switch(admin_notice) - if(null) - return - if("") - message_admins("[key_name(usr)] removed the admin notice.") - log_admin("[key_name(usr)] removed the admin notice:\n[admin_notice]") - return - message_admins("[key_name(usr)] set the admin notice.") - log_admin("[key_name(usr)] set the admin notice:\n[admin_notice]") - world << "\blue Admin Notice:\n \t [admin_notice]" + var/new_admin_notice = input(src,"Set a public notice for this round. Everyone who joins the server will see it.\n(Leaving it blank will delete the current notice):","Set Notice",admin_notice) as message|null + if(new_admin_notice == null) + return + if(new_admin_notice == admin_notice) + return + if(new_admin_notice == "") + message_admins("[key_name(usr)] removed the admin notice.") + log_admin("[key_name(usr)] removed the admin notice:\n[admin_notice]") + else + message_admins("[key_name(usr)] set the admin notice.") + log_admin("[key_name(usr)] set the admin notice:\n[new_admin_notice]") + world << "Admin Notice:\n \t [new_admin_notice]" feedback_add_details("admin_verb","SAN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + admin_notice = new_admin_notice + return /datum/admins/proc/toggleooc() set category = "Server" diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index b300d4bd01d..01ca93078cf 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -689,8 +689,6 @@ var/global/list/g_fancy_list_of_safe_types = null M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(M), slot_glasses) M.equip_to_slot_or_del(new /obj/item/clothing/head/det_hat(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/weapon/cloaking_device(M), slot_r_store) - M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile(M), slot_r_hand) M.equip_to_slot_or_del(new /obj/item/ammo_box/a357(M), slot_l_store) @@ -800,7 +798,6 @@ var/global/list/g_fancy_list_of_safe_types = null M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses) M.equip_to_slot_or_del(new /obj/item/clothing/tie/waistcoat(M), slot_wear_suit) M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword(M), slot_l_store) - M.equip_to_slot_or_del(new /obj/item/weapon/cloaking_device(M), slot_r_store) var/obj/item/weapon/storage/secure/briefcase/sec_briefcase = new(M) for(var/obj/item/briefcase_item in sec_briefcase) diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 868303b0e75..377772dc0f7 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -124,25 +124,7 @@ name = "kitty ears" desc = "A pair of kitty ears. Meow!" icon_state = "kitty" - var/icon/mob - var/icon/mob2 -/obj/item/clothing/head/kitty/equipped(mob/user, slot) - if(user && slot == slot_head) - update_icon(user) - -//ffffuck you kitty ears. this proc is a) retarded and b) seems to fail around fifty percent of the time. idgaf tbh -/obj/item/clothing/head/kitty/update_icon(mob/living/carbon/human/user) - if(!istype(user)) return - mob = new/icon("icon" = 'icons/mob/head.dmi', "icon_state" = "kitty") - mob2 = new/icon("icon" = 'icons/mob/head.dmi', "icon_state" = "kitty2") - mob.Blend("#[user.hair_color]", ICON_ADD) - mob2.Blend("#[user.hair_color]", ICON_ADD) - - var/icon/earbit = new/icon("icon" = 'icons/mob/head.dmi', "icon_state" = "kittyinner") - var/icon/earbit2 = new/icon("icon" = 'icons/mob/head.dmi', "icon_state" = "kittyinner2") - mob.Blend(earbit, ICON_OVERLAY) - mob2.Blend(earbit2, ICON_OVERLAY) /obj/item/clothing/head/hardhat/reindeer name = "novelty reindeer hat" diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index 356d04302fe..34ad82258c2 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -74,6 +74,12 @@ icon_state = "purplesoft" item_color = "purple" +/obj/item/clothing/head/soft/black + name = "black cap" + desc = "It's a baseball hat in a tasteless black colour." + icon_state = "blacksoft" + item_color = "black" + /obj/item/clothing/head/soft/rainbow name = "rainbow cap" desc = "It's a baseball hat in a bright rainbow of colors." diff --git a/code/modules/events/ninja.dm b/code/modules/events/ninja.dm index 6efe7f928ad..1839dd59ea5 100644 --- a/code/modules/events/ninja.dm +++ b/code/modules/events/ninja.dm @@ -2207,7 +2207,7 @@ ________________________________________________________________________________ spawn(0) anim(U.loc,U,'icons/mob/mob.dmi',,"cloak",,U.dir) s_active=!s_active - U.update_icons() //update their icons + U.alpha = 0 U << "\blue You are now invisible to normal detection." for(var/mob/O in oviewers(U)) O.show_message("[U.name] vanishes into thin air!",1) @@ -2219,7 +2219,7 @@ ________________________________________________________________________________ spawn(0) anim(U.loc,U,'icons/mob/mob.dmi',,"uncloak",,U.dir) s_active=!s_active - U.update_icons() //update their icons + U.alpha = 255 U << "\blue You are now visible." for(var/mob/O in oviewers(U)) O.show_message("[U.name] appears from thin air!",1) diff --git a/code/modules/hydroponics/growninedible.dm b/code/modules/hydroponics/growninedible.dm index bbaa82086e1..fe1b496b6de 100644 --- a/code/modules/hydroponics/growninedible.dm +++ b/code/modules/hydroponics/growninedible.dm @@ -135,6 +135,6 @@ force = round((5+potency/2.5), 1) suicide_act(mob/user) - viewers(user) << "\red [user] is eating some of the [src.name]! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is eating some of the [src.name]! It looks like \he's trying to commit suicide." return (BRUTELOSS|TOXLOSS) diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 861e6bc7b84..be202d3f237 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -30,7 +30,7 @@ var/WeedKillStr = 2 suicide_act(mob/user) - viewers(user) << "\red [user] is huffing the [src.name]! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is huffing the [src.name]! It looks like \he's trying to commit suicide." return (TOXLOSS) /obj/item/weapon/pestspray // -- Skie @@ -49,7 +49,7 @@ var/PestKillStr = 2 suicide_act(mob/user) - viewers(user) << "\red [user] is huffing the [src.name]! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is huffing the [src.name]! It looks like \he's trying to commit suicide." return (TOXLOSS) /obj/item/weapon/minihoe // -- Numbers diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm index d0ccb3dd843..82ecbe8bb4b 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm @@ -6,6 +6,7 @@ icon_state = "aliend_s" plasma_rate = 15 + /mob/living/carbon/alien/humanoid/drone/New() create_reagents(100) if(src.name == "alien drone") @@ -14,8 +15,13 @@ verbs.Add(/mob/living/carbon/alien/humanoid/proc/resin,/mob/living/carbon/alien/humanoid/proc/corrosive_acid) ..() //Drones use the same base as generic humanoids. -//Drone verbs +/mob/living/carbon/alien/humanoid/drone/movement_delay() + . = ..() + . += 1 + + +//Drone verbs /mob/living/carbon/alien/humanoid/drone/verb/evolve() // -- TLE set name = "Evolve (500)" set desc = "Produce an interal egg sac capable of spawning children. Only one queen can exist at a time." diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm index 428dc0d0b0b..be54c36fe0a 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -8,6 +8,7 @@ icon_state = "alienh_s" plasma_rate = 5 + /mob/living/carbon/alien/humanoid/hunter/New() create_reagents(100) if(name == "alien hunter") @@ -15,37 +16,37 @@ real_name = name ..() -/mob/living/carbon/alien/humanoid/hunter +/mob/living/carbon/alien/humanoid/hunter/handle_regular_hud_updates() + ..() //-Yvarov - - handle_regular_hud_updates() - - ..() //-Yvarov - - if (healths) - if (stat != 2) - switch(health) - if(150 to INFINITY) - healths.icon_state = "health0" - if(100 to 150) - healths.icon_state = "health1" - if(50 to 100) - healths.icon_state = "health2" - if(25 to 50) - healths.icon_state = "health3" - if(0 to 25) - healths.icon_state = "health4" - else - healths.icon_state = "health5" - else - healths.icon_state = "health6" - - - handle_environment() - if(m_intent == "run" || resting) - ..() + if (healths) + if (stat != 2) + switch(health) + if(150 to INFINITY) + healths.icon_state = "health0" + if(100 to 150) + healths.icon_state = "health1" + if(50 to 100) + healths.icon_state = "health2" + if(25 to 50) + healths.icon_state = "health3" + if(0 to 25) + healths.icon_state = "health4" + else + healths.icon_state = "health5" else - adjustToxLoss(-heal_rate) + healths.icon_state = "health6" + + +/mob/living/carbon/alien/humanoid/hunter/handle_environment() + if(m_intent == "run" || resting) + ..() + else + adjustToxLoss(-heal_rate) + +/mob/living/carbon/alien/humanoid/hunter/movement_delay() + . = -1 //hunters are sanic + . += ..() //but they still need to slow down on stun //Hunter verbs diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm index d40108475c3..f6d14be8d91 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm @@ -8,6 +8,7 @@ icon_state = "aliens_s" plasma_rate = 10 + /mob/living/carbon/alien/humanoid/sentinel/New() create_reagents(100) if(name == "alien sentinel") @@ -16,27 +17,27 @@ verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid,/mob/living/carbon/alien/humanoid/proc/neurotoxin) ..() -/mob/living/carbon/alien/humanoid/sentinel +/mob/living/carbon/alien/humanoid/sentinel/handle_regular_hud_updates() + ..() //-Yvarov + if (healths) + if (stat != 2) + switch(health) + if(125 to INFINITY) + healths.icon_state = "health0" + if(100 to 125) + healths.icon_state = "health1" + if(75 to 100) + healths.icon_state = "health2" + if(25 to 75) + healths.icon_state = "health3" + if(0 to 25) + healths.icon_state = "health4" + else + healths.icon_state = "health5" + else + healths.icon_state = "health6" - handle_regular_hud_updates() - - ..() //-Yvarov - - if (healths) - if (stat != 2) - switch(health) - if(125 to INFINITY) - healths.icon_state = "health0" - if(100 to 125) - healths.icon_state = "health1" - if(75 to 100) - healths.icon_state = "health2" - if(25 to 75) - healths.icon_state = "health3" - if(0 to 25) - healths.icon_state = "health4" - else - healths.icon_state = "health5" - else - healths.icon_state = "health6" +/mob/living/carbon/alien/humanoid/sentinel/movement_delay() + . = ..() + . += 1 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index f7204a30410..9a5d9114972 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -40,16 +40,8 @@ now_pushing = null /mob/living/carbon/alien/humanoid/movement_delay() - var/tally = 0 - if (istype(src, /mob/living/carbon/alien/humanoid/queen)) - tally += 5 - if (istype(src, /mob/living/carbon/alien/humanoid/drone)) - tally += 2 - if (istype(src, /mob/living/carbon/alien/humanoid/sentinel)) - tally += 1 - if (istype(src, /mob/living/carbon/alien/humanoid/hunter)) - tally = -1 // hunters go supersuperfast - return (tally + move_delay_add + config.alien_delay) + . = ..() + . += move_delay_add + config.alien_delay //move_delay_add is used to slow aliens with stuns ///mob/living/carbon/alien/humanoid/bullet_act(var/obj/item/projectile/Proj) taken care of in living diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 30d8dc8b89f..9addcb5a57f 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -25,30 +25,30 @@ verbs -= /mob/living/carbon/alien/verb/ventcrawl ..() +/mob/living/carbon/alien/humanoid/queen/handle_regular_hud_updates() + ..() //-Yvarov -/mob/living/carbon/alien/humanoid/queen + if (src.healths) + if (src.stat != 2) + switch(health) + if(250 to INFINITY) + src.healths.icon_state = "health0" + if(175 to 250) + src.healths.icon_state = "health1" + if(100 to 175) + src.healths.icon_state = "health2" + if(50 to 100) + src.healths.icon_state = "health3" + if(0 to 50) + src.healths.icon_state = "health4" + else + src.healths.icon_state = "health5" + else + src.healths.icon_state = "health6" - handle_regular_hud_updates() - - ..() //-Yvarov - - if (src.healths) - if (src.stat != 2) - switch(health) - if(250 to INFINITY) - src.healths.icon_state = "health0" - if(175 to 250) - src.healths.icon_state = "health1" - if(100 to 175) - src.healths.icon_state = "health2" - if(50 to 100) - src.healths.icon_state = "health3" - if(0 to 50) - src.healths.icon_state = "health4" - else - src.healths.icon_state = "health5" - else - src.healths.icon_state = "health6" +/mob/living/carbon/alien/humanoid/queen/movement_delay() + . = ..() + . += 5 //Queen verbs diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 56903541193..b96a7e08eb1 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -8,6 +8,11 @@ if((FAT in src.mutations) && src.m_intent == "run" && src.bodytemperature <= 360) src.bodytemperature += 2 +/mob/living/carbon/movement_delay() + . = 0 + if(legcuffed) + . += legcuffed.slowdown + /mob/living/carbon/relaymove(var/mob/user, direction) if(user in src.stomach_contents) if(prob(40)) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index edb6e5b37ab..923821e1658 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -1,33 +1,34 @@ /mob/living/carbon/human/movement_delay() - var/tally = 0 - - if(reagents.has_reagent("hyperzine")) return -1 - - if(reagents.has_reagent("nuka_cola")) return -1 - - if (istype(loc, /turf/space)) return -1 // It's hard to be slowed down in space by... anything + if(istype(loc, /turf/space)) + return -1 //It's hard to be slowed down in space by... anything + if(reagents.has_reagent("hyperzine")) + return -1 + if(reagents.has_reagent("nuka_cola")) + return -1 + . = 0 var/health_deficiency = (100 - health - halloss) - if(health_deficiency >= 40) tally += (health_deficiency / 25) + if(health_deficiency >= 40) + . += (health_deficiency / 25) - var/hungry = (500 - nutrition)/5 // So overeat would be 100 and default level would be 80 - if (hungry >= 70) tally += hungry/50 + var/hungry = (500 - nutrition) / 5 //So overeat would be 100 and default level would be 80 + if(hungry >= 70) + . += hungry / 50 if(wear_suit) - tally += wear_suit.slowdown - + . += wear_suit.slowdown if(shoes) - tally += shoes.slowdown - + . += shoes.slowdown if(back) - tally += back.slowdown + . += back.slowdown - if(FAT in src.mutations) - tally += 1.5 - if (bodytemperature < 283.222) - tally += (283.222 - bodytemperature) / 10 * 1.75 + if(FAT in mutations) + . += 1.5 + if(bodytemperature < 283.222) + . += (283.222 - bodytemperature) / 10 * 1.75 - return (tally+config.human_delay) + . += ..() + . += config.human_delay /mob/living/carbon/human/Process_Spacemove(var/check_drift = 0) //Can we act diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 302a2f442fa..113a8aa1658 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -118,8 +118,7 @@ Please contact me on #coderbus IRC. ~Carnie x overlays_standing[cache_index] = null //UPDATES OVERLAYS FROM OVERLAYS_LYING/OVERLAYS_STANDING -//this proc is messy as I was forced to include some old laggy cloaking code to it so that I don't break cloakers -//I'll work on removing that stuff by rewriting some of the cloaking stuff at a later date. + /mob/living/carbon/human/update_icons() lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again update_hud() //TODO: remove the need for this @@ -130,25 +129,9 @@ Please contact me on #coderbus IRC. ~Carnie x for(var/thing in overlays_lying) if(thing) overlays += thing else - var/stealth = 0 - if(istype(wear_suit, /obj/item/clothing/suit/space/space_ninja) && wear_suit:s_active) - stealth = 1 - else - //cloaking devices. //TODO: get rid of this :< - for(var/obj/item/weapon/cloaking_device/S in list(l_hand,r_hand,belt,l_store,r_store)) - if(S.active) - stealth = 1 - break - if(stealth) - icon_state = "body_cloaked" - if(overlays_standing[L_HAND_LAYER]) - overlays += overlays_standing[L_HAND_LAYER] - if(overlays_standing[R_HAND_LAYER]) - overlays += overlays_standing[R_HAND_LAYER] - else - icon_state = "[base_icon_state]_s" - for(var/thing in overlays_standing) - if(thing) overlays += thing + icon_state = "[base_icon_state]_s" + for(var/thing in overlays_standing) + if(thing) overlays += thing @@ -192,10 +175,16 @@ Please contact me on #coderbus IRC. ~Carnie x if(S) var/icon/facial_s = icon("icon"=S.icon, "icon_state"="[S.icon_state]_s") var/icon/facial_l = icon("icon"=S.icon, "icon_state"="[S.icon_state]_l") - facial_s.Blend("#[facial_hair_color]", ICON_ADD) - facial_l.Blend("#[facial_hair_color]", ICON_ADD) - standing += image("icon"=facial_s, "layer"=-HAIR_LAYER) - lying += image("icon"=facial_l, "layer"=-HAIR_LAYER) + + var/image/img_facial_s = image("icon"=facial_s, "layer"=-HAIR_LAYER) + var/image/img_facial_l = image("icon"=facial_l, "layer"=-HAIR_LAYER) + + var/new_color = "#" + facial_hair_color + img_facial_l.color = new_color + img_facial_s.color = new_color + + standing += img_facial_s + lying += img_facial_l //Applies the debrained overlay if there is no brain if(!getorgan(/obj/item/organ/brain)) @@ -206,10 +195,16 @@ Please contact me on #coderbus IRC. ~Carnie x if(S) var/icon/hair_s = icon("icon"=S.icon, "icon_state"="[S.icon_state]_s") var/icon/hair_l = icon("icon"=S.icon, "icon_state"="[S.icon_state]_l") - hair_s.Blend("#[hair_color]", ICON_ADD) - hair_l.Blend("#[hair_color]", ICON_ADD) - standing += image("icon"=hair_s, "layer"=-HAIR_LAYER) - lying += image("icon"=hair_l, "layer"=-HAIR_LAYER) + + var/image/img_hair_s = image("icon"=hair_s, "layer"=-HAIR_LAYER) + var/image/img_hair_l = image("icon"=hair_l, "layer"=-HAIR_LAYER) + + var/new_color = "#" + hair_color + img_hair_s.color = new_color + img_hair_l.color = new_color + + standing += img_hair_s + lying += img_hair_l if(lying.len) overlays_lying[HAIR_LAYER] = lying @@ -266,10 +261,17 @@ Please contact me on #coderbus IRC. ~Carnie x if(!dna || dna.mutantrace != "skeleton") var/icon/eyes_s = icon('icons/mob/human_face.dmi', "eyes_s") var/icon/eyes_l = icon('icons/mob/human_face.dmi', "eyes_l") - eyes_s.Blend("#[eye_color]", ICON_ADD) - eyes_l.Blend("#[eye_color]", ICON_ADD) - standing += image("icon"=eyes_s, "layer"=-BODY_LAYER) - lying += image("icon"=eyes_l, "layer"=-BODY_LAYER) + + var/image/img_eyes_s = image("icon"=eyes_s, "layer"=-BODY_LAYER) + var/image/img_eyes_l = image("icon"=eyes_l, "layer"=-BODY_LAYER) + + var/new_color = "#" + eye_color + + img_eyes_s.color = new_color + img_eyes_l.color = new_color + + standing += img_eyes_s + lying += img_eyes_l //Underwear if(underwear) @@ -522,15 +524,9 @@ Please contact me on #coderbus IRC. ~Carnie x head.screen_loc = ui_head //TODO client.screen += head - var/image/lying - var/image/standing - if(istype(head,/obj/item/clothing/head/kitty)) - var/obj/item/clothing/head/kitty/K = head - lying = image("icon"=K.mob2, "layer"=-HEAD_LAYER) - standing = image("icon"=K.mob, "layer"=-HEAD_LAYER) - else - lying = image("icon"='icons/mob/head.dmi', "icon_state"="[head.icon_state]2", "layer"=-HEAD_LAYER) - standing = image("icon"='icons/mob/head.dmi', "icon_state"="[head.icon_state]", "layer"=-HEAD_LAYER) + var/image/lying = image("icon"='icons/mob/head.dmi', "icon_state"="[head.icon_state]2", "layer"=-HEAD_LAYER) + var/image/standing = image("icon"='icons/mob/head.dmi', "icon_state"="[head.icon_state]", "layer"=-HEAD_LAYER) + overlays_lying[HEAD_LAYER] = lying overlays_standing[HEAD_LAYER] = standing @@ -667,11 +663,6 @@ Please contact me on #coderbus IRC. ~Carnie x remove_overlay(LEGCUFF_LAYER) if(legcuffed) - if(src.m_intent != "walk") - src.m_intent = "walk" - if(src.hud_used && src.hud_used.move_intent) - src.hud_used.move_intent.icon_state = "walking" - overlays_lying[LEGCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="legcuff2", "layer"=-LEGCUFF_LAYER) overlays_standing[LEGCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="legcuff1", "layer"=-LEGCUFF_LAYER) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 786eec71a0f..88167c46fb3 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -18,13 +18,6 @@ /mob/living/bullet_act(obj/item/projectile/P, def_zone) - var/obj/item/weapon/cloaking_device/C = locate((/obj/item/weapon/cloaking_device) in src) - if(C && C.active) - C.attack_self(src)//Should shut it off - update_icons() - src << "Your [C] was disrupted!" - Stun(2) - var/armor = run_armor_check(def_zone, P.flag) if(!P.nodamage) apply_damage(P.damage, P.damage_type, def_zone, armor) diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 2d5e206783b..80e9f8d41ea 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -200,9 +200,9 @@ if("run") if(mob.drowsyness > 0) move_delay += 6 - move_delay += 1 + config.run_speed + move_delay += config.run_speed if("walk") - move_delay += 7 + config.walk_speed + move_delay += config.walk_speed move_delay += mob.movement_delay() if(config.Tickcomp) diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index ca2309473a7..ef774523cda 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -32,18 +32,18 @@ datum/preferences preview_icon.Blend(new /icon(S.icon, "[S.icon_state]_s"), ICON_OVERLAY) var/icon/eyes_s = new/icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = "eyes_s") - eyes_s.Blend("#[eye_color]", ICON_ADD) + eyes_s.Blend("#[eye_color]", ICON_MULTIPLY) S = hair_styles_list[hair_style] if(S) var/icon/hair_s = new/icon("icon" = S.icon, "icon_state" = "[S.icon_state]_s") - hair_s.Blend("#[hair_color]", ICON_ADD) + hair_s.Blend("#[hair_color]", ICON_MULTIPLY) eyes_s.Blend(hair_s, ICON_OVERLAY) S = facial_hair_styles_list[facial_hair_style] if(S) var/icon/facial_s = new/icon("icon" = S.icon, "icon_state" = "[S.icon_state]_s") - facial_s.Blend("#[facial_hair_color]", ICON_ADD) + facial_s.Blend("#[facial_hair_color]", ICON_MULTIPLY) eyes_s.Blend(facial_s, ICON_OVERLAY) var/icon/clothes_s = null diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 8b88102db8e..fb7912e7c61 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -214,9 +214,9 @@ suicide_act(mob/user) if(locate(/obj/structure/stool) in user.loc) - viewers(user) << "\red [user] is making a noose with the [src.name]! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is making a noose with the [src.name]! It looks like \he's trying to commit suicide." else - viewers(user) << "\red [user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide." return(OXYLOSS) diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 2157c61ecc8..65c37bb0cd8 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -62,6 +62,7 @@ var/global/list/uneatable = list( switch(severity) if(1.0) if(prob(25)) + investigate_log("has been destroyed by an explosion.","singulo") del(src) return else @@ -189,6 +190,7 @@ var/global/list/uneatable = list( /obj/machinery/singularity/proc/check_energy() if(energy <= 0) + investigate_log("collapsed.","singulo") del(src) return 0 switch(energy)//Some of these numbers might need to be changed up later -Mport @@ -251,6 +253,7 @@ var/global/list/uneatable = list( if(H.mind.assigned_role == "Clown") gain = rand(-300, 300) // HONK + investigate_log(" has consumed [key_name(A)].","singulo") //Oh that's where the clown ended up! spawn() A:gib() sleep(1) diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index e5f08b47f1e..706d5fbb2a4 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -42,6 +42,11 @@ updateicon() return +/obj/machinery/power/smes/Del() + message_admins("SMES deleted at ([x],[y],[z] - JMP)") + log_game("SMES deleted at ([x],[y],[z])") + investigate_log("deleted at ([x],[y],[z])","singulo") + ..() /obj/machinery/power/smes/proc/updateicon() overlays.Cut() @@ -114,6 +119,7 @@ if(charge < 0.0001) online = 0 // stop output if charge falls to zero + investigate_log("lost power and turned off","singulo") // only update icon if state changed if(last_disp != chargedisplay() || last_chrg != charging || last_onln != online) @@ -219,11 +225,14 @@ chargemode = !chargemode if(!chargemode) charging = 0 + investigate_log("input/output; [chargelevel>output?"":""][chargelevel]/[output] | Output-mode: [online?"on":"off"] | Input-mode: [chargemode?"auto":"off"] by [usr.key]","singulo") updateicon() else if( href_list["online"] ) online = !online + investigate_log("input/output; [chargelevel>output?"":""][chargelevel]/[output] | Output-mode: [online?"on":"off"] | Input-mode: [chargemode?"auto":"off"] by [usr.key]","singulo") updateicon() + else if( href_list["input"] ) var/i = text2num(href_list["input"]) @@ -250,6 +259,8 @@ chargelevel += d chargelevel = max(0, min(SMESMAXCHARGELEVEL, chargelevel)) // clamp to range + investigate_log("input/output; [chargelevel>output?"":""][chargelevel]/[output] | Output-mode: [online?"on":"off"] | Input-mode: [chargemode?"auto":"off"] by [usr.key]","singulo") + src.updateUsrDialog() else if( href_list["output"] ) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index a70af0898b9..673e08aefaa 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -136,7 +136,7 @@ if(80 to 90) filling.icon_state = "[icon_state]80" if(91 to INFINITY) filling.icon_state = "[icon_state]100" - filling.icon += mix_color_from_reagents(reagents.reagent_list) + filling.color = mix_color_from_reagents(reagents.reagent_list) overlays += filling /obj/item/weapon/reagent_containers/glass/beaker/large diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 57d77408756..4e816b54cc3 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -43,7 +43,7 @@ var/obj/effect/decal/chempuff/D = new/obj/effect/decal/chempuff(get_turf(src)) D.create_reagents(amount_per_transfer_from_this) reagents.trans_to(D, amount_per_transfer_from_this, 1/3) - D.icon += mix_color_from_reagents(D.reagents.reagent_list) + D.color = mix_color_from_reagents(D.reagents.reagent_list) spawn(0) for(var/i=0, i<3, i++) @@ -181,7 +181,7 @@ D.create_reagents(amount_per_transfer_from_this) src.reagents.trans_to(D, amount_per_transfer_from_this) - D.icon += mix_color_from_reagents(D.reagents.reagent_list) + D.color = mix_color_from_reagents(D.reagents.reagent_list) Sprays[i] = D diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 3e78f33fbca..a640d4ef451 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -190,7 +190,7 @@ if(10) filling.icon_state = "syringe10" if(15) filling.icon_state = "syringe15" - filling.icon += mix_color_from_reagents(reagents.reagent_list) + filling.color = mix_color_from_reagents(reagents.reagent_list) overlays += filling diff --git a/code/modules/recycling/disposal-construction.dm b/code/modules/recycling/disposal-construction.dm index e914d730c2d..83dfd5f4bb2 100644 --- a/code/modules/recycling/disposal-construction.dm +++ b/code/modules/recycling/disposal-construction.dm @@ -72,8 +72,8 @@ else icon_state = base_state - if(invisibility) // if invisible, fade icon - icon -= rgb(0,0,0,128) + // if invisible, fade icon + alpha = (invisibility ? 0 : 255) // hide called by levelupdate if turf intact status changes // change visibility status and force update of icon diff --git a/code/modules/research/rd-readme.dm b/code/modules/research/rd-readme.dm index 8680460c227..5c42b3e930b 100644 --- a/code/modules/research/rd-readme.dm +++ b/code/modules/research/rd-readme.dm @@ -189,7 +189,7 @@ When thinking about new stuff, check here to see if there are any slots unfilled //SYNDICATE 1 | Sleepypen 2 | TYRANT Module, Emag -3 | Cloaking Device, Power Sink +3 | Power Sink 4 | 5 | 6 | diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index dd368880ef7..e456109a954 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -51,8 +51,8 @@ attack_verb = list("drilled") suicide_act(mob/user) - viewers(user) << pick("/red [user] is pressing [src] to \his temple and activating it! It looks like \he's trying to commit suicide.", \ - "/red [user] is pressing [src] to \his chest and activating it! It looks like \he's trying to commit suicide.") + viewers(user) << pick("[user] is pressing [src] to \his temple and activating it! It looks like \he's trying to commit suicide.", \ + "[user] is pressing [src] to \his chest and activating it! It looks like \he's trying to commit suicide.") return (BRUTELOSS) @@ -73,9 +73,9 @@ attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") suicide_act(mob/user) - viewers(user) << pick("\red [user] is slitting \his wrists with [src]! It looks like \he's trying to commit suicide.", \ - "\red [user] is slitting \his throat with [src]! It looks like \he's trying to commit suicide.", \ - "\red [user] is slitting \his stomach open with [src]! It looks like \he's trying to commit seppuku.") + viewers(user) << pick("[user] is slitting \his wrists with [src]! It looks like \he's trying to commit suicide.", \ + "[user] is slitting \his throat with [src]! It looks like \he's trying to commit suicide.", \ + "[user] is slitting \his stomach open with [src]! It looks like \he's trying to commit seppuku.") return (BRUTELOSS) diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm index d6c2246d76d..b0761e14c37 100644 --- a/code/modules/telesci/telesci_computer.dm +++ b/code/modules/telesci/telesci_computer.dm @@ -193,7 +193,6 @@ temp_msg += "
Calibration required soon." else temp_msg += "Data printed below." - investigate_log("[key_name(usr)]/[user] has teleported with Telescience at [trueX],[trueY],[z_co], in [A ? A.name : "null area"].","telesci") var/sparks = get_turf(target) var/datum/effect/effect/system/spark_spread/y = new /datum/effect/effect/system/spark_spread @@ -202,6 +201,9 @@ var/turf/source = target var/turf/dest = get_turf(telepad) + var/log_msg = "" + log_msg += ": [key_name(user)] has teleported " + if(sending) source = dest dest = target @@ -217,11 +219,39 @@ // TP people on office chairs if(L.buckled.anchored) continue + + log_msg += "[key_name(L)] (on a chair), " else continue else if(!isobserver(ROI)) continue + if(ismob(ROI)) + var/mob/T = ROI + log_msg += "[key_name(T)], " + else + log_msg += "[ROI.name]" + if (istype(ROI, /obj/structure/closet)) + var/obj/structure/closet/C = ROI + log_msg += " (" + for(var/atom/movable/Q as mob|obj in C) + if(ismob(Q)) + log_msg += "[key_name(Q)], " + else + log_msg += "[Q.name], " + if (dd_hassuffix(log_msg, "(")) + log_msg += "empty)" + else + log_msg = dd_limittext(log_msg, length(log_msg) - 2) + log_msg += ")" + log_msg += ", " do_teleport(ROI, dest) + + if (dd_hassuffix(log_msg, ", ")) + log_msg = dd_limittext(log_msg, length(log_msg) - 2) + else + log_msg += "nothing" + log_msg += " [sending ? "to" : "from"] [trueX], [trueY], [z_co] ([A ? A.name : "null area"])" + investigate_log(log_msg, "telesci") updateDialog() /obj/machinery/computer/telescience/proc/teleport(mob/user) diff --git a/config/game_options.txt b/config/game_options.txt index 85fcdbd1ced..9c4818a3df2 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -29,8 +29,8 @@ REVIVAL_BRAIN_LIFE -1 ## To speed things up make the number negative, to slow things down, make the number positive. ## These modify the run/walk speed of all mobs before the mob-specific modifiers are applied. -RUN_DELAY 0 -WALK_DELAY 0 +RUN_DELAY 1 +WALK_DELAY 4 ## The variables below affect the movement of specific mob types. HUMAN_DELAY 0 @@ -162,7 +162,7 @@ GATEWAY_DELAY 18000 ## If you find that your players are abusing the sandbox panel, this option may slow them down ## without preventing people from using it properly. ## Only functions in sandbox game mode. -#SANDBOX_AUTOCLOSE +#SANDBOX_AUTOCLOSE ### ROUNDSTART SILICON LAWS ### ## This controls what the AI's laws are at the start of the round. diff --git a/html/changelog.html b/html/changelog.html index 0ec0219ed28..054ce16a2ef 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -52,7 +52,29 @@ should be listed in the changelog upon commit tho. Thanks. --> - +
+

20 January 2014

+

Petethegoat updated:

+
    +
  • Increased the walk speed. Legcuffed speed is unaffected, and is still suffering.
  • +
  • Sped up alien drones, they are now the same speed as sentinels.
  • +
+
+ + +
+

19 January 2014

+

Rolan7 updated:

+
    +
  • You can now sell mutant seeds, from hydroponics, to Centcom via the supply shuttle.
  • +
  • Fixes powersinks causing APCs to stop automatically recharging.
  • +
+

KazeEspada updated:

+
    +
  • The water cooler is now stocked with paper cups. You can refill the cups by putting paper in it.
  • +
+
+

17 January 2014

@@ -60,6 +82,16 @@ should be listed in the changelog upon commit tho. Thanks. -->
  • Changed the way the Gygax worked. It now has less defense and shot deflection, but is faster and have less battery drain per step.
  • Nerfed the Carbine's brute damage and renamed it to FNX-99 "Hades" Carbine.
  • +
  • Nerfed the Gygax defense from 300 to 250.
    + Nerfed the Gygax projectile deflection chance from 15 to 5.
    + Buffed the Gygax speed from 3 to 2, making it faster.
    + Reduced the battery use when moving from 5 to 3.
    +
    + The Mech Ion Rifle now has a faster cooldown, from 40 to 20.
    + Nerfed the carbine's Brute Damage from 20 to 5.
    +
    + Please post feedback to these changes on the forums. +
@@ -76,34 +108,34 @@ should be listed in the changelog upon commit tho. Thanks. -->
-

14 January 2014

-

SirBayer updated:

-
    +

    14 January 2014

    +

    SirBayer updated:

    +
    • Armor now reduces damage by the protection percentage, instead of randomly deciding to half or full block damage by those percentages.
    • Shotguns, with buckshot shells, will fire a spread of pellets at your target, like a real shotgun blast.
    -

    ManeaterMildred updated:

    -
      -
    • Updated research designs.
    • -
    • The Protolathe can now build a Ion Rifle.
    • -
    • The Exosuit Fabricator can now build a Mech Ion Rifle, a Mech Carbine and a Mech-Mounted Missile Rack.
    • -
    -

    Fleure updated:

    -
      -
    • Added spider butchery.
    • -
    • Added spider meat, legs, and edible eggs.
    • -
    • Added new spider related meals.
    • -
    -

    Giacom updated:

    -
      -
    • Because of an emagged cyborg's explosion, the MMI will die with it.
    • +

      ManeaterMildred updated:

      +
        +
      • Updated research designs.
      • +
      • The Protolathe can now build a Ion Rifle.
      • +
      • The Exosuit Fabricator can now build a Mech Ion Rifle, a Mech Carbine and a Mech-Mounted Missile Rack.
      • +
      +

      Fleure updated:

      +
        +
      • Added spider butchery.
      • +
      • Added spider meat, legs, and edible eggs.
      • +
      • Added new spider related meals.
      • +
      +

      Giacom updated:

      +
        +
      • Because of an emagged cyborg's explosion, the MMI will die with it.
      • The self-respiration symptom will now properly keep you from dying of oxygen loss.
      • The Stimulant symptom's activation chance was increased so you had a constant flow of hyperzine.
      • -
      -

      Incoming updated:

      -
        -
      • A new training bomb has been added to the armoury, which will allow you to train your wire cutting skills to disarm real syndicate bombs.
      • -
      +
    +

    Incoming updated:

    +
      +
    • A new training bomb has been added to the armoury, which will allow you to train your wire cutting skills to disarm real syndicate bombs.
    • +
diff --git a/icons/effects/chemsmoke.dmi b/icons/effects/chemsmoke.dmi index 5be1b638edd..f829c6bd716 100644 Binary files a/icons/effects/chemsmoke.dmi and b/icons/effects/chemsmoke.dmi differ diff --git a/icons/effects/crayondecal.dmi b/icons/effects/crayondecal.dmi index 3aa781d8d22..11a0e7559e6 100644 Binary files a/icons/effects/crayondecal.dmi and b/icons/effects/crayondecal.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index d3e98458196..32540348373 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index 57cc98ea18c..ba946e3c80f 100644 Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ diff --git a/icons/obj/chempuff.dmi b/icons/obj/chempuff.dmi index 811c5e82142..012aa081a13 100644 Binary files a/icons/obj/chempuff.dmi and b/icons/obj/chempuff.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index bf76df73b94..4e04bd647be 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/reagentfillings.dmi b/icons/obj/reagentfillings.dmi index fbf42ca03d5..04e3a188350 100644 Binary files a/icons/obj/reagentfillings.dmi and b/icons/obj/reagentfillings.dmi differ diff --git a/icons/obj/rune.dmi b/icons/obj/rune.dmi index 6c7bc23ced5..1fb79b1a770 100644 Binary files a/icons/obj/rune.dmi and b/icons/obj/rune.dmi differ diff --git a/interface/stylesheet.dm b/interface/stylesheet.dm index bd881f81190..38020dc5bfc 100644 --- a/interface/stylesheet.dm +++ b/interface/stylesheet.dm @@ -53,6 +53,7 @@ h1.alert, h2.alert {color: #000000;} .info {color: #0000CC;} .notice {color: #000099;} .unconscious {color: #0000FF; font-weight: bold;} +.suicide {color: #ff5050; font-style: italic;} .alien {color: #543354;} .newscaster {color: #800000;}