diff --git a/code/game/gamemodes/factions.dm b/code/game/gamemodes/factions.dm index 8572b5a4..36476f13 100644 --- a/code/game/gamemodes/factions.dm +++ b/code/game/gamemodes/factions.dm @@ -157,6 +157,7 @@ Devices and Tools; Whitespace:Seperator; Implants; /obj/item/weapon/storage/box/syndie_kit/imp_freedom:3:Freedom Implant; +/obj/item/weapon/storage/box/syndie_kit/imp_adrenalin:3:Adrenalin Implant; /obj/item/weapon/storage/box/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals); Whitespace:Seperator; (Pointless) Badassery; diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 6a764b4c..a50acff2 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -72,6 +72,7 @@ Devices and Tools; Whitespace:Seperator; Implants; /obj/item/weapon/storage/box/syndie_kit/imp_freedom:3:Freedom Implant; +/obj/item/weapon/storage/box/syndie_kit/imp_adrenalin:3:Adrenalin Implant; /obj/item/weapon/storage/box/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals); /obj/item/weapon/storage/box/syndie_kit/imp_explosive:6:Explosive Implant (DANGER!); /obj/item/weapon/storage/box/syndie_kit/imp_compress:4:Compressed Matter Implant;Whitespace:Seperator; diff --git a/code/game/gamemodes/vampire/vampire_powers.dm b/code/game/gamemodes/vampire/vampire_powers.dm index b54efcc6..00e34610 100644 --- a/code/game/gamemodes/vampire/vampire_powers.dm +++ b/code/game/gamemodes/vampire/vampire_powers.dm @@ -293,9 +293,10 @@ M.current.remove_vampire_blood(150) M.current.verbs -= /client/vampire/proc/vampire_enthrall spawn(1800) M.current.verbs += /client/vampire/proc/vampire_enthrall - else - M.current << "\red You or your target either moved or you dont have enough usable blood." - return + return + else + M.current << "\red You or your target either moved or you dont have enough usable blood." + return /client/vampire/proc/vampire_cloak() set category = "Abilities" @@ -327,14 +328,14 @@ /mob/proc/can_enthrall(mob/living/carbon/C) var/enthrall_safe = 0 -/* for(var/obj/item/weapon/implant/loyalty/L in C) + for(var/obj/item/weapon/implant/loyalty/L in C) if(L && L.implanted) enthrall_safe = 1 break - for(var/obj/item/weapon/implant/traitor/T in C) - if(T && T.implanted) - enthrall_safe = 1 - break*/ +// for(var/obj/item/weapon/implant/traitor/T in C) +// if(T && T.implanted) +// enthrall_safe = 1 +// break if(!C) world.log << "something bad happened on enthralling a mob src is [src] [src.key] \ref[src]" return 0 @@ -526,4 +527,4 @@ bloodold = mind.vampire.bloodusable mind.vampire.bloodusable = max(0, (mind.vampire.bloodusable - amount)) if(bloodold != mind.vampire.bloodusable) - src << "\blue You have [mind.vampire.bloodusable] left to use." \ No newline at end of file + src << "\blue You have [mind.vampire.bloodusable] left to use." diff --git a/code/game/mecha/medical/odysseus.dm b/code/game/mecha/medical/odysseus.dm index b1ffc912..453b5e4f 100644 --- a/code/game/mecha/medical/odysseus.dm +++ b/code/game/mecha/medical/odysseus.dm @@ -108,12 +108,6 @@ holder.icon_state = "hudxeno" else if(foundVirus) holder.icon_state = "hudill" - else if(patient.has_brain_worms()) - var/mob/living/simple_animal/borer/B = patient.has_brain_worms() - if(B.controlling) - holder.icon_state = "hudbrainworm" - else - holder.icon_state = "hudhealthy" else holder.icon_state = "hudhealthy" diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 909f65b4..b068a041 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -294,6 +294,8 @@ if(H.species.flags & IS_SYNTHETIC) return + if(istype(H) && H.species.insulated)//Insulation + return if(M.buckled && istype(M.buckled, /obj/structure/stool/bed/chair/wheelchair)) return ..() diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm index 3e0d0673..9ca356b4 100644 --- a/code/game/objects/items/weapons/grenades/flashbang.dm +++ b/code/game/objects/items/weapons/grenades/flashbang.dm @@ -52,6 +52,25 @@ flick("e_flash", M.flash) M.Stun(2) M.Weaken(10) + //Vaurca damage 29-012-15 + var/mob/living/carbon/human/H = M + if(H.species.flags & IS_BUG) + var/datum/organ/internal/eyes/E = H.internal_organs_by_name["eyes"] + if(!E) + return + //Reworked damage 29/12/15 + usr << "\red Your eyes burn with the intense light of the flash!." + E.damage += rand(10, 11) + if(E.damage > 12) + M.eye_blurry += rand(3,6) + if (E.damage >= E.min_broken_damage) + M.sdisabilities |= BLIND + else if (E.damage >= E.min_bruised_damage) + M.eye_blind = 5 + M.eye_blurry = 5 + M.disabilities |= NEARSIGHTED + spawn(100) + M.disabilities &= ~NEARSIGHTED diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index eb98d587..fae8144b 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -333,22 +333,20 @@ the implant may become unstable and either pre-maturely inject the subject or si implanted(mob/M) - if(!istype(M, /mob/living/carbon/human)) return 0 + if(!istype(M, /mob/living/carbon/human)) + return 0 var/mob/living/carbon/human/H = M - if(H.mind in ticker.mode.head_revolutionaries) + if (H.mind in ticker.mode.head_revolutionaries) H.visible_message("[H] seems to resist the implant!", "You feel the corporate tendrils of Nanotrasen try to invade your mind!") return 0 - else if(H.mind in ticker.mode:revolutionaries) + else if (H.mind in ticker.mode:revolutionaries) ticker.mode:remove_revolutionary(H.mind) - H << "\blue You feel a surge of loyalty towards Nanotrasen." - return 1 - - implanted(mob/M) - if(!istype(M, /mob/living/carbon/human)) return 0 - var/mob/living/carbon/human/H = M - if(H.mind in ticker.mode:cult) + else if (H.mind in ticker.mode:cult) ticker.mode:remove_cultist(M.mind) - H << "\blue The implant robs you of your faith in Nar-Sie, leaving only obedience to NanoTrasen." + H << "\blue The implant robs you of your faith in Nar-Sie, leaving only obedience to NanoTrasen." + else if (H.mind in ticker.mode:changelings) + H << "\blue We have weaved our flesh around and isolated the simple chip. It has no effect on us. But they do not know it yet..." + H << "\blue You feel a surge of loyalty towards Nanotrasen." return 1 //Alternatively! This is the null-rod deconversion, if the above doesn't work. There's two things down there and I don't know if that's okay. @@ -386,14 +384,21 @@ the implant may become unstable and either pre-maturely inject the subject or si return dat - trigger(emote, mob/source as mob) - if (src.uses < 1) return 0 + trigger(emote, mob/living/carbon/human/source as mob) + if (src.uses < 1) + return 0 + if (!istype(source)) + return 0 if (emote == "pale") src.uses-- source << "\blue You feel a sudden surge of energy!" + source.stat = 0 + source.SetParalysis(0) source.SetStunned(0) source.SetWeakened(0) - source.SetParalysis(0) + source.lying = 0 + source.setHalLoss(0) + source.update_canmove() return diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index 2792aae8..81cbb950 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -82,6 +82,16 @@ O.update() return +/obj/item/weapon/storage/box/syndie_kit/imp_adrenalin + name = "boxed adrenalin implant (with injector)" + +/obj/item/weapon/storage/box/syndie_kit/imp_adrenalin/New() + ..() + var/obj/item/weapon/implanter/O = new(src) + O.imp = new /obj/item/weapon/implant/adrenalin(O) + O.update() + return + /obj/item/weapon/storage/box/syndie_kit/imp_compress name = "box (C)" diff --git a/code/modules/detectivework/forensics.dm b/code/modules/detectivework/forensics.dm index 52ac4436..251991b7 100644 --- a/code/modules/detectivework/forensics.dm +++ b/code/modules/detectivework/forensics.dm @@ -678,4 +678,4 @@ icon_state = "printer" var/printing = 0 density = 1 - anchored = 1 \ No newline at end of file + anchored = 1 diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index cedf42d0..1d6f375f 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1132,6 +1132,10 @@ return //TODO: DEFERRED proc/handle_regular_status_updates() + if(species.flags & IS_BUG) + adjustBruteLoss(0) + adjustFireLoss(0) + if(status_flags & GODMODE) return 0 @@ -1408,6 +1412,9 @@ see_in_dark = 8 if(!druggy) see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING + if(species.flags & IS_BUG) //Vaurca nightvision 29/12/15 + see_in_dark = 8 + if(seer==1) var/obj/effect/rune/R = locate() in loc if(R && R.word1 == cultwords["see"] && R.word2 == cultwords["hell"] && R.word3 == cultwords["join"]) @@ -1817,13 +1824,6 @@ holder2.icon_state = "hudxeno" else if(foundVirus) holder.icon_state = "hudill" - else if(has_brain_worms()) - var/mob/living/simple_animal/borer/B = has_brain_worms() - if(B.controlling) - holder.icon_state = "hudbrainworm" - else - holder.icon_state = "hudhealthy" - holder2.icon_state = "hudbrainworm" else holder.icon_state = "hudhealthy" if(virus2.len) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 037538a9..ec03d213 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -75,6 +75,7 @@ var/blood_color = "#A10808" //Red. var/flesh_color = "#FFC896" //Pink. var/base_color //Used when setting species. + var/darkness_view //Used in icon caching. var/race_key = 0 @@ -626,7 +627,8 @@ See code\modules\mob\new_player\preferences_setup.dm for where it's used. secondary_unarmed_type = /datum/unarmed_attack/bite/strong rarity_value = 2 //according to the code this does nothing but upset me so i guess it can stay slowdown = 1 //slow - darksight = 666 //good at seeing + darksight = 8 //good at seeing + darkness_view = 7 eyes = "blank_eyes" //made out of butts brute_mod = 0.5 //note to self: remove is_synthetic checks for brmod and burnmod burn_mod = 2 //bugs on fire diff --git a/code/modules/mob/living/silicon/pai/hud.dm b/code/modules/mob/living/silicon/pai/hud.dm index 18ccd308..ad51477d 100644 --- a/code/modules/mob/living/silicon/pai/hud.dm +++ b/code/modules/mob/living/silicon/pai/hud.dm @@ -74,12 +74,6 @@ holder.icon_state = "hudxeno" else if(foundVirus) holder.icon_state = "hudill" - else if(patient.has_brain_worms()) - var/mob/living/simple_animal/borer/B = patient.has_brain_worms() - if(B.controlling) - holder.icon_state = "hudbrainworm" - else - holder.icon_state = "hudhealthy" else holder.icon_state = "hudhealthy" client.images += holder @@ -104,4 +98,4 @@ return "health0" else return "health-100" - return "0" \ No newline at end of file + return "0" diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 19388bfa..f314d5c3 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -273,11 +273,13 @@ //No animations will be performed by this proc. /proc/electrocute_mob(mob/living/carbon/M as mob, var/power_source, var/obj/source, var/siemens_coeff = 1.0) if(istype(M.loc,/obj/mecha)) return 0 //feckin mechs are dumb + var/mob/living/carbon/human/H = M //29/12/2015 INSULATION INITIATION + if(istype(H) && H.species.insulated) return 0 //This is for performance optimization only. //DO NOT modify siemens_coeff here. That is checked in human/electrocute_act() if(istype(M,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = M + //var/mob/living/carbon/human/H = M Changed for inulation 29/12/15 if(H.gloves) var/obj/item/clothing/gloves/G = H.gloves if(G.siemens_coefficient == 0) return 0 //to avoid spamming with insulated glvoes on diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index c091f1db..91a8df90 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -7,22 +7,51 @@ var/blood_type = null - New() - ..() - if(blood_type != null) - name = "BloodPack [blood_type]" - reagents.add_reagent("blood", 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=blood_type,"resistances"=null,"trace_chem"=null)) - update_icon() - - on_reagent_change() +/obj/item/weapon/reagent_containers/blood/New() + ..() + if(blood_type != null) + name = "BloodPack [blood_type]" + reagents.add_reagent("blood", 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=blood_type,"resistances"=null,"trace_chem"=null)) update_icon() +/obj/item/weapon/reagent_containers/blood/on_reagent_change() update_icon() - var/percent = round((reagents.total_volume / volume) * 100) - switch(percent) - if(0 to 9) icon_state = "empty" - if(10 to 50) icon_state = "half" - if(51 to INFINITY) icon_state = "full" + +/obj/item/weapon/reagent_containers/blood/update_icon() + var/percent = round((reagents.total_volume / volume) * 100) + switch(percent) + if(0 to 9) icon_state = "empty" + if(10 to 50) icon_state = "half" + if(51 to INFINITY) icon_state = "full" + +/obj/item/weapon/reagent_containers/blood/attack(mob/living/carbon/human/M as mob, mob/living/carbon/human/user as mob) + if (user == M && (user.mind in ticker.mode.vampires || user.mind.vampire)) + if (reagents.get_reagent_amount("blood")) + user.visible_message("\red [user] raises \the [src] up to \his mouth and bites into it.", "\blue You raise \the [src] up to your mouth and bite into it, starting to drain its contents.") + + while (do_after(user, 25, 5, 1)) + var/blood_taken = 0 + var/need_to_break = 0 + if (reagents.get_reagent_amount("blood") > 10) + blood_taken = 10 + else + blood_taken = reagents.get_reagent_amount("blood") + need_to_break = 1 + + reagents.remove_reagent("blood", blood_taken) + user.mind.vampire.bloodtotal += blood_taken + user.check_vampire_upgrade(user.mind) + + if (blood_taken) + user << "\blue You have accumulated [user.mind.vampire.bloodtotal] [user.mind.vampire.bloodtotal > 1 ? "units" : "unit"] of blood and have [user.mind.vampire.bloodusable] left to use." + + if (need_to_break) + break + + user.visible_message("\red [user] licks \his fangs dry, lowering \the [src].", "\blue You lick your fangs clean of the tasteless blood.") + + else + ..() /obj/item/weapon/reagent_containers/blood/APlus blood_type = "A+" @@ -45,4 +74,4 @@ /obj/item/weapon/reagent_containers/blood/empty name = "Empty BloodPack" desc = "Seems pretty useless... Maybe if there were a way to fill it?" - icon_state = "empty" \ No newline at end of file + icon_state = "empty" diff --git a/html/changelog.html b/html/changelog.html index b8be1889..c4c4d95d 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -56,6 +56,26 @@ should be listed in the changelog upon commit though. Thanks. --> +
+

04 January 2015

+

Skull132 Updated:

+ +
+

8 December 2015

SoundScopes updated:

@@ -70,8 +90,6 @@ should be listed in the changelog upon commit though. Thanks. -->
- -

Probably October

SoundScopes updated:

@@ -86,7 +104,6 @@ should be listed in the changelog upon commit though. Thanks. -->
  • Peanut seed sprite
  • Space has been fixed so you only need to define an area once
  • SQL bug
  • -