diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm index 932d14deeeb..b8734438aac 100644 --- a/code/_onclick/hud/_defines.dm +++ b/code/_onclick/hud/_defines.dm @@ -80,6 +80,7 @@ #define ui_alien_toxin "EAST-1:28,CENTER+5:25" #define ui_alien_fire "EAST-1:28,CENTER+4:25" #define ui_alien_oxygen "EAST-1:28,CENTER+3:25" +#define ui_alien_nightvision "EAST-1:28,CENTER+2:25" //Middle right (status indicators) #define ui_nutrition "EAST-1:28,CENTER-3:11" diff --git a/code/_onclick/hud/alien.dm b/code/_onclick/hud/alien.dm index 270d848eab9..797561e37cf 100644 --- a/code/_onclick/hud/alien.dm +++ b/code/_onclick/hud/alien.dm @@ -142,6 +142,12 @@ mymob.healths.name = "health" mymob.healths.screen_loc = ui_alien_health + nightvisionicon = new /obj/screen() + nightvisionicon.icon ='icons/mob/screen_alien.dmi' + nightvisionicon.icon_state = "nightvision1" + nightvisionicon.name = "nightvision" + nightvisionicon.screen_loc = ui_alien_nightvision + alien_plasma_display = new /obj/screen() alien_plasma_display.icon = 'icons/mob/screen_gen.dmi' alien_plasma_display.icon_state = "power_display2" @@ -168,6 +174,6 @@ mymob.client.screen = null - mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.fire, mymob.healths, alien_plasma_display, mymob.pullin, mymob.blind, mymob.flash) //, mymob.hands, mymob.rest, mymob.sleep, mymob.mach ) + mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.fire, mymob.healths, nightvisionicon, alien_plasma_display, mymob.pullin, mymob.blind, mymob.flash) //, mymob.hands, mymob.rest, mymob.sleep, mymob.mach ) mymob.client.screen += adding + other diff --git a/code/_onclick/hud/alien_larva.dm b/code/_onclick/hud/alien_larva.dm index d1888d6d369..2775f546c6f 100644 --- a/code/_onclick/hud/alien_larva.dm +++ b/code/_onclick/hud/alien_larva.dm @@ -48,6 +48,12 @@ mymob.healths.name = "health" mymob.healths.screen_loc = ui_alien_health + nightvisionicon = new /obj/screen() + nightvisionicon.icon ='icons/mob/screen_alien.dmi' + nightvisionicon.icon_state = "nightvision1" + nightvisionicon.name = "nightvision" + nightvisionicon.screen_loc = ui_alien_nightvision + mymob.pullin = new /obj/screen() mymob.pullin.icon = 'icons/mob/screen_alien.dmi' mymob.pullin.icon_state = "pull0" @@ -74,5 +80,5 @@ mymob.client.screen = null - mymob.client.screen += list( mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.fire, mymob.healths, mymob.pullin, mymob.blind, mymob.flash) //, mymob.rest, mymob.sleep, mymob.mach ) + mymob.client.screen += list( mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.fire, mymob.healths, nightvisionicon, mymob.pullin, mymob.blind, mymob.flash) //, mymob.rest, mymob.sleep, mymob.mach ) mymob.client.screen += adding + other \ No newline at end of file diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 103d639189d..ed7abd1d7ca 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -100,6 +100,7 @@ var/datum/global_hud/global_hud = new() var/obj/screen/blobpwrdisplay var/obj/screen/blobhealthdisplay var/obj/screen/alien_plasma_display + var/obj/screen/nightvisionicon var/obj/screen/r_hand_hud_object var/obj/screen/l_hand_hud_object var/obj/screen/action_intent diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index b0d6037131c..f3910c9e246 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -366,7 +366,10 @@ else if(isrobot(usr)) var/mob/living/silicon/robot/R = usr R.aicamera.viewpictures() - + if("nightvision") + if(isalien(usr)) + var/mob/living/carbon/alien/humanoid/A = usr + A.nightvisiontoggle() else return 0 return 1 diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index 657acb8b02c..e163f334470 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -249,25 +249,3 @@ for(var/i = 1, i <= oreAmount, i++) new/obj/item/stack/sheet/mineral/wood(get_turf(src)) qdel(src) - -/obj/structure/mineral_door/resin - mineralType = "resin" - hardness = 1 - close_delay = 100 - openSound = 'sound/effects/attackblob.ogg' - closeSound = 'sound/effects/attackblob.ogg' - -/obj/structure/mineral_door/resin/TryToSwitchState(atom/user) - if(isalien(user)) - return ..() - -/obj/structure/mineral_door/resin/Dismantle(devastated = 0) - qdel(src) - -/obj/structure/mineral_door/resin/CheckHardness() - playsound(loc, 'sound/effects/attackblob.ogg', 100, 1) - ..() - -/obj/structure/mineral_door/resin/BlockSuperconductivity() - if(opacity) - return 1 \ No newline at end of file diff --git a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm index 4512e2b45cc..01da7d6066e 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm @@ -12,7 +12,6 @@ "[user.name] pulls [buckled_mob.name] free from the sticky nest!",\ "[user.name] pulls you free from the gelatinous resin.",\ "You hear squelching...") - buckled_mob.pixel_y = 0 unbuckle() /obj/structure/stool/bed/nest/unbuckle_myself(mob/user as mob) @@ -22,7 +21,6 @@ "You hear squelching...") spawn(600) if(user && buckled_mob && user.buckled == src) - buckled_mob.pixel_y = 0 unbuckle() /obj/structure/stool/bed/nest/buckle_mob(mob/M as mob, mob/user as mob) @@ -47,11 +45,15 @@ M.loc = src.loc M.dir = src.dir M.update_canmove() - M.pixel_y = 6 src.buckled_mob = M src.add_fingerprint(user) + src.overlays += image('icons/mob/alien.dmi', "nestoverlay", layer=6) return +/obj/structure/stool/bed/nest/unbuckle() + overlays.Cut() + ..() + /obj/structure/stool/bed/nest/attackby(obj/item/weapon/W as obj, mob/user as mob) var/aforce = W.force health = max(0, health - aforce) diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 0263237a03d..66dd57eafb0 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -33,7 +33,6 @@ var/heat_protection = 0.5 - /mob/living/carbon/alien/New() verbs += /mob/living/proc/mob_sleep verbs += /mob/living/proc/lay_down diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index 2df6900028d..02239466ee4 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -142,10 +142,10 @@ Doesn't work on other aliens/AI.*/ set desc = "Secrete tough malleable resin." set category = "Alien" - if(powerc(75)) + if(powerc(55)) var/choice = input("Choose what you wish to shape.","Resin building") as null|anything in list("resin wall","resin membrane","resin nest") //would do it through typesof but then the player choice would have the type path and we don't want the internal workings to be exposed ICly - Urist - if(!choice || !powerc(75)) return - adjustToxLoss(-75) + if(!choice || !powerc(55)) return + adjustToxLoss(-55) src << "You shape a [choice]." for(var/mob/O in viewers(src, null)) O.show_message(text("[src] vomits up a thick purple substance and begins to shape it!"), 1) @@ -170,4 +170,19 @@ Doesn't work on other aliens/AI.*/ A.loc = loc //Paralyse(10) src.visible_message("[src] hurls out the contents of their stomach!") - return \ No newline at end of file + return + +/mob/living/carbon/alien/humanoid/verb/nightvisiontoggle() + set name = "Toggle Night Vision" + set category = "Alien" + + if(nightvision == 0) + see_in_dark = 8 + see_invisible = SEE_INVISIBLE_MINIMUM + nightvision = 1 + hud_used.nightvisionicon.icon_state = "nightvision1" + else if(nightvision == 1) + see_in_dark = 4 + see_invisible = 45 + nightvision = 0 + hud_used.nightvisionicon.icon_state = "nightvision0" \ 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 c5c99d24fd7..c3ec78aa6f9 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -5,6 +5,7 @@ var/obj/item/l_store = null var/caste = "" update_icon = 1 + var/nightvision = 1 //This is fine right now, if we're adding organ specific damage this needs to be updated /mob/living/carbon/alien/humanoid/New() diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm index a759c75c0cf..6b3b8196cd0 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/life.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm @@ -389,8 +389,12 @@ sight |= SEE_MOBS sight &= ~SEE_TURFS sight &= ~SEE_OBJS - see_in_dark = 4 - see_invisible = SEE_INVISIBLE_LEVEL_TWO + if(nightvision) + see_in_dark = 8 + see_invisible = SEE_INVISIBLE_MINIMUM + else if(!nightvision) + see_in_dark = 4 + see_invisible = 45 if(see_override) see_invisible = see_override diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 4b47808e80a..a4358eea84c 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -22,7 +22,7 @@ break real_name = src.name - verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid,/mob/living/carbon/alien/humanoid/proc/neurotoxin,/mob/living/carbon/alien/humanoid/proc/resin) + verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid,/mob/living/carbon/alien/humanoid/proc/neurotoxin,/mob/living/carbon/alien/humanoid/proc/resin,/mob/living/carbon/alien/humanoid/verb/nightvisiontoggle) ..() /mob/living/carbon/alien/humanoid/queen/handle_regular_hud_updates() diff --git a/icons/mob/alien.dmi b/icons/mob/alien.dmi index a8466bfeb98..fb6dcd22512 100644 Binary files a/icons/mob/alien.dmi and b/icons/mob/alien.dmi differ diff --git a/icons/mob/screen_alien.dmi b/icons/mob/screen_alien.dmi index 255a03d9919..8d58cdba6c8 100644 Binary files a/icons/mob/screen_alien.dmi and b/icons/mob/screen_alien.dmi differ